Index: ios/web/BUILD.gn |
diff --git a/ios/web/BUILD.gn b/ios/web/BUILD.gn |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9eb1a11c9f7578f2a823c15df9698f86d43b6d05 |
--- /dev/null |
+++ b/ios/web/BUILD.gn |
@@ -0,0 +1,506 @@ |
+# 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", |
+ ] |
+} |