| Index: chrome/common/switch_utils.cc
|
| diff --git a/chrome/common/switch_utils.cc b/chrome/common/switch_utils.cc
|
| index 1b0f6c6cf752ad8612a4f923fdaa60a227167e8e..29acd4e7fbe68a06c91c9661ba49437812bbff35 100644
|
| --- a/chrome/common/switch_utils.cc
|
| +++ b/chrome/common/switch_utils.cc
|
| @@ -7,10 +7,17 @@
|
| #include <stddef.h>
|
|
|
| #include "base/macros.h"
|
| +#include "build/build_config.h"
|
| #include "chrome/common/chrome_switches.h"
|
|
|
| +#if defined(OS_WIN)
|
| +#include "base/strings/string_util.h"
|
| +#endif // defined(OS_WIN)
|
| +
|
| namespace switches {
|
|
|
| +namespace {
|
| +
|
| // Switches enumerated here will be removed when a background instance of
|
| // Chrome restarts itself. If your key is designed to only be used once,
|
| // or if it does not make sense when restarting a background instance to
|
| @@ -26,10 +33,25 @@ const char* const kSwitchesToRemoveOnAutorestart[] = {
|
| switches::kWinJumplistAction
|
| };
|
|
|
| +} // namespace
|
| +
|
| void RemoveSwitchesForAutostart(
|
| std::map<std::string, base::CommandLine::StringType>* switch_list) {
|
| for (size_t i = 0; i < arraysize(kSwitchesToRemoveOnAutorestart); ++i)
|
| switch_list->erase(kSwitchesToRemoveOnAutorestart[i]);
|
| +
|
| +#if defined(OS_WIN)
|
| + // The relaunched browser process shouldn't reuse the /prefetch:# switch of
|
| + // the current process because the process type can change (e.g. a process
|
| + // initially launched in background can be relaunched in foreground).
|
| + static const char kPrefetchSwitchPrefix[] = "prefetch:";
|
| + auto it = switch_list->lower_bound(kPrefetchSwitchPrefix);
|
| + if (it != switch_list->end() &&
|
| + base::StartsWith(it->first, kPrefetchSwitchPrefix,
|
| + base::CompareCase::SENSITIVE)) {
|
| + switch_list->erase(it);
|
| + }
|
| +#endif // defined(OS_WIN)
|
| }
|
|
|
| } // namespace switches
|
|
|