blob: 2e831c9c8b1d370dc280031ca2bc6089882a08f3 [file] [log] [blame]
# Copyright 2015 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.
import("//third_party/protobuf/proto_library.gni")
if (is_win) {
proto_library("stability_report_proto") {
sources = [
"stability_report.proto",
]
}
static_library("browser_watcher") {
# This is a separate lib to minimize the dependencies for its
# hosting binary "chrome_watcher.dll".
sources = [
"endsession_watcher_window_win.cc",
"endsession_watcher_window_win.h",
"exit_code_watcher_win.cc",
"exit_code_watcher_win.h",
"window_hang_monitor_win.cc",
"window_hang_monitor_win.h",
]
deps = [
"//base",
]
}
static_library("browser_watcher_client") {
sources = [
"watcher_client_win.cc",
"watcher_client_win.h",
"watcher_metrics_provider_win.cc",
"watcher_metrics_provider_win.h",
]
deps = [
":postmortem_report_collector",
":stability",
"//base",
"//components/metrics",
"//third_party/crashpad/crashpad/client",
]
}
static_library("postmortem_minidump_writer") {
# TODO(manzagop): remove this lib once Crashpad writes the minidumps.
sources = [
"postmortem_minidump_writer.h",
"postmortem_minidump_writer_win.cc",
]
deps = [
":stability_data",
":stability_report_proto",
"//base",
"//third_party/crashpad/crashpad/client",
"//third_party/crashpad/crashpad/minidump",
"//third_party/crashpad/crashpad/util",
]
}
static_library("postmortem_report_collector") {
sources = [
"postmortem_report_collector.cc",
"postmortem_report_collector.h",
]
deps = [
":postmortem_minidump_writer",
":stability_data",
":stability_report_proto",
"//base",
"//components/variations",
"//third_party/crashpad/crashpad/client",
"//third_party/crashpad/crashpad/util",
]
}
}
static_library("stability") {
sources = [
"features.cc",
"features.h",
"stability_debugging.cc",
"stability_debugging.h",
]
deps = [
"//base",
]
}
static_library("stability_data") {
sources = [
"stability_data_names.cc",
"stability_data_names.h",
]
}
if (is_win) {
source_set("unit_tests") {
testonly = true
sources = [
"endsession_watcher_window_win_unittest.cc",
"exit_code_watcher_win_unittest.cc",
"postmortem_minidump_writer_win_unittest.cc",
"postmortem_report_collector_unittest.cc",
"watcher_client_win_unittest.cc",
"watcher_metrics_provider_win_unittest.cc",
"window_hang_monitor_win_unittest.cc",
]
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
deps = [
":browser_watcher",
":browser_watcher_client",
":postmortem_minidump_writer",
":postmortem_report_collector",
":stability_data",
":stability_report_proto",
"//base",
"//base/test:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/crashpad/crashpad/client",
# TODO(manzagop): remove this lib once Crashpad writes the minidumps.
"//third_party/crashpad/crashpad/compat",
"//third_party/crashpad/crashpad/minidump",
"//third_party/crashpad/crashpad/snapshot",
"//third_party/crashpad/crashpad/util",
]
}
executable("dump_postmortem") {
sources = [
"dump_postmortem_minidump_main_win.cc",
]
deps = [
":stability_report_proto",
"//base",
]
}
}