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 |