Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: chrome/common/switch_utils.cc

Issue 1734053002: Remove the current /prefetch switch when relaunching Chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/switch_utils.h" 5 #include "chrome/common/switch_utils.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "build/build_config.h"
10 #include "chrome/common/chrome_switches.h" 11 #include "chrome/common/chrome_switches.h"
11 12
13 #if defined(OS_WIN)
14 #include "base/strings/string_util.h"
15 #endif // defined(OS_WIN)
16
12 namespace switches { 17 namespace switches {
13 18
19 namespace {
20
14 // Switches enumerated here will be removed when a background instance of 21 // Switches enumerated here will be removed when a background instance of
15 // Chrome restarts itself. If your key is designed to only be used once, 22 // Chrome restarts itself. If your key is designed to only be used once,
16 // or if it does not make sense when restarting a background instance to 23 // or if it does not make sense when restarting a background instance to
17 // pick up an automatic update, be sure to add it to this list. 24 // pick up an automatic update, be sure to add it to this list.
18 const char* const kSwitchesToRemoveOnAutorestart[] = { 25 const char* const kSwitchesToRemoveOnAutorestart[] = {
19 switches::kApp, 26 switches::kApp,
20 switches::kAppId, 27 switches::kAppId,
21 switches::kForceFirstRun, 28 switches::kForceFirstRun,
22 switches::kMakeDefaultBrowser, 29 switches::kMakeDefaultBrowser,
23 switches::kNoStartupWindow, 30 switches::kNoStartupWindow,
24 switches::kRestoreLastSession, 31 switches::kRestoreLastSession,
25 switches::kShowAppList, 32 switches::kShowAppList,
26 switches::kWinJumplistAction 33 switches::kWinJumplistAction
27 }; 34 };
28 35
36 } // namespace
37
29 void RemoveSwitchesForAutostart( 38 void RemoveSwitchesForAutostart(
30 std::map<std::string, base::CommandLine::StringType>* switch_list) { 39 std::map<std::string, base::CommandLine::StringType>* switch_list) {
31 for (size_t i = 0; i < arraysize(kSwitchesToRemoveOnAutorestart); ++i) 40 for (size_t i = 0; i < arraysize(kSwitchesToRemoveOnAutorestart); ++i)
32 switch_list->erase(kSwitchesToRemoveOnAutorestart[i]); 41 switch_list->erase(kSwitchesToRemoveOnAutorestart[i]);
42
43 #if defined(OS_WIN)
44 // When Chrome is relaunched, the Windows prefetch profile to use can change
45 // (e.g. a process initially launched in background is relaunched in
46 // foreground). Therefore, always remove Windows prefetch switches from
47 // |switch_list| and let the code building the relaunch command line add a new
48 // one afterwards when appropriate. The format of a Windows prefetch switch is
49 // "/prefetch:#" where # is [1, 8].
gab 2016/02/25 20:22:23 It's never appropriate to re-add one I think as we
fdoray 2016/02/26 18:10:36 Done. We do need to re-add a switch when a backgro
50 static const char kPrefetchSwitchPrefix[] = "prefetch:";
51 for (auto it = switch_list->lower_bound(kPrefetchSwitchPrefix);
52 it != switch_list->end();) {
53 if (base::StartsWith(it->first, kPrefetchSwitchPrefix,
54 base::CompareCase::SENSITIVE)) {
55 switch_list->erase(it++);
56 } else {
57 break;
58 }
59 }
gab 2016/02/25 20:22:23 This loop assumes there can be more than one prefe
fdoray 2016/02/26 18:10:36 Done.
60 #endif // defined(OS_WIN)
33 } 61 }
34 62
35 } // namespace switches 63 } // namespace switches
OLDNEW
« no previous file with comments | « no previous file | chrome/common/switch_utils_unittest.cc » ('j') | chrome/common/switch_utils_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698