# 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", "system_session_analyzer_win.cc", "system_session_analyzer_win.h", ] deps = [ ":stability_client", ":stability_common", ":stability_report_proto", "//base", "//components/variations", "//third_party/crashpad/crashpad/client", "//third_party/crashpad/crashpad/minidump", "//third_party/crashpad/crashpad/util", ] libs = [ "wevtapi.lib" ] 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:handler_lib", "//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", "system_session_analyzer_win_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", "//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", ] } }