summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/glue/sync_backend_host.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/sync/glue/sync_backend_host.h')
-rw-r--r--chrome/browser/sync/glue/sync_backend_host.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/chrome/browser/sync/glue/sync_backend_host.h b/chrome/browser/sync/glue/sync_backend_host.h
index 0a6fde3..bafe140 100644
--- a/chrome/browser/sync/glue/sync_backend_host.h
+++ b/chrome/browser/sync/glue/sync_backend_host.h
@@ -27,6 +27,7 @@
#include "sync/internal_api/public/util/unrecoverable_error_handler.h"
#include "sync/internal_api/public/util/weak_handle.h"
#include "sync/notifier/sync_notifier_factory.h"
+#include "sync/notifier/sync_notifier_observer.h"
#include "sync/protocol/encryption.pb.h"
#include "sync/protocol/sync_protocol_error.h"
@@ -51,7 +52,7 @@ class SyncPrefs;
// activity.
// NOTE: All methods will be invoked by a SyncBackendHost on the same thread
// used to create that SyncBackendHost.
-class SyncFrontend {
+class SyncFrontend : public syncer::SyncNotifierObserver {
public:
SyncFrontend() {}
@@ -175,9 +176,13 @@ class SyncBackendHost : public BackendDataTypeConfigurer {
syncer::ReportUnrecoverableErrorFunction
report_unrecoverable_error_function);
- // Called from |frontend_loop| to update SyncCredentials.
+ // Called on |frontend_loop| to update SyncCredentials.
void UpdateCredentials(const syncer::SyncCredentials& credentials);
+ // Registers the underlying frontend for the given IDs to the
+ // underlying notifier.
+ void UpdateRegisteredInvalidationIds(const syncer::ObjectIdSet& ids);
+
// This starts the SyncerThread running a Syncer object to communicate with
// sync servers. Until this is called, no changes will leave or enter this
// browser from the cloud / sync servers.
@@ -349,6 +354,8 @@ class SyncBackendHost : public BackendDataTypeConfigurer {
const syncer::WeakHandle<syncer::JsBackend>& js_backend, bool success,
syncer::ModelTypeSet restored_types);
+ SyncFrontend* frontend() { return frontend_; }
+
private:
// The real guts of SyncBackendHost, to keep the public client API clean.
class Core;
@@ -460,6 +467,14 @@ class SyncBackendHost : public BackendDataTypeConfigurer {
const syncer::WeakHandle<syncer::JsBackend>& js_backend,
syncer::ModelTypeSet failed_configuration_types);
+ // syncer::SyncNotifierObserver-like functions.
+ void HandleNotificationsEnabledOnFrontendLoop();
+ void HandleNotificationsDisabledOnFrontendLoop(
+ syncer::NotificationsDisabledReason reason);
+ void HandleIncomingNotificationOnFrontendLoop(
+ const syncer::ObjectIdPayloadMap& id_payloads,
+ syncer::IncomingNotificationSource source);
+
// Must be called on |frontend_loop_|. |done_callback| is called on
// |frontend_loop_|.
void RefreshNigori(const base::Closure& done_callback);