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"
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"
15 #include "components/gcm_driver/gcm_channel_status_syncer.h"
17 namespace invalidation
{
19 TiclProfileSettingsProvider::TiclProfileSettingsProvider(Profile
* profile
)
21 registrar_
.Init(profile
->GetPrefs());
23 prefs::kInvalidationServiceUseGCMChannel
,
24 base::Bind(&TiclProfileSettingsProvider::FireOnUseGCMChannelChanged
,
25 base::Unretained(this)));
27 gcm::prefs::kGCMChannelStatus
,
28 base::Bind(&TiclProfileSettingsProvider::FireOnUseGCMChannelChanged
,
29 base::Unretained(this)));
32 TiclProfileSettingsProvider::~TiclProfileSettingsProvider() {
35 bool TiclProfileSettingsProvider::UseGCMChannel() const {
36 if (profile_
->GetPrefs()->GetBoolean(
37 prefs::kInvalidationServiceUseGCMChannel
)) {
38 // Use GCM channel if it was enabled via prefs.
42 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
43 switches::kInvalidationUseGCMChannel
)) {
44 // Use GCM channel if it was enabled via a command-line switch.
48 // By default, do not use GCM channel.
52 } // namespace invalidation