| # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | import("//build/config/chromecast_build.gni") | 
 | import("//build/config/chromeos/ui_mode.gni") | 
 | import("//extensions/buildflags/buildflags.gni") | 
 | import("//testing/test.gni") | 
 | import("//tools/grit/grit_rule.gni") | 
 | import("//tools/grit/repack.gni") | 
 | import("//ui/base/ui_features.gni") | 
 |  | 
 | assert(enable_extensions) | 
 | assert( | 
 |     !(enable_autofill_assistant_api && is_official_build), | 
 |     "The AutofillAssistant Extension API must be disabled in official builds.") | 
 |  | 
 | group("extensions_resources") { | 
 |   public_deps = [ | 
 |     ":extensions_browser_resources", | 
 |     ":extensions_renderer_resources", | 
 |     ":extensions_resources_grd", | 
 |   ] | 
 | } | 
 |  | 
 | grit("extensions_resources_grd") { | 
 |   source = "extensions_resources.grd" | 
 |   outputs = [ | 
 |     "grit/extensions_resources.h", | 
 |     "extensions_resources.pak", | 
 |   ] | 
 | } | 
 |  | 
 | grit("extensions_browser_resources") { | 
 |   source = "browser/resources/extensions_browser_resources.grd" | 
 |   outputs = [ | 
 |     "grit/extensions_browser_resources.h", | 
 |     "grit/extensions_browser_resources_map.cc", | 
 |     "grit/extensions_browser_resources_map.h", | 
 |     "extensions_browser_resources_100_percent.pak", | 
 |     "extensions_browser_resources_200_percent.pak", | 
 |   ] | 
 | } | 
 |  | 
 | grit("extensions_renderer_resources") { | 
 |   source = "renderer/resources/extensions_renderer_resources.grd" | 
 |   defines = [ "is_chromecast=$is_chromecast" ] | 
 |   outputs = [ | 
 |     "grit/extensions_renderer_resources.h", | 
 |     "extensions_renderer_resources.pak", | 
 |   ] | 
 |   grit_flags = [ | 
 |     "-E", | 
 |     "mojom_root=" + rebase_path(root_gen_dir, root_build_dir), | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "//extensions/common:mojom_js", | 
 |     "//extensions/common/api:mojom_js", | 
 |     "//services/device/public/mojom:mojom_js", | 
 |   ] | 
 | } | 
 |  | 
 | static_library("test_support") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "browser/api/declarative/test_rules_registry.cc", | 
 |     "browser/api/declarative/test_rules_registry.h", | 
 |     "browser/api/storage/settings_test_util.cc", | 
 |     "browser/api/storage/settings_test_util.h", | 
 |     "browser/api_test_utils.cc", | 
 |     "browser/api_test_utils.h", | 
 |     "browser/api_unittest.cc", | 
 |     "browser/api_unittest.h", | 
 |     "browser/app_window/test_app_window_contents.cc", | 
 |     "browser/app_window/test_app_window_contents.h", | 
 |     "browser/content_verifier/test_utils.cc", | 
 |     "browser/content_verifier/test_utils.h", | 
 |     "browser/extension_error_test_util.cc", | 
 |     "browser/extension_error_test_util.h", | 
 |     "browser/extensions_test.cc", | 
 |     "browser/extensions_test.h", | 
 |     "browser/guest_view/mime_handler_view/test_mime_handler_view_guest.cc", | 
 |     "browser/guest_view/mime_handler_view/test_mime_handler_view_guest.h", | 
 |     "browser/mock_extension_system.cc", | 
 |     "browser/mock_extension_system.h", | 
 |     "browser/mock_external_provider.cc", | 
 |     "browser/mock_external_provider.h", | 
 |     "browser/scoped_ignore_content_verifier_for_test.cc", | 
 |     "browser/scoped_ignore_content_verifier_for_test.h", | 
 |     "browser/test_event_router.cc", | 
 |     "browser/test_event_router.h", | 
 |     "browser/test_extension_registry_observer.cc", | 
 |     "browser/test_extension_registry_observer.h", | 
 |     "browser/test_extensions_browser_client.cc", | 
 |     "browser/test_extensions_browser_client.h", | 
 |     "browser/test_image_loader.cc", | 
 |     "browser/test_image_loader.h", | 
 |     "browser/test_management_policy.cc", | 
 |     "browser/test_management_policy.h", | 
 |     "browser/test_runtime_api_delegate.cc", | 
 |     "browser/test_runtime_api_delegate.h", | 
 |     "common/extension_builder.cc", | 
 |     "common/extension_builder.h", | 
 |     "common/manifest_test.cc", | 
 |     "common/manifest_test.h", | 
 |     "common/permissions/mock_manifest_permission.cc", | 
 |     "common/permissions/mock_manifest_permission.h", | 
 |     "common/permissions/permission_message_test_util.cc", | 
 |     "common/permissions/permission_message_test_util.h", | 
 |     "common/scoped_testing_manifest_handler_registry.cc", | 
 |     "common/scoped_testing_manifest_handler_registry.h", | 
 |     "renderer/test_extensions_renderer_client.cc", | 
 |     "renderer/test_extensions_renderer_client.h", | 
 |     "test/background_page_watcher.cc", | 
 |     "test/background_page_watcher.h", | 
 |     "test/extension_background_page_waiter.cc", | 
 |     "test/extension_background_page_waiter.h", | 
 |     "test/extension_test_message_listener.cc", | 
 |     "test/extension_test_message_listener.h", | 
 |     "test/extension_test_notification_observer.cc", | 
 |     "test/extension_test_notification_observer.h", | 
 |     "test/logging_timer.cc", | 
 |     "test/logging_timer.h", | 
 |     "test/result_catcher.cc", | 
 |     "test/result_catcher.h", | 
 |     "test/test_background_page_first_load_observer.cc", | 
 |     "test/test_background_page_first_load_observer.h", | 
 |     "test/test_background_page_ready_observer.cc", | 
 |     "test/test_background_page_ready_observer.h", | 
 |     "test/test_content_script_load_waiter.cc", | 
 |     "test/test_content_script_load_waiter.h", | 
 |     "test/test_content_utility_client.cc", | 
 |     "test/test_content_utility_client.h", | 
 |     "test/test_extension_dir.cc", | 
 |     "test/test_extension_dir.h", | 
 |     "test/test_extensions_client.cc", | 
 |     "test/test_extensions_client.h", | 
 |     "test/test_permission_message_provider.cc", | 
 |     "test/test_permission_message_provider.h", | 
 |   ] | 
 |  | 
 |   # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. | 
 |   configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] | 
 |  | 
 |   deps = [ | 
 |     ":extensions_resources", | 
 |     "//base", | 
 |     "//build:chromeos_buildflags", | 
 |     "//chrome/common:buildflags", | 
 |     "//components/cast_certificate:test_support", | 
 |     "//components/cast_channel:test_support", | 
 |     "//components/guest_view/browser:test_support", | 
 |     "//components/prefs:test_support", | 
 |     "//components/sync_preferences:test_support", | 
 |     "//content/public/common", | 
 |     "//content/test:test_support", | 
 |     "//extensions/browser", | 
 |     "//extensions/browser:test_support", | 
 |     "//extensions/browser/api/storage", | 
 |     "//extensions/common", | 
 |     "//extensions/common:core_api_provider", | 
 |     "//extensions/common/api", | 
 |     "//extensions/common/api:extensions_features", | 
 |     "//net:test_support", | 
 |     "//services/network/public/mojom", | 
 |     "//testing/gmock", | 
 |     "//testing/gtest", | 
 |     "//third_party/cld_3/src/src:cld_3", | 
 |   ] | 
 |  | 
 |   public_deps = [ "//content/public/browser" ] | 
 | } | 
 |  | 
 | repack("shell_and_test_pak") { | 
 |   testonly = true | 
 |  | 
 |   sources = [ | 
 |     "$root_gen_dir/content/browser/devtools/devtools_resources.pak", | 
 |     "$root_gen_dir/content/content_resources.pak", | 
 |     "$root_gen_dir/content/dev_ui_content_resources.pak", | 
 |     "$root_gen_dir/content/shell/shell_resources.pak", | 
 |     "$root_gen_dir/device/bluetooth/strings/bluetooth_strings_en-US.pak", | 
 |     "$root_gen_dir/extensions/extensions_browser_resources_100_percent.pak", | 
 |     "$root_gen_dir/extensions/extensions_renderer_resources.pak", | 
 |     "$root_gen_dir/extensions/extensions_resources.pak", | 
 |     "$root_gen_dir/extensions/shell/app_shell_resources.pak", | 
 |     "$root_gen_dir/extensions/strings/extensions_strings_en-US.pak", | 
 |     "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", | 
 |     "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", | 
 |     "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak", | 
 |     "$root_gen_dir/third_party/blink/public/strings/blink_strings_en-US.pak", | 
 |     "$root_gen_dir/ui/resources/ui_resources_100_percent.pak", | 
 |     "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak", | 
 |     "$root_gen_dir/ui/strings/ui_strings_en-US.pak", | 
 |   ] | 
 |  | 
 |   output = "$root_out_dir/extensions_shell_and_test.pak" | 
 |  | 
 |   deps = [ | 
 |     ":extensions_resources", | 
 |     "//content:content_resources", | 
 |     "//content:dev_ui_content_resources", | 
 |     "//content/browser/devtools:devtools_resources", | 
 |     "//content/shell:resources", | 
 |     "//device/bluetooth/strings", | 
 |     "//extensions/shell:resources", | 
 |     "//extensions/strings", | 
 |     "//mojo/public/js:resources", | 
 |     "//third_party/blink/public:resources", | 
 |     "//third_party/blink/public:scaled_resources_100_percent", | 
 |     "//third_party/blink/public/strings", | 
 |     "//ui/resources", | 
 |     "//ui/strings", | 
 |   ] | 
 | } | 
 |  | 
 | test("extensions_unittests") { | 
 |   use_xvfb = use_xvfb_in_this_config | 
 |  | 
 |   sources = [ | 
 |     "test/extensions_unittests_main.cc", | 
 |     "test/logging_timer_unittest.cc", | 
 |   ] | 
 |  | 
 |   data = [ | 
 |     "test/data/", | 
 |     "//chrome/test/data/extensions/", | 
 |     "//components/test/data/cast_certificate/", | 
 |     "$root_out_dir/content_shell.pak", | 
 |     "$root_out_dir/extensions_shell_and_test.pak", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     ":extensions_resources", | 
 |     ":shell_and_test_pak", | 
 |     ":test_support", | 
 |     "//base/test:test_support", | 
 |     "//content/public/common", | 
 |     "//content/test:test_support", | 
 |     "//extensions/browser:unit_tests", | 
 |     "//extensions/common", | 
 |     "//extensions/common:unit_tests", | 
 |     "//extensions/renderer:unit_tests", | 
 |     "//extensions/shell:unit_tests", | 
 |     "//services/data_decoder:lib", | 
 |     "//services/service_manager/public/cpp/test:test_support", | 
 |     "//ui/gl:test_support", | 
 |   ] | 
 |  | 
 |   data_deps = [ "//third_party/mesa_headers" ] | 
 | } | 
 |  | 
 | test("extensions_browsertests") { | 
 |   use_xvfb = use_xvfb_in_this_config | 
 |  | 
 |   data = [ | 
 |     "//extensions/test/data/", | 
 |     "//net/tools/testserver/", | 
 |     "//third_party/pywebsocket3/src/mod_pywebsocket/", | 
 |     "//third_party/tlslite/", | 
 |     "$root_out_dir/extensions_shell_and_test.pak", | 
 |   ] | 
 |  | 
 |   deps = [ | 
 |     "//extensions/browser:browser_tests", | 
 |     "//extensions/shell:browser_tests", | 
 |   ] | 
 |  | 
 |   data_deps = [ "//third_party/mesa_headers" ] | 
 | } | 
 |  | 
 | # TODO(rockot) bug 505926: These should be moved to extensions_browsertests but have | 
 | # old dependencies on chrome files. The chrome dependencies should be removed | 
 | # and these moved to the extensions_browsertests target. Currently, we solve | 
 | # the problem by making this a source set and linking it into | 
 | # //chrome/test:browser_tests. | 
 | source_set("chrome_extensions_browsertests") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "browser/api/app_window/app_window_apitest.cc", | 
 |     "browser/api/bluetooth/bluetooth_apitest.cc", | 
 |     "browser/api/bluetooth/bluetooth_private_apitest.cc", | 
 |     "browser/api/cast_channel/cast_channel_apitest.cc", | 
 |     "browser/api/serial/serial_apitest.cc", | 
 |     "browser/api/usb/usb_manual_apitest.cc", | 
 |     "browser/app_window/app_window_browsertest.cc", | 
 |     "browser/guest_view/mime_handler_view/mime_handler_view_browsertest.cc", | 
 |     "renderer/script_context_browsertest.cc", | 
 |   ] | 
 |  | 
 |   defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] | 
 |  | 
 |   # These are the deps from browser_tests minus some internal Chrome ones that | 
 |   # aren't allowed to be included here and that aren't needed. | 
 |   deps = [ | 
 |     "//base", | 
 |     "//base:i18n", | 
 |     "//base/test:test_support", | 
 |     "//build:chromeos_buildflags", | 
 |     "//chrome/browser", | 
 |     "//chrome/common/extensions/api", | 
 |     "//chrome/renderer", | 
 |     "//components/autofill/content/browser:risk_proto", | 
 |     "//components/autofill/content/renderer:test_support", | 
 |     "//components/captive_portal/core:test_support", | 
 |     "//components/dom_distiller/content/browser", | 
 |     "//components/dom_distiller/core:test_support", | 
 |     "//components/guest_view/browser:test_support", | 
 |     "//components/javascript_dialogs", | 
 |     "//components/resources", | 
 |     "//components/strings", | 
 |     "//components/sync", | 
 |     "//components/sync:test_support_model", | 
 |     "//components/translate/core/common", | 
 |     "//crypto:platform", | 
 |     "//crypto:test_support", | 
 |     "//device/bluetooth:mocks", | 
 |     "//extensions/common/api", | 
 |     "//google_apis:test_support", | 
 |     "//media:test_support", | 
 |     "//media/cast:test_support", | 
 |     "//net", | 
 |     "//net:test_support", | 
 |     "//skia", | 
 |     "//testing/gmock", | 
 |     "//testing/gtest", | 
 |     "//testing/perf", | 
 |     "//third_party/blink/public:blink", | 
 |     "//third_party/icu", | 
 |     "//third_party/leveldatabase", | 
 |     "//third_party/libaddressinput", | 
 |     "//third_party/webrtc_overrides:webrtc_component", | 
 |     "//third_party/widevine/cdm:headers", | 
 |     "//ui/accessibility:test_support", | 
 |     "//ui/base:test_support", | 
 |     "//ui/compositor:test_support", | 
 |     "//ui/resources", | 
 |     "//ui/web_dialogs:test_support", | 
 |     "//v8", | 
 |   ] | 
 |  | 
 |   if (is_chromeos_ash) { | 
 |     deps += [ "//components/user_manager:test_support" ] | 
 |   } | 
 | } | 
 |  | 
 | # TODO(rockot) bug 505926: This should be deleted for the same reason as | 
 | # chrome_extensions_browsertests. | 
 | source_set("chrome_extensions_interactive_uitests") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "browser/app_window/app_window_interactive_uitest.cc", | 
 |     "browser/guest_view/mime_handler_view/mime_handler_view_interactive_uitest.cc", | 
 |   ] | 
 |  | 
 |   defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] | 
 |  | 
 |   # These are the deps from interactive_uitests minus some internal Chrome | 
 |   # ones that aren't allowed to be included here and that aren't needed. | 
 |   deps = [ | 
 |     "//chrome/browser", | 
 |     "//chrome/browser/devtools", | 
 |     "//chrome/renderer", | 
 |     "//chrome/test:test_support", | 
 |     "//components/sync", | 
 |     "//content/app/resources", | 
 |     "//crypto:platform", | 
 |     "//crypto:test_support", | 
 |     "//google_apis:test_support", | 
 |     "//net", | 
 |     "//net:net_resources", | 
 |     "//net:test_support", | 
 |     "//skia", | 
 |     "//testing/gmock", | 
 |     "//testing/gtest", | 
 |     "//third_party/hunspell", | 
 |     "//third_party/icu", | 
 |     "//third_party/libpng", | 
 |     "//third_party/zlib", | 
 |     "//ui/base:test_support", | 
 |     "//ui/resources:ui_test_pak", | 
 |     "//ui/web_dialogs:test_support", | 
 |   ] | 
 | } |