enhanced_bookmarks_features.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// found in the LICENSE file. 4a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 5a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#ifndef CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ 6a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#define CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ 7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include <string> 9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/common/extension.h" 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class PrefService; 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// States for bookmark experiment. They are set by Chrome sync into 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// sync_driver::prefs::kEnhancedBookmarksExperimentEnabled user preference and 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// used for UMA reporting as well. 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)enum BookmarksExperimentState { 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) kNoBookmarksExperiment, 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) kBookmarksExperimentEnabled, 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) kBookmarksExperimentEnabledUserOptOut, 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) kBookmarksExperimentEnabledFromFinch, 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) kBookmarksExperimentOptOutFromFinch, 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) kBookmarksExperimentEnabledFromFinchUserSignedIn, 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) kBookmarksExperimentEnabledFromSyncUnknown, 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) kBookmarksExperimentEnumSize 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}; 27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Returns true and sets |extension_id| if bookmarks experiment enabled 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// false if no bookmark experiment or extension id is empty. 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool GetBookmarksExperimentExtensionID(const PrefService* user_prefs, 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) std::string* extension_id); 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Updates bookmark experiment state based on information from Chrome sync 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// and Finch experiments. 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void UpdateBookmarksExperimentState( 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) PrefService* user_prefs, 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) PrefService* local_state, 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) bool user_signed_in, 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BookmarksExperimentState experiment_enabled_from_sync); 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Sets flag to opt-in user into Finch experiment. 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void ForceFinchBookmarkExperimentIfNeeded( 43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) PrefService* local_state, 44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) BookmarksExperimentState bookmarks_experiment_state); 455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 46a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Returns true if enhanced bookmarks experiment is enabled. 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Experiment could be enable from Chrome sync or from Finch. 48a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)bool IsEnhancedBookmarksExperimentEnabled(); 49a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 50a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Returns true when flag enable-dom-distiller is set or enabled from Finch. 51a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)bool IsEnableDomDistillerSet(); 52a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 53a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Returns true when flag enable-sync-articles is set or enabled from Finch. 54a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)bool IsEnableSyncArticlesSet(); 55a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 56a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif // CHROME_BROWSER_BOOKMARKS_ENHANCED_BOOKMARKS_FEATURES_H_ 57