Index: chrome/browser/ui/webui/sync_internals_message_handler.h |
diff --git a/chrome/browser/ui/webui/sync_internals_message_handler.h b/chrome/browser/ui/webui/sync_internals_message_handler.h |
index 833a4fcebc430760b55b8dd610b23a7711879d9f..675594a9b2a7e44b305c1409dc9fcced9ddd316f 100644 |
--- a/chrome/browser/ui/webui/sync_internals_message_handler.h |
+++ b/chrome/browser/ui/webui/sync_internals_message_handler.h |
@@ -15,17 +15,18 @@ |
#include "chrome/browser/sync/profile_sync_service_observer.h" |
#include "chrome/browser/sync/protocol_event_observer.h" |
#include "content/public/browser/web_ui_message_handler.h" |
+#include "sync/internal_api/public/sessions/type_debug_info_observer.h" |
#include "sync/js/js_controller.h" |
#include "sync/js/js_event_handler.h" |
class ProfileSyncService; |
// The implementation for the chrome://sync-internals page. |
-class SyncInternalsMessageHandler |
- : public content::WebUIMessageHandler, |
- public syncer::JsEventHandler, |
- public ProfileSyncServiceObserver, |
- public browser_sync::ProtocolEventObserver { |
+class SyncInternalsMessageHandler : public content::WebUIMessageHandler, |
+ public syncer::JsEventHandler, |
+ public ProfileSyncServiceObserver, |
+ public browser_sync::ProtocolEventObserver, |
+ public syncer::TypeDebugInfoObserver { |
public: |
SyncInternalsMessageHandler(); |
virtual ~SyncInternalsMessageHandler(); |
@@ -35,6 +36,9 @@ class SyncInternalsMessageHandler |
// Sets up observers to receive events and forward them to the UI. |
void HandleRegisterForEvents(const base::ListValue* args); |
+ // Sets up observers to receive per-type counters and forward them to the UI. |
+ void HandleRegisterForPerTypeCounters(const base::ListValue* args); |
+ |
// Fires an event to send updated info back to the page. |
void HandleRequestUpdatedAboutInfo(const base::ListValue* args); |
@@ -58,6 +62,26 @@ class SyncInternalsMessageHandler |
// ProtocolEventObserver implementation. |
virtual void OnProtocolEvent(const syncer::ProtocolEvent& e) OVERRIDE; |
+ // TypeDebugInfoObserver implementation. |
+ virtual void OnCommitCountersUpdated( |
+ syncer::ModelType type, |
+ const syncer::CommitCounters& counters) OVERRIDE; |
+ virtual void OnUpdateCountersUpdated( |
+ syncer::ModelType type, |
+ const syncer::UpdateCounters& counters) OVERRIDE; |
+ virtual void OnStatusCountersUpdated( |
+ syncer::ModelType type, |
+ const syncer::StatusCounters& counters) OVERRIDE; |
+ |
+ // Helper to emit counter updates. |
+ // |
+ // Used in implementation of On*CounterUpdated methods. Emits the given |
+ // dictionary value with additional data to specify the model type and |
+ // counter type. |
+ void EmitCounterUpdate(syncer::ModelType type, |
+ const std::string& counter_type, |
+ scoped_ptr<base::DictionaryValue> value); |
+ |
private: |
// Fetches updated aboutInfo and sends it to the page in the form of an |
// onAboutInfoUpdated event. |
@@ -70,6 +94,10 @@ class SyncInternalsMessageHandler |
// A flag used to prevent double-registration with ProfileSyncService. |
bool is_registered_; |
+ // A flag used to prevent double-registration as TypeDebugInfoObserver with |
+ // ProfileSyncService. |
+ bool is_registered_for_counters_; |
+ |
base::WeakPtrFactory<SyncInternalsMessageHandler> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(SyncInternalsMessageHandler); |