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

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

Issue 68173031: Added enhanced bookmarks extension as an external component extension (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
11 #include <utility> 11 #include <utility>
12 12
13 #include "ash/ash_switches.h" 13 #include "ash/ash_switches.h"
14 #include "base/command_line.h" 14 #include "base/command_line.h"
15 #include "base/memory/singleton.h" 15 #include "base/memory/singleton.h"
16 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
17 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
18 #include "base/values.h" 18 #include "base/values.h"
19 #include "cc/base/switches.h" 19 #include "cc/base/switches.h"
20 #include "chrome/browser/extensions/external_component_loader.h"
20 #include "chrome/browser/flags_storage.h" 21 #include "chrome/browser/flags_storage.h"
21 #include "chrome/common/chrome_content_client.h" 22 #include "chrome/common/chrome_content_client.h"
22 #include "chrome/common/chrome_switches.h" 23 #include "chrome/common/chrome_switches.h"
23 #include "components/nacl/common/nacl_switches.h" 24 #include "components/nacl/common/nacl_switches.h"
24 #include "content/public/browser/user_metrics.h" 25 #include "content/public/browser/user_metrics.h"
25 #include "extensions/common/switches.h" 26 #include "extensions/common/switches.h"
26 #include "grit/chromium_strings.h" 27 #include "grit/chromium_strings.h"
27 #include "grit/generated_resources.h" 28 #include "grit/generated_resources.h"
28 #include "grit/google_chrome_strings.h" 29 #include "grit/google_chrome_strings.h"
29 #include "media/base/media_switches.h" 30 #include "media/base/media_switches.h"
(...skipping 1794 matching lines...) Expand 10 before | Expand all | Expand 10 after
1824 SINGLE_VALUE_TYPE(views::switches::kViewsUseRectBasedTargeting) 1825 SINGLE_VALUE_TYPE(views::switches::kViewsUseRectBasedTargeting)
1825 }, 1826 },
1826 #endif 1827 #endif
1827 { 1828 {
1828 "enable-apps-show-on-first-paint", 1829 "enable-apps-show-on-first-paint",
1829 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_NAME, 1830 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_NAME,
1830 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION, 1831 IDS_FLAGS_ENABLE_APPS_SHOW_ON_FIRST_PAINT_DESCRIPTION,
1831 kOsDesktop, 1832 kOsDesktop,
1832 SINGLE_VALUE_TYPE(switches::kEnableAppsShowOnFirstPaint) 1833 SINGLE_VALUE_TYPE(switches::kEnableAppsShowOnFirstPaint)
1833 }, 1834 },
1835 {
1836 "enable-enhanced-bookmarks",
1837 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_NAME,
1838 IDS_FLAGS_ENABLE_ENHANCED_BOOKMARKS_DESCRIPTION,
1839 kOsDesktop,
1840 ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(switches::kEnableEnhancedBookmarks, "1",
1841 switches::kEnableEnhancedBookmarks, "0")
1842 },
1834 }; 1843 };
1835 1844
1836 const Experiment* experiments = kExperiments; 1845 const Experiment* experiments = kExperiments;
1837 size_t num_experiments = arraysize(kExperiments); 1846 size_t num_experiments = arraysize(kExperiments);
1838 1847
1839 // Stores and encapsulates the little state that about:flags has. 1848 // Stores and encapsulates the little state that about:flags has.
1840 class FlagsState { 1849 class FlagsState {
1841 public: 1850 public:
1842 FlagsState() : needs_restart_(false) {} 1851 FlagsState() : needs_restart_(false) {}
1843 void ConvertFlagsToSwitches(FlagsStorage* flags_storage, 1852 void ConvertFlagsToSwitches(FlagsStorage* flags_storage,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1926 if (new_enabled_experiments != enabled_experiments) 1935 if (new_enabled_experiments != enabled_experiments)
1927 flags_storage->SetFlags(new_enabled_experiments); 1936 flags_storage->SetFlags(new_enabled_experiments);
1928 } 1937 }
1929 1938
1930 void GetSanitizedEnabledFlags( 1939 void GetSanitizedEnabledFlags(
1931 FlagsStorage* flags_storage, std::set<std::string>* result) { 1940 FlagsStorage* flags_storage, std::set<std::string>* result) {
1932 SanitizeList(flags_storage); 1941 SanitizeList(flags_storage);
1933 *result = flags_storage->GetFlags(); 1942 *result = flags_storage->GetFlags();
1934 } 1943 }
1935 1944
1945 bool SkipConditionalExperiment(const Experiment& experiment) {
1946 if (experiment.internal_name == std::string("enable-enhanced-bookmarks")) {
1947 return !extensions::ExternalComponentLoader::
1948 IsEnhancedBookmarksExperimentEnabled();
1949 }
1950 return false;
1951 }
1952
1953
1936 // Variant of GetSanitizedEnabledFlags that also removes any flags that aren't 1954 // Variant of GetSanitizedEnabledFlags that also removes any flags that aren't
1937 // enabled on the current platform. 1955 // enabled on the current platform.
1938 void GetSanitizedEnabledFlagsForCurrentPlatform( 1956 void GetSanitizedEnabledFlagsForCurrentPlatform(
1939 FlagsStorage* flags_storage, std::set<std::string>* result) { 1957 FlagsStorage* flags_storage, std::set<std::string>* result) {
1940 GetSanitizedEnabledFlags(flags_storage, result); 1958 GetSanitizedEnabledFlags(flags_storage, result);
1941 1959
1942 // Filter out any experiments that aren't enabled on the current platform. We 1960 // Filter out any experiments that aren't enabled on the current platform. We
1943 // don't remove these from prefs else syncing to a platform with a different 1961 // don't remove these from prefs else syncing to a platform with a different
1944 // set of experiments would be lossy. 1962 // set of experiments would be lossy.
1945 std::set<std::string> platform_experiments; 1963 std::set<std::string> platform_experiments;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2033 FlagAccess access, 2051 FlagAccess access,
2034 base::ListValue* supported_experiments, 2052 base::ListValue* supported_experiments,
2035 base::ListValue* unsupported_experiments) { 2053 base::ListValue* unsupported_experiments) {
2036 std::set<std::string> enabled_experiments; 2054 std::set<std::string> enabled_experiments;
2037 GetSanitizedEnabledFlags(flags_storage, &enabled_experiments); 2055 GetSanitizedEnabledFlags(flags_storage, &enabled_experiments);
2038 2056
2039 int current_platform = GetCurrentPlatform(); 2057 int current_platform = GetCurrentPlatform();
2040 2058
2041 for (size_t i = 0; i < num_experiments; ++i) { 2059 for (size_t i = 0; i < num_experiments; ++i) {
2042 const Experiment& experiment = experiments[i]; 2060 const Experiment& experiment = experiments[i];
2061 if (SkipConditionalExperiment(experiment))
2062 continue;
2043 2063
2044 DictionaryValue* data = new DictionaryValue(); 2064 DictionaryValue* data = new DictionaryValue();
2045 data->SetString("internal_name", experiment.internal_name); 2065 data->SetString("internal_name", experiment.internal_name);
2046 data->SetString("name", 2066 data->SetString("name",
2047 l10n_util::GetStringUTF16(experiment.visible_name_id)); 2067 l10n_util::GetStringUTF16(experiment.visible_name_id));
2048 data->SetString("description", 2068 data->SetString("description",
2049 l10n_util::GetStringUTF16( 2069 l10n_util::GetStringUTF16(
2050 experiment.visible_description_id)); 2070 experiment.visible_description_id));
2051 2071
2052 ListValue* supported_platforms = new ListValue(); 2072 ListValue* supported_platforms = new ListValue();
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
2324 } 2344 }
2325 2345
2326 const Experiment* GetExperiments(size_t* count) { 2346 const Experiment* GetExperiments(size_t* count) {
2327 *count = num_experiments; 2347 *count = num_experiments;
2328 return experiments; 2348 return experiments;
2329 } 2349 }
2330 2350
2331 } // namespace testing 2351 } // namespace testing
2332 2352
2333 } // namespace about_flags 2353 } // namespace about_flags
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698