|  | # 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", | 
|  | "error_page_util.h", | 
|  | "error_page_util.mm", | 
|  | "font_size_tab_helper.h", | 
|  | "font_size_tab_helper.mm", | 
|  | "image_fetch_tab_helper.h", | 
|  | "image_fetch_tab_helper.mm", | 
|  | "load_timing_tab_helper.h", | 
|  | "load_timing_tab_helper.mm", | 
|  | "mailto_handler.h", | 
|  | "mailto_handler.mm", | 
|  | "mailto_handler_gmail.h", | 
|  | "mailto_handler_gmail.mm", | 
|  | "mailto_handler_inbox.h", | 
|  | "mailto_handler_inbox.mm", | 
|  | "mailto_handler_manager.h", | 
|  | "mailto_handler_manager.mm", | 
|  | "mailto_handler_system_mail.h", | 
|  | "mailto_handler_system_mail.mm", | 
|  | "network_activity_indicator_tab_helper.h", | 
|  | "network_activity_indicator_tab_helper.mm", | 
|  | "page_placeholder_tab_helper.h", | 
|  | "page_placeholder_tab_helper.mm", | 
|  | "repost_form_tab_helper.h", | 
|  | "repost_form_tab_helper.mm", | 
|  | "sad_tab_tab_helper.h", | 
|  | "sad_tab_tab_helper.mm", | 
|  | ] | 
|  | deps = [ | 
|  | ":feature_flags", | 
|  | ":tab_helper_delegates", | 
|  | "//base", | 
|  | "//components/error_page/common", | 
|  | "//components/image_fetcher/ios", | 
|  | "//components/resources:components_resources_grit", | 
|  | "//components/strings", | 
|  | "//ios/chrome/app/strings:ios_strings_grit", | 
|  | "//ios/chrome/browser", | 
|  | "//ios/chrome/browser/browser_state", | 
|  | "//ios/chrome/browser/snapshots", | 
|  | "//ios/chrome/browser/ui", | 
|  | "//ios/chrome/browser/ui/commands:commands", | 
|  | "//ios/chrome/browser/ui/fullscreen", | 
|  | "//ios/chrome/browser/ui/util:util", | 
|  | "//ios/net", | 
|  | "//ios/web", | 
|  | "//ui/base", | 
|  | "//url", | 
|  | ] | 
|  | public_deps = [ | 
|  | ":tab_id_tab_helper", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("tab_id_tab_helper") { | 
|  | sources = [ | 
|  | "tab_id_tab_helper.h", | 
|  | "tab_id_tab_helper.mm", | 
|  | ] | 
|  | deps = [ | 
|  | "//base", | 
|  | "//ios/web/public", | 
|  | ] | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | } | 
|  |  | 
|  | source_set("tab_helper_delegates") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | sources = [ | 
|  | "repost_form_tab_helper_delegate.h", | 
|  | "sad_tab_tab_helper_delegate.h", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("unit_tests") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | testonly = true | 
|  | sources = [ | 
|  | "error_page_util_unittest.mm", | 
|  | "font_size_js_unittest.mm", | 
|  | "font_size_tab_helper_unittest.mm", | 
|  | "image_fetch_js_unittest.mm", | 
|  | "image_fetch_tab_helper_unittest.mm", | 
|  | "load_timing_tab_helper_unittest.mm", | 
|  | "mailto_handler_gmail_unittest.mm", | 
|  | "mailto_handler_inbox_unittest.mm", | 
|  | "mailto_handler_manager_unittest.mm", | 
|  | "mailto_handler_system_mail_unittest.mm", | 
|  | "mailto_handler_unittest.mm", | 
|  | "network_activity_indicator_tab_helper_unittest.mm", | 
|  | "page_placeholder_tab_helper_unittest.mm", | 
|  | "repost_form_tab_helper_unittest.mm", | 
|  | "sad_tab_tab_helper_unittest.mm", | 
|  | "tab_id_tab_helper_unittest.mm", | 
|  | ] | 
|  | deps = [ | 
|  | ":accessibility", | 
|  | ":image_fetch", | 
|  | ":tab_helper_delegates", | 
|  | ":test_support", | 
|  | ":web", | 
|  | "//base:base", | 
|  | "//base/test:test_support", | 
|  | "//components/strings:components_strings_grit", | 
|  | "//ios/chrome/browser/browser_state:test_support", | 
|  | "//ios/chrome/browser/snapshots", | 
|  | "//ios/chrome/test:test_support", | 
|  | "//ios/web", | 
|  | "//ios/web/public/test", | 
|  | "//ios/web/public/test/fakes", | 
|  | "//ios/web/public/test/http_server", | 
|  | "//net:test_support", | 
|  | "//services/network:test_support", | 
|  | "//testing/gmock", | 
|  | "//testing/gtest", | 
|  | "//third_party/ocmock", | 
|  | "//ui/base:base", | 
|  | "//url:url", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_compile_bundle("chrome_bundle_all_frames") { | 
|  | closure_entry_point = "__crWeb.chromeBundleAllFrames" | 
|  | sources = [ | 
|  | "//components/autofill/ios/browser/resources/autofill_controller.js", | 
|  | "//components/autofill/ios/browser/resources/suggestion_controller.js", | 
|  | "//components/autofill/ios/form_util/resources/fill.js", | 
|  | "//components/autofill/ios/form_util/resources/form.js", | 
|  | "//components/autofill/ios/form_util/resources/form_handlers.js", | 
|  | "resources/accessibility.js", | 
|  | "resources/chrome_bundle_all_frames.js", | 
|  | "resources/print.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_compile_bundle("chrome_bundle_main_frame") { | 
|  | closure_entry_point = "__crWeb.chromeBundleMainFrame" | 
|  | sources = [ | 
|  | "//components/password_manager/ios/resources/password_controller.js", | 
|  | "resources/chrome_bundle_main_frame.js", | 
|  | "resources/image_fetch.js", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":credential_manager", | 
|  | ":payment_request", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_compile_checked("payment_request") { | 
|  | sources = [ | 
|  | "resources/payment_request.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_compile_checked("credential_manager") { | 
|  | sources = [ | 
|  | "resources/credential_manager.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_compile_checked("accessibility") { | 
|  | sources = [ | 
|  | "resources/accessibility.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | js_compile_checked("image_fetch") { | 
|  | sources = [ | 
|  | "resources/image_fetch.js", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("web_internal") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | sources = [ | 
|  | "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", | 
|  | "print_tab_helper.h", | 
|  | "print_tab_helper.mm", | 
|  | "web_state_printer.h", | 
|  | ] | 
|  | deps = [ | 
|  | ":chrome_bundle_all_frames", | 
|  | ":chrome_bundle_main_frame", | 
|  | "//base", | 
|  | "//components/content_settings/core/browser", | 
|  | "//components/dom_distiller/core", | 
|  | "//components/infobars/core", | 
|  | "//components/payments/core", | 
|  | "//components/prefs", | 
|  | "//components/resources", | 
|  | "//components/strings", | 
|  | "//components/version_info", | 
|  | "//ios/chrome/app/resources:ios_resources", | 
|  | "//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/passwords", | 
|  | "//ios/chrome/browser/ssl", | 
|  | "//ios/chrome/browser/tabs", | 
|  | "//ios/chrome/browser/ui:ui_util", | 
|  | "//ios/chrome/browser/ui/commands", | 
|  | "//ios/chrome/browser/ui/static_content", | 
|  | "//ios/chrome/browser/unzip", | 
|  | "//ios/chrome/browser/web", | 
|  | "//ios/public/provider/chrome/browser", | 
|  | "//ios/public/provider/chrome/browser/voice", | 
|  | "//ios/web", | 
|  | "//ios/web/public", | 
|  | "//net", | 
|  | "//ui/base", | 
|  | "//ui/gfx", | 
|  | "//url", | 
|  | ] | 
|  | libs = [ | 
|  | "UIKit.framework", | 
|  | "Foundation.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 = [ | 
|  | "blocked_popup_tab_helper_unittest.mm", | 
|  | "chrome_web_client_unittest.mm", | 
|  | "error_page_generator_unittest.mm", | 
|  | ] | 
|  | deps = [ | 
|  | ":test_support", | 
|  | ":web_internal", | 
|  | "//base", | 
|  | "//base/test:test_support", | 
|  | "//components/content_settings/core/browser", | 
|  | "//components/infobars/core", | 
|  | "//components/payments/core", | 
|  | "//ios/chrome/browser", | 
|  | "//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/passwords", | 
|  | "//ios/chrome/browser/ui", | 
|  | "//ios/chrome/browser/web", | 
|  | "//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", | 
|  | "error_page_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", | 
|  | "tab_order_egtest.mm", | 
|  | "visible_url_egtest.mm", | 
|  | "window_open_by_dom_egtest.mm", | 
|  | ] | 
|  | deps = [ | 
|  | "//base", | 
|  | "//base/test:test_support", | 
|  | "//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/ui", | 
|  | "//ios/chrome/browser/ui/commands", | 
|  | "//ios/chrome/browser/ui/popup_menu:constants", | 
|  | "//ios/chrome/test:test_support", | 
|  | "//ios/chrome/test/app:test_support", | 
|  | "//ios/chrome/test/earl_grey:test_support", | 
|  | "//ios/testing:embedded_test_server_support", | 
|  | "//ios/testing/earl_grey:earl_grey_support", | 
|  | "//ios/third_party/earl_grey:earl_grey+link", | 
|  | "//ios/third_party/material_components_ios", | 
|  | "//ios/web", | 
|  | "//ios/web:earl_grey_test_support", | 
|  | "//ios/web/public/test", | 
|  | "//ios/web/public/test/http_server", | 
|  | "//net", | 
|  | "//net:test_support", | 
|  | "//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", | 
|  | "//base/test:test_support", | 
|  | "//ios/chrome/browser/browser_state:test_support", | 
|  | "//ios/chrome/test/base:perf_test_support", | 
|  | "//ios/web", | 
|  | "//ios/web/public/test", | 
|  | ] | 
|  | libs = [ "WebKit.framework" ] | 
|  | } | 
|  |  | 
|  | source_set("feature_flags") { | 
|  | configs += [ "//build/config/compiler:enable_arc" ] | 
|  | sources = [ | 
|  | "features.cc", | 
|  | "features.h", | 
|  | ] | 
|  | deps = [ | 
|  | "//base", | 
|  | ] | 
|  | } |