| # 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("//build/config/ui.gni") |
| import("//extensions/buildflags/buildflags.gni") |
| |
| source_set("web_applications") { |
| sources = [] |
| public_deps = [] |
| |
| if (!is_android) { |
| sources += [ "web_app_dialog_utils.h" ] |
| public_deps += [ |
| "//base", |
| "//chrome/browser/web_applications", |
| "//components/webapps/common", |
| ] |
| } |
| |
| if (is_chromeos) { |
| sources += [ |
| "web_app_relaunch_notification.h", |
| "web_app_run_on_os_login_notification.h", |
| ] |
| } |
| |
| if (toolkit_views) { |
| sources += [ "pwa_install_page_action.h" ] |
| public_deps += [ "//chrome/browser/ui/views/page_action" ] |
| } |
| |
| if (enable_extensions) { |
| sources += [ |
| "app_browser_controller.h", |
| "diagnostics/app_type_initialized_event.h", |
| "diagnostics/web_app_icon_health_checks.h", |
| "navigation_capturing_process.h", |
| "navigation_capturing_redirection_throttle.h", |
| "navigation_handle_user_data_forwarder.h", |
| "share_target_utils.h", |
| "sub_apps_install_dialog_controller.h", |
| "sub_apps_service_impl.h", |
| "tabbed_web_app_navigation_throttle.h", |
| "web_app_browser_controller.h", |
| "web_app_dialogs.h", |
| "web_app_info_image_source.h", |
| "web_app_launch_navigation_handle_user_data.h", |
| "web_app_launch_process.h", |
| "web_app_menu_model.h", |
| "web_app_metrics.h", |
| "web_app_metrics_factory.h", |
| "web_app_tabbed_utils.h", |
| "web_app_ui_manager_impl.h", |
| "web_app_ui_utils.h", |
| "webui_web_app_navigation_throttle.h", |
| ] |
| public_deps += [ |
| "//chrome/browser/themes", |
| "//chrome/browser/ui/browser_window", |
| "//chrome/browser/ui/page_action:icon_type", |
| "//chrome/browser/ui/tabs:tab_strip_model_observer", |
| "//components/keyed_service/content", |
| "//components/keyed_service/core", |
| "//components/site_engagement/content", |
| "//components/url_formatter", |
| "//components/user_education/common", |
| "//components/webapps/browser", |
| "//components/webapps/common", |
| "//content/public/browser", |
| "//skia:skia_core_public_headers", |
| "//ui/actions:actions_headers", |
| "//ui/base", |
| "//ui/color:color_headers", |
| "//ui/color:color_provider_key", |
| "//ui/gfx", |
| "//ui/views", |
| "//url", |
| ] |
| } |
| } |
| |
| # TODO(crbug.com/438226511): web_app_launch_utils.h includes browser.h, and makes |
| # use of Browser::CreateParams inner struct, which can not be easily worked around. |
| # For this reason, it causes a circular dependency against //c/b/ui:ui from a header. |
| # This target confines it, in order to unblock the componentization of the rest of |
| # the directory. |
| source_set("launch_utils") { |
| sources = [] |
| public_deps = [] |
| |
| if (enable_extensions) { |
| sources += [ "web_app_launch_utils.h" ] |
| public_deps += [ |
| "//base", |
| "//chrome/browser/web_applications", |
| "//components/services/app_service/public/cpp:app_types", |
| "//components/webapps/common", |
| "//content/public/browser", |
| "//third_party/blink/public/common", |
| "//ui/gfx/geometry", |
| ] |
| } |
| public_deps += [ "//chrome/browser:browser_public_dependencies" ] |
| } |
| |
| source_set("impl") { |
| sources = [] |
| deps = [] |
| |
| if (!is_android) { |
| sources += [ "web_app_dialog_utils.cc" ] |
| deps += [ |
| ":web_applications", |
| "//base", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/ui/browser_window", |
| "//chrome/browser/ui/tabs:tab_strip", |
| "//chrome/browser/ui/tabs:tabs_public", |
| "//chrome/browser/ui/user_education", |
| "//chrome/browser/web_applications", |
| "//chrome/browser/web_applications/mojom:mojom_web_apps_enum", |
| "//chrome/common:chrome_features", |
| "//components/feature_engagement/public:feature_constants", |
| "//components/webapps/browser", |
| "//content/public/browser", |
| ] |
| } |
| |
| if (is_chromeos) { |
| sources += [ |
| "web_app_relaunch_notification.cc", |
| "web_app_run_on_os_login_notification.cc", |
| ] |
| deps += [ "//chromeos/strings:strings_grit" ] |
| } |
| |
| if (toolkit_views) { |
| sources += [ "pwa_install_page_action.cc" ] |
| } |
| |
| if (enable_extensions) { |
| sources += [ |
| "app_browser_controller.cc", |
| "diagnostics/app_type_initialized_event.cc", |
| "diagnostics/web_app_icon_health_checks.cc", |
| "navigation_capturing_process.cc", |
| "navigation_capturing_redirection_throttle.cc", |
| "share_target_utils.cc", |
| "sub_apps_install_dialog_controller.cc", |
| "sub_apps_service_impl.cc", |
| "tabbed_web_app_navigation_throttle.cc", |
| "web_app_browser_controller.cc", |
| "web_app_info_image_source.cc", |
| "web_app_launch_navigation_handle_user_data.cc", |
| "web_app_launch_process.cc", |
| "web_app_launch_utils.cc", |
| "web_app_menu_model.cc", |
| "web_app_metrics.cc", |
| "web_app_metrics_factory.cc", |
| "web_app_tabbed_utils.cc", |
| "web_app_ui_manager_impl.cc", |
| "web_app_ui_utils.cc", |
| "webui_web_app_navigation_throttle.cc", |
| ] |
| |
| deps += [ |
| ":launch_utils", |
| "//chrome/browser:browser_process", |
| "//chrome/browser/app_mode", |
| "//chrome/browser/apps:icon_standardizer", |
| "//chrome/browser/apps/app_service", |
| "//chrome/browser/apps/app_service:constants", |
| "//chrome/browser/apps/link_capturing", |
| "//chrome/browser/infobars", |
| "//chrome/browser/media/router:media_router_feature", |
| "//chrome/browser/notifications", |
| "//chrome/browser/permissions", |
| "//chrome/browser/policy:policy_util", |
| "//chrome/browser/ui:ui_features", |
| "//chrome/browser/ui/extensions", |
| "//chrome/browser/ui/tabs:tab_menu", |
| "//chrome/browser/web_applications:features", |
| "//chrome/browser/web_applications/app_service", |
| "//chrome/browser/web_share_target", |
| "//components/infobars/content", |
| "//components/keep_alive_registry", |
| "//components/omnibox/browser:vector_icons", |
| "//components/security_state/content", |
| "//ui/native_window_tracker", |
| ] |
| if (is_chromeos) { |
| deps += [ |
| "//chrome/browser/ash/app_list", |
| "//chrome/browser/ash/apps", |
| "//chrome/browser/ash/browser_delegate", |
| "//chrome/browser/ash/file_manager", |
| "//chrome/browser/ash/system_web_apps", |
| "//chrome/browser/chromeos/app_mode", |
| "//chrome/browser/ui/ash/shelf", |
| "//chrome/browser/ui/ash/system_web_apps", |
| "//chromeos/ash/components/nonclosable_app_ui", |
| "//chromeos/ash/experiences/system_web_apps/types", |
| "//chromeos/components/kiosk", |
| "//chromeos/ui/frame", |
| ] |
| } |
| } |
| public_deps = [ "//chrome/browser:browser_public_dependencies" ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| |
| sources = [ |
| "app_browser_controller_unittest.cc", |
| "share_target_utils_unittest.cc", |
| "web_app_launch_utils_unittest.cc", |
| ] |
| |
| deps = [ |
| ":launch_utils", |
| ":web_applications", |
| "//chrome/browser", |
| "//chrome/browser/ui", |
| "//chrome/browser/web_applications", |
| "//chrome/browser/web_applications:web_app_test", |
| "//chrome/browser/web_applications:web_applications_test_support", |
| "//chrome/browser/web_applications:web_applications_unit_tests", |
| "//chrome/test:test_support", |
| "//components/services/app_service", |
| "//components/webapps/common", |
| "//content/test:test_support", |
| "//storage/browser:test_support", |
| ] |
| } |
| |
| source_set("browser_tests") { |
| testonly = true |
| |
| sources = [ |
| "app_browser_controller_browsertest.cc", |
| "app_browser_document_picture_in_picture_browsertest.cc", |
| "pwa_mixed_content_browsertest.cc", |
| "status_bar_browsertest.cc", |
| "sub_apps_permissions_policy_browsertest.cc", |
| "sub_apps_service_impl_browsertest.cc", |
| "web_app_browsertest.cc", |
| "web_app_dark_mode_browsertest.cc", |
| "web_app_engagement_browsertest.cc", |
| "web_app_file_handling_browsertest.cc", |
| "web_app_launch_handler_browsertest.cc", |
| "web_app_launch_prevent_close_browsertest.cc", |
| "web_app_launch_utils_browsertest.cc", |
| "web_app_link_capturing_browsertest.cc", |
| "web_app_menu_model_browsertest.cc", |
| "web_app_navigate_browsertest.cc", |
| "web_app_profile_deletion_browsertest.cc", |
| "web_app_title_browsertest.cc", |
| "web_app_ui_manager_impl_browsertest.cc", |
| "web_app_uninstall_browsertest.cc", |
| ] |
| |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| |
| deps = [ |
| ":launch_utils", |
| ":web_applications", |
| "//base", |
| "//chrome/app:command_ids", |
| "//chrome/browser:shell_integration", |
| "//chrome/browser/apps/app_service", |
| "//chrome/browser/apps/app_service:app_registry_cache_waiter", |
| "//chrome/browser/apps/app_service:test_support", |
| "//chrome/browser/apps/link_capturing", |
| "//chrome/browser/apps/link_capturing:test_support", |
| "//chrome/browser/banners", |
| "//chrome/browser/browsing_data:constants", |
| "//chrome/browser/devtools", |
| "//chrome/browser/metrics/structured:test_support", |
| "//chrome/browser/permissions", |
| "//chrome/browser/picture_in_picture", |
| "//chrome/browser/picture_in_picture:test_support_ui", |
| "//chrome/browser/policy:policy_util", |
| "//chrome/browser/preloading:test_support", |
| "//chrome/browser/shortcuts", |
| "//chrome/browser/themes", |
| "//chrome/browser/ui:ui_features", |
| "//chrome/browser/ui/page_info", |
| "//chrome/browser/ui/startup", |
| "//chrome/browser/ui/window_sizer", |
| "//chrome/browser/web_applications:prevent_close_test_support", |
| "//chrome/browser/web_applications:web_applications_test_support", |
| "//chrome/test:test_support", |
| "//chrome/test:test_support_ui", |
| "//components/embedder_support", |
| "//components/metrics/structured:structured_events", |
| "//components/metrics/structured:test_support", |
| "//components/page_load_metrics/browser:test_support", |
| "//components/services/app_service", |
| "//components/site_engagement/content", |
| "//components/webapps/browser", |
| "//components/webapps/common", |
| "//components/webapps/isolated_web_apps/test_support", |
| "//ui/native_theme:test_support", |
| ] |
| |
| if (is_chromeos) { |
| sources += [ |
| "app_browser_controller_browsertest_chromeos.cc", |
| "create_shortcut_browsertest.cc", |
| "sub_apps_admin_policy_browsertest.cc", |
| "sub_apps_install_dialog_controller_browsertest.cc", |
| "web_app_guest_session_browsertest_chromeos.cc", |
| ] |
| |
| deps += [ |
| "//chrome/browser/ash/app_list", |
| "//chrome/browser/ash/browser_delegate", |
| "//chrome/browser/ash/file_manager", |
| "//chrome/browser/ash/file_manager:test_support", |
| "//chrome/browser/ash/system_web_apps/test_support", |
| "//chrome/browser/ui/ash/shelf", |
| "//chrome/browser/ui/ash/system_web_apps", |
| "//chrome/browser/ui/extensions", |
| "//chromeos/ash/components/browser_context_helper", |
| "//chromeos/constants", |
| "//components/session_manager/core", |
| "//components/user_manager", |
| ] |
| } |
| } |
| |
| source_set("app_service_browser_tests") { |
| testonly = true |
| |
| sources = [ |
| "launch_web_app_browsertest.cc", |
| "web_app_badging_browsertest.cc", |
| "web_app_protocol_handling_browsertest.cc", |
| "web_app_tab_restore_browsertest.cc", |
| "web_app_window_controls_overlay_browsertest.cc", |
| ] |
| |
| if (is_chromeos) { |
| sources += [ |
| "share_to_target_browsertest.cc", |
| "web_app_relaunch_notification_browsertest.cc", |
| "web_share_target_browsertest.cc", |
| ] |
| } |
| |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| |
| deps = [ |
| ":web_applications", |
| "//chrome/app:command_ids", |
| "//chrome/browser/apps/app_service", |
| "//chrome/browser/apps/app_service:app_registry_cache_waiter", |
| "//chrome/browser/apps/link_capturing", |
| "//chrome/browser/apps/link_capturing:test_support", |
| "//chrome/browser/badging:test_support", |
| "//chrome/browser/browsing_data:constants", |
| "//chrome/browser/ui/web_applications/diagnostics:app_service_browser_tests", |
| "//chrome/browser/web_applications", |
| "//chrome/browser/web_applications:web_applications_test_support", |
| "//chrome/test:test_support", |
| "//chrome/test:test_support_ui", |
| "//components/app_constants", |
| "//components/embedder_support", |
| "//components/page_load_metrics/browser:test_support", |
| "//components/services/app_service", |
| "//components/webapps/browser:test_support", |
| "//components/webapps/common", |
| ] |
| |
| if (is_chromeos) { |
| deps += [ |
| "//chrome/browser/ash/fileapi", |
| "//chrome/browser/sharesheet", |
| ] |
| } |
| } |