 Chromium Code Reviews
 Chromium Code Reviews Issue 813873005:
  Add field trial and flag to mark HTTP as non-secure.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 813873005:
  Add field trial and flag to mark HTTP as non-secure.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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..1024f83fd54ff44c8a8510d7d540339e902e4216 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; | 
| + else if (choice == switches::kMarkNonSecureAsDubious) | 
| 
sky
2015/01/22 21:56:47
nit: (chromium) style guide say no else after retu
 
palmer
2015/01/22 22:01:01
Done.
 | 
| + return ToolbarModel::SECURITY_WARNING; | 
| + else if (choice == switches::kMarkNonSecureAsNonSecure) | 
| + return ToolbarModel::SECURITY_ERROR; | 
| + | 
| + std::string group = base::FieldTrialList::FindFullName("MarkNonSecureAs"); | 
| 
sky
2015/01/22 21:56:47
Is it common not to use constants for this?
 
palmer
2015/01/22 22:01:01
Searching the code shows about 50/50.
 | 
| + if (group == switches::kMarkNonSecureAsNeutral) | 
| + return ToolbarModel::NONE; | 
| + else if (group == switches::kMarkNonSecureAsDubious) | 
| + return ToolbarModel::SECURITY_WARNING; | 
| + else 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; |