| 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;
|
|
|