| 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 639d5b2cb93b32b163a02154077598946e5bb364..d4a64a714d9c102fbb8147e06ebfcbda34206b1c 100644
|
| --- a/chrome/browser/ui/startup/startup_browser_creator.cc
|
| +++ b/chrome/browser/ui/startup/startup_browser_creator.cc
|
| @@ -30,6 +30,7 @@
|
| #include "base/strings/string_split.h"
|
| #include "base/strings/string_tokenizer.h"
|
| #include "base/strings/string_util.h"
|
| +#include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/threading/thread_restrictions.h"
|
| #include "base/trace_event/trace_event.h"
|
| @@ -525,6 +526,13 @@ std::vector<GURL> StartupBrowserCreator::GetURLsFromCommandLine(
|
| if (!url.is_valid())
|
| continue;
|
|
|
| +#if !defined(OS_CHROMEOS)
|
| + static const char kCctHash[] = "#CCT";
|
| + const std::string reset_settings_url =
|
| + base::StringPrintf("%s%s", chrome::kChromeUISettingsURL,
|
| + chrome::kResetProfileSettingsSubPage);
|
| +#endif
|
| +
|
| ChildProcessSecurityPolicy* policy =
|
| ChildProcessSecurityPolicy::GetInstance();
|
| if (policy->IsWebSafeScheme(url.scheme()) ||
|
| @@ -536,10 +544,9 @@ std::vector<GURL> StartupBrowserCreator::GetURLsFromCommandLine(
|
| 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) ||
|
| + // user. The allowed URLs must match exactly.
|
| + (url.spec() == reset_settings_url) ||
|
| + (url.spec() == reset_settings_url + kCctHash) ||
|
| #endif
|
| (url.spec().compare(url::kAboutBlankURL) == 0)) {
|
| urls.push_back(url);
|
|
|