blob: 39b3aa065092dd46fa1ddbe3b82a2d198ff59170 [file] [log] [blame]
# 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.
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_host_pair.cc",
"net/cert_host_pair.h",
"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_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/origin_util.cc",
"public/origin_util.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_schemes.h",
"public/url_schemes.mm",
"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/credential_util.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_pass_kit_downloader.h",
"web_state/crw_pass_kit_downloader.mm",
"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.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_post_request_loader.h",
"web_state/js/crw_js_post_request_loader.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_state_weak_ptr_factory.cc",
"web_state/web_state_weak_ptr_factory.h",
"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 = [
":web",
"//ios/testing:ocmock_support",
"//ios/third_party/gcdwebserver",
"//testing/gmock",
"//testing/gtest",
"//third_party/ocmock",
]
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 = [
":test_support",
":web",
"//base",
"//base/test:test_support",
"//ios/testing:ocmock_support",
"//net:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/ocmock",
"//ui/base: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_host_pair_unittest.cc",
"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_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",
"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_pass_kit_downloader_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_post_request_loader_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",
]
}