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

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: Remove notification, add observer for SSLErrorHandler timer. Created 6 years 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 #include "chrome/browser/search_engines/search_provider_install_state_message_fi lter.h" 62 #include "chrome/browser/search_engines/search_provider_install_state_message_fi lter.h"
63 #include "chrome/browser/services/gcm/push_messaging_permission_context.h" 63 #include "chrome/browser/services/gcm/push_messaging_permission_context.h"
64 #include "chrome/browser/services/gcm/push_messaging_permission_context_factory. h" 64 #include "chrome/browser/services/gcm/push_messaging_permission_context_factory. h"
65 #include "chrome/browser/signin/principals_message_filter.h" 65 #include "chrome/browser/signin/principals_message_filter.h"
66 #include "chrome/browser/speech/chrome_speech_recognition_manager_delegate.h" 66 #include "chrome/browser/speech/chrome_speech_recognition_manager_delegate.h"
67 #include "chrome/browser/speech/tts_controller.h" 67 #include "chrome/browser/speech/tts_controller.h"
68 #include "chrome/browser/speech/tts_message_filter.h" 68 #include "chrome/browser/speech/tts_message_filter.h"
69 #include "chrome/browser/ssl/ssl_add_certificate.h" 69 #include "chrome/browser/ssl/ssl_add_certificate.h"
70 #include "chrome/browser/ssl/ssl_blocking_page.h" 70 #include "chrome/browser/ssl/ssl_blocking_page.h"
71 #include "chrome/browser/ssl/ssl_client_certificate_selector.h" 71 #include "chrome/browser/ssl/ssl_client_certificate_selector.h"
72 #include "chrome/browser/ssl/ssl_error_handler.h"
73 #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h"
72 #include "chrome/browser/tab_contents/tab_util.h" 74 #include "chrome/browser/tab_contents/tab_util.h"
73 #include "chrome/browser/ui/blocked_content/blocked_window_params.h" 75 #include "chrome/browser/ui/blocked_content/blocked_window_params.h"
74 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h" 76 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h"
75 #include "chrome/browser/ui/chrome_select_file_policy.h" 77 #include "chrome/browser/ui/chrome_select_file_policy.h"
76 #include "chrome/browser/ui/sync/sync_promo_ui.h" 78 #include "chrome/browser/ui/sync/sync_promo_ui.h"
77 #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h" 79 #include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h"
78 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" 80 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
79 #include "chrome/common/chrome_constants.h" 81 #include "chrome/common/chrome_constants.h"
80 #include "chrome/common/chrome_paths.h" 82 #include "chrome/common/chrome_paths.h"
81 #include "chrome/common/chrome_switches.h" 83 #include "chrome/common/chrome_switches.h"
(...skipping 1675 matching lines...) Expand 10 before | Expand all | Expand 10 after
1757 } 1759 }
1758 1760
1759 prerender::PrerenderContents* prerender_contents = 1761 prerender::PrerenderContents* prerender_contents =
1760 prerender::PrerenderContents::FromWebContents(tab); 1762 prerender::PrerenderContents::FromWebContents(tab);
1761 if (prerender_contents) { 1763 if (prerender_contents) {
1762 prerender_contents->Destroy(prerender::FINAL_STATUS_SSL_ERROR); 1764 prerender_contents->Destroy(prerender::FINAL_STATUS_SSL_ERROR);
1763 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL; 1765 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL;
1764 return; 1766 return;
1765 } 1767 }
1766 1768
1767 #if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
1768 CaptivePortalTabHelper* captive_portal_tab_helper =
1769 CaptivePortalTabHelper::FromWebContents(tab);
1770 if (captive_portal_tab_helper)
1771 captive_portal_tab_helper->OnSSLCertError(ssl_info);
1772 #endif
1773
1774 // Otherwise, display an SSL blocking page. The interstitial page takes 1769 // Otherwise, display an SSL blocking page. The interstitial page takes
1775 // ownership of ssl_blocking_page. 1770 // ownership of ssl_blocking_page.
1776 int options_mask = 0; 1771 int options_mask = 0;
1777 if (overridable) 1772 if (overridable)
1778 options_mask |= SSLBlockingPage::OVERRIDABLE; 1773 options_mask |= SSLBlockingPage::OVERRIDABLE;
1779 if (strict_enforcement) 1774 if (strict_enforcement)
1780 options_mask |= SSLBlockingPage::STRICT_ENFORCEMENT; 1775 options_mask |= SSLBlockingPage::STRICT_ENFORCEMENT;
1781 if (expired_previous_decision) 1776 if (expired_previous_decision)
1782 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED; 1777 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED;
1783 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage( 1778
1779 SSLErrorHandler::HandleSSLError(
1784 tab, cert_error, ssl_info, request_url, options_mask, callback); 1780 tab, cert_error, ssl_info, request_url, options_mask, callback);
1785 ssl_blocking_page->Show();
1786 } 1781 }
1787 1782
1788 void ChromeContentBrowserClient::SelectClientCertificate( 1783 void ChromeContentBrowserClient::SelectClientCertificate(
1789 int render_process_id, 1784 int render_process_id,
1790 int render_frame_id, 1785 int render_frame_id,
1791 net::SSLCertRequestInfo* cert_request_info, 1786 net::SSLCertRequestInfo* cert_request_info,
1792 const base::Callback<void(net::X509Certificate*)>& callback) { 1787 const base::Callback<void(net::X509Certificate*)>& callback) {
1793 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( 1788 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
1794 render_process_id, render_frame_id); 1789 render_process_id, render_frame_id);
1795 WebContents* tab = WebContents::FromRenderFrameHost(rfh); 1790 WebContents* tab = WebContents::FromRenderFrameHost(rfh);
(...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after
2674 switches::kDisableWebRtcEncryption, 2669 switches::kDisableWebRtcEncryption,
2675 }; 2670 };
2676 to_command_line->CopySwitchesFrom(from_command_line, 2671 to_command_line->CopySwitchesFrom(from_command_line,
2677 kWebRtcDevSwitchNames, 2672 kWebRtcDevSwitchNames,
2678 arraysize(kWebRtcDevSwitchNames)); 2673 arraysize(kWebRtcDevSwitchNames));
2679 } 2674 }
2680 } 2675 }
2681 #endif // defined(ENABLE_WEBRTC) 2676 #endif // defined(ENABLE_WEBRTC)
2682 2677
2683 } // namespace chrome 2678 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698