enhanced_bookmarks_features.cc revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
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
13const char kFieldTrialName[] = "EnhancedBookmarks";
14
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
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
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
47std::string GetEnhancedBookmarksExtensionId() {
48  return chrome_variations::GetVariationParamValue(kFieldTrialName, "id");
49}
50