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

Side by Side Diff: chrome/browser/about_flags.cc

Issue 13467023: Add differentiation between owner only and common flags on ChromeOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
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 "chrome/browser/about_flags.h" 5 #include "chrome/browser/about_flags.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <iterator> 10 #include <iterator>
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 void AddOsStrings(unsigned bitmask, ListValue* list) { 78 void AddOsStrings(unsigned bitmask, ListValue* list) {
79 struct { 79 struct {
80 unsigned bit; 80 unsigned bit;
81 const char* const name; 81 const char* const name;
82 } kBitsToOs[] = { 82 } kBitsToOs[] = {
83 {kOsMac, "Mac"}, 83 {kOsMac, "Mac"},
84 {kOsWin, "Windows"}, 84 {kOsWin, "Windows"},
85 {kOsLinux, "Linux"}, 85 {kOsLinux, "Linux"},
86 {kOsCrOS, "Chrome OS"}, 86 {kOsCrOS, "Chrome OS"},
87 {kOsAndroid, "Android"}, 87 {kOsAndroid, "Android"},
88 {kOsCrOSOwnerOnly, "Chrome OS (owner only)"},
88 }; 89 };
89 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kBitsToOs); ++i) 90 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kBitsToOs); ++i)
90 if (bitmask & kBitsToOs[i].bit) 91 if (bitmask & kBitsToOs[i].bit)
91 list->Append(new StringValue(kBitsToOs[i].name)); 92 list->Append(new StringValue(kBitsToOs[i].name));
92 } 93 }
93 94
94 const Experiment::Choice kOmniboxHistoryQuickProviderNewScoringChoices[] = { 95 const Experiment::Choice kOmniboxHistoryQuickProviderNewScoringChoices[] = {
95 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_AUTOMATIC, "", "" }, 96 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_AUTOMATIC, "", "" },
96 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_ENABLED, 97 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_ENABLED,
97 switches::kOmniboxHistoryQuickProviderNewScoring, 98 switches::kOmniboxHistoryQuickProviderNewScoring,
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 IDS_FLAGS_FORCE_COMPOSITING_MODE_NAME, 301 IDS_FLAGS_FORCE_COMPOSITING_MODE_NAME,
301 IDS_FLAGS_FORCE_COMPOSITING_MODE_DESCRIPTION, 302 IDS_FLAGS_FORCE_COMPOSITING_MODE_DESCRIPTION,
302 kOsMac | kOsWin | kOsLinux, 303 kOsMac | kOsWin | kOsLinux,
303 ENABLE_DISABLE_VALUE_TYPE(switches::kForceCompositingMode, 304 ENABLE_DISABLE_VALUE_TYPE(switches::kForceCompositingMode,
304 switches::kDisableForceCompositingMode) 305 switches::kDisableForceCompositingMode)
305 }, 306 },
306 { 307 {
307 "threaded-compositing-mode", 308 "threaded-compositing-mode",
308 IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME, 309 IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME,
309 IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION, 310 IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION,
310 kOsDesktop & ~kOsCrOS, 311 kOsMac | kOsWin | kOsLinux,
311 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableThreadedCompositing, 312 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableThreadedCompositing,
312 switches::kDisableThreadedCompositing) 313 switches::kDisableThreadedCompositing)
313 }, 314 },
314 { 315 {
315 "force-accelerated-composited-scrolling", 316 "force-accelerated-composited-scrolling",
316 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME, 317 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME,
317 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION, 318 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION,
318 kOsAll, 319 kOsAll,
319 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAcceleratedOverflowScroll, 320 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAcceleratedOverflowScroll,
320 switches::kDisableAcceleratedOverflowScroll) 321 switches::kDisableAcceleratedOverflowScroll)
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 "enable-vp9-playback", 676 "enable-vp9-playback",
676 IDS_FLAGS_ENABLE_VP9_PLAYBACK_NAME, 677 IDS_FLAGS_ENABLE_VP9_PLAYBACK_NAME,
677 IDS_FLAGS_ENABLE_VP9_PLAYBACK_DESCRIPTION, 678 IDS_FLAGS_ENABLE_VP9_PLAYBACK_DESCRIPTION,
678 kOsDesktop, 679 kOsDesktop,
679 SINGLE_VALUE_TYPE(switches::kEnableVp9Playback) 680 SINGLE_VALUE_TYPE(switches::kEnableVp9Playback)
680 }, 681 },
681 { 682 {
682 "enable-managed-users", 683 "enable-managed-users",
683 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_NAME, 684 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_NAME,
684 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_DESCRIPTION, 685 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_DESCRIPTION,
685 kOsAll, 686 kOsMac | kOsWin | kOsLinux | kOsAndroid | kOsCrOSOwnerOnly,
686 SINGLE_VALUE_TYPE(switches::kEnableManagedUsers) 687 SINGLE_VALUE_TYPE(switches::kEnableManagedUsers)
687 }, 688 },
688 #if defined(USE_ASH) 689 #if defined(USE_ASH)
689 { 690 {
690 "ash-disable-auto-window-placement", 691 "ash-disable-auto-window-placement",
691 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_NAME, 692 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_NAME,
692 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_DESCRIPTION, 693 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_DESCRIPTION,
693 kOsWin | kOsLinux | kOsCrOS, 694 kOsWin | kOsLinux | kOsCrOS,
694 SINGLE_VALUE_TYPE(ash::switches::kAshDisableAutoWindowPlacement) 695 SINGLE_VALUE_TYPE(ash::switches::kAshDisableAutoWindowPlacement)
695 }, 696 },
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 IDS_FLAGS_ENABLE_APP_LIST_SHOW_APPS_ONLY_DESCRIPTION, 951 IDS_FLAGS_ENABLE_APP_LIST_SHOW_APPS_ONLY_DESCRIPTION,
951 kOsAll, 952 kOsAll,
952 SINGLE_VALUE_TYPE(app_list::switches::kAppListShowAppsOnly), 953 SINGLE_VALUE_TYPE(app_list::switches::kAppListShowAppsOnly),
953 }, 954 },
954 #endif // defined(USE_ASH) 955 #endif // defined(USE_ASH)
955 #if defined(OS_CHROMEOS) 956 #if defined(OS_CHROMEOS)
956 { 957 {
957 "disable-boot-animation", 958 "disable-boot-animation",
958 IDS_FLAGS_DISABLE_BOOT_ANIMATION, 959 IDS_FLAGS_DISABLE_BOOT_ANIMATION,
959 IDS_FLAGS_DISABLE_BOOT_ANIMATION_DESCRIPTION, 960 IDS_FLAGS_DISABLE_BOOT_ANIMATION_DESCRIPTION,
960 kOsCrOS, 961 kOsCrOSOwnerOnly,
961 SINGLE_VALUE_TYPE(switches::kDisableBootAnimation), 962 SINGLE_VALUE_TYPE(switches::kDisableBootAnimation),
962 }, 963 },
963 { 964 {
964 "disable-boot-animation2", 965 "disable-boot-animation2",
965 IDS_FLAGS_DISABLE_BOOT_ANIMATION2, 966 IDS_FLAGS_DISABLE_BOOT_ANIMATION2,
966 IDS_FLAGS_DISABLE_BOOT_ANIMATION2_DESCRIPTION, 967 IDS_FLAGS_DISABLE_BOOT_ANIMATION2_DESCRIPTION,
967 kOsCrOS, 968 kOsCrOSOwnerOnly,
968 SINGLE_VALUE_TYPE(ash::switches::kAshDisableBootAnimation2), 969 SINGLE_VALUE_TYPE(ash::switches::kAshDisableBootAnimation2),
969 }, 970 },
970 { 971 {
971 "boot-animation-fucntion", 972 "boot-animation-fucntion",
972 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION, 973 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION,
973 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION_DESCRIPTION, 974 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION_DESCRIPTION,
974 kOsCrOS, 975 kOsCrOSOwnerOnly,
975 MULTI_VALUE_TYPE(kAshBootAnimationFunction), 976 MULTI_VALUE_TYPE(kAshBootAnimationFunction),
976 }, 977 },
977 { 978 {
978 "captive-portal-detector", 979 "captive-portal-detector",
979 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_NAME, 980 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_NAME,
980 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_DESCRIPTION, 981 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_DESCRIPTION,
981 kOsCrOS, 982 kOsCrOSOwnerOnly,
982 MULTI_VALUE_TYPE(kChromeCaptivePortalDetectionChoices), 983 MULTI_VALUE_TYPE(kChromeCaptivePortalDetectionChoices),
983 }, 984 },
984 { 985 {
985 "disable-new-lock-animations", 986 "disable-new-lock-animations",
986 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS, 987 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS,
987 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS_DESCRIPTION, 988 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS_DESCRIPTION,
988 kOsCrOS, 989 kOsCrOS,
989 SINGLE_VALUE_TYPE(ash::switches::kAshDisableNewLockAnimations), 990 SINGLE_VALUE_TYPE(ash::switches::kAshDisableNewLockAnimations),
990 }, 991 },
991 { 992 {
992 "file-manager-packaged", 993 "file-manager-packaged",
993 IDS_FLAGS_FILE_MANAGER_PACKAGED_NAME, 994 IDS_FLAGS_FILE_MANAGER_PACKAGED_NAME,
994 IDS_FLAGS_FILE_MANAGER_PACKAGED_DESCRIPTION, 995 IDS_FLAGS_FILE_MANAGER_PACKAGED_DESCRIPTION,
995 kOsCrOS, 996 kOsCrOS,
996 SINGLE_VALUE_TYPE(switches::kFileManagerPackaged), 997 SINGLE_VALUE_TYPE(switches::kFileManagerPackaged),
997 }, 998 },
998 { 999 {
999 "disable-launcher-per-display", 1000 "disable-launcher-per-display",
1000 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_NAME, 1001 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_NAME,
1001 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_DESCRIPTION, 1002 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_DESCRIPTION,
1002 kOsCrOS, 1003 kOsCrOS,
1003 SINGLE_VALUE_TYPE(ash::switches::kAshDisableLauncherPerDisplay), 1004 SINGLE_VALUE_TYPE(ash::switches::kAshDisableLauncherPerDisplay),
1004 }, 1005 },
1005 { 1006 {
1006 "disable-app-mode", 1007 "disable-app-mode",
1007 IDS_FLAGS_DISABLE_KIOSK_APPS_NAME, 1008 IDS_FLAGS_DISABLE_KIOSK_APPS_NAME,
1008 IDS_FLAGS_DISABLE_KIOSK_APPS_DESCRIPTION, 1009 IDS_FLAGS_DISABLE_KIOSK_APPS_DESCRIPTION,
1009 kOsCrOS, 1010 kOsCrOSOwnerOnly,
1010 SINGLE_VALUE_TYPE(switches::kDisableAppMode), 1011 SINGLE_VALUE_TYPE(switches::kDisableAppMode),
1011 }, 1012 },
1012 { 1013 {
1013 "disable-force-fullscreen-app", 1014 "disable-force-fullscreen-app",
1014 IDS_FLAGS_DISABLE_FULLSCREEN_APP_NAME, 1015 IDS_FLAGS_DISABLE_FULLSCREEN_APP_NAME,
1015 IDS_FLAGS_DISABLE_FULLSCREEN_APP_DESCRIPTION, 1016 IDS_FLAGS_DISABLE_FULLSCREEN_APP_DESCRIPTION,
1016 kOsCrOS, 1017 kOsCrOS,
1017 SINGLE_VALUE_TYPE(switches::kDisableFullscreenApp), 1018 SINGLE_VALUE_TYPE(switches::kDisableFullscreenApp),
1018 }, 1019 },
1019 #endif // defined(OS_CHROMEOS) 1020 #endif // defined(OS_CHROMEOS)
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
1399 // Variant of GetSanitizedEnabledFlags that also removes any flags that aren't 1400 // Variant of GetSanitizedEnabledFlags that also removes any flags that aren't
1400 // enabled on the current platform. 1401 // enabled on the current platform.
1401 void GetSanitizedEnabledFlagsForCurrentPlatform( 1402 void GetSanitizedEnabledFlagsForCurrentPlatform(
1402 PrefService* prefs, std::set<std::string>* result) { 1403 PrefService* prefs, std::set<std::string>* result) {
1403 GetSanitizedEnabledFlags(prefs, result); 1404 GetSanitizedEnabledFlags(prefs, result);
1404 1405
1405 // Filter out any experiments that aren't enabled on the current platform. We 1406 // Filter out any experiments that aren't enabled on the current platform. We
1406 // don't remove these from prefs else syncing to a platform with a different 1407 // don't remove these from prefs else syncing to a platform with a different
1407 // set of experiments would be lossy. 1408 // set of experiments would be lossy.
1408 std::set<std::string> platform_experiments; 1409 std::set<std::string> platform_experiments;
1409 int current_platform = GetCurrentPlatform(); 1410 int current_platform = GetCurrentPlatform(true);
1410 for (size_t i = 0; i < num_experiments; ++i) { 1411 for (size_t i = 0; i < num_experiments; ++i) {
1411 if (experiments[i].supported_platforms & current_platform) 1412 if (experiments[i].supported_platforms & current_platform)
1412 AddInternalName(experiments[i], &platform_experiments); 1413 AddInternalName(experiments[i], &platform_experiments);
1413 } 1414 }
1414 1415
1415 std::set<std::string> new_enabled_experiments; 1416 std::set<std::string> new_enabled_experiments;
1416 std::set_intersection( 1417 std::set_intersection(
1417 platform_experiments.begin(), platform_experiments.end(), 1418 platform_experiments.begin(), platform_experiments.end(),
1418 result->begin(), result->end(), 1419 result->begin(), result->end(),
1419 std::inserter(new_enabled_experiments, new_enabled_experiments.begin())); 1420 std::inserter(new_enabled_experiments, new_enabled_experiments.begin()));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1463 } else { 1464 } else {
1464 description_id = choices[index].description_id; 1465 description_id = choices[index].description_id;
1465 } 1466 }
1466 return l10n_util::GetStringUTF16(description_id); 1467 return l10n_util::GetStringUTF16(description_id);
1467 } 1468 }
1468 1469
1469 void ConvertFlagsToSwitches(PrefService* prefs, CommandLine* command_line) { 1470 void ConvertFlagsToSwitches(PrefService* prefs, CommandLine* command_line) {
1470 FlagsState::GetInstance()->ConvertFlagsToSwitches(prefs, command_line); 1471 FlagsState::GetInstance()->ConvertFlagsToSwitches(prefs, command_line);
1471 } 1472 }
1472 1473
1473 ListValue* GetFlagsExperimentsData(PrefService* prefs) { 1474 ListValue* GetFlagsExperimentsData(PrefService* prefs, bool owner) {
1474 std::set<std::string> enabled_experiments; 1475 std::set<std::string> enabled_experiments;
1475 GetSanitizedEnabledFlags(prefs, &enabled_experiments); 1476 GetSanitizedEnabledFlags(prefs, &enabled_experiments);
1476 1477
1477 int current_platform = GetCurrentPlatform(); 1478 int current_platform = GetCurrentPlatform(owner);
1478 1479
1479 ListValue* experiments_data = new ListValue(); 1480 ListValue* experiments_data = new ListValue();
1480 for (size_t i = 0; i < num_experiments; ++i) { 1481 for (size_t i = 0; i < num_experiments; ++i) {
1481 const Experiment& experiment = experiments[i]; 1482 const Experiment& experiment = experiments[i];
1482 1483
1483 #if defined(OS_ANDROID) 1484 #if defined(OS_ANDROID)
1484 // Special case enable-spdy-proxy-auth, because it should only 1485 // Special case enable-spdy-proxy-auth, because it should only
1485 // be available on Dev and Beta channels. 1486 // be available on Dev and Beta channels.
1486 if (!strcmp("enable-spdy-proxy-auth", experiment.internal_name) && 1487 if (!strcmp("enable-spdy-proxy-auth", experiment.internal_name) &&
1487 chrome::VersionInfo::GetChannel() == 1488 chrome::VersionInfo::GetChannel() ==
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 1534
1534 void RemoveFlagsSwitches( 1535 void RemoveFlagsSwitches(
1535 std::map<std::string, CommandLine::StringType>* switch_list) { 1536 std::map<std::string, CommandLine::StringType>* switch_list) {
1536 FlagsState::GetInstance()->RemoveFlagsSwitches(switch_list); 1537 FlagsState::GetInstance()->RemoveFlagsSwitches(switch_list);
1537 } 1538 }
1538 1539
1539 void ResetAllFlags(PrefService* prefs) { 1540 void ResetAllFlags(PrefService* prefs) {
1540 FlagsState::GetInstance()->ResetAllFlags(prefs); 1541 FlagsState::GetInstance()->ResetAllFlags(prefs);
1541 } 1542 }
1542 1543
1543 int GetCurrentPlatform() { 1544 int GetCurrentPlatform(bool owner) {
1544 #if defined(OS_MACOSX) 1545 #if defined(OS_MACOSX)
1545 return kOsMac; 1546 return kOsMac;
1546 #elif defined(OS_WIN) 1547 #elif defined(OS_WIN)
1547 return kOsWin; 1548 return kOsWin;
1548 #elif defined(OS_CHROMEOS) // Needs to be before the OS_LINUX check. 1549 #elif defined(OS_CHROMEOS) // Needs to be before the OS_LINUX check.
1549 return kOsCrOS; 1550 return kOsCrOS | (owner ? kOsCrOSOwnerOnly : 0);
1550 #elif defined(OS_LINUX) || defined(OS_OPENBSD) 1551 #elif defined(OS_LINUX) || defined(OS_OPENBSD)
1551 return kOsLinux; 1552 return kOsLinux;
1552 #elif defined(OS_ANDROID) 1553 #elif defined(OS_ANDROID)
1553 return kOsAndroid; 1554 return kOsAndroid;
1554 #else 1555 #else
1555 #error Unknown platform 1556 #error Unknown platform
1556 #endif 1557 #endif
1557 } 1558 }
1558 1559
1559 void RecordUMAStatistics(const PrefService* prefs) { 1560 void RecordUMAStatistics(const PrefService* prefs) {
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1756 } 1757 }
1757 1758
1758 const Experiment* GetExperiments(size_t* count) { 1759 const Experiment* GetExperiments(size_t* count) {
1759 *count = num_experiments; 1760 *count = num_experiments;
1760 return experiments; 1761 return experiments;
1761 } 1762 }
1762 1763
1763 } // namespace testing 1764 } // namespace testing
1764 1765
1765 } // namespace about_flags 1766 } // namespace about_flags
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698