| # Copyright 2020 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//extensions/buildflags/buildflags.gni") |
| |
| assert(!is_android) |
| |
| source_set("app_service") { |
| sources = [ |
| "app_icon_source.cc", |
| "app_icon_source.h", |
| "app_service_proxy.h", |
| "app_service_proxy_base.cc", |
| "app_service_proxy_base.h", |
| "app_service_proxy_factory.cc", |
| "app_service_proxy_factory.h", |
| "app_service_proxy_forward.h", |
| "browser_app_launcher.cc", |
| "browser_app_launcher.h", |
| "intent_util.cc", |
| "intent_util.h", |
| "launch_result_type.cc", |
| "launch_result_type.h", |
| "launch_utils.cc", |
| "launch_utils.h", |
| "metrics/app_service_metrics.cc", |
| "metrics/app_service_metrics.h", |
| "package_id_util.cc", |
| "package_id_util.h", |
| "paused_apps.cc", |
| "paused_apps.h", |
| "policy_util.cc", |
| "policy_util.h", |
| "publisher_host.cc", |
| "publisher_host.h", |
| "publishers/app_publisher.cc", |
| "publishers/app_publisher.h", |
| "publishers/extension_apps.cc", |
| "publishers/extension_apps.h", |
| "publishers/extension_apps_base.cc", |
| "publishers/extension_apps_base.h", |
| "publishers/extension_apps_enable_flow.cc", |
| "publishers/extension_apps_enable_flow.h", |
| "publishers/extension_apps_util.cc", |
| "publishers/extension_apps_util.h", |
| "web_contents_app_id_utils.cc", |
| "web_contents_app_id_utils.h", |
| ] |
| |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| |
| public_deps = [ |
| ":constants", |
| "//chrome/browser:browser_public_dependencies", |
| "//chrome/browser/ui/tabs:tab_strip_model_observer", |
| ] |
| |
| deps = [ |
| "//base", |
| "//chrome/app/theme:chrome_unscaled_resources", |
| "//chrome/browser/apps/app_service/app_icon", |
| "//chrome/browser/apps/app_service/app_icon:util", |
| "//chrome/browser/content_settings", |
| "//chrome/browser/content_settings:content_settings_factory", |
| "//chrome/browser/prefs", |
| "//chrome/browser/profiles", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/resources:app_icon_resources", |
| "//chrome/browser/sync", |
| "//chrome/browser/ui:browser_navigator_params_headers", |
| "//chrome/browser/ui/browser_window", |
| "//chrome/browser/ui/extensions", |
| "//chrome/browser/ui/tabs:tab_enums", |
| "//chrome/browser/web_applications", |
| "//chrome/browser/web_applications:features", |
| "//components/app_constants", |
| "//components/crx_file", |
| "//components/keyed_service/content", |
| "//components/services/app_service", |
| "//components/web_package", |
| "//components/webapps/common", |
| ] |
| |
| # TODO(crbug.com/40251079): Remove circular dependencies. Possibly flip |
| # dependency direction so AppService doesn't depend on extensions |
| # (crbug.com/1402146). |
| allow_circular_includes_from = [] |
| |
| if (enable_extensions) { |
| deps += [ |
| "//chrome/browser/extensions", |
| "//chrome/browser/ui/extensions:extension_enable_flow_delegate", |
| "//chrome/browser/web_applications/extensions", |
| "//extensions/browser", |
| "//extensions/common", |
| ] |
| allow_circular_includes_from += [ |
| "//chrome/browser/extensions", |
| "//chrome/browser/web_applications/extensions", |
| ] |
| } |
| |
| if (is_chromeos) { |
| sources += [ |
| "app_notifications.cc", |
| "app_notifications.h", |
| "app_service_proxy_ash.cc", |
| "app_service_proxy_ash.h", |
| "app_shortcut_item.cc", |
| "app_shortcut_item.h", |
| "chrome_app_deprecation/chrome_app_deprecation.cc", |
| "chrome_app_deprecation/chrome_app_deprecation.h", |
| "file_utils.cc", |
| "file_utils.h", |
| "instance_registry_updater.cc", |
| "instance_registry_updater.h", |
| "media_requests.cc", |
| "media_requests.h", |
| "menu_item_constants.h", |
| "menu_util.cc", |
| "menu_util.h", |
| "metrics/app_discovery_metrics.cc", |
| "metrics/app_discovery_metrics.h", |
| "metrics/app_platform_input_metrics.cc", |
| "metrics/app_platform_input_metrics.h", |
| "metrics/app_platform_metrics.cc", |
| "metrics/app_platform_metrics.h", |
| "metrics/app_platform_metrics_service.cc", |
| "metrics/app_platform_metrics_service.h", |
| "metrics/app_platform_metrics_utils.cc", |
| "metrics/app_platform_metrics_utils.h", |
| "metrics/browser_to_tab_list.cc", |
| "metrics/browser_to_tab_list.h", |
| "metrics/website_metrics.cc", |
| "metrics/website_metrics.h", |
| "promise_apps/promise_app.cc", |
| "promise_apps/promise_app.h", |
| "promise_apps/promise_app_almanac_connector.cc", |
| "promise_apps/promise_app_almanac_connector.h", |
| "promise_apps/promise_app_icon_cache.cc", |
| "promise_apps/promise_app_icon_cache.h", |
| "promise_apps/promise_app_metrics.cc", |
| "promise_apps/promise_app_metrics.h", |
| "promise_apps/promise_app_registry_cache.cc", |
| "promise_apps/promise_app_registry_cache.h", |
| "promise_apps/promise_app_service.cc", |
| "promise_apps/promise_app_service.h", |
| "promise_apps/promise_app_update.cc", |
| "promise_apps/promise_app_update.h", |
| "promise_apps/promise_app_utils.cc", |
| "promise_apps/promise_app_utils.h", |
| "promise_apps/promise_app_web_apps_utils.cc", |
| "promise_apps/promise_app_web_apps_utils.h", |
| "promise_apps/promise_app_wrapper.cc", |
| "promise_apps/promise_app_wrapper.h", |
| "publishers/arc_apps.cc", |
| "publishers/arc_apps.h", |
| "publishers/arc_apps_factory.cc", |
| "publishers/arc_apps_factory.h", |
| "publishers/borealis_apps.cc", |
| "publishers/borealis_apps.h", |
| "publishers/bruschetta_apps.cc", |
| "publishers/bruschetta_apps.h", |
| "publishers/crostini_apps.cc", |
| "publishers/crostini_apps.h", |
| "publishers/extension_apps_chromeos.cc", |
| "publishers/extension_apps_chromeos.h", |
| "publishers/guest_os_apps.cc", |
| "publishers/guest_os_apps.h", |
| "publishers/plugin_vm_apps.cc", |
| "publishers/plugin_vm_apps.h", |
| "publishers/remote_apps.cc", |
| "publishers/remote_apps.h", |
| "uninstall_dialog.cc", |
| "uninstall_dialog.h", |
| "webapk/webapk_install_queue.cc", |
| "webapk/webapk_install_queue.h", |
| "webapk/webapk_install_task.cc", |
| "webapk/webapk_install_task.h", |
| "webapk/webapk_manager.cc", |
| "webapk/webapk_manager.h", |
| "webapk/webapk_metrics.cc", |
| "webapk/webapk_metrics.h", |
| "webapk/webapk_prefs.cc", |
| "webapk/webapk_prefs.h", |
| "webapk/webapk_utils.cc", |
| "webapk/webapk_utils.h", |
| ] |
| |
| deps += [ |
| "//ash", |
| "//ash/public/cpp", |
| "//ash/webui/mall:app_id", |
| "//ash/webui/projector_app/public/cpp", |
| "//ash/webui/system_apps/public:system_web_app_type", |
| "//chrome/browser:browser_process", |
| "//chrome/browser/apps/almanac_api_client", |
| "//chrome/browser/apps/app_service/app_install", |
| "//chrome/browser/apps/app_service/promise_apps/proto", |
| "//chrome/browser/apps/browser_instance", |
| "//chrome/browser/ash/android_sms", |
| "//chrome/browser/ash/app_list", |
| "//chrome/browser/ash/app_list/app_service", |
| "//chrome/browser/ash/app_list/arc", |
| "//chrome/browser/ash/app_list/search", |
| "//chrome/browser/ash/app_mode/web_app", |
| "//chrome/browser/ash/app_restore", |
| "//chrome/browser/ash/apps", |
| "//chrome/browser/ash/arc", |
| "//chrome/browser/ash/arc:arc_util", |
| "//chrome/browser/ash/arc/app_shortcuts", |
| "//chrome/browser/ash/arc/intent_helper", |
| "//chrome/browser/ash/arc/nearby_share", |
| "//chrome/browser/ash/arc/privacy_items", |
| "//chrome/browser/ash/arc/session", |
| "//chrome/browser/ash/arc/tracing", |
| "//chrome/browser/ash/borealis", |
| "//chrome/browser/ash/bruschetta", |
| "//chrome/browser/ash/calendar", |
| "//chrome/browser/ash/child_accounts", |
| "//chrome/browser/ash/child_accounts/on_device_controls", |
| "//chrome/browser/ash/child_accounts/time_limits", |
| "//chrome/browser/ash/crostini", |
| "//chrome/browser/ash/extensions", |
| "//chrome/browser/ash/extensions/autotest_private", |
| "//chrome/browser/ash/extensions/file_manager", |
| "//chrome/browser/ash/file_manager", |
| "//chrome/browser/ash/file_manager/virtual_tasks", |
| "//chrome/browser/ash/file_system_provider", |
| "//chrome/browser/ash/fusebox", |
| "//chrome/browser/ash/guest_os", |
| "//chrome/browser/ash/guest_os/public", |
| "//chrome/browser/ash/login/demo_mode", |
| "//chrome/browser/ash/plugin_vm", |
| "//chrome/browser/ash/policy/core", |
| "//chrome/browser/ash/policy/dlp", |
| "//chrome/browser/ash/policy/handlers", |
| "//chrome/browser/ash/printing", |
| "//chrome/browser/ash/profiles", |
| "//chrome/browser/ash/remote_apps", |
| "//chrome/browser/ash/scalable_iph", |
| "//chrome/browser/ash/scanning", |
| "//chrome/browser/ash/system_logs", |
| "//chrome/browser/ash/system_web_apps", |
| "//chrome/browser/ash/system_web_apps/apps", |
| "//chrome/browser/ash/system_web_apps/apps/camera_app", |
| "//chrome/browser/ash/system_web_apps/apps/media_app", |
| "//chrome/browser/chromeos/arc", |
| "//chrome/browser/chromeos/extensions/login_screen/login/cleanup", |
| "//chrome/browser/image_fetcher", |
| "//chrome/browser/policy:system_features_disable_list", |
| "//chrome/browser/resources", |
| "//chrome/browser/ui/ash/multi_user", |
| "//chrome/browser/ui/ash/shelf", |
| "//chrome/browser/ui/ash/shelf/app_service", |
| "//chrome/browser/ui/ash/system_web_apps", |
| "//chrome/browser/ui/webui/ash/add_supervision", |
| "//chrome/browser/ui/webui/ash/settings/app_management", |
| "//chromeos/ash/components/browser_context_helper", |
| "//chromeos/ash/components/demo_mode", |
| "//chromeos/ash/components/file_manager:constants", |
| "//chromeos/ash/components/login/login_state", |
| "//chromeos/ash/components/policy/system_features_disable_list", |
| "//chromeos/ash/experiences/arc", |
| "//chromeos/ash/experiences/arc:arc_app_constants", |
| "//chromeos/ash/experiences/arc:arc_app_constants", |
| "//chromeos/ash/experiences/arc:arc_base", |
| "//chromeos/ash/experiences/arc:arc_base_utils", |
| "//chromeos/ash/experiences/arc:arc_metrics_constants", |
| "//chromeos/ash/experiences/arc/intent_helper", |
| "//chromeos/ash/experiences/arc/intent_helper:arc_intent_helper_constants", |
| "//chromeos/ash/experiences/arc/mojom", |
| "//chromeos/ash/experiences/arc/session", |
| "//chromeos/ash/experiences/arc/session:connection_holder", |
| "//chromeos/ash/experiences/system_web_apps/types", |
| "//chromeos/components/kiosk", |
| "//chromeos/components/mgs", |
| "//chromeos/crosapi/mojom", |
| "//components/app_restore", |
| "//components/exo", |
| "//components/image_fetcher/core", |
| "//components/metrics/structured:structured_events", |
| "//components/resources:components_resources", |
| "//components/services/app_service/public/cpp:instance_update", |
| "//components/services/app_service/public/cpp:macros", |
| "//components/ukm", |
| "//components/webapk:proto", |
| "//components/webapps/browser", |
| "//services/metrics/public/cpp:ukm_builders", |
| "//third_party/smhasher:murmurhash2", |
| "//ui/chromeos/styles:cros_tokens_color_mappings", |
| "//ui/native_window_tracker", |
| "//ui/wm/public", |
| ] |
| |
| public_deps += [ "chrome_app_deprecation/proto" ] |
| |
| # Needed only to allow circular includes. |
| deps += [ "//chrome/browser/chromeos/app_mode" ] |
| |
| # TODO(crbug.com/40251079): Remove circular dependencies. |
| allow_circular_includes_from += [ |
| "//chrome/browser/chromeos/app_mode", |
| "//chrome/browser/chromeos/arc", |
| "//chrome/browser/ash/android_sms", |
| "//chrome/browser/ash/app_list", |
| "//chrome/browser/ash/app_list/arc", |
| "//chrome/browser/ash/app_list/search", |
| "//chrome/browser/ash/app_restore", |
| "//chrome/browser/ash/borealis", |
| "//chrome/browser/ash/app_list/app_service", |
| "//chrome/browser/ash/app_mode/web_app", |
| "//chrome/browser/ash/apps", |
| "//chrome/browser/ash/arc", |
| "//chrome/browser/ash/arc/app_shortcuts", |
| "//chrome/browser/ash/arc/intent_helper", |
| "//chrome/browser/ash/arc/nearby_share", |
| "//chrome/browser/ash/arc/privacy_items", |
| "//chrome/browser/ash/arc/session", |
| "//chrome/browser/ash/arc/tracing", |
| "//chrome/browser/ash/calendar", |
| "//chrome/browser/ash/child_accounts", |
| "//chrome/browser/ash/child_accounts/on_device_controls", |
| "//chrome/browser/ash/child_accounts/time_limits", |
| "//chrome/browser/ash/file_manager", |
| "//chrome/browser/ash/file_system_provider", |
| "//chrome/browser/ash/guest_os", |
| "//chrome/browser/ash/extensions", |
| "//chrome/browser/ash/extensions/autotest_private", |
| "//chrome/browser/ash/extensions/file_manager", |
| "//chrome/browser/ash/login/demo_mode", |
| "//chrome/browser/ash/policy/dlp", |
| "//chrome/browser/ash/policy/handlers", |
| "//chrome/browser/ash/printing", |
| "//chrome/browser/ash/remote_apps", |
| "//chrome/browser/ash/scanning", |
| "//chrome/browser/ash/scalable_iph", |
| "//chrome/browser/ash/system_logs", |
| "//chrome/browser/ash/system_web_apps/apps", |
| "//chrome/browser/ash/system_web_apps/apps/camera_app", |
| "//chrome/browser/ash/system_web_apps/apps/media_app", |
| "//chrome/browser/chromeos/extensions/login_screen/login/cleanup", |
| "//chrome/browser/ui/ash/shelf", |
| "//chrome/browser/ui/ash/shelf/app_service", |
| "//chrome/browser/ui/ash/system_web_apps", |
| "//chrome/browser/ui/webui/ash/add_supervision", |
| ] |
| } |
| |
| if (!is_chromeos) { |
| sources += [ |
| "app_service_proxy_desktop.cc", |
| "app_service_proxy_desktop.h", |
| ] |
| } |
| } |
| |
| source_set("constants") { |
| sources = [ |
| "app_launch_params.cc", |
| "app_launch_params.h", |
| ] |
| |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| |
| deps = [ |
| "//base", |
| "//components/services/app_service", |
| "//ui/base:types", |
| "//ui/display/types", |
| "//ui/gfx/geometry", |
| "//url", |
| ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| |
| sources = [ |
| "app_service_proxy_unittest.cc", |
| "intent_util_unittest.cc", |
| "launch_utils_unittest.cc", |
| "publishers/app_publisher_unittest.cc", |
| "publishers/publisher_unittest.cc", |
| ] |
| |
| deps = [ |
| ":app_service", |
| ":constants", |
| ":test_support", |
| "//base", |
| "//base/test:test_support", |
| "//cc:test_support", |
| "//chrome/app/theme:chrome_unscaled_resources_grit", |
| "//chrome/browser/apps:icon_standardizer", |
| "//chrome/browser/apps/app_service/app_icon", |
| "//chrome/browser/apps/app_service/app_icon:unit_tests", |
| "//chrome/browser/apps/app_service/app_icon:util", |
| "//chrome/browser/apps/link_capturing:test_support", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/resources:component_extension_resources", |
| "//chrome/browser/ui", |
| "//chrome/browser/web_applications", |
| "//chrome/browser/web_applications:web_applications_test_support", |
| "//chrome/common:chrome_features", |
| "//chrome/common:non_code_constants", |
| "//chrome/test:test_support", |
| "//chrome/test:test_support_unit", |
| "//components/account_id", |
| "//components/app_constants", |
| "//components/services/app_service", |
| "//components/services/app_service/public/cpp:test_support", |
| "//components/user_manager", |
| "//content/test:test_support", |
| "//mojo/public/cpp/bindings:bindings_base", |
| "//net", |
| "//services/data_decoder/public/cpp:test_support", |
| "//skia", |
| "//storage/browser", |
| "//storage/common", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//ui/base", |
| "//ui/display/types", |
| "//ui/gfx", |
| "//ui/gfx:test_support", |
| "//ui/gfx/codec", |
| "//ui/gfx/geometry", |
| "//url", |
| ] |
| |
| if (enable_extensions) { |
| deps += [ |
| "//chrome/browser/extensions", |
| "//extensions:test_support", |
| "//extensions/common", |
| ] |
| } |
| |
| if (is_chromeos) { |
| sources += [ |
| "chrome_app_deprecation/chrome_app_deprecation_unittest.cc", |
| "file_utils_unittest.cc", |
| "metrics/app_platform_metrics_service_unittest.cc", |
| "promise_apps/promise_app_almanac_connector_unittest.cc", |
| "promise_apps/promise_app_icon_cache_unittest.cc", |
| "promise_apps/promise_app_registry_cache_unittest.cc", |
| "promise_apps/promise_app_service_unittest.cc", |
| "promise_apps/promise_app_unittest.cc", |
| "promise_apps/promise_app_update_unittest.cc", |
| "promise_apps/promise_app_wrapper_unittest.cc", |
| "publishers/arc_apps_unittest.cc", |
| "publishers/bruschetta_apps_unittest.cc", |
| "publishers/crostini_apps_unittest.cc", |
| "publishers/guest_os_apps_unittest.cc", |
| "publishers/plugin_vm_apps_unittest.cc", |
| "webapk/webapk_install_task_unittest.cc", |
| "webapk/webapk_manager_unittest.cc", |
| ] |
| |
| deps += [ |
| "//ash/constants", |
| "//chrome/browser/apps/app_service/app_install:unit_tests", |
| "//chrome/browser/apps/app_service/promise_apps/proto", |
| "//chrome/browser/ash/app_list/arc", |
| "//chrome/browser/ash/app_list/arc:test_support", |
| "//chrome/browser/ash/apps", |
| "//chrome/browser/ash/arc", |
| "//chrome/browser/ash/arc:arc_util", |
| "//chrome/browser/ash/arc/fileapi", |
| "//chrome/browser/ash/borealis", |
| "//chrome/browser/ash/borealis/testing:test_support", |
| "//chrome/browser/ash/bruschetta", |
| "//chrome/browser/ash/bruschetta:test_support", |
| "//chrome/browser/ash/crosapi:test_support", |
| "//chrome/browser/ash/crostini:test_support", |
| "//chrome/browser/ash/file_manager", |
| "//chrome/browser/ash/fusebox", |
| "//chrome/browser/ash/guest_os", |
| "//chrome/browser/ash/guest_os:test_support", |
| "//chrome/browser/ash/guest_os/public", |
| "//chrome/browser/ash/login/users:test_support", |
| "//chrome/browser/ash/plugin_vm", |
| "//chrome/browser/ash/plugin_vm:test_support", |
| "//chrome/browser/policy:system_features_disable_list", |
| "//chrome/browser/resources:app_icon_resources_grit", |
| "//chrome/browser/web_applications/app_service:unit_tests", |
| "//chrome/test:test_support", |
| "//chromeos/ash/components/browser_context_helper", |
| "//chromeos/ash/components/dbus/chunneld", |
| "//chromeos/ash/components/dbus/cicerone", |
| "//chromeos/ash/components/dbus/seneschal", |
| "//chromeos/ash/components/login/login_state", |
| "//chromeos/ash/components/system", |
| "//chromeos/ash/experiences/arc:arc_app_constants", |
| "//chromeos/ash/experiences/arc:arc_test_support", |
| "//chromeos/ash/experiences/arc/intent_helper", |
| "//chromeos/components/mgs:test_support", |
| "//chromeos/crosapi/mojom", |
| "//chromeos/dbus/power:power_manager_proto", |
| "//components/image_fetcher/core", |
| "//components/image_fetcher/core:test_support", |
| "//components/metrics/structured:common", |
| "//components/metrics/structured:structured_events", |
| "//components/metrics/structured:structured_metrics_features", |
| "//components/metrics/structured:test_support", |
| "//components/services/app_service/public/cpp/shortcut", |
| "//components/webapk:proto", |
| ] |
| } |
| |
| # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and |
| # enable the diagnostic by removing this line. |
| configs += [ "//build/config/compiler:no_exit_time_destructors" ] |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| |
| sources = [ |
| "app_service_test.cc", |
| "app_service_test.h", |
| ] |
| |
| public_deps = [ ":app_service" ] |
| |
| deps = [ |
| "//chrome/browser/sync", |
| "//chrome/test:test_support", |
| "//components/services/app_service", |
| "//skia", |
| ] |
| |
| if (is_chromeos) { |
| sources += [ |
| "metrics/app_platform_metrics_service_test_base.cc", |
| "metrics/app_platform_metrics_service_test_base.h", |
| "webapk/webapk_test_server.cc", |
| "webapk/webapk_test_server.h", |
| ] |
| |
| deps += [ |
| "//chrome/browser/ash/login/users:test_support", |
| "//components/webapk:proto", |
| ] |
| } |
| } |
| |
| source_set("app_registry_cache_waiter") { |
| testonly = true |
| |
| sources = [ |
| "app_registry_cache_waiter.cc", |
| "app_registry_cache_waiter.h", |
| ] |
| |
| public_deps = [ "//components/services/app_service" ] |
| |
| deps = [ |
| ":app_service", |
| "//url", |
| ] |
| } |