• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h"
6 
7 #include "base/command_line.h"
8 #include "chrome/common/chrome_switches.h"
9 #include "components/variations/variations_associated_data.h"
10 #include "extensions/common/features/feature.h"
11 #include "extensions/common/features/feature_provider.h"
12 
13 const char kFieldTrialName[] = "EnhancedBookmarks";
14 
IsEnhancedBookmarksExperimentEnabled()15 bool IsEnhancedBookmarksExperimentEnabled() {
16   std::string ext_id = GetEnhancedBookmarksExtensionId();
17   extensions::FeatureProvider* feature_provider =
18       extensions::FeatureProvider::GetPermissionFeatures();
19   extensions::Feature* feature = feature_provider->GetFeature("metricsPrivate");
20   return (feature && feature->IsIdInWhitelist(ext_id));
21 }
22 
IsEnableDomDistillerSet()23 bool IsEnableDomDistillerSet() {
24   if (CommandLine::ForCurrentProcess()->
25       HasSwitch(switches::kEnableDomDistiller)) {
26     return true;
27   }
28   if (chrome_variations::GetVariationParamValue(
29           kFieldTrialName, "enable-dom-distiller") == "1")
30     return true;
31 
32   return false;
33 }
34 
IsEnableSyncArticlesSet()35 bool IsEnableSyncArticlesSet() {
36   if (CommandLine::ForCurrentProcess()->
37       HasSwitch(switches::kEnableSyncArticles)) {
38     return true;
39   }
40   if (chrome_variations::GetVariationParamValue(
41           kFieldTrialName, "enable-sync-articles") == "1")
42     return true;
43 
44   return false;
45 }
46 
GetEnhancedBookmarksExtensionId()47 std::string GetEnhancedBookmarksExtensionId() {
48   return chrome_variations::GetVariationParamValue(kFieldTrialName, "id");
49 }
50