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

Side by Side Diff: chromeos/chromeos_switches.cc

Issue 897413002: Add a finch experiment for different memory pressure management strategies in ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address the code review comments. Created 5 years, 10 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
« no previous file with comments | « chromeos/chromeos_switches.h ('k') | content/browser/browser_main_loop.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chromeos/chromeos_switches.h" 5 #include "chromeos/chromeos_switches.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/field_trial.h"
8 9
9 // TODO(rsorokin): alphabetize all of these switches so they 10 // TODO(rsorokin): alphabetize all of these switches so they
10 // match the order from the .h file 11 // match the order from the .h file
11 12
12 namespace chromeos { 13 namespace chromeos {
13 namespace switches { 14 namespace switches {
14 15
15 // Path for app's OEM manifest file. 16 // Path for app's OEM manifest file.
16 const char kAppOemManifestFile[] = "app-mode-oem-manifest"; 17 const char kAppOemManifestFile[] = "app-mode-oem-manifest";
17 18
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 // Specifies the profile to use once a chromeos user is logged in. 215 // Specifies the profile to use once a chromeos user is logged in.
215 // This parameter is ignored if user goes through login screen since user_id 216 // This parameter is ignored if user goes through login screen since user_id
216 // hash defines which profile directory to use. 217 // hash defines which profile directory to use.
217 // In case of browser restart within active session this parameter is used 218 // In case of browser restart within active session this parameter is used
218 // to pass user_id hash for primary user. 219 // to pass user_id hash for primary user.
219 const char kLoginProfile[] = "login-profile"; 220 const char kLoginProfile[] = "login-profile";
220 221
221 // Specifies the user which is already logged in. 222 // Specifies the user which is already logged in.
222 const char kLoginUser[] = "login-user"; 223 const char kLoginUser[] = "login-user";
223 224
224 // The memory pressure thresholds selection which is used to decide when a 225 // The memory pressure thresholds selection which is used to decide whether and
225 // memory pressure event needs to get fired. 226 // when a memory pressure event needs to get fired.
227 const char kMemoryPressureHandlingOff[] = "memory-pressure-off";
226 const char kMemoryPressureThresholds[] = "memory-pressure-thresholds"; 228 const char kMemoryPressureThresholds[] = "memory-pressure-thresholds";
229 const char kConservativeThreshold[] = "conservative";
230 const char kAggressiveCacheDiscardThreshold[] = "aggressive-cache-discard";
231 const char kAggressiveTabDiscardThreshold[] = "aggressive-tab-discard";
232 const char kAggressiveThreshold[] = "aggressive";
227 233
228 // Enables natural scroll by default. 234 // Enables natural scroll by default.
229 const char kNaturalScrollDefault[] = "enable-natural-scroll-default"; 235 const char kNaturalScrollDefault[] = "enable-natural-scroll-default";
230 236
231 // Skips all other OOBE pages after user login. 237 // Skips all other OOBE pages after user login.
232 const char kOobeSkipPostLogin[] = "oobe-skip-postlogin"; 238 const char kOobeSkipPostLogin[] = "oobe-skip-postlogin";
233 239
234 // Disable GAIA services such as enrollment and OAuth session restore. Used by 240 // Disable GAIA services such as enrollment and OAuth session restore. Used by
235 // 'fake' telemetry login. 241 // 'fake' telemetry login.
236 const char kDisableGaiaServices[] = "disable-gaia-services"; 242 const char kDisableGaiaServices[] = "disable-gaia-services";
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 "enable-captive-portal-bypass-proxy"; 311 "enable-captive-portal-bypass-proxy";
306 312
307 // Disable automatic timezone update. 313 // Disable automatic timezone update.
308 const char kDisableTimeZoneTrackingOption[] = 314 const char kDisableTimeZoneTrackingOption[] =
309 "disable-timezone-tracking-option"; 315 "disable-timezone-tracking-option";
310 316
311 bool WakeOnWifiEnabled() { 317 bool WakeOnWifiEnabled() {
312 return !base::CommandLine::ForCurrentProcess()->HasSwitch(kDisableWakeOnWifi); 318 return !base::CommandLine::ForCurrentProcess()->HasSwitch(kDisableWakeOnWifi);
313 } 319 }
314 320
321 bool MemoryPressureHandlingEnabled() {
322 if ((base::CommandLine::ForCurrentProcess()->HasSwitch(
323 chromeos::switches::kDisableMemoryPressureSystemChromeOS)) ||
324 (base::FieldTrialList::FindFullName(kMemoryPressureThresholds) ==
325 kMemoryPressureHandlingOff))
326 return false;
327 return true;
328 }
329
315 base::MemoryPressureObserverChromeOS::MemoryPressureThresholds 330 base::MemoryPressureObserverChromeOS::MemoryPressureThresholds
316 GetMemoryPressureThresholds() { 331 GetMemoryPressureThresholds() {
317 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( 332 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
318 kMemoryPressureThresholds)) { 333 kMemoryPressureThresholds)) {
334 const std::string group_name =
335 base::FieldTrialList::FindFullName(kMemoryPressureThresholds);
336 if (group_name == kConservativeThreshold)
337 return base::MemoryPressureObserverChromeOS::THRESHOLD_CONSERVATIVE;
338 if (group_name == kAggressiveCacheDiscardThreshold)
339 return base::MemoryPressureObserverChromeOS::
340 THRESHOLD_AGGRESSIVE_CACHE_DISCARD;
341 if (group_name == kAggressiveTabDiscardThreshold)
342 return base::MemoryPressureObserverChromeOS::
343 THRESHOLD_AGGRESSIVE_TAB_DISCARD;
344 if (group_name == kAggressiveThreshold)
345 return base::MemoryPressureObserverChromeOS::THRESHOLD_AGGRESSIVE;
319 return base::MemoryPressureObserverChromeOS::THRESHOLD_DEFAULT; 346 return base::MemoryPressureObserverChromeOS::THRESHOLD_DEFAULT;
320 } 347 }
348
321 const std::string option = 349 const std::string option =
322 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 350 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
323 kMemoryPressureThresholds); 351 kMemoryPressureThresholds);
324 if (option == "1") { 352 if (option == kConservativeThreshold)
325 return base::MemoryPressureObserverChromeOS::THRESHOLD_CONSERVATIVE; 353 return base::MemoryPressureObserverChromeOS::THRESHOLD_CONSERVATIVE;
326 } 354 if (option == kAggressiveCacheDiscardThreshold)
327 if (option == "2") {
328 return base::MemoryPressureObserverChromeOS:: 355 return base::MemoryPressureObserverChromeOS::
329 THRESHOLD_AGGRESSIVE_CACHE_DISCARD; 356 THRESHOLD_AGGRESSIVE_CACHE_DISCARD;
330 } 357 if (option == kAggressiveTabDiscardThreshold)
331 if (option == "3") {
332 return base::MemoryPressureObserverChromeOS:: 358 return base::MemoryPressureObserverChromeOS::
333 THRESHOLD_AGGRESSIVE_TAB_DISCARD; 359 THRESHOLD_AGGRESSIVE_TAB_DISCARD;
334 } 360 if (option == kAggressiveThreshold)
335 return base::MemoryPressureObserverChromeOS::THRESHOLD_AGGRESSIVE; 361 return base::MemoryPressureObserverChromeOS::THRESHOLD_AGGRESSIVE;
362
363 return base::MemoryPressureObserverChromeOS::THRESHOLD_DEFAULT;
336 } 364 }
337 365
338 } // namespace switches 366 } // namespace switches
339 } // namespace chromeos 367 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/chromeos_switches.h ('k') | content/browser/browser_main_loop.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698