| Index: chrome/browser/ui/startup/startup_browser_creator.cc
 | 
| diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc
 | 
| index 8cb76a7171ef019ee311ff43e2587668cccb3051..2af51d8755d951afa168fc547f323d055300bc82 100644
 | 
| --- a/chrome/browser/ui/startup/startup_browser_creator.cc
 | 
| +++ b/chrome/browser/ui/startup/startup_browser_creator.cc
 | 
| @@ -29,6 +29,7 @@
 | 
|  #include "base/strings/string_number_conversions.h"
 | 
|  #include "base/strings/string_split.h"
 | 
|  #include "base/strings/string_tokenizer.h"
 | 
| +#include "base/strings/string_util.h"
 | 
|  #include "base/strings/utf_string_conversions.h"
 | 
|  #include "base/threading/thread_restrictions.h"
 | 
|  #include "base/trace_event/trace_event.h"
 | 
| @@ -521,25 +522,27 @@ std::vector<GURL> StartupBrowserCreator::GetURLsFromCommandLine(
 | 
|        url = url_formatter::FixupRelativeFile(cur_dir, param);
 | 
|      }
 | 
|      // Exclude dangerous schemes.
 | 
| -    if (url.is_valid()) {
 | 
| -      ChildProcessSecurityPolicy* policy =
 | 
| -          ChildProcessSecurityPolicy::GetInstance();
 | 
| -      if (policy->IsWebSafeScheme(url.scheme()) ||
 | 
| -          url.SchemeIs(url::kFileScheme) ||
 | 
| +    if (!url.is_valid())
 | 
| +      continue;
 | 
| +
 | 
| +    ChildProcessSecurityPolicy* policy =
 | 
| +        ChildProcessSecurityPolicy::GetInstance();
 | 
| +    if (policy->IsWebSafeScheme(url.scheme()) ||
 | 
| +        url.SchemeIs(url::kFileScheme) ||
 | 
|  #if defined(OS_CHROMEOS)
 | 
| -          // In ChromeOS, allow any settings page to be specified on the command
 | 
| -          // line. See ExistingUserController::OnLoginSuccess.
 | 
| -          (url.spec().find(chrome::kChromeUISettingsURL) == 0) ||
 | 
| +        // In ChromeOS, allow any settings page to be specified on the command
 | 
| +        // line. See ExistingUserController::OnLoginSuccess.
 | 
| +        base::StartsWith(url.spec(), chrome::kChromeUISettingsURL,
 | 
| +                         base::CompareCase::SENSITIVE) ||
 | 
|  #else
 | 
| -          // Exposed for external cleaners to offer a settings reset to the
 | 
| -          // user. So the URL must match exactly, without any param or prefix.
 | 
| -          (url.spec() ==
 | 
| -           std::string(chrome::kChromeUISettingsURL) +
 | 
| -               chrome::kResetProfileSettingsSubPage) ||
 | 
| +        // Exposed for external cleaners to offer a settings reset to the
 | 
| +        // user. So the URL must match exactly, without any param or prefix.
 | 
| +        (url.spec() ==
 | 
| +         std::string(chrome::kChromeUISettingsURL) +
 | 
| +             chrome::kResetProfileSettingsSubPage) ||
 | 
|  #endif
 | 
| -          (url.spec().compare(url::kAboutBlankURL) == 0)) {
 | 
| -        urls.push_back(url);
 | 
| -      }
 | 
| +        (url.spec().compare(url::kAboutBlankURL) == 0)) {
 | 
| +      urls.push_back(url);
 | 
|      }
 | 
|    }
 | 
|    return urls;
 | 
| 
 |