Temporarily re-enabling SizeAfterPrefChange test with traces (this time for Linux...
[chromium-blink-merge.git] / chrome / browser / invalidation / ticl_profile_settings_provider.cc
blob978f4188d58c49d30af5013ec8bc6fff0240ca8c
1 // Copyright 2014 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.
5 #include "chrome/browser/invalidation/ticl_profile_settings_provider.h"
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "base/command_line.h"
10 #include "base/prefs/pref_service.h"
11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/services/gcm/gcm_profile_service.h"
13 #include "chrome/common/chrome_switches.h"
14 #include "chrome/common/pref_names.h"
16 namespace invalidation {
18 TiclProfileSettingsProvider::TiclProfileSettingsProvider(Profile* profile)
19 : profile_(profile) {
20 registrar_.Init(profile->GetPrefs());
21 registrar_.Add(
22 prefs::kInvalidationServiceUseGCMChannel,
23 base::Bind(&TiclProfileSettingsProvider::FireOnUseGCMChannelChanged,
24 base::Unretained(this)));
25 registrar_.Add(
26 prefs::kGCMChannelEnabled,
27 base::Bind(&TiclProfileSettingsProvider::FireOnUseGCMChannelChanged,
28 base::Unretained(this)));
31 TiclProfileSettingsProvider::~TiclProfileSettingsProvider() {
34 bool TiclProfileSettingsProvider::UseGCMChannel() const {
35 if (!gcm::GCMProfileService::IsGCMEnabled(profile_)) {
36 // Do not try to use GCM channel if GCM is disabled.
37 return false;
40 if (profile_->GetPrefs()->GetBoolean(
41 prefs::kInvalidationServiceUseGCMChannel)) {
42 // Use GCM channel if it was enabled via prefs.
43 return true;
46 if (CommandLine::ForCurrentProcess()->HasSwitch(
47 switches::kInvalidationUseGCMChannel)) {
48 // Use GCM channel if it was enabled via a command-line switch.
49 return true;
52 // By default, do not use GCM channel.
53 return false;
56 } // namespace invalidation