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

Side by Side Diff: chrome/browser/bookmarks/enhanced_bookmarks_features.cc

Issue 497563002: [Android] Use correct enhanced bookmarks enabling logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: indent fix Created 6 years, 3 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/bookmarks/enhanced_bookmarks_features.h" 5 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "base/prefs/scoped_user_pref_update.h" 10 #include "base/prefs/scoped_user_pref_update.h"
(...skipping 21 matching lines...) Expand all
32 #if defined(OS_ANDROID) 32 #if defined(OS_ANDROID)
33 return !ext_id.empty(); 33 return !ext_id.empty();
34 #else 34 #else
35 const extensions::FeatureProvider* feature_provider = 35 const extensions::FeatureProvider* feature_provider =
36 extensions::FeatureProvider::GetPermissionFeatures(); 36 extensions::FeatureProvider::GetPermissionFeatures();
37 extensions::Feature* feature = feature_provider->GetFeature("metricsPrivate"); 37 extensions::Feature* feature = feature_provider->GetFeature("metricsPrivate");
38 return feature && feature->IsIdInWhitelist(ext_id); 38 return feature && feature->IsIdInWhitelist(ext_id);
39 #endif 39 #endif
40 } 40 }
41 41
42 PrefService* GetFlagsStorage(PrefService* user_prefs,
43 PrefService* local_state) {
44 #if defined(OS_CHROMEOS)
45 // Chrome OS is using user prefs for flags storage.
46 return user_prefs;
47 #else
48 return local_state;
49 #endif
50 }
51
42 }; // namespace 52 }; // namespace
43 53
44 bool GetBookmarksExperimentExtensionID(const PrefService* user_prefs, 54 bool GetBookmarksExperimentExtensionID(const PrefService* user_prefs,
45 std::string* extension_id) { 55 std::string* extension_id) {
46 BookmarksExperimentState bookmarks_experiment_state = 56 BookmarksExperimentState bookmarks_experiment_state =
47 static_cast<BookmarksExperimentState>(user_prefs->GetInteger( 57 static_cast<BookmarksExperimentState>(user_prefs->GetInteger(
48 sync_driver::prefs::kEnhancedBookmarksExperimentEnabled)); 58 sync_driver::prefs::kEnhancedBookmarksExperimentEnabled));
49 if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED_FROM_FINCH) { 59 if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED_FROM_FINCH) {
50 *extension_id = GetEnhancedBookmarksExtensionIdFromFinch(); 60 *extension_id = GetEnhancedBookmarksExtensionIdFromFinch();
51 return !extension_id->empty(); 61 return !extension_id->empty();
52 } 62 }
53 if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED) { 63 if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED) {
54 *extension_id = user_prefs->GetString( 64 *extension_id = user_prefs->GetString(
55 sync_driver::prefs::kEnhancedBookmarksExtensionId); 65 sync_driver::prefs::kEnhancedBookmarksExtensionId);
56 return !extension_id->empty(); 66 return !extension_id->empty();
57 } 67 }
58 68
59 return false; 69 return false;
60 } 70 }
61 71
62 void UpdateBookmarksExperimentState( 72 void UpdateBookmarksExperimentState(
63 PrefService* user_prefs, 73 PrefService* user_prefs,
64 PrefService* local_state, 74 PrefService* local_state,
65 bool user_signed_in, 75 bool user_signed_in,
66 BookmarksExperimentState experiment_enabled_from_sync) { 76 BookmarksExperimentState experiment_enabled_from_sync) {
67 PrefService* flags_storage = local_state; 77 PrefService* flags_storage = GetFlagsStorage(user_prefs, local_state);
68 #if defined(OS_CHROMEOS)
69 // Chrome OS is using user prefs for flags storage.
70 flags_storage = user_prefs;
71 #endif
72 78
73 BookmarksExperimentState bookmarks_experiment_state_before = 79 BookmarksExperimentState bookmarks_experiment_state_before =
74 static_cast<BookmarksExperimentState>(user_prefs->GetInteger( 80 static_cast<BookmarksExperimentState>(user_prefs->GetInteger(
75 sync_driver::prefs::kEnhancedBookmarksExperimentEnabled)); 81 sync_driver::prefs::kEnhancedBookmarksExperimentEnabled));
76 // If user signed out, clear possible previous state. 82 // If user signed out, clear possible previous state.
77 if (!user_signed_in) { 83 if (!user_signed_in) {
78 bookmarks_experiment_state_before = BOOKMARKS_EXPERIMENT_NONE; 84 bookmarks_experiment_state_before = BOOKMARKS_EXPERIMENT_NONE;
79 ForceFinchBookmarkExperimentIfNeeded(flags_storage, 85 ForceFinchBookmarkExperimentIfNeeded(flags_storage,
80 BOOKMARKS_EXPERIMENT_NONE); 86 BOOKMARKS_EXPERIMENT_NONE);
81 } 87 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT) { 128 BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT) {
123 if (opt_out) { 129 if (opt_out) {
124 bookmarks_experiment_new_state = 130 bookmarks_experiment_new_state =
125 BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT; 131 BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT;
126 } else { 132 } else {
127 // User opted in again. 133 // User opted in again.
128 bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED; 134 bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED;
129 } 135 }
130 } 136 }
131 137
138 #if defined(OS_ANDROID)
139 bool opt_in = !opt_out
140 && CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
141 switches::kEnhancedBookmarksExperiment) == "1";
142 if (opt_in && bookmarks_experiment_new_state == BOOKMARKS_EXPERIMENT_NONE)
143 bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED;
144 #endif
145
132 UMA_HISTOGRAM_ENUMERATION("EnhancedBookmarks.SyncExperimentState", 146 UMA_HISTOGRAM_ENUMERATION("EnhancedBookmarks.SyncExperimentState",
133 bookmarks_experiment_new_state, 147 bookmarks_experiment_new_state,
134 BOOKMARKS_EXPERIMENT_ENUM_SIZE); 148 BOOKMARKS_EXPERIMENT_ENUM_SIZE);
135 user_prefs->SetInteger( 149 user_prefs->SetInteger(
136 sync_driver::prefs::kEnhancedBookmarksExperimentEnabled, 150 sync_driver::prefs::kEnhancedBookmarksExperimentEnabled,
137 bookmarks_experiment_new_state); 151 bookmarks_experiment_new_state);
138 ForceFinchBookmarkExperimentIfNeeded(flags_storage, 152 ForceFinchBookmarkExperimentIfNeeded(flags_storage,
139 bookmarks_experiment_new_state); 153 bookmarks_experiment_new_state);
140 } 154 }
141 155
(...skipping 19 matching lines...) Expand all
161 new base::StringValue(switches::kManualEnhancedBookmarks)); 175 new base::StringValue(switches::kManualEnhancedBookmarks));
162 } else if (bookmarks_experiment_state == 176 } else if (bookmarks_experiment_state ==
163 BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT) { 177 BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT) {
164 experiments_list->Remove( 178 experiments_list->Remove(
165 base::StringValue(switches::kManualEnhancedBookmarks), &index); 179 base::StringValue(switches::kManualEnhancedBookmarks), &index);
166 experiments_list->AppendIfNotPresent( 180 experiments_list->AppendIfNotPresent(
167 new base::StringValue(switches::kManualEnhancedBookmarksOptout)); 181 new base::StringValue(switches::kManualEnhancedBookmarksOptout));
168 } 182 }
169 } 183 }
170 184
171 bool IsEnhancedBookmarksExperimentEnabled() { 185 #if defined(OS_ANDROID)
172 CommandLine* command_line = CommandLine::ForCurrentProcess();
173 if (command_line->HasSwitch(switches::kManualEnhancedBookmarks) ||
174 command_line->HasSwitch(switches::kManualEnhancedBookmarksOptout)) {
175 return true;
176 }
177 186
178 return IsEnhancedBookmarksExperimentEnabledFromFinch(); 187 bool IsEnhancedBookmarkImageFetchingEnabled(PrefService* user_prefs,
179 } 188 PrefService* local_state) {
180 189 if (IsEnhancedBookmarksExperimentEnabled(user_prefs, local_state))
181 #if defined(OS_ANDROID)
182 bool IsEnhancedBookmarkImageFetchingEnabled() {
183 if (IsEnhancedBookmarksExperimentEnabled())
184 return true; 190 return true;
185 191
186 // Salient images are collected from visited bookmarked pages even if the 192 // Salient images are collected from visited bookmarked pages even if the
187 // enhanced bookmark feature is turned off. This is to have some images 193 // enhanced bookmark feature is turned off. This is to have some images
188 // available so that in the future, when the feature is turned on, the user 194 // available so that in the future, when the feature is turned on, the user
189 // experience is not a big list of flat colors. However as a precautionary 195 // experience is not a big list of flat colors. However as a precautionary
190 // measure it is possible to disable this collection of images from finch. 196 // measure it is possible to disable this collection of images from finch.
191 std::string disable_fetching = variations::GetVariationParamValue( 197 std::string disable_fetching = variations::GetVariationParamValue(
192 kFieldTrialName, "DisableImagesFetching"); 198 kFieldTrialName, "DisableImagesFetching");
193 return disable_fetching.empty(); 199 return disable_fetching.empty();
194 } 200 }
201
202 bool IsEnhancedBookmarksExperimentEnabled(PrefService* user_prefs,
203 PrefService* local_state) {
204 PrefService* flags_storage = GetFlagsStorage(user_prefs, local_state);
205
206 const base::ListValue* experiments_list = flags_storage->GetList(
207 prefs::kEnabledLabsExperiments);
208
209 if (flags_storage) {
210 if (experiments_list->Find(
211 base::StringValue(switches::kManualEnhancedBookmarks))
Yaron 2014/08/28 00:17:40 I don't understand the distinction here. Either ex
Kibeom Kim (inactive) 2014/08/28 18:31:00 Done.
212 != experiments_list->end()) {
213 return true;
214 } else if (experiments_list->Find(
215 base::StringValue(switches::kManualEnhancedBookmarksOptout))
216 != experiments_list->end()) {
217 return false;
218 }
219 }
220
221 return IsEnhancedBookmarksExperimentEnabledFromFinch();
222 }
223
224 #else
225
226 bool IsEnhancedBookmarksExperimentEnabled() {
227 CommandLine* command_line = CommandLine::ForCurrentProcess();
228 if (command_line->HasSwitch(switches::kManualEnhancedBookmarks) ||
229 command_line->HasSwitch(switches::kManualEnhancedBookmarksOptout)) {
230 return true;
231 }
232 return IsEnhancedBookmarksExperimentEnabledFromFinch();
233 }
234
195 #endif 235 #endif
196 236
197 bool IsEnableDomDistillerSet() { 237 bool IsEnableDomDistillerSet() {
198 if (CommandLine::ForCurrentProcess()-> 238 if (CommandLine::ForCurrentProcess()->
199 HasSwitch(switches::kEnableDomDistiller)) { 239 HasSwitch(switches::kEnableDomDistiller)) {
200 return true; 240 return true;
201 } 241 }
202 if (variations::GetVariationParamValue( 242 if (variations::GetVariationParamValue(
203 kFieldTrialName, "enable-dom-distiller") == "1") 243 kFieldTrialName, "enable-dom-distiller") == "1")
204 return true; 244 return true;
205 245
206 return false; 246 return false;
207 } 247 }
208 248
209 bool IsEnableSyncArticlesSet() { 249 bool IsEnableSyncArticlesSet() {
210 if (CommandLine::ForCurrentProcess()-> 250 if (CommandLine::ForCurrentProcess()->
211 HasSwitch(switches::kEnableSyncArticles)) { 251 HasSwitch(switches::kEnableSyncArticles)) {
212 return true; 252 return true;
213 } 253 }
214 if (variations::GetVariationParamValue( 254 if (variations::GetVariationParamValue(
215 kFieldTrialName, "enable-sync-articles") == "1") 255 kFieldTrialName, "enable-sync-articles") == "1")
216 return true; 256 return true;
217 257
218 return false; 258 return false;
219 } 259 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/enhanced_bookmarks_features.h ('k') | chrome/browser/chrome_browser_main.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698