blob: cedd6c7c4136213db42ed22e30dc39f2fcfaa10c [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("//ios/web/js_compile.gni")
import("//testing/test.gni")
import("//tools/grit/grit_rule.gni")
source_set("web") {
deps = [
":core",
":js_resources",
":resources",
":user_agent",
"//base",
"//components/url_formatter",
"//ios/net",
"//ios/third_party/blink:html_tokenizer",
"//mojo/public/cpp/system",
"//mojo/public/js",
"//net",
"//services/shell/public/cpp",
"//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.h",
"browser_url_rewriter_impl.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",
"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_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_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_ssl_status_updater.h",
"net/crw_ssl_status_updater.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/cert_policy.h",
"public/cert_store.h",
"public/certificate_policy_cache.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.h",
"public/origin_util.mm",
"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_data_source_ios.h",
"public/url_scheme_util.h",
"public/url_schemes.h",
"public/url_schemes.mm",
"public/url_util.h",
"public/user_metrics.h",
"public/web_capabilities.cc",
"public/web_capabilities.h",
"public/web_client.h",
"public/web_client.mm",
"public/web_kit_constants.h",
"public/web_state/context_menu_params.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_delegate.h",
"public/web_state/web_state_delegate_bridge.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_creation_util.h",
"string_util.cc",
"url_scheme_util.mm",
"url_util.cc",
"user_metrics.cc",
"web_kit_constants.cc",
"web_state/blocked_popup_info.h",
"web_state/blocked_popup_info.mm",
"web_state/context_menu_params.mm",
"web_state/credential.cc",
"web_state/crw_pass_kit_downloader.h",
"web_state/crw_pass_kit_downloader.mm",
"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/global_web_state_event_tracker.h",
"web_state/global_web_state_event_tracker.mm",
"web_state/global_web_state_observer.cc",
"web_state/js/credential_util.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/page_viewport_state.h",
"web_state/page_viewport_state.mm",
"web_state/ui/crw_generic_content_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_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/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.mm",
"web_state/web_state_delegate.mm",
"web_state/web_state_delegate_bridge.mm",
"web_state/web_state_facade_delegate.h",
"web_state/web_state_impl.h",
"web_state/web_state_impl.mm",
"web_state/web_state_observer.mm",
"web_state/web_state_observer_bridge.mm",
"web_state/web_state_policy_decider.mm",
"web_state/web_state_weak_ptr_factory.h",
"web_state/web_state_weak_ptr_factory.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_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/mojo_facade.h",
"webui/mojo_facade.mm",
"webui/mojo_js_constants.cc",
"webui/mojo_js_constants.h",
"webui/shared_resources_data_source_ios.h",
"webui/shared_resources_data_source_ios.mm",
"webui/url_data_manager_ios.cc",
"webui/url_data_manager_ios.h",
"webui/url_data_manager_ios_backend.h",
"webui/url_data_manager_ios_backend.mm",
"webui/url_data_source_ios.mm",
"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.h",
"webui/web_ui_ios_data_source_impl.mm",
"webui/web_ui_ios_impl.h",
"webui/web_ui_ios_impl.mm",
]
libs = [ "WebKit.framework" ]
}
source_set("core") {
deps = [
"//base",
"//url",
]
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("earl_grey_test_support") {
testonly = true
deps = [
":test_support",
":web",
"//base",
"//base/test:test_support",
"//ios/third_party/earl_grey",
]
sources = [
"public/test/earl_grey/web_view_matchers.h",
"public/test/earl_grey/web_view_matchers.mm",
"public/test/web_view_interaction_test_util.h",
"public/test/web_view_interaction_test_util.mm",
]
}
source_set("test_support") {
testonly = true
deps = [
":web",
"//base/test:test_support",
"//ios/testing:ocmock_support",
"//ios/third_party/gcdwebserver",
"//ios/web/test:mojo_bindings",
"//net:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/ocmock",
"//ui/base:base",
]
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/http_server_util.h",
"public/test/http_server_util.mm",
"public/test/js_test_util.h",
"public/test/js_test_util.mm",
"public/test/navigation_test_util.h",
"public/test/navigation_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.h",
"public/test/response_providers/file_based_response_provider_impl.mm",
"public/test/response_providers/html_response_provider.h",
"public/test/response_providers/html_response_provider.mm",
"public/test/response_providers/html_response_provider_impl.h",
"public/test/response_providers/html_response_provider_impl.mm",
"public/test/response_providers/response_provider.h",
"public/test/response_providers/response_provider.mm",
"public/test/response_providers/string_response_provider.h",
"public/test/response_providers/string_response_provider.mm",
"public/test/scoped_testing_web_client.h",
"public/test/scoped_testing_web_client.mm",
"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.h",
"public/test/test_web_state.mm",
"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.h",
"public/test/web_test.mm",
"public/test/web_test_with_web_state.h",
"public/test/web_test_with_web_state.mm",
"test/crw_fake_web_controller_observer.h",
"test/crw_fake_web_controller_observer.mm",
"test/test_url_constants.cc",
"test/test_url_constants.h",
"test/test_web_thread.cc",
"test/test_web_thread_bundle.cc",
"test/web_int_test.h",
"test/web_int_test.mm",
"test/web_test_suite.h",
"test/web_test_suite.mm",
"test/web_test_with_web_controller.h",
"test/web_test_with_web_controller.mm",
"test/wk_web_view_crash_utils.h",
"test/wk_web_view_crash_utils.mm",
]
}
source_set("run_all_unittests") {
testonly = true
sources = [
"test/run_all_unittests.cc",
]
deps = [
":test_support",
"//base",
"//base/test:test_support",
"//mojo/edk/system",
]
}
bundle_data("ios_web_unittests_bundle_data") {
testonly = true
sources = [
"test/data/chrome.html",
"test/data/testbadpass.pkpass",
"test/data/testfavicon.png",
"test/data/testpass.pkpass",
]
outputs = [
"{{bundle_resources_dir}}/{{source_root_relative_dir}}/" +
"{{source_file_part}}",
]
}
test("ios_web_unittests") {
deps = [
":core",
":ios_web_unittests_bundle_data",
":run_all_unittests",
":test_support",
":web",
"//base",
"//base/test:test_support",
"//ios/net",
"//ios/testing:ocmock_support",
"//ios/web/test:mojo_bindings",
"//net:test_support",
"//services/shell/public/cpp",
"//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",
"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_js_injection_network_client_unittest.mm",
"net/crw_cert_verification_controller_unittest.mm",
"net/crw_ssl_status_updater_unittest.mm",
"net/request_group_util_unittest.mm",
"net/request_tracker_impl_unittest.mm",
"net/web_http_protocol_handler_delegate_unittest.mm",
"public/origin_util_unittest.mm",
"public/referrer_util_unittest.cc",
"public/web_state/page_viewport_state_unittest.mm",
"string_util_unittest.cc",
"test/crw_fake_web_controller_observer_unittest.mm",
"url_scheme_util_unittest.mm",
"url_util_unittest.cc",
"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_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_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/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_delegate_bridge_unittest.mm",
"web_state/web_state_delegate_stub.h",
"web_state/web_state_delegate_stub.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",
"webui/crw_web_ui_manager_unittest.mm",
"webui/crw_web_ui_page_builder_unittest.mm",
"webui/mojo_facade_unittest.mm",
"webui/url_fetcher_block_adapter_unittest.mm",
]
}
test("ios_web_inttests") {
deps = [
":test_support",
":web",
"//base/test:test_support",
"//ios/public/provider/web",
"//ios/web/test:mojo_bindings",
"//ios/web/test:packed_resources",
"//ios/web/test:resources",
"//mojo/edk/system",
"//net:test_support",
"//services/shell/public/cpp",
"//testing/gtest",
"//ui/base:test_support",
]
sources = [
"browser_state_web_view_partition_inttest.mm",
"public/test/http_server_inttest.mm",
"test/run_all_unittests.cc",
"webui/web_ui_mojo_inttest.mm",
]
}
js_compile_bundle("web_ui_bundle") {
visibility = [ ":js_resources" ]
closure_entry_point = "__crWeb.webUIBundle"
sources = [
"../third_party/requirejs/require.js",
"webui/resources/web_ui_base.js",
"webui/resources/web_ui_bind.js",
"webui/resources/web_ui_bundle.js",
"webui/resources/web_ui_favicons.js",
"webui/resources/web_ui_module_load_notifier.js",
"webui/resources/web_ui_send.js",
]
}
js_compile_bundle("web_bundle") {
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/dialog_overrides.js",
"web_state/js/resources/message.js",
"web_state/js/resources/web_bundle.js",
]
}
js_compile_checked("js_resources") {
public_deps = [
":web_bundle",
":web_ui_bundle",
]
sources = [
"web_state/js/resources/plugin_placeholder.js",
"web_state/js/resources/post_request.js",
"web_state/js/resources/window_id.js",
]
}
grit("resources") {
source = "ios_web_resources.grd"
use_qualified_include = true
outputs = [
"grit/ios_web_resources.h",
"ios_web_resources.pak",
]
}