|  | # Copyright 2016 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | import("//ios/web/js_compile.gni") | 
|  |  | 
|  | source_set("web") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | sources = [ | 
|  | "dom_altering_lock.h", | 
|  | "dom_altering_lock.mm", | 
|  | "mailto_handler.h", | 
|  | "mailto_handler.mm", | 
|  | "mailto_handler_gmail.h", | 
|  | "mailto_handler_gmail.mm", | 
|  | "mailto_handler_system_mail.h", | 
|  | "mailto_handler_system_mail.mm", | 
|  | "mailto_url_rewriter.h", | 
|  | "mailto_url_rewriter.mm", | 
|  | "navigation_manager_util.h", | 
|  | "navigation_manager_util.mm", | 
|  | "network_activity_indicator_tab_helper.h", | 
|  | "network_activity_indicator_tab_helper.mm", | 
|  | "repost_form_tab_helper.h", | 
|  | "repost_form_tab_helper.mm", | 
|  | "sad_tab_tab_helper.h", | 
|  | "sad_tab_tab_helper.mm", | 
|  | ] | 
|  | deps = [ | 
|  | ":sad_tab_tab_helper_delegate", | 
|  | "//base", | 
|  | "//components/strings", | 
|  | "//ios/chrome/app/strings:ios_strings_grit", | 
|  | "//ios/chrome/browser", | 
|  | "//ios/chrome/browser/ui", | 
|  | "//ios/chrome/browser/ui/alert_coordinator:alert_coordinator", | 
|  | "//ios/chrome/browser/ui/commands:commands", | 
|  | "//ios/chrome/browser/ui/sad_tab:sad_tab", | 
|  | "//ios/chrome/browser/ui/util:util", | 
|  | "//ios/web", | 
|  | "//ios/web:web_arc", | 
|  | "//ui/base", | 
|  | "//url", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("sad_tab_tab_helper_delegate") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | sources = [ | 
|  | "sad_tab_tab_helper_delegate.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("unit_tests") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "mailto_handler_gmail_unittest.mm", | 
|  | "mailto_handler_system_mail_unittest.mm", | 
|  | "mailto_handler_unittest.mm", | 
|  | "mailto_url_rewriter_unittest.mm", | 
|  | "navigation_manager_util_unittest.mm", | 
|  | "network_activity_indicator_tab_helper_unittest.mm", | 
|  | "repost_form_tab_helper_unittest.mm", | 
|  | "sad_tab_tab_helper_unittest.mm", | 
|  | ] | 
|  | deps = [ | 
|  | ":sad_tab_tab_helper_delegate", | 
|  | ":test_support", | 
|  | ":web", | 
|  | "//base:base", | 
|  | "//base/test:test_support", | 
|  | "//components/strings:components_strings_grit", | 
|  | "//ios/chrome/browser/ui:ui", | 
|  | "//ios/chrome/browser/ui/sad_tab", | 
|  | "//ios/chrome/test:test_support", | 
|  | "//ios/web:web_arc", | 
|  | "//ios/web/public/test", | 
|  | "//ios/web/public/test/fakes", | 
|  | "//testing/gtest", | 
|  | "//ui/base:base", | 
|  | "//url:url", | 
|  | ] | 
|  | } | 
|  |  | 
|  | bundle_data("resources") { | 
|  | sources = [ | 
|  | "resources/autofill_card_american_express.png", | 
|  | "resources/autofill_card_american_express@2x.png", | 
|  | "resources/autofill_card_american_express@2x~ipad.png", | 
|  | "resources/autofill_card_american_express@3x.png", | 
|  | "resources/autofill_card_american_express~ipad.png", | 
|  | "resources/autofill_card_diners.png", | 
|  | "resources/autofill_card_diners@2x.png", | 
|  | "resources/autofill_card_diners@2x~ipad.png", | 
|  | "resources/autofill_card_diners@3x.png", | 
|  | "resources/autofill_card_diners~ipad.png", | 
|  | "resources/autofill_card_discover.png", | 
|  | "resources/autofill_card_discover@2x.png", | 
|  | "resources/autofill_card_discover@2x~ipad.png", | 
|  | "resources/autofill_card_discover@3x.png", | 
|  | "resources/autofill_card_discover~ipad.png", | 
|  | "resources/autofill_card_generic.png", | 
|  | "resources/autofill_card_generic@2x.png", | 
|  | "resources/autofill_card_generic@2x~ipad.png", | 
|  | "resources/autofill_card_generic@3x.png", | 
|  | "resources/autofill_card_generic~ipad.png", | 
|  | "resources/autofill_card_jcb.png", | 
|  | "resources/autofill_card_jcb@2x.png", | 
|  | "resources/autofill_card_jcb@2x~ipad.png", | 
|  | "resources/autofill_card_jcb@3x.png", | 
|  | "resources/autofill_card_jcb~ipad.png", | 
|  | "resources/autofill_card_mastercard.png", | 
|  | "resources/autofill_card_mastercard@2x.png", | 
|  | "resources/autofill_card_mastercard@2x~ipad.png", | 
|  | "resources/autofill_card_mastercard@3x.png", | 
|  | "resources/autofill_card_mastercard~ipad.png", | 
|  | "resources/autofill_card_unionpay.png", | 
|  | "resources/autofill_card_unionpay@2x.png", | 
|  | "resources/autofill_card_unionpay@2x~ipad.png", | 
|  | "resources/autofill_card_unionpay@3x.png", | 
|  | "resources/autofill_card_unionpay~ipad.png", | 
|  | "resources/autofill_card_visa.png", | 
|  | "resources/autofill_card_visa@2x.png", | 
|  | "resources/autofill_card_visa@2x~ipad.png", | 
|  | "resources/autofill_card_visa@3x.png", | 
|  | "resources/autofill_card_visa~ipad.png", | 
|  | "resources/autofill_close.png", | 
|  | "resources/autofill_close@2x.png", | 
|  | "resources/autofill_close@3x.png", | 
|  | "resources/autofill_close_pressed.png", | 
|  | "resources/autofill_close_pressed@2x.png", | 
|  | "resources/autofill_close_pressed@3x.png", | 
|  | "resources/autofill_keyboard_background.png", | 
|  | "resources/autofill_keyboard_background@2x.png", | 
|  | "resources/autofill_keyboard_background@3x.png", | 
|  | "resources/autofill_keyboard_background_left.png", | 
|  | "resources/autofill_keyboard_background_left@2x.png", | 
|  | "resources/autofill_keyboard_background_right.png", | 
|  | "resources/autofill_keyboard_background_right@2x.png", | 
|  | "resources/autofill_left_sep.png", | 
|  | "resources/autofill_left_sep@2x.png", | 
|  | "resources/autofill_left_sep@3x.png", | 
|  | "resources/autofill_left_sep_RTL.png", | 
|  | "resources/autofill_left_sep_RTL@2x.png", | 
|  | "resources/autofill_left_sep_RTL@3x.png", | 
|  | "resources/autofill_middle_sep.png", | 
|  | "resources/autofill_middle_sep@2x.png", | 
|  | "resources/autofill_middle_sep@3x.png", | 
|  | "resources/autofill_next.png", | 
|  | "resources/autofill_next@2x.png", | 
|  | "resources/autofill_next@3x.png", | 
|  | "resources/autofill_next_inactive.png", | 
|  | "resources/autofill_next_inactive@2x.png", | 
|  | "resources/autofill_next_inactive@3x.png", | 
|  | "resources/autofill_next_pressed.png", | 
|  | "resources/autofill_next_pressed@2x.png", | 
|  | "resources/autofill_next_pressed@3x.png", | 
|  | "resources/autofill_prev.png", | 
|  | "resources/autofill_prev@2x.png", | 
|  | "resources/autofill_prev@3x.png", | 
|  | "resources/autofill_prev_inactive.png", | 
|  | "resources/autofill_prev_inactive@2x.png", | 
|  | "resources/autofill_prev_inactive@3x.png", | 
|  | "resources/autofill_prev_pressed.png", | 
|  | "resources/autofill_prev_pressed@2x.png", | 
|  | "resources/autofill_prev_pressed@3x.png", | 
|  | "resources/autofill_right_sep.png", | 
|  | "resources/autofill_right_sep@2x.png", | 
|  | "resources/autofill_right_sep@3x.png", | 
|  | "resources/autofill_right_sep_RTL.png", | 
|  | "resources/autofill_right_sep_RTL@2x.png", | 
|  | "resources/autofill_right_sep_RTL@3x.png", | 
|  | ] | 
|  | outputs = [ | 
|  | "{{bundle_resources_dir}}/{{source_file_part}}", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_compile_bundle("chrome_bundle") { | 
|  | closure_entry_point = "__crWeb.chromeBundle" | 
|  | sources = [ | 
|  | "resources/chrome_bundle.js", | 
|  | "resources/payment_request.js", | 
|  | "resources/print.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("web_internal") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | sources = [ | 
|  | "auto_reload_bridge.h", | 
|  | "auto_reload_bridge.mm", | 
|  | "auto_reload_controller.h", | 
|  | "auto_reload_controller.mm", | 
|  | "blocked_popup_tab_helper.h", | 
|  | "blocked_popup_tab_helper.mm", | 
|  | "chrome_web_client.h", | 
|  | "chrome_web_client.mm", | 
|  | "error_page_content.h", | 
|  | "error_page_content.mm", | 
|  | "error_page_generator.h", | 
|  | "error_page_generator.mm", | 
|  | "external_app_launcher.h", | 
|  | "external_app_launcher.mm", | 
|  | "passkit_dialog_provider.h", | 
|  | "print_observer.h", | 
|  | "print_observer.mm", | 
|  | ] | 
|  | deps = [ | 
|  | ":chrome_bundle", | 
|  | ":resources", | 
|  | "//base", | 
|  | "//components/content_settings/core/browser", | 
|  | "//components/dom_distiller/core", | 
|  | "//components/error_page/common", | 
|  | "//components/infobars/core", | 
|  | "//components/prefs", | 
|  | "//components/resources", | 
|  | "//components/strings", | 
|  | "//components/task_scheduler_util/browser", | 
|  | "//components/version_info", | 
|  | "//ios/chrome/app/strings", | 
|  | "//ios/chrome/browser", | 
|  | "//ios/chrome/browser:browser_impl", | 
|  | "//ios/chrome/browser/browser_state", | 
|  | "//ios/chrome/browser/content_settings", | 
|  | "//ios/chrome/browser/infobars", | 
|  | "//ios/chrome/browser/ssl", | 
|  | "//ios/chrome/browser/tabs", | 
|  | "//ios/chrome/browser/ui/commands", | 
|  | "//ios/chrome/browser/ui/static_content", | 
|  | "//ios/chrome/browser/web", | 
|  | "//ios/public/provider/chrome/browser", | 
|  | "//ios/public/provider/chrome/browser/voice", | 
|  | "//ios/third_party/material_components_ios", | 
|  | "//ios/web", | 
|  | "//ios/web:user_agent", | 
|  | "//net", | 
|  | "//ui/base", | 
|  | "//ui/gfx", | 
|  | "//url", | 
|  | ] | 
|  | libs = [ "UIKit.framework" ] | 
|  | } | 
|  |  | 
|  | source_set("test_support") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "chrome_web_test.h", | 
|  | "chrome_web_test.mm", | 
|  | "fake_mailto_handler_helpers.h", | 
|  | "fake_mailto_handler_helpers.mm", | 
|  | ] | 
|  | deps = [ | 
|  | "//components/password_manager/core/browser:test_support", | 
|  | "//ios/chrome/browser/browser_state:test_support", | 
|  | "//ios/chrome/browser/passwords", | 
|  | "//ios/chrome/browser/ui:ui_internal", | 
|  | "//ios/chrome/browser/web", | 
|  | "//ios/web", | 
|  | "//ios/web/public/test", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("unit_tests_internal") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "auto_reload_controller_unittest.mm", | 
|  | "blocked_popup_tab_helper_unittest.mm", | 
|  | "chrome_web_client_unittest.mm", | 
|  | "error_page_generator_unittest.mm", | 
|  | "external_app_launcher_unittest.mm", | 
|  | ] | 
|  | deps = [ | 
|  | ":test_support", | 
|  | ":web_internal", | 
|  | "//base", | 
|  | "//base/test:test_support", | 
|  | "//components/content_settings/core/browser", | 
|  | "//components/infobars/core", | 
|  | "//ios/chrome/browser/browser_state:test_support", | 
|  | "//ios/chrome/browser/content_settings:content_settings", | 
|  | "//ios/chrome/browser/find_in_page", | 
|  | "//ios/chrome/browser/infobars", | 
|  | "//ios/chrome/browser/ui", | 
|  | "//ios/web", | 
|  | "//ios/web/public/test", | 
|  | "//ios/web/public/test/fakes", | 
|  | "//net", | 
|  | "//testing/gtest", | 
|  | "//third_party/ocmock", | 
|  | "//url", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("eg_tests") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "browsing_egtest.mm", | 
|  | "browsing_prevent_default_egtest.mm", | 
|  | "cache_egtest.mm", | 
|  | "child_window_open_by_dom_egtest.mm", | 
|  | "forms_egtest.mm", | 
|  | "http_auth_egtest.mm", | 
|  | "js_print_egtest.mm", | 
|  | "navigation_egtest.mm", | 
|  | "progress_indicator_egtest.mm", | 
|  | "push_and_replace_state_navigation_egtest.mm", | 
|  | "stop_loading_egtest.mm", | 
|  | "visible_url_egtest.mm", | 
|  | "window_open_by_dom_egtest.mm", | 
|  | ] | 
|  | deps = [ | 
|  | "//base", | 
|  | "//base/test:test_support", | 
|  | "//components/content_settings/core/browser", | 
|  | "//components/content_settings/core/common", | 
|  | "//components/strings", | 
|  | "//components/version_info:version_info", | 
|  | "//ios/chrome/app/strings", | 
|  | "//ios/chrome/browser", | 
|  | "//ios/chrome/browser/browser_state", | 
|  | "//ios/chrome/browser/content_settings", | 
|  | "//ios/chrome/browser/ui", | 
|  | "//ios/chrome/browser/ui/commands", | 
|  | "//ios/chrome/test/app:test_support", | 
|  | "//ios/chrome/test/earl_grey:test_support", | 
|  | "//ios/testing:ios_test_support", | 
|  | "//ios/testing/earl_grey:earl_grey_support", | 
|  | "//ios/third_party/earl_grey", | 
|  | "//ios/third_party/material_components_ios", | 
|  | "//ios/web:earl_grey_test_support", | 
|  | "//ios/web/public/test", | 
|  | "//ios/web/public/test/http_server", | 
|  | "//net", | 
|  | "//ui/base", | 
|  | "//url", | 
|  | ] | 
|  | libs = [ | 
|  | "UIKit.framework", | 
|  | "XCTest.framework", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("perf_tests") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "early_page_script_perftest.mm", | 
|  | ] | 
|  | deps = [ | 
|  | "//base", | 
|  | "//ios/chrome/test/base:perf_test_support", | 
|  | "//ios/web", | 
|  | "//ios/web/public/test", | 
|  | "//ios/web/public/test/fakes", | 
|  | ] | 
|  | libs = [ "WebKit.framework" ] | 
|  | } |