mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
311 lines
7.9 KiB
Plaintext
311 lines
7.9 KiB
Plaintext
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
|
||
|
# TODO(crbug.com/753619): Enable crash reporting on Fuchsia.
|
||
|
assert(!is_ios && !is_fuchsia)
|
||
|
|
||
|
if (is_android) {
|
||
|
import("//build/config/android/config.gni")
|
||
|
}
|
||
|
|
||
|
source_set("lib") {
|
||
|
sources = [
|
||
|
"crash_keys_win.cc",
|
||
|
"crash_keys_win.h",
|
||
|
"crash_reporter_client.cc",
|
||
|
"crash_reporter_client.h",
|
||
|
]
|
||
|
|
||
|
include_dirs = [ "../../../../third_party/breakpad/breakpad/src" ]
|
||
|
|
||
|
deps = [
|
||
|
"//base",
|
||
|
]
|
||
|
|
||
|
if (is_win) {
|
||
|
deps += [ "//third_party/breakpad:breakpad_handler" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static_library("app") {
|
||
|
sources = [
|
||
|
"crash_export_thunks.h",
|
||
|
"crash_switches.cc",
|
||
|
"crash_switches.h",
|
||
|
"crashpad.h",
|
||
|
"crashpad_mac.mm",
|
||
|
"crashpad_win.cc",
|
||
|
]
|
||
|
|
||
|
if (is_mac || is_win) {
|
||
|
sources += [ "crashpad.cc" ]
|
||
|
}
|
||
|
|
||
|
defines = [ "CRASH_IMPLEMENTATION" ]
|
||
|
|
||
|
public_deps = [
|
||
|
":app_non_mac_win",
|
||
|
":lib",
|
||
|
]
|
||
|
deps = [
|
||
|
"//base",
|
||
|
]
|
||
|
|
||
|
if (is_mac || is_win) {
|
||
|
deps += [
|
||
|
"//third_party/crashpad/crashpad/client",
|
||
|
"//third_party/crashpad/crashpad/snapshot:snapshot_api",
|
||
|
]
|
||
|
}
|
||
|
if (is_win) {
|
||
|
deps += [ "//third_party/crashpad/crashpad/handler:handler_lib" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (is_win) {
|
||
|
static_library("run_as_crashpad_handler") {
|
||
|
sources = [
|
||
|
"crash_switches.cc",
|
||
|
"crash_switches.h",
|
||
|
"fallback_crash_handler_launcher_win.cc",
|
||
|
"fallback_crash_handler_launcher_win.h",
|
||
|
"fallback_crash_handler_win.cc",
|
||
|
"fallback_crash_handler_win.h",
|
||
|
"fallback_crash_handling_win.cc",
|
||
|
"fallback_crash_handling_win.h",
|
||
|
"run_as_crashpad_handler_win.cc",
|
||
|
"run_as_crashpad_handler_win.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
"//base",
|
||
|
"//components/browser_watcher:crash_stability",
|
||
|
"//third_party/crashpad/crashpad/client",
|
||
|
"//third_party/crashpad/crashpad/handler:handler_lib",
|
||
|
"//third_party/crashpad/crashpad/minidump",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
# This source set contains the include file that declares the export thunks.
|
||
|
# Any target that gets compiled into both test and release code needs to
|
||
|
# depend on this for the include alone. The binary it's linked into then needs
|
||
|
# to depend on either :crash_export_thunks or :test_support, or in the case of
|
||
|
# release binaries, on //chrome_elf, which re-exports the thunks.
|
||
|
source_set("crash_export_thunk_include") {
|
||
|
sources = [
|
||
|
"crash_export_thunks.h",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
# This source set contains a set of functions that allow using the crashpad
|
||
|
# handler across a module boundary. The intent is for these functions to be
|
||
|
# built into a dynamic library, which the user of the crashpad handler then
|
||
|
# has a link-time dependency on. This will result in an import dependency
|
||
|
# from the user to the dynamic library that will be bound at load time.
|
||
|
# In a single-module project, this source set can alternatively be included in
|
||
|
# the sole module, in which case the implementation will be bound at link
|
||
|
# time.
|
||
|
source_set("crash_export_thunks") {
|
||
|
sources = [
|
||
|
"crash_export_thunks.cc",
|
||
|
"crash_export_thunks.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":app",
|
||
|
"//base",
|
||
|
"//third_party/crashpad/crashpad/client",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
# This source set contains a set of test stubs for the functions above.
|
||
|
# time.
|
||
|
source_set("crash_export_stubs") {
|
||
|
testonly = true
|
||
|
|
||
|
sources = [
|
||
|
"crash_export_stubs.cc",
|
||
|
"crash_export_thunks.h",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":app",
|
||
|
"//base",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# This source set provides the functionality required for tests, which on Windows
|
||
|
# link the export thunks directly into the test binary.
|
||
|
source_set("test_support") {
|
||
|
testonly = true
|
||
|
|
||
|
deps = [
|
||
|
":lib",
|
||
|
]
|
||
|
|
||
|
if (is_win) {
|
||
|
deps += [ ":crash_export_stubs" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# TODO(mark): https://crbug.com/466890: merge this target with
|
||
|
# crash_component.
|
||
|
#
|
||
|
# This is a temporary base target that is depended on by both
|
||
|
# crash_component and crash_component_breakpad_mac_to_be_deleted. It
|
||
|
# provides everything common to both of those targets. For a short period,
|
||
|
# there are two Mac crash component implementations. The new one uses a
|
||
|
# Crashpad implementation and is used by Chrome. The old one uses a
|
||
|
# Breakpad implementation and is used by content_shell. Consumers should
|
||
|
# depend on the desired target. All three targets behave identically on
|
||
|
# non-Mac. When content_shell and any other consumers are migrated to the
|
||
|
# Crashpad implementation on Mac, crash_component will merge back into
|
||
|
# this target, crash_component_non_mac, which will be renamed
|
||
|
# crash_component. crash_component_breakpad_mac_to_be_deleted will be
|
||
|
# deleted.
|
||
|
#
|
||
|
# While this situation exists:
|
||
|
#
|
||
|
# Do not depend on this target directly! Depend on
|
||
|
# crash_component_breakpad_mac_to_be_deleted for old Breakpad behavior on
|
||
|
# all platforms, or preferably, depend on crash_component to get Breakpad
|
||
|
# everywhere except for Mac, where you will get Crashpad.
|
||
|
source_set("app_non_mac_win") {
|
||
|
visibility = [
|
||
|
":*",
|
||
|
"//components/crash/content/browser",
|
||
|
]
|
||
|
|
||
|
sources = [
|
||
|
"breakpad_linux_impl.h",
|
||
|
"hard_error_handler_win.cc",
|
||
|
"hard_error_handler_win.h",
|
||
|
]
|
||
|
|
||
|
if (is_android) {
|
||
|
libs = [ "log" ]
|
||
|
}
|
||
|
|
||
|
if (is_android || is_linux) {
|
||
|
# Want these files on both Linux and Android.
|
||
|
set_sources_assignment_filter([])
|
||
|
sources += [
|
||
|
"breakpad_linux.cc",
|
||
|
"breakpad_linux.h",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
defines = [ "CRASH_IMPLEMENTATION" ]
|
||
|
|
||
|
deps = [
|
||
|
":lib",
|
||
|
"//base",
|
||
|
"//base:base_static",
|
||
|
"//components/crash/core/common",
|
||
|
"//content/public/common:content_descriptors",
|
||
|
"//content/public/common:result_codes",
|
||
|
]
|
||
|
|
||
|
# Clang's -mstackrealign doesn't work well with
|
||
|
# linux_syscall_support.h hand written asm syscalls.
|
||
|
# See https://crbug.com/556393
|
||
|
configs -= [ "//build/config/compiler:clang_stackrealign" ]
|
||
|
|
||
|
if (is_win) {
|
||
|
deps += [
|
||
|
"//sandbox",
|
||
|
"//third_party/breakpad:breakpad_handler",
|
||
|
]
|
||
|
} else if (is_posix && !is_ios) {
|
||
|
deps += [ "//third_party/breakpad:client" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# TODO(mark): https://crbug.com/466890: remove this target.
|
||
|
#
|
||
|
# This is a temporary target provided for Mac Breakpad users that have not
|
||
|
# yet migrated to Crashpad (namely content_shell). This target will be
|
||
|
# removed shortly and all consumers will be expected to use Crashpad as
|
||
|
# the Mac crash-reporting client. See the comment in the
|
||
|
# crash_component_non_mac target for more details.
|
||
|
static_library("app_breakpad_mac_win_to_be_deleted") {
|
||
|
deps = [
|
||
|
":app_non_mac_win",
|
||
|
]
|
||
|
|
||
|
if (is_mac || is_win) {
|
||
|
sources = [
|
||
|
"breakpad_mac.h",
|
||
|
"breakpad_mac.mm",
|
||
|
"breakpad_win.cc",
|
||
|
"breakpad_win.h",
|
||
|
]
|
||
|
|
||
|
defines = [ "CRASH_IMPLEMENTATION" ]
|
||
|
|
||
|
public_deps = [
|
||
|
":lib",
|
||
|
]
|
||
|
deps += [
|
||
|
"//base",
|
||
|
"//base:base_static",
|
||
|
"//components/crash/core/common",
|
||
|
"//content/public/common:result_codes",
|
||
|
"//sandbox",
|
||
|
"//third_party/breakpad:client",
|
||
|
]
|
||
|
|
||
|
if (is_mac) {
|
||
|
deps += [ "//third_party/breakpad" ]
|
||
|
}
|
||
|
|
||
|
if (is_win) {
|
||
|
deps += [ "//third_party/breakpad:breakpad_handler" ]
|
||
|
libs = [ "userenv.lib" ]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (is_mac) {
|
||
|
static_library("breakpad_stubs") {
|
||
|
sources = [
|
||
|
"breakpad_mac.h",
|
||
|
"breakpad_mac_stubs.mm",
|
||
|
"crash_reporter_client.cc",
|
||
|
"crash_reporter_client.h",
|
||
|
]
|
||
|
deps = [
|
||
|
"//base",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
source_set("unit_tests") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"crash_keys_win_unittest.cc",
|
||
|
"fallback_crash_handler_launcher_win_unittest.cc",
|
||
|
"fallback_crash_handler_win_unittest.cc",
|
||
|
"fallback_crash_handling_win_unittest.cc",
|
||
|
]
|
||
|
deps = [
|
||
|
":lib",
|
||
|
"//base",
|
||
|
"//base/test:test_support",
|
||
|
"//testing/gmock",
|
||
|
"//testing/gtest",
|
||
|
]
|
||
|
|
||
|
if (is_win) {
|
||
|
deps += [
|
||
|
":run_as_crashpad_handler",
|
||
|
"//third_party/breakpad:client",
|
||
|
"//third_party/crashpad/crashpad/client:client",
|
||
|
"//third_party/crashpad/crashpad/snapshot:snapshot",
|
||
|
"//third_party/crashpad/crashpad/util",
|
||
|
]
|
||
|
}
|
||
|
}
|