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

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: Make the owner param an enum. 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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 void AddOsStrings(unsigned bitmask, ListValue* list) { 79 void AddOsStrings(unsigned bitmask, ListValue* list) {
80 struct { 80 struct {
81 unsigned bit; 81 unsigned bit;
82 const char* const name; 82 const char* const name;
83 } kBitsToOs[] = { 83 } kBitsToOs[] = {
84 {kOsMac, "Mac"}, 84 {kOsMac, "Mac"},
85 {kOsWin, "Windows"}, 85 {kOsWin, "Windows"},
86 {kOsLinux, "Linux"}, 86 {kOsLinux, "Linux"},
87 {kOsCrOS, "Chrome OS"}, 87 {kOsCrOS, "Chrome OS"},
88 {kOsAndroid, "Android"}, 88 {kOsAndroid, "Android"},
89 {kOsCrOSOwnerOnly, "Chrome OS (owner only)"},
89 }; 90 };
90 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kBitsToOs); ++i) 91 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kBitsToOs); ++i)
91 if (bitmask & kBitsToOs[i].bit) 92 if (bitmask & kBitsToOs[i].bit)
92 list->Append(new StringValue(kBitsToOs[i].name)); 93 list->Append(new StringValue(kBitsToOs[i].name));
93 } 94 }
94 95
95 const Experiment::Choice kOmniboxHistoryQuickProviderNewScoringChoices[] = { 96 const Experiment::Choice kOmniboxHistoryQuickProviderNewScoringChoices[] = {
96 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_AUTOMATIC, "", "" }, 97 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_AUTOMATIC, "", "" },
97 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_ENABLED, 98 { IDS_FLAGS_OMNIBOX_HISTORY_QUICK_PROVIDER_NEW_SCORING_ENABLED,
98 switches::kOmniboxHistoryQuickProviderNewScoring, 99 switches::kOmniboxHistoryQuickProviderNewScoring,
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 IDS_FLAGS_FORCE_COMPOSITING_MODE_NAME, 320 IDS_FLAGS_FORCE_COMPOSITING_MODE_NAME,
320 IDS_FLAGS_FORCE_COMPOSITING_MODE_DESCRIPTION, 321 IDS_FLAGS_FORCE_COMPOSITING_MODE_DESCRIPTION,
321 kOsMac | kOsWin | kOsLinux, 322 kOsMac | kOsWin | kOsLinux,
322 ENABLE_DISABLE_VALUE_TYPE(switches::kForceCompositingMode, 323 ENABLE_DISABLE_VALUE_TYPE(switches::kForceCompositingMode,
323 switches::kDisableForceCompositingMode) 324 switches::kDisableForceCompositingMode)
324 }, 325 },
325 { 326 {
326 "threaded-compositing-mode", 327 "threaded-compositing-mode",
327 IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME, 328 IDS_FLAGS_THREADED_COMPOSITING_MODE_NAME,
328 IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION, 329 IDS_FLAGS_THREADED_COMPOSITING_MODE_DESCRIPTION,
329 kOsDesktop & ~kOsCrOS, 330 kOsMac | kOsWin | kOsLinux,
330 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableThreadedCompositing, 331 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableThreadedCompositing,
331 switches::kDisableThreadedCompositing) 332 switches::kDisableThreadedCompositing)
332 }, 333 },
333 { 334 {
334 "force-accelerated-composited-scrolling", 335 "force-accelerated-composited-scrolling",
335 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME, 336 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_NAME,
336 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION, 337 IDS_FLAGS_FORCE_ACCELERATED_OVERFLOW_SCROLL_MODE_DESCRIPTION,
337 kOsAll, 338 kOsAll,
338 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAcceleratedOverflowScroll, 339 ENABLE_DISABLE_VALUE_TYPE(switches::kEnableAcceleratedOverflowScroll,
339 switches::kDisableAcceleratedOverflowScroll) 340 switches::kDisableAcceleratedOverflowScroll)
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 "enable-vp9-playback", 719 "enable-vp9-playback",
719 IDS_FLAGS_ENABLE_VP9_PLAYBACK_NAME, 720 IDS_FLAGS_ENABLE_VP9_PLAYBACK_NAME,
720 IDS_FLAGS_ENABLE_VP9_PLAYBACK_DESCRIPTION, 721 IDS_FLAGS_ENABLE_VP9_PLAYBACK_DESCRIPTION,
721 kOsDesktop, 722 kOsDesktop,
722 SINGLE_VALUE_TYPE(switches::kEnableVp9Playback) 723 SINGLE_VALUE_TYPE(switches::kEnableVp9Playback)
723 }, 724 },
724 { 725 {
725 "enable-managed-users", 726 "enable-managed-users",
726 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_NAME, 727 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_NAME,
727 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_DESCRIPTION, 728 IDS_FLAGS_ENABLE_LOCALLY_MANAGED_USERS_DESCRIPTION,
728 kOsAll, 729 kOsMac | kOsWin | kOsLinux | kOsAndroid | kOsCrOSOwnerOnly,
729 SINGLE_VALUE_TYPE(switches::kEnableManagedUsers) 730 SINGLE_VALUE_TYPE(switches::kEnableManagedUsers)
730 }, 731 },
731 #if defined(USE_ASH) 732 #if defined(USE_ASH)
732 { 733 {
733 "ash-disable-auto-window-placement", 734 "ash-disable-auto-window-placement",
734 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_NAME, 735 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_NAME,
735 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_DESCRIPTION, 736 IDS_FLAGS_ASH_AUTO_WINDOW_PLACEMENT_DESCRIPTION,
736 kOsWin | kOsLinux | kOsCrOS, 737 kOsWin | kOsLinux | kOsCrOS,
737 SINGLE_VALUE_TYPE(ash::switches::kAshDisableAutoWindowPlacement) 738 SINGLE_VALUE_TYPE(ash::switches::kAshDisableAutoWindowPlacement)
738 }, 739 },
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 IDS_FLAGS_ENABLE_APP_LIST_SHOW_APPS_ONLY_DESCRIPTION, 1002 IDS_FLAGS_ENABLE_APP_LIST_SHOW_APPS_ONLY_DESCRIPTION,
1002 kOsAll, 1003 kOsAll,
1003 SINGLE_VALUE_TYPE(app_list::switches::kAppListShowAppsOnly), 1004 SINGLE_VALUE_TYPE(app_list::switches::kAppListShowAppsOnly),
1004 }, 1005 },
1005 #endif // defined(USE_ASH) 1006 #endif // defined(USE_ASH)
1006 #if defined(OS_CHROMEOS) 1007 #if defined(OS_CHROMEOS)
1007 { 1008 {
1008 "disable-boot-animation", 1009 "disable-boot-animation",
1009 IDS_FLAGS_DISABLE_BOOT_ANIMATION, 1010 IDS_FLAGS_DISABLE_BOOT_ANIMATION,
1010 IDS_FLAGS_DISABLE_BOOT_ANIMATION_DESCRIPTION, 1011 IDS_FLAGS_DISABLE_BOOT_ANIMATION_DESCRIPTION,
1011 kOsCrOS, 1012 kOsCrOSOwnerOnly,
1012 SINGLE_VALUE_TYPE(switches::kDisableBootAnimation), 1013 SINGLE_VALUE_TYPE(switches::kDisableBootAnimation),
1013 }, 1014 },
1014 { 1015 {
1015 "disable-boot-animation2", 1016 "disable-boot-animation2",
1016 IDS_FLAGS_DISABLE_BOOT_ANIMATION2, 1017 IDS_FLAGS_DISABLE_BOOT_ANIMATION2,
1017 IDS_FLAGS_DISABLE_BOOT_ANIMATION2_DESCRIPTION, 1018 IDS_FLAGS_DISABLE_BOOT_ANIMATION2_DESCRIPTION,
1018 kOsCrOS, 1019 kOsCrOSOwnerOnly,
1019 SINGLE_VALUE_TYPE(ash::switches::kAshDisableBootAnimation2), 1020 SINGLE_VALUE_TYPE(ash::switches::kAshDisableBootAnimation2),
1020 }, 1021 },
1021 { 1022 {
1022 "boot-animation-fucntion", 1023 "boot-animation-fucntion",
1023 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION, 1024 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION,
1024 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION_DESCRIPTION, 1025 IDS_FLAGS_ASH_BOOT_ANIMATION_FUNCTION_DESCRIPTION,
1025 kOsCrOS, 1026 kOsCrOSOwnerOnly,
1026 MULTI_VALUE_TYPE(kAshBootAnimationFunction), 1027 MULTI_VALUE_TYPE(kAshBootAnimationFunction),
1027 }, 1028 },
1028 { 1029 {
1029 "captive-portal-detector", 1030 "captive-portal-detector",
1030 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_NAME, 1031 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_NAME,
1031 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_DESCRIPTION, 1032 IDS_FLAGS_CAPTIVE_PORTAL_DETECTOR_DESCRIPTION,
1032 kOsCrOS, 1033 kOsCrOSOwnerOnly,
1033 MULTI_VALUE_TYPE(kChromeCaptivePortalDetectionChoices), 1034 MULTI_VALUE_TYPE(kChromeCaptivePortalDetectionChoices),
1034 }, 1035 },
1035 { 1036 {
1036 "disable-new-lock-animations", 1037 "disable-new-lock-animations",
1037 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS, 1038 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS,
1038 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS_DESCRIPTION, 1039 IDS_FLAGS_ASH_NEW_LOCK_ANIMATIONS_DESCRIPTION,
1039 kOsCrOS, 1040 kOsCrOS,
1040 SINGLE_VALUE_TYPE(ash::switches::kAshDisableNewLockAnimations), 1041 SINGLE_VALUE_TYPE(ash::switches::kAshDisableNewLockAnimations),
1041 }, 1042 },
1042 { 1043 {
1043 "file-manager-packaged", 1044 "file-manager-packaged",
1044 IDS_FLAGS_FILE_MANAGER_PACKAGED_NAME, 1045 IDS_FLAGS_FILE_MANAGER_PACKAGED_NAME,
1045 IDS_FLAGS_FILE_MANAGER_PACKAGED_DESCRIPTION, 1046 IDS_FLAGS_FILE_MANAGER_PACKAGED_DESCRIPTION,
1046 kOsCrOS, 1047 kOsCrOS,
1047 SINGLE_VALUE_TYPE(switches::kFileManagerPackaged), 1048 SINGLE_VALUE_TYPE(switches::kFileManagerPackaged),
1048 }, 1049 },
1049 { 1050 {
1050 "disable-launcher-per-display", 1051 "disable-launcher-per-display",
1051 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_NAME, 1052 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_NAME,
1052 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_DESCRIPTION, 1053 IDS_FLAGS_DISABLE_LAUNCHER_PER_DISPLAY_DESCRIPTION,
1053 kOsCrOS, 1054 kOsCrOS,
1054 SINGLE_VALUE_TYPE(ash::switches::kAshDisableLauncherPerDisplay), 1055 SINGLE_VALUE_TYPE(ash::switches::kAshDisableLauncherPerDisplay),
1055 }, 1056 },
1056 { 1057 {
1057 "disable-app-mode", 1058 "disable-app-mode",
1058 IDS_FLAGS_DISABLE_KIOSK_APPS_NAME, 1059 IDS_FLAGS_DISABLE_KIOSK_APPS_NAME,
1059 IDS_FLAGS_DISABLE_KIOSK_APPS_DESCRIPTION, 1060 IDS_FLAGS_DISABLE_KIOSK_APPS_DESCRIPTION,
1060 kOsCrOS, 1061 kOsCrOSOwnerOnly,
1061 SINGLE_VALUE_TYPE(switches::kDisableAppMode), 1062 SINGLE_VALUE_TYPE(switches::kDisableAppMode),
1062 }, 1063 },
1063 { 1064 {
1064 "disable-force-fullscreen-app", 1065 "disable-force-fullscreen-app",
1065 IDS_FLAGS_DISABLE_FULLSCREEN_APP_NAME, 1066 IDS_FLAGS_DISABLE_FULLSCREEN_APP_NAME,
1066 IDS_FLAGS_DISABLE_FULLSCREEN_APP_DESCRIPTION, 1067 IDS_FLAGS_DISABLE_FULLSCREEN_APP_DESCRIPTION,
1067 kOsCrOS, 1068 kOsCrOS,
1068 SINGLE_VALUE_TYPE(switches::kDisableFullscreenApp), 1069 SINGLE_VALUE_TYPE(switches::kDisableFullscreenApp),
1069 }, 1070 },
1070 #endif // defined(OS_CHROMEOS) 1071 #endif // defined(OS_CHROMEOS)
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
1491 GetSanitizedEnabledFlags(prefs, result); 1492 GetSanitizedEnabledFlags(prefs, result);
1492 1493
1493 // Filter out any experiments that aren't enabled on the current platform. We 1494 // Filter out any experiments that aren't enabled on the current platform. We
1494 // don't remove these from prefs else syncing to a platform with a different 1495 // don't remove these from prefs else syncing to a platform with a different
1495 // set of experiments would be lossy. 1496 // set of experiments would be lossy.
1496 std::set<std::string> platform_experiments; 1497 std::set<std::string> platform_experiments;
1497 int current_platform = GetCurrentPlatform(); 1498 int current_platform = GetCurrentPlatform();
1498 for (size_t i = 0; i < num_experiments; ++i) { 1499 for (size_t i = 0; i < num_experiments; ++i) {
1499 if (experiments[i].supported_platforms & current_platform) 1500 if (experiments[i].supported_platforms & current_platform)
1500 AddInternalName(experiments[i], &platform_experiments); 1501 AddInternalName(experiments[i], &platform_experiments);
1502 #if defined(OS_CHROMEOS)
1503 if (experiments[i].supported_platforms & kOsCrOSOwnerOnly)
1504 AddInternalName(experiments[i], &platform_experiments);
1505 #endif
1501 } 1506 }
1502 1507
1503 std::set<std::string> new_enabled_experiments; 1508 std::set<std::string> new_enabled_experiments;
1504 std::set_intersection( 1509 std::set_intersection(
1505 platform_experiments.begin(), platform_experiments.end(), 1510 platform_experiments.begin(), platform_experiments.end(),
1506 result->begin(), result->end(), 1511 result->begin(), result->end(),
1507 std::inserter(new_enabled_experiments, new_enabled_experiments.begin())); 1512 std::inserter(new_enabled_experiments, new_enabled_experiments.begin()));
1508 1513
1509 result->swap(new_enabled_experiments); 1514 result->swap(new_enabled_experiments);
1510 } 1515 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1551 } else { 1556 } else {
1552 description_id = choices[index].description_id; 1557 description_id = choices[index].description_id;
1553 } 1558 }
1554 return l10n_util::GetStringUTF16(description_id); 1559 return l10n_util::GetStringUTF16(description_id);
1555 } 1560 }
1556 1561
1557 void ConvertFlagsToSwitches(PrefService* prefs, CommandLine* command_line) { 1562 void ConvertFlagsToSwitches(PrefService* prefs, CommandLine* command_line) {
1558 FlagsState::GetInstance()->ConvertFlagsToSwitches(prefs, command_line); 1563 FlagsState::GetInstance()->ConvertFlagsToSwitches(prefs, command_line);
1559 } 1564 }
1560 1565
1561 ListValue* GetFlagsExperimentsData(PrefService* prefs) { 1566 ListValue* GetFlagsExperimentsData(PrefService* prefs, FlagAccess access) {
1562 std::set<std::string> enabled_experiments; 1567 std::set<std::string> enabled_experiments;
1563 GetSanitizedEnabledFlags(prefs, &enabled_experiments); 1568 GetSanitizedEnabledFlags(prefs, &enabled_experiments);
1564 1569
1565 int current_platform = GetCurrentPlatform(); 1570 int current_platform = GetCurrentPlatform();
1566 1571
1567 ListValue* experiments_data = new ListValue(); 1572 ListValue* experiments_data = new ListValue();
1568 for (size_t i = 0; i < num_experiments; ++i) { 1573 for (size_t i = 0; i < num_experiments; ++i) {
1569 const Experiment& experiment = experiments[i]; 1574 const Experiment& experiment = experiments[i];
1570 1575
1571 #if defined(OS_ANDROID) 1576 #if defined(OS_ANDROID)
1572 // Special case enable-spdy-proxy-auth, because it should only 1577 // Special case enable-spdy-proxy-auth, because it should only
1573 // be available on Dev and Beta channels. 1578 // be available on Dev and Beta channels.
1574 if (!strcmp("enable-spdy-proxy-auth", experiment.internal_name) && 1579 if (!strcmp("enable-spdy-proxy-auth", experiment.internal_name) &&
1575 chrome::VersionInfo::GetChannel() == 1580 chrome::VersionInfo::GetChannel() ==
1576 chrome::VersionInfo::CHANNEL_STABLE) 1581 chrome::VersionInfo::CHANNEL_STABLE)
1577 continue; 1582 continue;
1578 #endif 1583 #endif
1579 1584
1580 DictionaryValue* data = new DictionaryValue(); 1585 DictionaryValue* data = new DictionaryValue();
1581 data->SetString("internal_name", experiment.internal_name); 1586 data->SetString("internal_name", experiment.internal_name);
1582 data->SetString("name", 1587 data->SetString("name",
1583 l10n_util::GetStringUTF16(experiment.visible_name_id)); 1588 l10n_util::GetStringUTF16(experiment.visible_name_id));
1584 data->SetString("description", 1589 data->SetString("description",
1585 l10n_util::GetStringUTF16( 1590 l10n_util::GetStringUTF16(
1586 experiment.visible_description_id)); 1591 experiment.visible_description_id));
1587 bool supported = !!(experiment.supported_platforms & current_platform); 1592 bool supported = !!(experiment.supported_platforms & current_platform);
1593 #if defined(OS_CHROMEOS)
1594 if (access == kOwnerAccessToFlags &&
1595 !!(experiment.supported_platforms & kOsCrOSOwnerOnly))
Nico 2013/04/16 21:40:24 nit: `!= 0` reads nicer than !! imo
pastarmovj 2013/04/17 16:03:22 Changed here and on 1592.
1596 supported = true;
1597 #endif
1588 data->SetBoolean("supported", supported); 1598 data->SetBoolean("supported", supported);
1589 1599
1590 ListValue* supported_platforms = new ListValue(); 1600 ListValue* supported_platforms = new ListValue();
1591 AddOsStrings(experiment.supported_platforms, supported_platforms); 1601 AddOsStrings(experiment.supported_platforms, supported_platforms);
1592 data->Set("supported_platforms", supported_platforms); 1602 data->Set("supported_platforms", supported_platforms);
1593 1603
1594 switch (experiment.type) { 1604 switch (experiment.type) {
1595 case Experiment::SINGLE_VALUE: 1605 case Experiment::SINGLE_VALUE:
1596 data->SetBoolean( 1606 data->SetBoolean(
1597 "enabled", 1607 "enabled",
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1844 } 1854 }
1845 1855
1846 const Experiment* GetExperiments(size_t* count) { 1856 const Experiment* GetExperiments(size_t* count) {
1847 *count = num_experiments; 1857 *count = num_experiments;
1848 return experiments; 1858 return experiments;
1849 } 1859 }
1850 1860
1851 } // namespace testing 1861 } // namespace testing
1852 1862
1853 } // namespace about_flags 1863 } // namespace about_flags
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698