# Copyright 2022 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//pdf/features.gni") import("//printing/buildflags/buildflags.gni") import("//services/screen_ai/buildflags/features.gni") assert(enable_pdf) source_set("pdf") { sources = [ "chrome_pdf_stream_delegate.cc", "chrome_pdf_stream_delegate.h", "pdf_extension_util.cc", "pdf_extension_util.h", "pdf_handler_stream_delegate.cc", "pdf_handler_stream_delegate.h", "pdf_help_bubble_handler_factory.cc", "pdf_help_bubble_handler_factory.h", ] public_deps = [ "//base", "//components/pdf/browser", "//content/public/browser", "//extensions/browser/mime_handler", "//extensions/common/api", "//mojo/public/cpp/bindings", "//pdf:buildflags", "//ui/base/interaction", "//ui/webui/resources/cr_components/help_bubble:mojo_bindings", ] deps = [ "//build:chromeos_buildflags", "//chrome/browser:browser_process", "//chrome/browser:resources", "//chrome/browser/glic", "//chrome/browser/pdf:pdf_pref_names", "//chrome/browser/profiles:profile", "//chrome/browser/resources/pdf:resources", "//chrome/browser/ui:browser_element_identifiers", "//chrome/common", "//components/pdf/browser:interceptors", "//components/pdf/common:util", "//components/prefs", "//components/user_education/webui", "//components/zoom", "//extensions/browser", "//extensions/browser/mime_handler:stream_container", "//extensions/common:common_constants", "//pdf:features", "//printing/buildflags", "//third_party/blink/public/common:headers", "//ui/base", "//ui/gfx:color_utils", "//ui/webui/tracked_element", "//url", ] if (is_chromeos) { deps += [ "//chromeos/ash/components/browser_context_helper" ] } if (enable_print_preview) { deps += [ "//chrome/common" ] } } source_set("pdf_pref_names") { sources = [ "pdf_pref_names.cc", "pdf_pref_names.h", ] } if (is_chromeos) { source_set("pdf_service") { sources = [ "pdf_service.cc", "pdf_service.h", ] public_deps = [ "//chrome/services/pdf/public/mojom", "//mojo/public/cpp/bindings", ] deps = [ "//base", "//chrome/app:generated_resources", "//content/public/browser", ] } } source_set("pdf_extension_test_utils") { testonly = true sources = [ "pdf_extension_test_util.cc", "pdf_extension_test_util.h", ] deps = [ "//base", "//base/test:test_support", "//chrome/browser/ui", "//chrome/browser/ui/tabs:tab_strip", "//components/pdf/common:util", "//content/public/browser", "//content/test:test_support", "//extensions/browser", "//pdf:features", "//testing/gtest", ] } source_set("test_mime_handler_stream_manager") { testonly = true sources = [ "test_mime_handler_stream_manager.cc", "test_mime_handler_stream_manager.h", ] public_deps = [ "//content/public/browser", "//extensions/browser/mime_handler", "//testing/gtest", ] deps = [ ":pdf_extension_test_utils", "//base", "//content/test:test_support", ] } source_set("pdf_extension_test_base") { testonly = true sources = [ "pdf_extension_test_base.cc", "pdf_extension_test_base.h", ] public_deps = [ ":test_mime_handler_stream_manager", "//chrome/browser/extensions:test_support", ] deps = [ ":pdf", ":pdf_extension_test_utils", "//chrome/browser/profiles:profile", "//chrome/browser/ui", "//chrome/browser/ui/browser_window", "//chrome/common:constants", "//chrome/test:test_support", "//components/guest_view/browser", "//components/guest_view/browser:test_support", "//components/pdf/browser", "//content/public/browser", "//content/test:test_support", "//extensions/browser", "//extensions/browser/api:extensions_api_client", "//pdf:features", "//ui/gfx/geometry", ] } source_set("unit_tests") { testonly = true sources = [ "mime_handler_stream_manager_pdf_unittest.cc", "pdf_extension_util_unittest.cc", ] deps = [ ":pdf", "//base", "//base/test:test_support", "//chrome/common:constants", "//chrome/test:test_support", "//content/public/browser", "//content/test:test_support", "//extensions/browser/mime_handler", "//extensions/browser/mime_handler:stream_container", "//extensions/browser/mime_handler:test_helpers", "//pdf:buildflags", "//pdf:features", "//testing/gmock", "//testing/gtest", ] if (is_chromeos) { deps += [ "//chrome/browser/ash/login/users", "//chromeos/ash/components/browser_context_helper", "//chromeos/ash/components/policy/device_local_account", "//components/account_id", "//components/account_id:test_support", "//components/session_manager/test:test_support", "//components/user_manager", ] } } if (!is_android) { source_set("browser_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "pdf_find_request_manager_browsertest.cc" ] deps = [ ":pdf_extension_test_utils", "//base", "//chrome/browser/pdf:pdf_extension_test_base", "//chrome/browser/ui", "//chrome/browser/ui/tabs:tab_strip", "//chrome/test:test_support", "//chrome/test:test_support_ui", "//chrome/test/user_education:impl", "//content/public/browser", "//content/public/common", "//content/test:test_support", "//pdf:features", "//pdf/loader", "//testing/gtest", ] if (enable_screen_ai_browsertests) { sources += [ "pdf_searchify_browsertest.cc" ] deps += [ "//chrome/browser/screen_ai:screen_ai_install_state", "//chrome/browser/ui/user_education", "//components/feature_engagement/public", "//components/metrics:content", "//components/pdf/browser", "//services/screen_ai/public/cpp:utilities", "//ui/accessibility", ] # Notifies testing builders that this test needs the ScreenAI library, # downloaded from CIPD as defined in //DEPS. data_deps = [ "//third_party/screen-ai:screen_ai" ] } } source_set("interactive_ui_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "pdf_extension_interactive_uitest.cc" ] deps = [ ":pdf_extension_test_utils", "//base", "//chrome/app:command_ids", "//chrome/browser/extensions:test_support", "//chrome/browser/pdf:pdf_extension_test_base", "//chrome/browser/renderer_context_menu:test_support", "//chrome/browser/ui", "//chrome/test:test_support", "//chrome/test:test_support_ui", "//components/pdf/browser", "//content/public/browser", "//content/test:test_support", "//extensions/browser", "//pdf:features", "//testing/gtest", "//ui/events", "//ui/gfx/geometry", ] } }