Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2071)

Unified Diff: chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h

Issue 822523003: Implement device-local account policy pushing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@f_2_442800_switch_device_cloud_policy_invalidator
Patch Set: Rebased. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h
diff --git a/chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h b/chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h
index 5484355075d90fec28d864fb6c8059c61ec4f4da..c1b3b3627c6e506793d30f9d2cf2a9ef1f458649 100644
--- a/chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h
+++ b/chrome/browser/chromeos/policy/affiliated_invalidation_service_provider.h
@@ -6,15 +6,9 @@
#define CHROME_BROWSER_CHROMEOS_POLICY_AFFILIATED_INVALIDATION_SERVICE_PROVIDER_H_
#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/scoped_vector.h"
-#include "base/observer_list.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
namespace invalidation {
class InvalidationService;
-class TiclInvalidationService;
}
namespace policy {
@@ -34,11 +28,12 @@ namespace policy {
// between them whenever the service currently in use disconnects or the
// device-global invalidation service can be replaced with another service that
// just connected.
-class AffiliatedInvalidationServiceProvider
- : public content::NotificationObserver {
+class AffiliatedInvalidationServiceProvider {
public:
class Consumer {
public:
+ Consumer();
+
// This method is called when the invalidation service that the consumer
// should use changes:
// * If |invalidation_service| is a nullptr, no invalidation service is
@@ -51,15 +46,12 @@ class AffiliatedInvalidationServiceProvider
protected:
virtual ~Consumer();
+
+ DISALLOW_ASSIGN(Consumer);
};
AffiliatedInvalidationServiceProvider();
- ~AffiliatedInvalidationServiceProvider() override;
-
- // content::NotificationObserver:
- void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) override;
+ virtual ~AffiliatedInvalidationServiceProvider();
// Indicates that |consumer| is interested in using the shared
// |InvalidationService|. The consumer's OnInvalidationServiceSet() method
@@ -67,72 +59,20 @@ class AffiliatedInvalidationServiceProvider
// available. If an invalidation service is available already, the callback
// will occur synchronously. The |consumer| must be unregistered before |this|
// is destroyed.
- void RegisterConsumer(Consumer* consumer);
+ virtual void RegisterConsumer(Consumer* consumer) = 0;
// Indicates that |consumer| is no longer interested in using the
// shared |InvalidationService|.
- void UnregisterConsumer(Consumer* consumer);
+ virtual void UnregisterConsumer(Consumer* consumer) = 0;
// Shuts down the provider. Once the provider is shut down, it no longer makes
// any invalidation service available to consumers, no longer observes any
// per-profile invalidation services and no longer maintains a device-global
// invalidation service.
- void Shutdown();
-
- invalidation::TiclInvalidationService*
- GetDeviceInvalidationServiceForTest() const;
+ virtual void Shutdown() = 0;
private:
- // Helper that monitors the status of a single |InvalidationService|.
- class InvalidationServiceObserver;
-
- // Status updates received from |InvalidationServiceObserver|s.
- void OnInvalidationServiceConnected(
- invalidation::InvalidationService* invalidation_service);
- void OnInvalidationServiceDisconnected(
- invalidation::InvalidationService* invalidation_service);
-
- // Checks whether a connected |InvalidationService| affiliated with the
- // device's enrollment domain is available. If so, notifies the consumers.
- // Otherwise, consumers will be notified once such an invalidation service
- // becomes available.
- // Further ensures that a device-global invalidation service is running iff
- // there is no other connected service available for use and there is at least
- // one registered consumer.
- void FindConnectedInvalidationService();
-
- // Choose |invalidation_service| as the shared invalidation service and notify
- // consumers.
- void SetInvalidationService(
- invalidation::InvalidationService* invalidation_service);
-
- // Destroy the device-global invalidation service, if any.
- void DestroyDeviceInvalidationService();
-
- content::NotificationRegistrar registrar_;
-
- // Device-global invalidation service.
- scoped_ptr<invalidation::TiclInvalidationService>
- device_invalidation_service_;
-
- // State observer for the device-global invalidation service.
- scoped_ptr<InvalidationServiceObserver> device_invalidation_service_observer_;
-
- // State observers for logged-in users' invalidation services.
- ScopedVector<InvalidationServiceObserver>
- profile_invalidation_service_observers_;
-
- // The invalidation service currently used by consumers. nullptr if there are
- // no registered consumers or no connected invalidation service is available
- // for use.
- invalidation::InvalidationService* invalidation_service_;
-
- ObserverList<Consumer, true> consumers_;
- int consumer_count_;
-
- bool is_shut_down_;
-
- DISALLOW_COPY_AND_ASSIGN(AffiliatedInvalidationServiceProvider);
+ DISALLOW_ASSIGN(AffiliatedInvalidationServiceProvider);
};
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698