OLD | NEW |
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 #ifndef CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ | 5 #ifndef CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ |
6 #define CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ | 6 #define CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
11 | 11 |
12 namespace about_flags { | 12 class PrefService; |
13 class FlagsStorage; | |
14 } // namespace about_flags | |
15 | 13 |
16 class PrefService; | 14 // Returns true and sets |extension_id| if enhanced bookmarks experiment is |
17 class Profile; | 15 // enabled. Returns false if no bookmark experiment or extension id is empty. |
18 | 16 bool GetBookmarksExperimentExtensionID(std::string* extension_id); |
19 // States for bookmark experiment. They are set by Chrome sync into | |
20 // sync_driver::prefs::kEnhancedBookmarksExperimentEnabled user preference and | |
21 // used for UMA reporting as well. | |
22 enum BookmarksExperimentState { | |
23 BOOKMARKS_EXPERIMENT_NONE, | |
24 BOOKMARKS_EXPERIMENT_ENABLED, | |
25 BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT, | |
26 BOOKMARKS_EXPERIMENT_ENABLED_FROM_FINCH, | |
27 BOOKMARKS_EXPERIMENT_OPT_OUT_FROM_FINCH, | |
28 BOOKMARKS_EXPERIMENT_ENABLED_FROM_FINCH_USER_SIGNEDIN, | |
29 BOOKMARKS_EXPERIMENT_ENABLED_FROM_SYNC_UNKNOWN, | |
30 BOOKMARKS_EXPERIMENT_ENUM_SIZE | |
31 }; | |
32 | |
33 // Returns true and sets |extension_id| if bookmarks experiment enabled | |
34 // false if no bookmark experiment or extension id is empty. | |
35 bool GetBookmarksExperimentExtensionID(const PrefService* user_prefs, | |
36 std::string* extension_id); | |
37 | |
38 // Updates bookmark experiment state based on information from Chrome sync, | |
39 // Finch experiments, and command line flag. | |
40 void UpdateBookmarksExperimentState( | |
41 PrefService* user_prefs, | |
42 PrefService* local_state, | |
43 bool user_signed_in, | |
44 BookmarksExperimentState experiment_enabled_from_sync); | |
45 | |
46 // Same as UpdateBookmarksExperimentState, but the last argument with | |
47 // BOOKMARKS_EXPERIMENT_ENABLED_FROM_SYNC_UNKNOWN. | |
48 // Intended for performing initial configuration of bookmarks experiments | |
49 // when the browser is first initialized. | |
50 void InitBookmarksExperimentState(Profile* profile); | |
51 | |
52 // Sets flag to opt-in user into Finch experiment. | |
53 void ForceFinchBookmarkExperimentIfNeeded( | |
54 PrefService* local_state, | |
55 BookmarksExperimentState bookmarks_experiment_state); | |
56 | |
57 // Returns true if enhanced bookmarks experiment is running. | |
58 // Experiment could run by Chrome sync or by Finch. | |
59 // Note that this doesn't necessarily mean that enhanced bookmarks | |
60 // is enabled, e.g., user can opt out using a flag. | |
61 bool IsEnhancedBookmarksExperimentEnabled( | |
62 about_flags::FlagsStorage* flags_storage); | |
63 | 17 |
64 #if defined(OS_ANDROID) | 18 #if defined(OS_ANDROID) |
65 // Returns true if enhanced bookmark salient image prefetching is enabled. | 19 // Returns true if enhanced bookmark salient image prefetching is enabled. |
66 // This can be controlled by field trial. | 20 // This can be controlled by field trial. |
67 bool IsEnhancedBookmarkImageFetchingEnabled(const PrefService* user_prefs); | 21 bool IsEnhancedBookmarkImageFetchingEnabled(const PrefService* user_prefs); |
68 | 22 |
69 // Returns true if enhanced bookmarks is enabled. | 23 // Returns true if enhanced bookmarks is enabled. |
70 bool IsEnhancedBookmarksEnabled(const PrefService* user_prefs); | 24 bool IsEnhancedBookmarksEnabled(); |
71 | 25 |
72 #endif | 26 #endif |
73 | 27 |
74 // Returns true when flag enable-dom-distiller is set or enabled from Finch. | 28 // Returns true when flag enable-dom-distiller is set or enabled from Finch. |
75 bool IsEnableDomDistillerSet(); | 29 bool IsEnableDomDistillerSet(); |
76 | 30 |
77 // Returns true when flag enable-sync-articles is set or enabled from Finch. | 31 // Returns true when flag enable-sync-articles is set or enabled from Finch. |
78 bool IsEnableSyncArticlesSet(); | 32 bool IsEnableSyncArticlesSet(); |
79 | 33 |
80 #endif // CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ | 34 #endif // CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ |
OLD | NEW |