# Copyright 2015 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. # GN build of //ios/web only supports building with the web implementation of # WebThread as opposed to GYP build that allow using a shim implementation based # on top of BrowserThread. # # See ios/web/ios_web.gyp for more information on how gyp supports this. The # gn targets will fold the target selection in the gyp "incomplete" targets. import("//testing/test.gni") import("//ios/web/js_compile.gni") config("config") { visibility = [ ":web" ] # The WebKit framework is only available since iOS 8.0 but Chrome on iOS do # supports iOS 7.0 so need to use weak linking. # TODO(crbug.com/541549): change to regular linking once support for iOS 7 is # dropped. ldflags = [ "-weak_framework", "WebKit", ] } source_set("web") { deps = [ ":core", ":js_resources", ":user_agent", "//base", "//components/url_formatter", "//ios/net", "//ios/third_party/blink:html_tokenizer", "//net", "//ui/base", "//ui/gfx", "//ui/gfx/geometry:geometry", "//ui/resources", "//url", ] sources = [ "active_state_manager_impl.h", "active_state_manager_impl.mm", "alloc_with_zone_interceptor.h", "alloc_with_zone_interceptor.mm", "browser_state.mm", "browser_url_rewriter_impl.cc", "browser_url_rewriter_impl.h", "browsing_data_managers/crw_browsing_data_manager.h", "browsing_data_managers/crw_cookie_browsing_data_manager.h", "browsing_data_managers/crw_cookie_browsing_data_manager.mm", "browsing_data_partition_impl.h", "browsing_data_partition_impl.mm", "crw_browsing_data_store.mm", "interstitials/html_web_interstitial_impl.h", "interstitials/html_web_interstitial_impl.mm", "interstitials/native_web_interstitial_impl.h", "interstitials/native_web_interstitial_impl.mm", "interstitials/web_interstitial_facade_delegate.h", "interstitials/web_interstitial_impl.h", "interstitials/web_interstitial_impl.mm", "load_committed_details.cc", "navigation/crw_session_certificate_policy_manager.h", "navigation/crw_session_certificate_policy_manager.mm", "navigation/crw_session_controller+private_constructors.h", "navigation/crw_session_controller.h", "navigation/crw_session_controller.mm", "navigation/crw_session_entry.h", "navigation/crw_session_entry.mm", "navigation/navigation_item_facade_delegate.h", "navigation/navigation_item_impl.h", "navigation/navigation_item_impl.mm", "navigation/navigation_manager_delegate.h", "navigation/navigation_manager_facade_delegate.h", "navigation/navigation_manager_impl.h", "navigation/navigation_manager_impl.mm", "navigation/nscoder_util.h", "navigation/nscoder_util.mm", "navigation/time_smoother.cc", "navigation/time_smoother.h", "navigation/web_load_params.h", "navigation/web_load_params.mm", "net/cert_policy.cc", "net/cert_store_impl.cc", "net/cert_store_impl.h", "net/cert_verifier_block_adapter.cc", "net/cert_verifier_block_adapter.h", "net/certificate_policy_cache.cc", "net/clients/crw_csp_network_client.h", "net/clients/crw_csp_network_client.mm", "net/clients/crw_js_injection_network_client.h", "net/clients/crw_js_injection_network_client.mm", "net/clients/crw_js_injection_network_client_factory.h", "net/clients/crw_js_injection_network_client_factory.mm", "net/clients/crw_passkit_delegate.h", "net/clients/crw_passkit_network_client.h", "net/clients/crw_passkit_network_client.mm", "net/clients/crw_passkit_network_client_factory.h", "net/clients/crw_passkit_network_client_factory.mm", "net/clients/crw_redirect_network_client.h", "net/clients/crw_redirect_network_client.mm", "net/clients/crw_redirect_network_client_factory.h", "net/clients/crw_redirect_network_client_factory.mm", "net/cookie_notification_bridge.h", "net/cookie_notification_bridge.mm", "net/crw_cert_policy_cache.h", "net/crw_cert_policy_cache.mm", "net/crw_cert_verification_controller.h", "net/crw_cert_verification_controller.mm", "net/crw_request_tracker_delegate.h", "net/crw_url_verifying_protocol_handler.h", "net/crw_url_verifying_protocol_handler.mm", "net/request_group_util.h", "net/request_group_util.mm", "net/request_tracker_data_memoizing_store.h", "net/request_tracker_factory_impl.h", "net/request_tracker_factory_impl.mm", "net/request_tracker_impl.h", "net/request_tracker_impl.mm", "net/web_http_protocol_handler_delegate.h", "net/web_http_protocol_handler_delegate.mm", "public/active_state_manager.h", "public/block_types.h", "public/browser_state.h", "public/browser_url_rewriter.h", "public/browsing_data_partition.h", "public/browsing_data_partition_client.cc", "public/browsing_data_partition_client.h", "public/cert_policy.h", "public/cert_store.h", "public/certificate_policy_cache.h", "public/crw_browsing_data_store.h", "public/crw_browsing_data_store_delegate.h", "public/favicon_status.cc", "public/favicon_status.h", "public/favicon_url.cc", "public/favicon_url.h", "public/interstitials/web_interstitial.h", "public/interstitials/web_interstitial_delegate.h", "public/load_committed_details.h", "public/navigation_item.h", "public/navigation_manager.h", "public/referrer.h", "public/referrer_util.cc", "public/referrer_util.h", "public/security_style.h", "public/ssl_status.cc", "public/ssl_status.h", "public/string_util.h", "public/url_scheme_util.h", "public/url_util.h", "public/user_metrics.h", "public/web/url_data_source_ios.h", "public/web_client.h", "public/web_client.mm", "public/web_controller_factory.h", "public/web_controller_factory.mm", "public/web_kit_constants.h", "public/web_state/credential.h", "public/web_state/crw_web_controller_observer.h", "public/web_state/crw_web_user_interface_delegate.h", "public/web_state/crw_web_view_proxy.h", "public/web_state/crw_web_view_scroll_view_proxy.h", "public/web_state/global_web_state_observer.h", "public/web_state/js/crw_js_injection_evaluator.h", "public/web_state/js/crw_js_injection_manager.h", "public/web_state/js/crw_js_injection_receiver.h", "public/web_state/page_display_state.h", "public/web_state/page_display_state.mm", "public/web_state/ui/crw_content_view.h", "public/web_state/ui/crw_generic_content_view.h", "public/web_state/ui/crw_native_content.h", "public/web_state/ui/crw_native_content_provider.h", "public/web_state/ui/crw_web_delegate.h", "public/web_state/ui/crw_web_view_content_view.h", "public/web_state/url_verification_constants.h", "public/web_state/web_state.h", "public/web_state/web_state_observer.h", "public/web_state/web_state_observer_bridge.h", "public/web_state/web_state_policy_decider.h", "public/web_state/web_state_user_data.h", "public/web_thread.h", "public/web_thread_delegate.h", "public/web_ui_ios_data_source.h", "public/web_view_counter.h", "public/web_view_creation_util.h", "public/web_view_type.h", "string_util.cc", "ui_web_view_util.h", "ui_web_view_util.mm", "url_scheme_util.mm", "url_util.cc", "user_metrics.cc", "weak_nsobject_counter.h", "weak_nsobject_counter.mm", "web_kit_constants.cc", "web_state/blocked_popup_info.h", "web_state/blocked_popup_info.mm", "web_state/credential.cc", "web_state/crw_recurring_task_delegate.h", "web_state/crw_web_view_proxy_impl.h", "web_state/crw_web_view_proxy_impl.mm", "web_state/crw_web_view_scroll_view_proxy.mm", "web_state/error_translation_util.h", "web_state/error_translation_util.mm", "web_state/frame_info.h", "web_state/global_web_state_event_tracker.cc", "web_state/global_web_state_event_tracker.h", "web_state/global_web_state_observer.cc", "web_state/js/credential_util.h", "web_state/js/credential_util.mm", "web_state/js/crw_js_early_script_manager.h", "web_state/js/crw_js_early_script_manager.mm", "web_state/js/crw_js_injection_manager.mm", "web_state/js/crw_js_injection_receiver.mm", "web_state/js/crw_js_invoke_parameter_queue.h", "web_state/js/crw_js_invoke_parameter_queue.mm", "web_state/js/crw_js_plugin_placeholder_manager.h", "web_state/js/crw_js_plugin_placeholder_manager.mm", "web_state/js/crw_js_window_id_manager.h", "web_state/js/crw_js_window_id_manager.mm", "web_state/js/page_script_util.h", "web_state/js/page_script_util.mm", "web_state/ui/crw_context_menu_provider.h", "web_state/ui/crw_context_menu_provider.mm", "web_state/ui/crw_debug_web_view.h", "web_state/ui/crw_debug_web_view.mm", "web_state/ui/crw_generic_content_view.mm", "web_state/ui/crw_simple_web_view_controller.h", "web_state/ui/crw_static_file_web_view.h", "web_state/ui/crw_static_file_web_view.mm", "web_state/ui/crw_swipe_recognizer_provider.h", "web_state/ui/crw_touch_tracking_recognizer.h", "web_state/ui/crw_touch_tracking_recognizer.mm", "web_state/ui/crw_ui_simple_web_view_controller.h", "web_state/ui/crw_ui_simple_web_view_controller.mm", "web_state/ui/crw_ui_web_view_web_controller.h", "web_state/ui/crw_ui_web_view_web_controller.mm", "web_state/ui/crw_web_controller+protected.h", "web_state/ui/crw_web_controller.h", "web_state/ui/crw_web_controller.mm", "web_state/ui/crw_web_controller_container_view.h", "web_state/ui/crw_web_controller_container_view.mm", "web_state/ui/crw_web_view_content_view.mm", "web_state/ui/crw_wk_script_message_router.h", "web_state/ui/crw_wk_script_message_router.mm", "web_state/ui/crw_wk_simple_web_view_controller.h", "web_state/ui/crw_wk_simple_web_view_controller.mm", "web_state/ui/crw_wk_web_view_crash_detector.h", "web_state/ui/crw_wk_web_view_crash_detector.mm", "web_state/ui/crw_wk_web_view_web_controller.h", "web_state/ui/crw_wk_web_view_web_controller.mm", "web_state/ui/web_view_js_utils.h", "web_state/ui/web_view_js_utils.mm", "web_state/ui/wk_back_forward_list_item_holder.h", "web_state/ui/wk_back_forward_list_item_holder.mm", "web_state/ui/wk_web_view_configuration_provider.h", "web_state/ui/wk_web_view_configuration_provider.mm", "web_state/web_controller_observer_bridge.h", "web_state/web_controller_observer_bridge.mm", "web_state/web_state.cc", "web_state/web_state_facade_delegate.h", "web_state/web_state_impl.h", "web_state/web_state_impl.mm", "web_state/web_state_observer.cc", "web_state/web_state_observer_bridge.mm", "web_state/web_state_policy_decider.mm", "web_state/web_view_internal_creation_util.h", "web_state/web_view_internal_creation_util.mm", "web_state/wk_web_view_security_util.h", "web_state/wk_web_view_security_util.mm", "web_thread_impl.cc", "web_thread_impl.h", "web_view_counter_impl.h", "web_view_counter_impl.mm", "web_view_creation_util.mm", "webui/crw_web_ui_manager.h", "webui/crw_web_ui_manager.mm", "webui/crw_web_ui_page_builder.h", "webui/crw_web_ui_page_builder.mm", "webui/shared_resources_data_source_ios.cc", "webui/shared_resources_data_source_ios.h", "webui/url_data_manager_ios.cc", "webui/url_data_manager_ios.h", "webui/url_data_manager_ios_backend.cc", "webui/url_data_manager_ios_backend.h", "webui/url_data_source_ios.cc", "webui/url_data_source_ios_impl.cc", "webui/url_data_source_ios_impl.h", "webui/url_fetcher_block_adapter.h", "webui/url_fetcher_block_adapter.mm", "webui/web_ui_ios_controller_factory_registry.cc", "webui/web_ui_ios_controller_factory_registry.h", "webui/web_ui_ios_data_source_impl.cc", "webui/web_ui_ios_data_source_impl.h", "webui/web_ui_ios_impl.h", "webui/web_ui_ios_impl.mm", ] public_configs = [ ":config" ] } source_set("core") { deps = [ "//base", ] sources = [ "crw_network_activity_indicator_manager.h", "crw_network_activity_indicator_manager.mm", "history_state_util.h", "history_state_util.mm", ] } source_set("user_agent") { deps = [ "//base", ] sources = [ "public/user_agent.h", "public/user_agent.mm", ] } source_set("test_support") { testonly = true deps = [ "//ios/testing:ocmock_support", "//ios/third_party/gcdwebserver", "//testing/gmock", "//testing/gtest", "//third_party/ocmock", ":web", ] sources = [ "public/test/crw_test_js_injection_receiver.h", "public/test/crw_test_js_injection_receiver.mm", "public/test/http_server.h", "public/test/http_server.mm", "public/test/js_test_util.h", "public/test/js_test_util.mm", "public/test/response_providers/data_response_provider.h", "public/test/response_providers/data_response_provider.mm", "public/test/response_providers/file_based_response_provider.h", "public/test/response_providers/file_based_response_provider.mm", "public/test/response_providers/file_based_response_provider_impl.cc", "public/test/response_providers/file_based_response_provider_impl.h", "public/test/response_providers/response_provider.cc", "public/test/response_providers/response_provider.h", "public/test/test_browser_state.cc", "public/test/test_browser_state.h", "public/test/test_web_client.h", "public/test/test_web_client.mm", "public/test/test_web_state.cc", "public/test/test_web_state.h", "public/test/test_web_thread.h", "public/test/test_web_thread_bundle.h", "public/test/test_web_view_content_view.h", "public/test/test_web_view_content_view.mm", "public/test/web_test_util.h", "test/crw_fake_web_controller_observer.h", "test/crw_fake_web_controller_observer.mm", "test/test_web_thread.cc", "test/test_web_thread_bundle.cc", "test/web_test.h", "test/web_test.mm", "test/web_test_suite.cc", "test/web_test_suite.h", "test/wk_web_view_crash_utils.h", "test/wk_web_view_crash_utils.mm", ] } test("ios_web_unittests") { deps = [ "//base", "//base/test:test_support", "//net:test_support", "//testing/gmock", "//testing/gtest", "//third_party/ocmock", "//ui/base:test_support", "//ios/testing:ocmock_support", ":web", ":test_support", ] sources = [ "active_state_manager_impl_unittest.mm", "alloc_with_zone_interceptor_unittest.mm", "browser_state_unittest.cc", "browsing_data_partition_impl_unittest.mm", "crw_browsing_data_store_unittest.mm", "crw_network_activity_indicator_manager_unittest.mm", "history_state_util_unittest.mm", "navigation/crw_session_controller_unittest.mm", "navigation/crw_session_entry_unittest.mm", "navigation/navigation_item_impl_unittest.mm", "navigation/navigation_manager_impl_unittest.mm", "navigation/nscoder_util_unittest.mm", "net/cert_policy_unittest.cc", "net/cert_verifier_block_adapter_unittest.cc", "net/clients/crw_csp_network_client_unittest.mm", "net/clients/crw_js_injection_network_client_unittest.mm", "net/clients/crw_passkit_network_client_unittest.mm", "net/crw_cert_policy_cache_unittest.mm", "net/crw_cert_verification_controller_unittest.mm", "net/crw_url_verifying_protocol_handler_unittest.mm", "net/request_group_util_unittest.mm", "net/request_tracker_impl_unittest.mm", "net/web_http_protocol_handler_delegate_unittest.mm", "public/referrer_util_unittest.cc", "public/test/http_server_unittest.mm", "string_util_unittest.cc", "test/crw_fake_web_controller_observer_unittest.mm", "test/run_all_unittests.cc", "ui_web_view_util_unittest.mm", "url_scheme_util_unittest.mm", "url_util_unittest.cc", "weak_nsobject_counter_unittest.mm", "web_state/crw_web_view_scroll_view_proxy_unittest.mm", "web_state/js/common_js_unittest.mm", "web_state/js/core_js_unittest.mm", "web_state/js/credential_util_unittest.mm", "web_state/js/crw_js_early_script_manager_unittest.mm", "web_state/js/crw_js_injection_manager_unittest.mm", "web_state/js/crw_js_invoke_parameter_queue_unittest.mm", "web_state/js/crw_js_window_id_manager_unittest.mm", "web_state/js/page_script_util_unittest.mm", "web_state/ui/crw_static_file_web_view_unittest.mm", "web_state/ui/crw_ui_simple_web_view_controller_unittest.mm", "web_state/ui/crw_web_controller_container_view_unittest.mm", "web_state/ui/crw_web_controller_observer_unittest.mm", "web_state/ui/crw_web_controller_unittest.mm", "web_state/ui/crw_wk_script_message_router_unittest.mm", "web_state/ui/crw_wk_simple_web_view_controller_unittest.mm", "web_state/ui/crw_wk_web_view_crash_detector_unittest.mm", "web_state/ui/web_view_js_utils_unittest.mm", "web_state/ui/wk_back_forward_list_item_holder_unittest.mm", "web_state/ui/wk_web_view_configuration_provider_unittest.mm", "web_state/web_state_impl_unittest.mm", "web_state/web_view_internal_creation_util_unittest.mm", "web_state/wk_web_view_security_util_unittest.mm", "web_view_counter_impl_unittest.mm", "webui/crw_web_ui_manager_unittest.mm", "webui/crw_web_ui_page_builder_unittest.mm", "webui/url_fetcher_block_adapter_unittest.mm", ] } js_compile_bundle("web_bundle_ui") { visibility = [ ":js_resources" ] closure_entry_point = "__crWeb.webBundle" sources = [ "web_state/js/resources/base.js", "web_state/js/resources/common.js", "web_state/js/resources/console.js", "web_state/js/resources/core.js", "web_state/js/resources/core_dynamic_ui.js", "web_state/js/resources/dialog_overrides.js", "web_state/js/resources/message.js", "web_state/js/resources/message_dynamic_ui.js", "web_state/js/resources/web_bundle_ui.js", "web_state/js/resources/window_open_ui.js", ] } js_compile_bundle("web_bundle_wk") { visibility = [ ":js_resources" ] closure_entry_point = "__crWeb.webBundle" sources = [ "web_state/js/resources/base.js", "web_state/js/resources/common.js", "web_state/js/resources/console.js", "web_state/js/resources/core.js", "web_state/js/resources/core_dynamic_wk.js", "web_state/js/resources/dialog_overrides.js", "web_state/js/resources/message.js", "web_state/js/resources/message_dynamic_wk.js", "web_state/js/resources/web_bundle_wk.js", "web_state/js/resources/window_open_wk.js", ] } js_compile_checked("js_resources") { deps = [ ":web_bundle_ui", ":web_bundle_wk", ] sources = [ "web_state/js/resources/plugin_placeholder.js", "web_state/js/resources/window_id.js", "webui/resources/web_ui.js", ] }