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

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 trybot errors (memory leak + unused code) Created 5 years, 12 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 1676 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 } 1761 }
1760 1762
1761 prerender::PrerenderContents* prerender_contents = 1763 prerender::PrerenderContents* prerender_contents =
1762 prerender::PrerenderContents::FromWebContents(tab); 1764 prerender::PrerenderContents::FromWebContents(tab);
1763 if (prerender_contents) { 1765 if (prerender_contents) {
1764 prerender_contents->Destroy(prerender::FINAL_STATUS_SSL_ERROR); 1766 prerender_contents->Destroy(prerender::FINAL_STATUS_SSL_ERROR);
1765 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL; 1767 *result = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL;
1766 return; 1768 return;
1767 } 1769 }
1768 1770
1769 #if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
1770 CaptivePortalTabHelper* captive_portal_tab_helper =
1771 CaptivePortalTabHelper::FromWebContents(tab);
1772 if (captive_portal_tab_helper)
1773 captive_portal_tab_helper->OnSSLCertError(ssl_info);
1774 #endif
1775
1776 // Otherwise, display an SSL blocking page. The interstitial page takes 1771 // Otherwise, display an SSL blocking page. The interstitial page takes
1777 // ownership of ssl_blocking_page. 1772 // ownership of ssl_blocking_page.
1778 int options_mask = 0; 1773 int options_mask = 0;
1779 if (overridable) 1774 if (overridable)
1780 options_mask |= SSLBlockingPage::OVERRIDABLE; 1775 options_mask |= SSLBlockingPage::OVERRIDABLE;
1781 if (strict_enforcement) 1776 if (strict_enforcement)
1782 options_mask |= SSLBlockingPage::STRICT_ENFORCEMENT; 1777 options_mask |= SSLBlockingPage::STRICT_ENFORCEMENT;
1783 if (expired_previous_decision) 1778 if (expired_previous_decision)
1784 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED; 1779 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED;
1785 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage( 1780
1781 SSLErrorHandler::HandleSSLError(
1786 tab, cert_error, ssl_info, request_url, options_mask, callback); 1782 tab, cert_error, ssl_info, request_url, options_mask, callback);
1787 ssl_blocking_page->Show();
1788 } 1783 }
1789 1784
1790 void ChromeContentBrowserClient::SelectClientCertificate( 1785 void ChromeContentBrowserClient::SelectClientCertificate(
1791 int render_process_id, 1786 int render_process_id,
1792 int render_frame_id, 1787 int render_frame_id,
1793 net::SSLCertRequestInfo* cert_request_info, 1788 net::SSLCertRequestInfo* cert_request_info,
1794 const base::Callback<void(net::X509Certificate*)>& callback) { 1789 const base::Callback<void(net::X509Certificate*)>& callback) {
1795 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( 1790 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
1796 render_process_id, render_frame_id); 1791 render_process_id, render_frame_id);
1797 WebContents* tab = WebContents::FromRenderFrameHost(rfh); 1792 WebContents* tab = WebContents::FromRenderFrameHost(rfh);
(...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after
2618 switches::kDisableWebRtcEncryption, 2613 switches::kDisableWebRtcEncryption,
2619 }; 2614 };
2620 to_command_line->CopySwitchesFrom(from_command_line, 2615 to_command_line->CopySwitchesFrom(from_command_line,
2621 kWebRtcDevSwitchNames, 2616 kWebRtcDevSwitchNames,
2622 arraysize(kWebRtcDevSwitchNames)); 2617 arraysize(kWebRtcDevSwitchNames));
2623 } 2618 }
2624 } 2619 }
2625 #endif // defined(ENABLE_WEBRTC) 2620 #endif // defined(ENABLE_WEBRTC)
2626 2621
2627 } // namespace chrome 2622 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698