Chromium Code Reviews| Index: components/gcm_driver/gcm_profile_service.h |
| diff --git a/components/gcm_driver/gcm_profile_service.h b/components/gcm_driver/gcm_profile_service.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..7af33356fe9c57a80c7858f95b3ef85346de8c9b |
| --- /dev/null |
| +++ b/components/gcm_driver/gcm_profile_service.h |
| @@ -0,0 +1,99 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_SERVICES_GCM_GCM_PROFILE_SERVICE_H_ |
|
sky
2015/10/30 15:36:51
fix guards.
Jitu( very slow this week)
2015/11/02 06:50:55
Done.
|
| +#define CHROME_BROWSER_SERVICES_GCM_GCM_PROFILE_SERVICE_H_ |
| + |
| +#include <string> |
| + |
| +#include "base/callback_forward.h" |
| +#include "base/compiler_specific.h" |
| +#include "base/files/file_path.h" |
| +#include "base/macros.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "components/keyed_service/core/keyed_service.h" |
| +#include "components/signin/core/browser/profile_identity_provider.h" |
| +#include "components/version_info/version_info.h" |
| + |
| +class PrefService; |
| +class ProfileOAuth2TokenService; |
| +class SigninManagerBase; |
| + |
| +namespace base { |
| +class SequencedTaskRunner; |
| +} |
| + |
| +namespace net { |
| +class URLRequestContextGetter; |
| +} |
| + |
| +namespace user_prefs { |
| +class PrefRegistrySyncable; |
| +} |
| + |
| +namespace gcm { |
| + |
| +class GCMClientFactory; |
| +class GCMDriver; |
| + |
| +#if defined(OS_CHROMEOS) |
| +class GCMConnectionObserver; |
| +#endif |
| + |
| +// Providing GCM service, via GCMDriver. |
| +class GCMProfileService : public KeyedService { |
| + public: |
| + // Returns whether GCM is enabled. |
| + static bool IsGCMEnabled(PrefService* prefs); |
|
sky
2015/10/30 15:36:51
constructor/destructor before all other functions.
Jitu( very slow this week)
2015/11/02 06:50:55
Done.
|
| + |
| +#if defined(OS_ANDROID) |
| + explicit GCMProfileService( |
|
dcheng
2015/10/30 15:44:14
Nit: no explicit, since it takes multiple argument
Jitu( very slow this week)
2015/11/02 06:50:55
Done.
|
| + base::FilePath path, |
| + scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner); |
| +#else |
| + GCMProfileService( |
| + PrefService* prefs, |
| + base::FilePath path, |
| + net::URLRequestContextGetter* request_context, |
| + version_info::Channel channel, |
| + scoped_ptr<ProfileIdentityProvider> identity_provider, |
| + scoped_ptr<GCMClientFactory> gcm_client_factory, |
| + const scoped_refptr<base::SequencedTaskRunner>& ui_task_runner, |
| + const scoped_refptr<base::SequencedTaskRunner>& io_task_runner, |
| + scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner); |
| +#endif |
| + ~GCMProfileService() override; |
| + |
| + // KeyedService: |
| + void Shutdown() override; |
| + |
| + // For testing purpose. |
| + void SetDriverForTesting(const base::Closure& login_callback, |
| + GCMDriver* driver); |
| + |
| + GCMDriver* driver() const { return driver_.get(); } |
| + |
| + protected: |
| + // Used for constructing fake GCMProfileService for testing purpose. |
| + GCMProfileService(); |
| + |
| + private: |
| + net::URLRequestContextGetter* request_context_; |
| + scoped_ptr<ProfileIdentityProvider> profile_identity_provider_; |
| + |
| + scoped_ptr<GCMDriver> driver_; |
| + |
| +// Used for both account tracker and GCM.UserSignedIn UMA. |
| +#if !defined(OS_ANDROID) |
| + class IdentityObserver; |
| + scoped_ptr<IdentityObserver> identity_observer_; |
| +#endif |
| + |
| + DISALLOW_COPY_AND_ASSIGN(GCMProfileService); |
| +}; |
| + |
| +} // namespace gcm |
| + |
| +#endif // CHROME_BROWSER_SERVICES_GCM_GCM_PROFILE_SERVICE_H_ |