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

Unified 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 unnecessary change Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chrome_content_browser_client.cc
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index f57d75c04f098c77d5fe3bdf545caba967341b31..ad2b11a77b1fd854bc9958b64e5791118397578d 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -70,6 +70,8 @@
#include "chrome/browser/ssl/ssl_add_certificate.h"
#include "chrome/browser/ssl/ssl_blocking_page.h"
#include "chrome/browser/ssl/ssl_client_certificate_selector.h"
+#include "chrome/browser/ssl/ssl_error_handler.h"
+#include "chrome/browser/sync_file_system/local/sync_file_system_backend.h"
#include "chrome/browser/tab_contents/tab_util.h"
#include "chrome/browser/ui/blocked_content/blocked_window_params.h"
#include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h"
@@ -1722,13 +1724,6 @@ void ChromeContentBrowserClient::AllowCertificateError(
return;
}
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
- CaptivePortalTabHelper* captive_portal_tab_helper =
- CaptivePortalTabHelper::FromWebContents(tab);
- if (captive_portal_tab_helper)
- captive_portal_tab_helper->OnSSLCertError(ssl_info);
-#endif
-
// Otherwise, display an SSL blocking page. The interstitial page takes
// ownership of ssl_blocking_page.
int options_mask = 0;
@@ -1738,9 +1733,24 @@ void ChromeContentBrowserClient::AllowCertificateError(
options_mask |= SSLBlockingPage::STRICT_ENFORCEMENT;
if (expired_previous_decision)
options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED;
- SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage(
- tab, cert_error, ssl_info, request_url, options_mask, callback);
- ssl_blocking_page->Show();
+
+ // SSL interstitials aren't delayed if captive portal detection is disabled.
+ base::TimeDelta ssl_error_delay;
+#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
+ CaptivePortalTabHelper* captive_portal_tab_helper =
+ CaptivePortalTabHelper::FromWebContents(tab);
+ if (captive_portal_tab_helper) {
+ captive_portal_tab_helper->OnSSLCertError(ssl_info);
+ ssl_error_delay = captive_portal_tab_helper->GetSSLErrorDelay();
+ }
+#endif
mmenke 2014/10/30 19:28:01 I think this code makes much more sense in SSLErro
meacer 2014/11/06 21:21:55 Moved to SSLErrorHandler. The tests depend on Capt
+
+ SSLErrorHandler* ssl_error_handler = new SSLErrorHandler(
mmenke 2014/10/30 19:28:01 Suggest making this a static function, since nothi
meacer 2014/11/06 21:21:55 Done.
+ tab, cert_error, ssl_info, request_url,
+ options_mask,
+ ssl_error_delay,
+ callback);
mmenke 2014/10/30 19:28:01 nit: Should either fit args in as few lines as po
meacer 2014/11/06 21:21:55 Done.
+ ssl_error_handler->Handle();
}
void ChromeContentBrowserClient::SelectClientCertificate(

Powered by Google App Engine
This is Rietveld 408576698