Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: chrome/browser/chrome_content_browser_client.cc

Issue 318213002: Add custom interstitial for captive portals. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Android builds Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 #include "chrome/browser/search_engines/search_provider_install_state_message_fi lter.h" 63 #include "chrome/browser/search_engines/search_provider_install_state_message_fi lter.h"
64 #include "chrome/browser/services/gcm/push_messaging_permission_context.h" 64 #include "chrome/browser/services/gcm/push_messaging_permission_context.h"
65 #include "chrome/browser/services/gcm/push_messaging_permission_context_factory. h" 65 #include "chrome/browser/services/gcm/push_messaging_permission_context_factory. h"
66 #include "chrome/browser/signin/principals_message_filter.h" 66 #include "chrome/browser/signin/principals_message_filter.h"
67 #include "chrome/browser/speech/chrome_speech_recognition_manager_delegate.h" 67 #include "chrome/browser/speech/chrome_speech_recognition_manager_delegate.h"
68 #include "chrome/browser/speech/tts_controller.h" 68 #include "chrome/browser/speech/tts_controller.h"
69 #include "chrome/browser/speech/tts_message_filter.h" 69 #include "chrome/browser/speech/tts_message_filter.h"
70 #include "chrome/browser/ssl/ssl_add_certificate.h" 70 #include "chrome/browser/ssl/ssl_add_certificate.h"
71 #include "chrome/browser/ssl/ssl_blocking_page.h" 71 #include "chrome/browser/ssl/ssl_blocking_page.h"
72 #include "chrome/browser/ssl/ssl_client_certificate_selector.h" 72 #include "chrome/browser/ssl/ssl_client_certificate_selector.h"
73 #include "chrome/browser/ssl/ssl_error_handler.h"
74 #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h"
73 #include "chrome/browser/tab_contents/tab_util.h" 75 #include "chrome/browser/tab_contents/tab_util.h"
74 #include "chrome/browser/ui/blocked_content/blocked_window_params.h" 76 #include "chrome/browser/ui/blocked_content/blocked_window_params.h"
75 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h" 77 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h"
76 #include "chrome/browser/ui/chrome_select_file_policy.h" 78 #include "chrome/browser/ui/chrome_select_file_policy.h"
77 #include "chrome/browser/ui/sync/sync_promo_ui.h" 79 #include "chrome/browser/ui/sync/sync_promo_ui.h"
78 #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h" 80 #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h"
79 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" 81 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
80 #include "chrome/common/chrome_constants.h" 82 #include "chrome/common/chrome_constants.h"
81 #include "chrome/common/chrome_paths.h" 83 #include "chrome/common/chrome_paths.h"
82 #include "chrome/common/chrome_switches.h" 84 #include "chrome/common/chrome_switches.h"
(...skipping 1681 matching lines...) Expand 10 before | Expand all | Expand 10 after
1764 } 1766 }
1765 1767
1766 prerender::PrerenderContents* prerender_contents = 1768 prerender::PrerenderContents* prerender_contents =
1767 prerender::PrerenderContents::FromWebContents(tab); 1769 prerender::PrerenderContents::FromWebContents(tab);
1768 if (prerender_contents) { 1770 if (prerender_contents) {
1769 prerender_contents->Destroy(prerender::FINAL_STATUS_SSL_ERROR); 1771 prerender_contents->Destroy(prerender::FINAL_STATUS_SSL_ERROR);
1770 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL; 1772 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL;
1771 return; 1773 return;
1772 } 1774 }
1773 1775
1774 #if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
1775 CaptivePortalTabHelper* captive_portal_tab_helper =
1776 CaptivePortalTabHelper::FromWebContents(tab);
1777 if (captive_portal_tab_helper)
1778 captive_portal_tab_helper->OnSSLCertError(ssl_info);
1779 #endif
1780
1781 // Otherwise, display an SSL blocking page. The interstitial page takes 1776 // Otherwise, display an SSL blocking page. The interstitial page takes
1782 // ownership of ssl_blocking_page. 1777 // ownership of ssl_blocking_page.
1783 int options_mask = 0; 1778 int options_mask = 0;
1784 if (overridable) 1779 if (overridable)
1785 options_mask |= SSLBlockingPage::OVERRIDABLE; 1780 options_mask |= SSLBlockingPage::OVERRIDABLE;
1786 if (strict_enforcement) 1781 if (strict_enforcement)
1787 options_mask |= SSLBlockingPage::STRICT_ENFORCEMENT; 1782 options_mask |= SSLBlockingPage::STRICT_ENFORCEMENT;
1788 if (expired_previous_decision) 1783 if (expired_previous_decision)
1789 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED; 1784 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED;
1790 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage( 1785
1786 SSLErrorHandler::HandleSSLError(
1791 tab, cert_error, ssl_info, request_url, options_mask, callback); 1787 tab, cert_error, ssl_info, request_url, options_mask, callback);
1792 ssl_blocking_page->Show();
1793 } 1788 }
1794 1789
1795 void ChromeContentBrowserClient::SelectClientCertificate( 1790 void ChromeContentBrowserClient::SelectClientCertificate(
1796 int render_process_id, 1791 int render_process_id,
1797 int render_frame_id, 1792 int render_frame_id,
1798 net::SSLCertRequestInfo* cert_request_info, 1793 net::SSLCertRequestInfo* cert_request_info,
1799 const base::Callback<void(net::X509Certificate*)>& callback) { 1794 const base::Callback<void(net::X509Certificate*)>& callback) {
1800 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( 1795 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
1801 render_process_id, render_frame_id); 1796 render_process_id, render_frame_id);
1802 WebContents* tab = WebContents::FromRenderFrameHost(rfh); 1797 WebContents* tab = WebContents::FromRenderFrameHost(rfh);
(...skipping 821 matching lines...) Expand 10 before | Expand all | Expand 10 after
2624 switches::kDisableWebRtcEncryption, 2619 switches::kDisableWebRtcEncryption,
2625 }; 2620 };
2626 to_command_line->CopySwitchesFrom(from_command_line, 2621 to_command_line->CopySwitchesFrom(from_command_line,
2627 kWebRtcDevSwitchNames, 2622 kWebRtcDevSwitchNames,
2628 arraysize(kWebRtcDevSwitchNames)); 2623 arraysize(kWebRtcDevSwitchNames));
2629 } 2624 }
2630 } 2625 }
2631 #endif // defined(ENABLE_WEBRTC) 2626 #endif // defined(ENABLE_WEBRTC)
2632 2627
2633 } // namespace chrome 2628 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698