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

Unified Diff: chrome/browser/ssl/ssl_blocking_page.cc

Issue 1223233002: Common Name Mismatch Handler For WWW Subdomain Mismatch case (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolving Comments Created 5 years, 5 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/ssl/ssl_blocking_page.cc
diff --git a/chrome/browser/ssl/ssl_blocking_page.cc b/chrome/browser/ssl/ssl_blocking_page.cc
index b47aa2e0d7f9dcef3c79059196251988a2ab61a0..e18789b94d9f02c4e62b111f44287b3f53263a9e 100644
--- a/chrome/browser/ssl/ssl_blocking_page.cc
+++ b/chrome/browser/ssl/ssl_blocking_page.cc
@@ -32,6 +32,7 @@
#include "chrome/browser/ssl/ssl_cert_reporter.h"
#include "chrome/browser/ssl/ssl_error_classification.h"
#include "chrome/browser/ssl/ssl_error_info.h"
+#include "chrome/browser/ui/browser_navigator.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/chromium_strings.h"
@@ -237,7 +238,8 @@ SSLBlockingPage::SSLBlockingPage(content::WebContents* web_contents,
int options_mask,
const base::Time& time_triggered,
scoped_ptr<SSLCertReporter> ssl_cert_reporter,
- const base::Callback<void(bool)>& callback)
+ const base::Callback<void(bool)>& callback,
+ const GURL& suggested_url)
: SecurityInterstitialPage(web_contents, request_url),
callback_(callback),
cert_error_(cert_error),
@@ -250,7 +252,8 @@ SSLBlockingPage::SSLBlockingPage(content::WebContents* web_contents,
strict_enforcement_((options_mask & STRICT_ENFORCEMENT) != 0),
expired_but_previously_allowed_(
(options_mask & EXPIRED_BUT_PREVIOUSLY_ALLOWED) != 0),
- time_triggered_(time_triggered) {
+ time_triggered_(time_triggered),
+ suggested_url_(suggested_url) {
interstitial_reason_ =
IsErrorDueToBadClock(time_triggered_, cert_error_) ?
SSL_REASON_BAD_CLOCK : SSL_REASON_SSL;
@@ -382,6 +385,19 @@ void SSLBlockingPage::PopulateInterstitialStrings(
"primaryParagraph",
l10n_util::GetStringFUTF16(IDS_SSL_V2_PRIMARY_PARAGRAPH, url));
+ // If suggested url is not empty, display a modified message
palmer 2015/07/17 00:16:00 Nit: URL
Bhanu Dev 2015/07/23 20:11:06 Done.
+ // with a link to suggested_url.
+ if (!suggested_url_.is_empty()) {
+ load_time_data->SetBoolean("common_name_mismatch_interstitial", true);
+ load_time_data->SetString(
+ "primaryParagraph",
+ l10n_util::GetStringFUTF16(
+ IDS_SSL_COMMON_NAME_MISMATCH_PRIMARY_PARAGRAPH,
+ base::UTF8ToUTF16(request_url().host()),
+ base::UTF8ToUTF16(suggested_url_.host()),
+ base::UTF8ToUTF16(suggested_url_.spec())));
+ }
+
if (overridable_) {
load_time_data->SetBoolean("overridable", true);
@@ -390,6 +406,7 @@ void SSLBlockingPage::PopulateInterstitialStrings(
SSLErrorInfo::NetErrorToErrorType(cert_error_),
ssl_info_.cert.get(),
request_url());
+
load_time_data->SetString("explanationParagraph", error_info.details());
load_time_data->SetString(
"primaryButtonText",
@@ -539,6 +556,8 @@ void SSLBlockingPage::CommandReceived(const std::string& command) {
case CMD_OPEN_REPORTING_PRIVACY:
OpenExtendedReportingPrivacyPolicy();
break;
+ case CMD_NAVIGATE_SUGGESTED_URL:
+ NavigateToSuggestedURL();
case CMD_OPEN_DIAGNOSTIC:
// Google doesn't currently have a transparency report for SSL.
NOTREACHED() << "Unexpected command: " << command;
@@ -637,6 +656,14 @@ std::string SSLBlockingPage::GetSamplingEventName() const {
return event_name;
}
+void SSLBlockingPage::NavigateToSuggestedURL() const {
+ content::NavigationController::LoadURLParams load_params(suggested_url_);
+ // We use the transition type, PAGE_TRANSITION_TYPED for explicit
+ // navigation actions.
+ load_params.transition_type = ui::PAGE_TRANSITION_TYPED;
+ web_contents()->GetController().LoadURLWithParams(load_params);
+}
+
// static
bool SSLBlockingPage::IsOverridable(int options_mask,
const Profile* const profile) {

Powered by Google App Engine
This is Rietveld 408576698