Index: chrome/browser/ui/toolbar/toolbar_model_impl.cc |
diff --git a/chrome/browser/ui/toolbar/toolbar_model_impl.cc b/chrome/browser/ui/toolbar/toolbar_model_impl.cc |
index 8f2edcd0c7b07c1d13c637eff1042f1a1c57b671..bff5959d55a6d40d57330eb5bb8f40e6bf005a77 100644 |
--- a/chrome/browser/ui/toolbar/toolbar_model_impl.cc |
+++ b/chrome/browser/ui/toolbar/toolbar_model_impl.cc |
@@ -65,6 +65,27 @@ bool GetSecurityLevelForFieldTrialGroup(const std::string& group, |
return true; |
} |
+ToolbarModel::SecurityLevel GetSecurityLevelForNonSecureFieldTrial() { |
+ std::string choice = base::CommandLine::ForCurrentProcess()-> |
+ GetSwitchValueASCII(switches::kMarkNonSecureAs); |
+ if (choice == switches::kMarkNonSecureAsNeutral) |
+ return ToolbarModel::NONE; |
+ if (choice == switches::kMarkNonSecureAsDubious) |
+ return ToolbarModel::SECURITY_WARNING; |
+ if (choice == switches::kMarkNonSecureAsNonSecure) |
+ return ToolbarModel::SECURITY_ERROR; |
+ |
+ std::string group = base::FieldTrialList::FindFullName("MarkNonSecureAs"); |
+ if (group == switches::kMarkNonSecureAsNeutral) |
+ return ToolbarModel::NONE; |
+ if (group == switches::kMarkNonSecureAsDubious) |
+ return ToolbarModel::SECURITY_WARNING; |
+ if (group == switches::kMarkNonSecureAsNonSecure) |
+ return ToolbarModel::SECURITY_ERROR; |
+ |
+ return ToolbarModel::NONE; |
+} |
+ |
} // namespace |
ToolbarModelImpl::ToolbarModelImpl(ToolbarModelDelegate* delegate) |
@@ -87,9 +108,15 @@ ToolbarModel::SecurityLevel ToolbarModelImpl::GetSecurityLevelForWebContents( |
const SSLStatus& ssl = entry->GetSSL(); |
switch (ssl.security_style) { |
case content::SECURITY_STYLE_UNKNOWN: |
- case content::SECURITY_STYLE_UNAUTHENTICATED: |
return NONE; |
+ case content::SECURITY_STYLE_UNAUTHENTICATED: { |
+ const GURL& url = entry->GetURL(); |
+ if (url.SchemeIs("http") || url.SchemeIs("ftp")) |
+ return GetSecurityLevelForNonSecureFieldTrial(); |
+ return NONE; |
+ } |
+ |
case content::SECURITY_STYLE_AUTHENTICATION_BROKEN: |
return SECURITY_ERROR; |