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()15bool 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()23bool 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()35bool 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()47std::string GetEnhancedBookmarksExtensionId() { 48 return chrome_variations::GetVariationParamValue(kFieldTrialName, "id"); 49 } 50