| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "android_webview/browser/aw_content_browser_client.h" | 5 #include "android_webview/browser/aw_content_browser_client.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "android_webview/browser/aw_browser_context.h" | 9 #include "android_webview/browser/aw_browser_context.h" |
| 10 #include "android_webview/browser/aw_browser_main_parts.h" | 10 #include "android_webview/browser/aw_browser_main_parts.h" |
| 11 #include "android_webview/browser/aw_contents_client_bridge_base.h" | 11 #include "android_webview/browser/aw_contents_client_bridge_base.h" |
| 12 #include "android_webview/browser/aw_contents_io_thread_client.h" | 12 #include "android_webview/browser/aw_contents_io_thread_client.h" |
| 13 #include "android_webview/browser/aw_cookie_access_policy.h" | 13 #include "android_webview/browser/aw_cookie_access_policy.h" |
| 14 #include "android_webview/browser/aw_locale_manager.h" | 14 #include "android_webview/browser/aw_locale_manager.h" |
| 15 #include "android_webview/browser/aw_printing_message_filter.h" | 15 #include "android_webview/browser/aw_printing_message_filter.h" |
| 16 #include "android_webview/browser/aw_quota_permission_context.h" | 16 #include "android_webview/browser/aw_quota_permission_context.h" |
| 17 #include "android_webview/browser/aw_web_preferences_populater.h" | 17 #include "android_webview/browser/aw_web_preferences_populater.h" |
| 18 #include "android_webview/browser/jni_dependency_factory.h" | 18 #include "android_webview/browser/jni_dependency_factory.h" |
| 19 #include "android_webview/browser/net/aw_url_request_context_getter.h" | 19 #include "android_webview/browser/net/aw_url_request_context_getter.h" |
| 20 #include "android_webview/browser/net_disk_cache_remover.h" | 20 #include "android_webview/browser/net_disk_cache_remover.h" |
| 21 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele
gate.h" | 21 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele
gate.h" |
| 22 #include "android_webview/common/aw_descriptors.h" | 22 #include "android_webview/common/aw_descriptors.h" |
| 23 #include "android_webview/common/aw_switches.h" | 23 #include "android_webview/common/aw_switches.h" |
| 24 #include "android_webview/common/render_view_messages.h" | 24 #include "android_webview/common/render_view_messages.h" |
| 25 #include "android_webview/common/url_constants.h" | 25 #include "android_webview/common/url_constants.h" |
| 26 #include "base/android/locale_utils.h" | 26 #include "base/android/locale_utils.h" |
| 27 #include "base/base_paths_android.h" | 27 #include "base/base_paths_android.h" |
| 28 #include "base/command_line.h" | 28 #include "base/command_line.h" |
| 29 #include "base/files/scoped_file.h" | 29 #include "base/files/scoped_file.h" |
| 30 #include "base/memory/ptr_util.h" |
| 30 #include "base/path_service.h" | 31 #include "base/path_service.h" |
| 31 #include "components/cdm/browser/cdm_message_filter_android.h" | 32 #include "components/cdm/browser/cdm_message_filter_android.h" |
| 32 #include "components/crash/content/browser/crash_micro_dump_manager_android.h" | 33 #include "components/crash/content/browser/crash_micro_dump_manager_android.h" |
| 33 #include "components/navigation_interception/intercept_navigation_delegate.h" | 34 #include "components/navigation_interception/intercept_navigation_delegate.h" |
| 34 #include "content/public/browser/access_token_store.h" | 35 #include "content/public/browser/access_token_store.h" |
| 35 #include "content/public/browser/browser_message_filter.h" | 36 #include "content/public/browser/browser_message_filter.h" |
| 36 #include "content/public/browser/browser_thread.h" | 37 #include "content/public/browser/browser_thread.h" |
| 37 #include "content/public/browser/child_process_security_policy.h" | 38 #include "content/public/browser/child_process_security_policy.h" |
| 38 #include "content/public/browser/client_certificate_delegate.h" | 39 #include "content/public/browser/client_certificate_delegate.h" |
| 39 #include "content/public/browser/navigation_handle.h" | 40 #include "content/public/browser/navigation_handle.h" |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 408 request_url, | 409 request_url, |
| 409 callback, | 410 callback, |
| 410 &cancel_request); | 411 &cancel_request); |
| 411 if (cancel_request) | 412 if (cancel_request) |
| 412 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_DENY; | 413 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_DENY; |
| 413 } | 414 } |
| 414 | 415 |
| 415 void AwContentBrowserClient::SelectClientCertificate( | 416 void AwContentBrowserClient::SelectClientCertificate( |
| 416 content::WebContents* web_contents, | 417 content::WebContents* web_contents, |
| 417 net::SSLCertRequestInfo* cert_request_info, | 418 net::SSLCertRequestInfo* cert_request_info, |
| 418 scoped_ptr<content::ClientCertificateDelegate> delegate) { | 419 std::unique_ptr<content::ClientCertificateDelegate> delegate) { |
| 419 AwContentsClientBridgeBase* client = | 420 AwContentsClientBridgeBase* client = |
| 420 AwContentsClientBridgeBase::FromWebContents(web_contents); | 421 AwContentsClientBridgeBase::FromWebContents(web_contents); |
| 421 if (client) | 422 if (client) |
| 422 client->SelectClientCertificate(cert_request_info, std::move(delegate)); | 423 client->SelectClientCertificate(cert_request_info, std::move(delegate)); |
| 423 } | 424 } |
| 424 | 425 |
| 425 bool AwContentBrowserClient::CanCreateWindow( | 426 bool AwContentBrowserClient::CanCreateWindow( |
| 426 const GURL& opener_url, | 427 const GURL& opener_url, |
| 427 const GURL& opener_top_level_frame_url, | 428 const GURL& opener_top_level_frame_url, |
| 428 const GURL& source_origin, | 429 const GURL& source_origin, |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 if (crash_signal_file.is_valid()) { | 531 if (crash_signal_file.is_valid()) { |
| 531 mappings->Transfer(kAndroidWebViewCrashSignalDescriptor, | 532 mappings->Transfer(kAndroidWebViewCrashSignalDescriptor, |
| 532 std::move(crash_signal_file)); | 533 std::move(crash_signal_file)); |
| 533 } | 534 } |
| 534 } | 535 } |
| 535 | 536 |
| 536 void AwContentBrowserClient::OverrideWebkitPrefs( | 537 void AwContentBrowserClient::OverrideWebkitPrefs( |
| 537 content::RenderViewHost* rvh, | 538 content::RenderViewHost* rvh, |
| 538 content::WebPreferences* web_prefs) { | 539 content::WebPreferences* web_prefs) { |
| 539 if (!preferences_populater_.get()) { | 540 if (!preferences_populater_.get()) { |
| 540 preferences_populater_ = make_scoped_ptr(native_factory_-> | 541 preferences_populater_ = |
| 541 CreateWebPreferencesPopulater()); | 542 base::WrapUnique(native_factory_->CreateWebPreferencesPopulater()); |
| 542 } | 543 } |
| 543 preferences_populater_->PopulateFor( | 544 preferences_populater_->PopulateFor( |
| 544 content::WebContents::FromRenderViewHost(rvh), web_prefs); | 545 content::WebContents::FromRenderViewHost(rvh), web_prefs); |
| 545 } | 546 } |
| 546 | 547 |
| 547 ScopedVector<content::NavigationThrottle> | 548 ScopedVector<content::NavigationThrottle> |
| 548 AwContentBrowserClient::CreateThrottlesForNavigation( | 549 AwContentBrowserClient::CreateThrottlesForNavigation( |
| 549 content::NavigationHandle* navigation_handle) { | 550 content::NavigationHandle* navigation_handle) { |
| 550 ScopedVector<content::NavigationThrottle> throttles; | 551 ScopedVector<content::NavigationThrottle> throttles; |
| 551 // We allow intercepting only navigations within main frames. This | 552 // We allow intercepting only navigations within main frames. This |
| 552 // is used to post onPageStarted. We handle shouldOverrideUrlLoading | 553 // is used to post onPageStarted. We handle shouldOverrideUrlLoading |
| 553 // via a sync IPC. | 554 // via a sync IPC. |
| 554 if (navigation_handle->IsInMainFrame()) { | 555 if (navigation_handle->IsInMainFrame()) { |
| 555 throttles.push_back( | 556 throttles.push_back( |
| 556 navigation_interception::InterceptNavigationDelegate::CreateThrottleFor( | 557 navigation_interception::InterceptNavigationDelegate::CreateThrottleFor( |
| 557 navigation_handle)); | 558 navigation_handle)); |
| 558 } | 559 } |
| 559 return throttles; | 560 return throttles; |
| 560 } | 561 } |
| 561 | 562 |
| 562 #if defined(VIDEO_HOLE) | 563 #if defined(VIDEO_HOLE) |
| 563 content::ExternalVideoSurfaceContainer* | 564 content::ExternalVideoSurfaceContainer* |
| 564 AwContentBrowserClient::OverrideCreateExternalVideoSurfaceContainer( | 565 AwContentBrowserClient::OverrideCreateExternalVideoSurfaceContainer( |
| 565 content::WebContents* web_contents) { | 566 content::WebContents* web_contents) { |
| 566 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents); | 567 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents); |
| 567 } | 568 } |
| 568 #endif | 569 #endif |
| 569 | 570 |
| 570 } // namespace android_webview | 571 } // namespace android_webview |
| OLD | NEW |