# Copyright 2019 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_js.gni") source_set("model") { sources = [ "ios_send_tab_to_self_infobar_delegate.h", "ios_send_tab_to_self_infobar_delegate.mm", "send_tab_to_self_browser_agent.h", "send_tab_to_self_browser_agent.mm", "send_tab_to_self_tab_helper.h", "send_tab_to_self_tab_helper.mm", "send_tab_to_self_text_fragment_selector_generator.h", "send_tab_to_self_text_fragment_selector_generator.mm", "send_tab_to_self_util.h", "send_tab_to_self_util.mm", ] deps = [ ":send_tab_to_self_fragments_js", ":user_data", "//base", "//components/autofill/ios/browser", "//components/autofill/ios/browser:util", "//components/infobars/core", "//components/send_tab_to_self", "//components/shared_highlighting/core/common", "//components/strings", "//components/sync", "//components/sync_device_info", "//google_apis", "//ios/chrome/app/strings", "//ios/chrome/app/theme:theme_grit", "//ios/chrome/browser/infobars/model", "//ios/chrome/browser/infobars/model:public", "//ios/chrome/browser/push_notification/model:constants", "//ios/chrome/browser/push_notification/model:push_notification_client", "//ios/chrome/browser/push_notification/model:push_notification_client_id", "//ios/chrome/browser/push_notification/model:push_notification_service_header", "//ios/chrome/browser/push_notification/model:push_notification_settings_util_header", "//ios/chrome/browser/push_notification/model:push_notification_util", "//ios/chrome/browser/shared/model/application_context", "//ios/chrome/browser/shared/model/browser", "//ios/chrome/browser/shared/model/prefs:pref_names", "//ios/chrome/browser/shared/model/profile", "//ios/chrome/browser/shared/model/profile:features", "//ios/chrome/browser/shared/model/web_state_list", "//ios/chrome/browser/shared/public/commands", "//ios/chrome/browser/shared/public/features", "//ios/chrome/browser/shared/public/snackbar", "//ios/chrome/browser/shared/ui/util", "//ios/chrome/browser/signin/model:authentication_service", "//ios/chrome/browser/signin/model:authentication_service_factory", "//ios/chrome/browser/signin/model:system_identity", "//ios/chrome/browser/sync/model", "//ios/chrome/browser/tabs/model", "//ios/chrome/browser/tabs/model:dependency_installer", "//ios/chrome/browser/url_loading/model", "//ios/components/webui:url_constants", "//ios/web", "//ios/web/public/js_messaging", "//ui/base", "//ui/gfx", "//ui/strings:ui_strings_grit", "//url", ] } source_set("push_notification_client") { sources = [ "send_tab_push_notification_client.h", "send_tab_push_notification_client.mm", ] deps = [ ":model", "//base", "//components/send_tab_to_self", "//components/shared_highlighting/core/common", "//components/strings", "//ios/chrome/browser/push_notification/model:constants", "//ios/chrome/browser/push_notification/model:push_notification_client", "//ios/chrome/browser/push_notification/model:push_notification_client_id", "//ios/chrome/browser/push_notification/model:push_notification_service_header", "//ios/chrome/browser/push_notification/model:push_notification_settings_util_header", "//ios/chrome/browser/push_notification/model:push_notification_util", "//ios/chrome/browser/shared/model/application_context", "//ios/chrome/browser/shared/model/browser", "//ios/chrome/browser/shared/model/profile:features", "//ios/chrome/browser/shared/public/commands", "//ios/chrome/browser/shared/public/features", "//ios/chrome/browser/shared/public/snackbar", "//ios/chrome/browser/signin/model:authentication_service", "//ios/chrome/browser/signin/model:authentication_service_factory", "//ios/chrome/browser/sync/model", "//ui/base", "//url", ] } source_set("user_data") { sources = [ "send_tab_to_self_load_navigation_user_data.h", "send_tab_to_self_load_navigation_user_data.mm", "send_tab_to_self_tab_card_label_data.h", "send_tab_to_self_tab_card_label_data.mm", ] deps = [ "//base", "//components/send_tab_to_self", "//ios/chrome/app/strings", "//ios/chrome/browser/shared/model/profile", "//ios/chrome/browser/sync/model", "//ios/web/public", "//ui/base", "//url", ] } compile_ts("compile_send_tab_to_self_fragments_js") { allow_js = true sources = [ "//third_party/text-fragments-polyfill/src/src/fragment-generation-utils.js", "//third_party/text-fragments-polyfill/src/src/text-fragment-utils.js", "resources/send_tab_to_self_fragments.ts", ] deps = [ "//ios/web/public/js_messaging:gcrweb" ] } optimize_js("send_tab_to_self_fragments_js") { _outputs = get_target_outputs(":compile_send_tab_to_self_fragments_js") _primary_script = filter_include(_outputs, [ "*send_tab_to_self_fragments.js" ]) primary_script = _primary_script[0] sources = _primary_script deps = [ ":compile_send_tab_to_self_fragments_js", "//ios/web/public/js_messaging:gcrweb", ] } source_set("unit_tests") { testonly = true sources = [ "ios_send_tab_to_self_infobar_delegate_unittest.mm", "send_tab_push_notification_client_unittest.mm", "send_tab_to_self_browser_agent_unittest.mm", "send_tab_to_self_tab_card_label_data_unittest.mm", "send_tab_to_self_tab_helper_unittest.mm", "send_tab_to_self_text_fragment_selector_generator_unittest.mm", ] deps = [ ":model", ":push_notification_client", ":user_data", "//base", "//base/test:test_support", "//components/infobars/core", "//components/send_tab_to_self", "//components/send_tab_to_self:test_support", "//components/sync", "//ios/chrome/app/strings", "//ios/chrome/browser/infobars/model", "//ios/chrome/browser/push_notification/model:constants", "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", "//ios/chrome/browser/shared/model/application_context", "//ios/chrome/browser/shared/model/browser", "//ios/chrome/browser/shared/model/browser/test:test_support", "//ios/chrome/browser/shared/model/prefs:pref_names", "//ios/chrome/browser/shared/model/profile:features", "//ios/chrome/browser/shared/model/profile/test", "//ios/chrome/browser/shared/model/web_state_list", "//ios/chrome/browser/shared/model/web_state_list/test:test_support", "//ios/chrome/browser/shared/public/commands", "//ios/chrome/browser/sync/model", "//ios/chrome/browser/sync/model:test_support", "//ios/chrome/browser/url_loading/model", "//ios/chrome/browser/url_loading/model:test_support", "//ios/chrome/test:test_support", "//ios/web/public/test", "//ios/web/public/test/fakes", "//testing/gtest", "//third_party/ocmock", "//url", ] }