# Copyright 2025 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//ios/web/public/js_messaging/compile_ts.gni") import("//ios/web/public/js_messaging/optimize_ts.gni") source_set("action_target") { sources = [ "action_target.h", "action_target.mm", ] deps = [ "//base", "//components/optimization_guide/proto:optimization_guide_proto", ] } source_set("actor_tool_factory") { sources = [ "actor_tool_factory.h", "actor_tool_factory.mm", ] public_deps = [ "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver" ] deps = [ ":actor_tool_interface", ":attempt_form_filling_tool", ":attempt_login_tool", ":click_tool", ":history_tool", ":navigate_tool", ":scroll_to_tool", ":scroll_tool", ":select_tool", ":tab_management_tool", ":type_tool", ":wait_tool", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/features", "//ios/chrome/browser/shared/model/web_state_list", "//ios/web/public", ] } source_set("actor_tool_interface") { sources = [ "actor_form_suggestion.h", "actor_form_suggestion.mm", "actor_task_form_filling_handler.h", "actor_task_form_filling_handler.mm", "actor_tool.h", "actor_tool.mm", "actor_tool_java_script_feature_util.h", "actor_tool_java_script_feature_util.mm", "actor_tool_request.h", "actor_tool_request.mm", "tool_delegate.h", ] deps = [ ":action_target", "//base", "//components/actor/core:journal", "//components/autofill/core/browser", "//components/autofill/core/browser/actor", "//components/autofill/ios/browser", "//components/optimization_guide/proto:optimization_guide_proto", "//components/password_manager/core/browser/actor_login:actor_login_service_impl", "//components/password_manager/core/browser/actor_login:common", "//ios/chrome/browser/intelligence/actor/public:actor_task_ui_protocols", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:actor_browser_utils", "//ios/chrome/browser/intelligence/actor/tools/utils:actor_tool_utils", "//ios/chrome/browser/shared/model/web_state_list", "//ios/chrome/browser/shared/model/web_state_list:utils", "//ios/chrome/browser/url_loading/model", "//ios/web/public", ] } source_set("web_actor_tool_interface") { sources = [ "web_actor_tool.h", "web_actor_tool.mm", ] deps = [ ":action_target", ":actor_tool_interface", ":java_script_features", "//base", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/web/public", ] } source_set("actor_tool_constants") { sources = [ "actor_tool_constants.h" ] } source_set("navigate_tool") { sources = [ "navigate_tool.h", "navigate_tool.mm", ] deps = [ ":actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/shared/model/browser", "//ios/chrome/browser/shared/model/web_state_list", "//ios/chrome/browser/shared/model/web_state_list:utils", "//ios/chrome/browser/url_loading/model", "//ios/web/public", "//url", ] } source_set("tab_management_tool") { sources = [ "tab_management_tool.h", "tab_management_tool.mm", ] deps = [ ":actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:actor_browser_utils", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/shared/model/profile", "//ios/chrome/browser/shared/model/web_state_list", "//ios/web/public", ] } source_set("wait_tool") { sources = [ "wait_tool.h", "wait_tool.mm", ] deps = [ ":actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/web/public", ] } source_set("attempt_login_tool") { sources = [ "attempt_login_tool.h", "attempt_login_tool.mm", ] deps = [ ":actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//components/password_manager/core/browser/actor_login:actor_login_service_impl", "//components/password_manager/core/browser/actor_login:common", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/optimization_guide/model", "//ios/chrome/browser/passwords/model/actor_login", "//ios/chrome/browser/shared/model/application_context", "//ios/web/public", ] } source_set("attempt_form_filling_tool") { sources = [ "attempt_form_filling_tool.h", "attempt_form_filling_tool.mm", ] public_deps = [ ":web_actor_tool_interface", "//components/autofill/core/browser/actor", "//components/autofill/core/browser/integrators/actor:actor_form_filling_types", ] deps = [ ":action_target", ":actor_tool_interface", ":java_script_features", "//base", "//components/autofill/core/browser", "//components/autofill/core/browser/actor", "//components/autofill/core/browser/integrators/actor:actor_form_filling_types", "//components/autofill/core/common", "//components/autofill/ios/browser", "//components/autofill/ios/browser:util", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/web/public", "//ios/web/public/js_messaging", ] } source_set("history_tool") { sources = [ "history_tool.h", "history_tool.mm", ] deps = [ ":actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/web/public", ] } compile_ts("actor_tool_utils_ts") { sources = [ "resources/actor_tool_utils.ts" ] } optimize_ts("action_target_ts") { sources = [ "resources/action_target.ts" ] output_name = "action_target" deps = [ ":actor_tool_utils_ts", "//components/autofill/ios/form_util:child_frame_registration_ts", "//ios/web/public/js_messaging:gcrweb", ] } optimize_ts("click_tool_ts") { sources = [ "resources/click_tool.ts" ] output_name = "click_tool" deps = [ ":actor_tool_utils_ts", "//ios/chrome/browser/intelligence/proto_wrappers:dom_node_ids_ts", "//ios/web/public/js_messaging:gcrweb", ] } optimize_ts("page_stability_ts") { sources = [ "resources/page_stability.ts" ] output_name = "page_stability" deps = [ "//ios/web/public/js_messaging:gcrweb", "//ios/web/public/js_messaging:util_scripts", ] } optimize_ts("select_tool_ts") { sources = [ "resources/select_tool.ts" ] output_name = "select_tool" deps = [ ":actor_tool_utils_ts", "//components/autofill/ios/form_util:fill_js_dependencies", "//ios/chrome/browser/intelligence/proto_wrappers:dom_node_ids_ts", "//ios/web/public/js_messaging:gcrweb", ] } optimize_ts("attempt_form_filling_tool_ts") { sources = [ "resources/attempt_form_filling_tool.ts" ] output_name = "attempt_form_filling_tool" deps = [ ":actor_tool_utils_ts", "//components/autofill/ios/form_util:fill_js_dependencies", "//ios/chrome/browser/intelligence/proto_wrappers:dom_node_ids_ts", "//ios/web/public/js_messaging:gcrweb", ] } optimize_ts("type_tool_ts") { sources = [ "resources/type_tool.ts" ] output_name = "type_tool" deps = [ ":actor_tool_utils_ts", "//components/autofill/ios/form_util:fill_js_dependencies", "//ios/chrome/browser/intelligence/proto_wrappers:dom_node_ids_ts", "//ios/web/public/js_messaging:gcrweb", ] } optimize_ts("scroll_tool_ts") { sources = [ "resources/scroll_tool.ts" ] output_name = "scroll_tool" deps = [ ":actor_tool_utils_ts", "//ios/chrome/browser/intelligence/proto_wrappers:dom_node_ids_ts", "//ios/web/public/js_messaging:gcrweb", ] } source_set("click_tool") { sources = [ "click_tool.h", "click_tool.mm", ] deps = [ ":action_target", ":actor_tool_interface", ":java_script_features", ":web_actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/shared/model/web_state_list", "//ios/chrome/browser/shared/model/web_state_list:utils", "//ios/web/public", "//ios/web/public/js_messaging", ] } source_set("select_tool") { sources = [ "select_tool.h", "select_tool.mm", ] deps = [ ":action_target", ":actor_tool_interface", ":java_script_features", ":web_actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/shared/model/profile", "//ios/web/public", "//ios/web/public/js_messaging", ] } source_set("type_tool") { sources = [ "type_tool.h", "type_tool.mm", ] deps = [ ":action_target", ":actor_tool_interface", ":java_script_features", ":web_actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/shared/model/profile", "//ios/web/public", "//ios/web/public/js_messaging", ] } source_set("scroll_tool") { sources = [ "scroll_tool.h", "scroll_tool.mm", ] deps = [ ":action_target", ":actor_tool_constants", ":actor_tool_interface", ":java_script_features", ":web_actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/shared/model/profile", "//ios/web/public", "//ios/web/public/js_messaging", ] } source_set("scroll_to_tool") { sources = [ "scroll_to_tool.h", "scroll_to_tool.mm", ] deps = [ ":action_target", ":actor_tool_interface", ":java_script_features", ":web_actor_tool_interface", "//base", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/shared/model/profile", "//ios/web/public", "//ios/web/public/js_messaging", ] } source_set("java_script_features") { sources = [ "action_target_java_script_feature.h", "action_target_java_script_feature.mm", "attempt_form_filling_tool_java_script_feature.h", "attempt_form_filling_tool_java_script_feature.mm", "click_tool_java_script_feature.h", "click_tool_java_script_feature.mm", "page_stability_java_script_feature.h", "page_stability_java_script_feature.mm", "scroll_tool_java_script_feature.h", "scroll_tool_java_script_feature.mm", "select_tool_java_script_feature.h", "select_tool_java_script_feature.mm", "type_tool_java_script_feature.h", "type_tool_java_script_feature.mm", ] deps = [ ":action_target", ":action_target_ts", ":actor_tool_interface", ":attempt_form_filling_tool_ts", ":click_tool_ts", ":page_stability_ts", ":scroll_tool_ts", ":select_tool_ts", ":type_tool_ts", "//base", "//components/autofill/core/common", "//components/autofill/ios/browser", "//components/autofill/ios/browser:util", "//components/autofill/ios/form_util:autofill_form_features", "//components/autofill/ios/form_util:child_frame_registrar", "//components/optimization_guide/proto:optimization_guide_proto", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/features", "//ios/web/public", "//ios/web/public/js_messaging", ] } source_set("page_stability") { sources = [ "ios_page_stability_metrics.h", "ios_page_stability_metrics.mm", "ios_page_stability_monitor_delegate.h", "ios_page_stability_monitor_delegate.mm", "observation_delay_controller.h", "observation_delay_controller.mm", "page_stability_monitor.h", "page_stability_monitor.mm", ] deps = [ ":java_script_features", "//base", "//components/actor/core", "//components/actor/core:journal", "//components/autofill/core/browser", "//components/autofill/core/common", "//components/autofill/ios/browser", "//components/page_content_annotations/core", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/features", "//ios/web/public", "//ios/web/public/js_messaging", "//url", ] } source_set("tool_controller") { sources = [ "tool_controller.h", "tool_controller.mm", ] deps = [ ":actor_tool_factory", ":actor_tool_interface", ":page_stability", "//base", "//components/actor/core:journal", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:actor_tool_utils", "//ios/chrome/browser/intelligence/actor/tools/utils:logging_util", "//ios/chrome/browser/intelligence/features", "//ios/web/public", ] } source_set("actor_tool_java_script_feature_test_base") { testonly = true sources = [ "actor_tool_java_script_feature_test_base.h", "actor_tool_java_script_feature_test_base.mm", ] deps = [ "//base", "//base/test:test_support", "//ios/chrome/browser/intelligence/features", "//ios/chrome/test:ios_chrome_test_with_web_state", "//ios/web/common:features", "//ios/web/public/js_messaging", "//ios/web/public/test:util", "//testing/gtest", ] } source_set("unit_tests") { testonly = true sources = [ "action_target_java_script_feature_unittest.mm", "action_target_js_unittest.mm", "action_target_unittest.mm", "actor_tool_factory_unittest.mm", "actor_tool_request_unittest.mm", "attempt_form_filling_tool_java_script_feature_unittest.mm", "attempt_form_filling_tool_js_unittest.mm", "attempt_form_filling_tool_unittest.mm", "attempt_login_tool_unittest.mm", "click_tool_java_script_feature_unittest.mm", "click_tool_js_unittest.mm", "click_tool_unittest.mm", "fake_tool_delegate.h", "fake_tool_delegate.mm", "history_tool_unittest.mm", "ios_page_stability_metrics_unittest.mm", "navigate_tool_unittest.mm", "observation_delay_controller_unittest.mm", "page_stability_java_script_feature_unittest.mm", "page_stability_js_unittest.mm", "page_stability_monitor_unittest.mm", "scroll_to_tool_unittest.mm", "scroll_tool_java_script_feature_unittest.mm", "scroll_tool_js_unittest.mm", "scroll_tool_unittest.mm", "select_tool_java_script_feature_unittest.mm", "select_tool_js_unittest.mm", "select_tool_unittest.mm", "tab_management_tool_unittest.mm", "tool_controller_unittest.mm", "type_tool_java_script_feature_unittest.mm", "type_tool_js_unittest.mm", "type_tool_unittest.mm", "wait_tool_unittest.mm", ] deps = [ ":action_target", ":action_target_ts", ":actor_tool_constants", ":actor_tool_factory", ":actor_tool_interface", ":actor_tool_java_script_feature_test_base", ":attempt_form_filling_tool", ":attempt_form_filling_tool_ts", ":attempt_login_tool", ":click_tool", ":click_tool_ts", ":history_tool", ":java_script_features", ":navigate_tool", ":page_stability", ":scroll_to_tool", ":scroll_tool", ":scroll_tool_ts", ":select_tool", ":select_tool_ts", ":tab_management_tool", ":tool_controller", ":type_tool", ":type_tool_ts", ":wait_tool", "//base/test:test_support", "//components/autofill/core/browser/actor", "//components/autofill/core/browser/actor:test_support", "//components/autofill/core/common:features", "//components/autofill/ios/browser:test_support", "//components/autofill/ios/browser:util", "//components/autofill/ios/common", "//components/autofill/ios/form_util", "//components/autofill/ios/form_util:autofill_form_features", "//components/autofill/ios/form_util:autofill_form_features_ts_bundling", "//components/autofill/ios/form_util:child_frame_registrar", "//components/autofill/ios/form_util:renderer_id_test", "//components/optimization_guide/proto:optimization_guide_proto", "//components/password_manager/core/browser/actor_login:actor_login_service_impl", "//components/password_manager/core/browser/actor_login:common", "//components/tab_groups", "//ios/chrome/browser/intelligence/actor/public:actor_task_ui_protocols", "//ios/chrome/browser/intelligence/actor/public:actor_types", "//ios/chrome/browser/intelligence/actor/tools/public", "//ios/chrome/browser/intelligence/actor/tools/utils:actor_browser_utils", "//ios/chrome/browser/intelligence/actor/tools/utils:profile_context_resolver", "//ios/chrome/browser/intelligence/actor/util:test_support", "//ios/chrome/browser/intelligence/features", "//ios/chrome/browser/passwords/model/actor_login", "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", "//ios/chrome/browser/shared/model/browser", "//ios/chrome/browser/shared/model/browser/test:test_support", "//ios/chrome/browser/shared/model/profile/test", "//ios/chrome/browser/shared/model/web_state_list", "//ios/chrome/browser/tab_insertion/model", "//ios/chrome/browser/url_loading/model", "//ios/chrome/browser/url_loading/model:test_support", "//ios/chrome/test:ios_chrome_test_with_web_state", "//ios/web/common:features", "//ios/web/js_messaging:java_script_feature_manager_header", "//ios/web/public/js_messaging", "//ios/web/public/test", "//ios/web/public/test:javascript_test", "//ios/web/public/test:util", "//ios/web/public/test/fakes", "//net:test_support", "//testing/gmock", "//testing/gtest", ] }