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

Unified Diff: chrome/browser/google_apis/drive_notification_manager.h

Issue 13866037: Ports XMPP Invalidation code from drive_file_sync_service in /sync_file_system to /google_apis/driv… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated tests Created 7 years, 8 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
« no previous file with comments | « chrome/browser/google_apis/DEPS ('k') | chrome/browser/google_apis/drive_notification_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/google_apis/drive_notification_manager.h
diff --git a/chrome/browser/google_apis/drive_notification_manager.h b/chrome/browser/google_apis/drive_notification_manager.h
index 3f1fc6e891fa96101557aa25696a9802abb48ed6..16905db5b7c885977779a80d3e3d922ef1459972 100644
--- a/chrome/browser/google_apis/drive_notification_manager.h
+++ b/chrome/browser/google_apis/drive_notification_manager.h
@@ -8,6 +8,7 @@
#include "base/observer_list.h"
#include "chrome/browser/google_apis/drive_notification_observer.h"
#include "chrome/browser/profiles/profile_keyed_service.h"
+#include "sync/notifier/invalidation_handler.h"
class Profile;
@@ -20,7 +21,8 @@ namespace google_apis {
// 2. Polling timer counts down.
// TODO(calvinlo): Also add in backup timer.
class DriveNotificationManager
- : public ProfileKeyedService {
+ : public ProfileKeyedService,
+ public syncer::InvalidationHandler {
public:
explicit DriveNotificationManager(Profile* profile);
virtual ~DriveNotificationManager();
@@ -28,7 +30,11 @@ class DriveNotificationManager
// ProfileKeyedService override.
virtual void Shutdown() OVERRIDE;
- // TODO(calvinlo): OVERRIDES for syncer::InvalidationHandler go here.
+ // syncer::InvalidationHandler implementation.
+ virtual void OnInvalidatorStateChange(
+ syncer::InvalidatorState state) OVERRIDE;
+ virtual void OnIncomingInvalidation(
+ const syncer::ObjectIdInvalidationMap& invalidation_map) OVERRIDE;
void AddObserver(DriveNotificationObserver* observer);
void RemoveObserver(DriveNotificationObserver* observer);
@@ -36,9 +42,22 @@ class DriveNotificationManager
private:
void NotifyObserversToUpdate();
+ // XMPP notification related methods.
+ void RegisterDriveNotifications();
+ bool IsDriveNotificationSupported();
+ void SetPushNotificationEnabled(syncer::InvalidatorState state);
+
Profile* profile_;
ObserverList<DriveNotificationObserver> observers_;
+ // XMPP notification related variables.
+ // True when Drive File Sync Service is registered for Drive notifications.
+ bool push_notification_registered_;
+ // True once the first drive notification is received with OK state.
+ bool push_notification_enabled_;
+
+ // TODO(calvinlo): Polling variables to go here.
+
DISALLOW_COPY_AND_ASSIGN(DriveNotificationManager);
};
« no previous file with comments | « chrome/browser/google_apis/DEPS ('k') | chrome/browser/google_apis/drive_notification_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698