| 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 "chrome/browser/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 mojo::InterfaceRequest<device::usb::DeviceManager> request) { | 657 mojo::InterfaceRequest<device::usb::DeviceManager> request) { |
| 658 WebContents* web_contents = | 658 WebContents* web_contents = |
| 659 WebContents::FromRenderFrameHost(render_frame_host); | 659 WebContents::FromRenderFrameHost(render_frame_host); |
| 660 if (!web_contents) { | 660 if (!web_contents) { |
| 661 NOTREACHED(); | 661 NOTREACHED(); |
| 662 return; | 662 return; |
| 663 } | 663 } |
| 664 | 664 |
| 665 UsbTabHelper* tab_helper = | 665 UsbTabHelper* tab_helper = |
| 666 UsbTabHelper::GetOrCreateForWebContents(web_contents); | 666 UsbTabHelper::GetOrCreateForWebContents(web_contents); |
| 667 tab_helper->CreateDeviceManager(render_frame_host, request.Pass()); | 667 tab_helper->CreateDeviceManager(render_frame_host, std::move(request)); |
| 668 } | 668 } |
| 669 | 669 |
| 670 #if !defined(OS_ANDROID) && !defined(OS_IOS) | 670 #if !defined(OS_ANDROID) && !defined(OS_IOS) |
| 671 void CreateWebUsbPermissionBubble( | 671 void CreateWebUsbPermissionBubble( |
| 672 RenderFrameHost* render_frame_host, | 672 RenderFrameHost* render_frame_host, |
| 673 mojo::InterfaceRequest<webusb::WebUsbPermissionBubble> request) { | 673 mojo::InterfaceRequest<webusb::WebUsbPermissionBubble> request) { |
| 674 WebContents* web_contents = | 674 WebContents* web_contents = |
| 675 WebContents::FromRenderFrameHost(render_frame_host); | 675 WebContents::FromRenderFrameHost(render_frame_host); |
| 676 if (!web_contents) { | 676 if (!web_contents) { |
| 677 NOTREACHED(); | 677 NOTREACHED(); |
| 678 return; | 678 return; |
| 679 } | 679 } |
| 680 | 680 |
| 681 UsbTabHelper* tab_helper = | 681 UsbTabHelper* tab_helper = |
| 682 UsbTabHelper::GetOrCreateForWebContents(web_contents); | 682 UsbTabHelper::GetOrCreateForWebContents(web_contents); |
| 683 tab_helper->CreatePermissionBubble(render_frame_host, request.Pass()); | 683 tab_helper->CreatePermissionBubble(render_frame_host, std::move(request)); |
| 684 } | 684 } |
| 685 #endif // !defined(OS_ANDROID) && !defined(OS_IOS) | 685 #endif // !defined(OS_ANDROID) && !defined(OS_IOS) |
| 686 | 686 |
| 687 } // namespace | 687 } // namespace |
| 688 | 688 |
| 689 ChromeContentBrowserClient::ChromeContentBrowserClient() | 689 ChromeContentBrowserClient::ChromeContentBrowserClient() |
| 690 : | 690 : |
| 691 weak_factory_(this) { | 691 weak_factory_(this) { |
| 692 #if defined(ENABLE_PLUGINS) | 692 #if defined(ENABLE_PLUGINS) |
| 693 for (size_t i = 0; i < arraysize(kPredefinedAllowedDevChannelOrigins); ++i) | 693 for (size_t i = 0; i < arraysize(kPredefinedAllowedDevChannelOrigins); ++i) |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1050 return webui::LogWebUIUrl(web_ui_url); | 1050 return webui::LogWebUIUrl(web_ui_url); |
| 1051 } | 1051 } |
| 1052 | 1052 |
| 1053 net::URLRequestContextGetter* | 1053 net::URLRequestContextGetter* |
| 1054 ChromeContentBrowserClient::CreateRequestContext( | 1054 ChromeContentBrowserClient::CreateRequestContext( |
| 1055 content::BrowserContext* browser_context, | 1055 content::BrowserContext* browser_context, |
| 1056 content::ProtocolHandlerMap* protocol_handlers, | 1056 content::ProtocolHandlerMap* protocol_handlers, |
| 1057 content::URLRequestInterceptorScopedVector request_interceptors) { | 1057 content::URLRequestInterceptorScopedVector request_interceptors) { |
| 1058 Profile* profile = Profile::FromBrowserContext(browser_context); | 1058 Profile* profile = Profile::FromBrowserContext(browser_context); |
| 1059 return profile->CreateRequestContext(protocol_handlers, | 1059 return profile->CreateRequestContext(protocol_handlers, |
| 1060 request_interceptors.Pass()); | 1060 std::move(request_interceptors)); |
| 1061 } | 1061 } |
| 1062 | 1062 |
| 1063 net::URLRequestContextGetter* | 1063 net::URLRequestContextGetter* |
| 1064 ChromeContentBrowserClient::CreateRequestContextForStoragePartition( | 1064 ChromeContentBrowserClient::CreateRequestContextForStoragePartition( |
| 1065 content::BrowserContext* browser_context, | 1065 content::BrowserContext* browser_context, |
| 1066 const base::FilePath& partition_path, | 1066 const base::FilePath& partition_path, |
| 1067 bool in_memory, | 1067 bool in_memory, |
| 1068 content::ProtocolHandlerMap* protocol_handlers, | 1068 content::ProtocolHandlerMap* protocol_handlers, |
| 1069 content::URLRequestInterceptorScopedVector request_interceptors) { | 1069 content::URLRequestInterceptorScopedVector request_interceptors) { |
| 1070 Profile* profile = Profile::FromBrowserContext(browser_context); | 1070 Profile* profile = Profile::FromBrowserContext(browser_context); |
| 1071 return profile->CreateRequestContextForStoragePartition( | 1071 return profile->CreateRequestContextForStoragePartition( |
| 1072 partition_path, | 1072 partition_path, in_memory, protocol_handlers, |
| 1073 in_memory, | 1073 std::move(request_interceptors)); |
| 1074 protocol_handlers, | |
| 1075 request_interceptors.Pass()); | |
| 1076 } | 1074 } |
| 1077 | 1075 |
| 1078 bool ChromeContentBrowserClient::IsHandledURL(const GURL& url) { | 1076 bool ChromeContentBrowserClient::IsHandledURL(const GURL& url) { |
| 1079 return ProfileIOData::IsHandledURL(url); | 1077 return ProfileIOData::IsHandledURL(url); |
| 1080 } | 1078 } |
| 1081 | 1079 |
| 1082 bool ChromeContentBrowserClient::CanCommitURL( | 1080 bool ChromeContentBrowserClient::CanCommitURL( |
| 1083 content::RenderProcessHost* process_host, | 1081 content::RenderProcessHost* process_host, |
| 1084 const GURL& url) { | 1082 const GURL& url) { |
| 1085 #if defined(ENABLE_EXTENSIONS) | 1083 #if defined(ENABLE_EXTENSIONS) |
| (...skipping 932 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2018 options_mask |= SSLErrorUI::EXPIRED_BUT_PREVIOUSLY_ALLOWED; | 2016 options_mask |= SSLErrorUI::EXPIRED_BUT_PREVIOUSLY_ALLOWED; |
| 2019 | 2017 |
| 2020 safe_browsing::SafeBrowsingService* safe_browsing_service = | 2018 safe_browsing::SafeBrowsingService* safe_browsing_service = |
| 2021 g_browser_process->safe_browsing_service(); | 2019 g_browser_process->safe_browsing_service(); |
| 2022 scoped_ptr<SafeBrowsingSSLCertReporter> cert_reporter( | 2020 scoped_ptr<SafeBrowsingSSLCertReporter> cert_reporter( |
| 2023 new SafeBrowsingSSLCertReporter(safe_browsing_service | 2021 new SafeBrowsingSSLCertReporter(safe_browsing_service |
| 2024 ? safe_browsing_service->ui_manager() | 2022 ? safe_browsing_service->ui_manager() |
| 2025 : nullptr)); | 2023 : nullptr)); |
| 2026 SSLErrorHandler::HandleSSLError(web_contents, cert_error, ssl_info, | 2024 SSLErrorHandler::HandleSSLError(web_contents, cert_error, ssl_info, |
| 2027 request_url, options_mask, | 2025 request_url, options_mask, |
| 2028 cert_reporter.Pass(), callback); | 2026 std::move(cert_reporter), callback); |
| 2029 } | 2027 } |
| 2030 | 2028 |
| 2031 void ChromeContentBrowserClient::SelectClientCertificate( | 2029 void ChromeContentBrowserClient::SelectClientCertificate( |
| 2032 content::WebContents* web_contents, | 2030 content::WebContents* web_contents, |
| 2033 net::SSLCertRequestInfo* cert_request_info, | 2031 net::SSLCertRequestInfo* cert_request_info, |
| 2034 scoped_ptr<content::ClientCertificateDelegate> delegate) { | 2032 scoped_ptr<content::ClientCertificateDelegate> delegate) { |
| 2035 prerender::PrerenderContents* prerender_contents = | 2033 prerender::PrerenderContents* prerender_contents = |
| 2036 prerender::PrerenderContents::FromWebContents(web_contents); | 2034 prerender::PrerenderContents::FromWebContents(web_contents); |
| 2037 if (prerender_contents) { | 2035 if (prerender_contents) { |
| 2038 prerender_contents->Destroy( | 2036 prerender_contents->Destroy( |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2069 delegate->ContinueWithCertificate(all_client_certs[i].get()); | 2067 delegate->ContinueWithCertificate(all_client_certs[i].get()); |
| 2070 return; | 2068 return; |
| 2071 } | 2069 } |
| 2072 } | 2070 } |
| 2073 } else { | 2071 } else { |
| 2074 NOTREACHED(); | 2072 NOTREACHED(); |
| 2075 } | 2073 } |
| 2076 } | 2074 } |
| 2077 | 2075 |
| 2078 chrome::ShowSSLClientCertificateSelector(web_contents, cert_request_info, | 2076 chrome::ShowSSLClientCertificateSelector(web_contents, cert_request_info, |
| 2079 delegate.Pass()); | 2077 std::move(delegate)); |
| 2080 } | 2078 } |
| 2081 | 2079 |
| 2082 void ChromeContentBrowserClient::AddCertificate( | 2080 void ChromeContentBrowserClient::AddCertificate( |
| 2083 net::CertificateMimeType cert_type, | 2081 net::CertificateMimeType cert_type, |
| 2084 const void* cert_data, | 2082 const void* cert_data, |
| 2085 size_t cert_size, | 2083 size_t cert_size, |
| 2086 int render_process_id, | 2084 int render_process_id, |
| 2087 int render_frame_id) { | 2085 int render_frame_id) { |
| 2088 chrome::SSLAddCertificate(cert_type, cert_data, cert_size, | 2086 chrome::SSLAddCertificate(cert_type, cert_data, cert_size, |
| 2089 render_process_id, render_frame_id); | 2087 render_process_id, render_frame_id); |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2701 handle) | 2699 handle) |
| 2702 .Pass()); | 2700 .Pass()); |
| 2703 } | 2701 } |
| 2704 #else | 2702 #else |
| 2705 if (handle->IsInMainFrame()) { | 2703 if (handle->IsInMainFrame()) { |
| 2706 // Redirect some navigations to apps that have registered matching URL | 2704 // Redirect some navigations to apps that have registered matching URL |
| 2707 // handlers ('url_handlers' in the manifest). | 2705 // handlers ('url_handlers' in the manifest). |
| 2708 scoped_ptr<content::NavigationThrottle> url_to_app_throttle = | 2706 scoped_ptr<content::NavigationThrottle> url_to_app_throttle = |
| 2709 AppUrlRedirector::MaybeCreateThrottleFor(handle); | 2707 AppUrlRedirector::MaybeCreateThrottleFor(handle); |
| 2710 if (url_to_app_throttle) | 2708 if (url_to_app_throttle) |
| 2711 throttles.push_back(url_to_app_throttle.Pass()); | 2709 throttles.push_back(std::move(url_to_app_throttle)); |
| 2712 } | 2710 } |
| 2713 #endif | 2711 #endif |
| 2714 | 2712 |
| 2715 #if defined(OS_CHROMEOS) | 2713 #if defined(OS_CHROMEOS) |
| 2716 // Check if we need to add merge session throttle. This throttle will postpone | 2714 // Check if we need to add merge session throttle. This throttle will postpone |
| 2717 // loading of main frames. | 2715 // loading of main frames. |
| 2718 if (handle->IsInMainFrame()) { | 2716 if (handle->IsInMainFrame()) { |
| 2719 // Add interstitial page while merge session process (cookie reconstruction | 2717 // Add interstitial page while merge session process (cookie reconstruction |
| 2720 // from OAuth2 refresh token in ChromeOS login) is still in progress while | 2718 // from OAuth2 refresh token in ChromeOS login) is still in progress while |
| 2721 // we are attempting to load a google property. | 2719 // we are attempting to load a google property. |
| 2722 if (!merge_session_throttling_utils::AreAllSessionMergedAlready() && | 2720 if (!merge_session_throttling_utils::AreAllSessionMergedAlready() && |
| 2723 handle->GetURL().SchemeIsHTTPOrHTTPS()) { | 2721 handle->GetURL().SchemeIsHTTPOrHTTPS()) { |
| 2724 throttles.push_back(MergeSessionNavigationThrottle::Create(handle)); | 2722 throttles.push_back(MergeSessionNavigationThrottle::Create(handle)); |
| 2725 } | 2723 } |
| 2726 } | 2724 } |
| 2727 #endif | 2725 #endif |
| 2728 | 2726 |
| 2729 return throttles.Pass(); | 2727 return throttles; |
| 2730 } | 2728 } |
| 2731 | 2729 |
| 2732 content::DevToolsManagerDelegate* | 2730 content::DevToolsManagerDelegate* |
| 2733 ChromeContentBrowserClient::GetDevToolsManagerDelegate() { | 2731 ChromeContentBrowserClient::GetDevToolsManagerDelegate() { |
| 2734 return new ChromeDevToolsManagerDelegate(); | 2732 return new ChromeDevToolsManagerDelegate(); |
| 2735 } | 2733 } |
| 2736 | 2734 |
| 2737 content::TracingDelegate* ChromeContentBrowserClient::GetTracingDelegate() { | 2735 content::TracingDelegate* ChromeContentBrowserClient::GetTracingDelegate() { |
| 2738 #if !defined(OS_ANDROID) | 2736 #if !defined(OS_ANDROID) |
| 2739 return new ChromeTracingDelegate(); | 2737 return new ChromeTracingDelegate(); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2800 if (channel <= kMaxDisableEncryptionChannel) { | 2798 if (channel <= kMaxDisableEncryptionChannel) { |
| 2801 static const char* const kWebRtcDevSwitchNames[] = { | 2799 static const char* const kWebRtcDevSwitchNames[] = { |
| 2802 switches::kDisableWebRtcEncryption, | 2800 switches::kDisableWebRtcEncryption, |
| 2803 }; | 2801 }; |
| 2804 to_command_line->CopySwitchesFrom(from_command_line, | 2802 to_command_line->CopySwitchesFrom(from_command_line, |
| 2805 kWebRtcDevSwitchNames, | 2803 kWebRtcDevSwitchNames, |
| 2806 arraysize(kWebRtcDevSwitchNames)); | 2804 arraysize(kWebRtcDevSwitchNames)); |
| 2807 } | 2805 } |
| 2808 } | 2806 } |
| 2809 #endif // defined(ENABLE_WEBRTC) | 2807 #endif // defined(ENABLE_WEBRTC) |
| OLD | NEW |