| # 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_stability", |
| ":stability_client", |
| "//base", |
| "//components/metrics", |
| "//third_party/crashpad/crashpad/client", |
| ] |
| } |
| |
| static_library("postmortem_stability") { |
| sources = [ |
| "postmortem_minidump_writer.h", |
| "postmortem_minidump_writer_win.cc", |
| "postmortem_report_collector.cc", |
| "postmortem_report_collector.h", |
| ] |
| deps = [ |
| ":stability_client", |
| ":stability_common", |
| ":stability_report_proto", |
| "//base", |
| "//components/metrics:metrics", |
| "//components/variations", |
| "//third_party/crashpad/crashpad/client", |
| "//third_party/crashpad/crashpad/minidump", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| ldflags = [ "/DELAYLOAD:wevtapi.dll" ] # Only used after unclean shutdowns. |
| } |
| |
| static_library("crash_stability") { |
| sources = [ |
| "stability_report_user_stream_data_source.cc", |
| "stability_report_user_stream_data_source.h", |
| ] |
| deps = [ |
| ":stability_client", |
| ":stability_common", |
| ":stability_report_proto", |
| "//base", |
| "//third_party/crashpad/crashpad/client", |
| "//third_party/crashpad/crashpad/compat", |
| "//third_party/crashpad/crashpad/handler", |
| "//third_party/crashpad/crashpad/minidump", |
| "//third_party/crashpad/crashpad/snapshot", |
| ] |
| } |
| |
| static_library("stability_common") { |
| sources = [ |
| "minidump_user_streams.h", |
| "stability_report_extractor.cc", |
| "stability_report_extractor.h", |
| ] |
| deps = [ |
| ":stability_client", |
| ":stability_report_proto", |
| "//base", |
| "//components/variations", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| } |
| |
| static_library("stability_client") { |
| sources = [ |
| "features.cc", |
| "features.h", |
| "stability_data_names.cc", |
| "stability_data_names.h", |
| "stability_debugging.cc", |
| "stability_debugging.h", |
| "stability_metrics.cc", |
| "stability_metrics.h", |
| "stability_paths.cc", |
| "stability_paths.h", |
| ] |
| deps = [ |
| "//base", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| } |
| |
| 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", |
| "stability_debugging_win_unittest.cc", |
| "stability_paths_unittest.cc", |
| "stability_report_extractor_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_stability", |
| ":stability_client", |
| ":stability_common", |
| ":stability_report_proto", |
| "//base", |
| "//base/test:test_support", |
| "//components/metrics:metrics", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/crashpad/crashpad/client", |
| |
| # TODO(manzagop): remove this lib once Crashpad writes the minidumps. |
| "//third_party/crashpad/crashpad/minidump", |
| "//third_party/crashpad/crashpad/snapshot", |
| "//third_party/crashpad/crashpad/util", |
| ] |
| } |
| |
| executable("dump_stability") { |
| sources = [ |
| "dump_stability_report_main_win.cc", |
| ] |
| deps = [ |
| ":stability_report_proto", |
| "//base", |
| ] |
| } |
| |
| executable("fetch_system_session_events") { |
| sources = [ |
| "fetch_system_session_events_main_win.cc", |
| ] |
| deps = [ |
| ":postmortem_stability", |
| "//base", |
| "//components/metrics:metrics", |
| ] |
| } |
| } |