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

Side by Side Diff: chrome/browser/ui/webui/invalidations_message_handler.cc

Issue 159773006: [invalidations] Added table with registered objectsIds (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@about_invalidations_clean
Patch Set: Change constness of iterators for android clang Created 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/invalidations_message_handler.h" 5 #include "chrome/browser/ui/webui/invalidations_message_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "chrome/browser/invalidation/invalidation_logger.h" 8 #include "chrome/browser/invalidation/invalidation_logger.h"
9 #include "chrome/browser/invalidation/invalidation_service.h" 9 #include "chrome/browser/invalidation/invalidation_service.h"
10 #include "chrome/browser/invalidation/invalidation_service_factory.h" 10 #include "chrome/browser/invalidation/invalidation_service_factory.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "content/public/browser/web_ui.h" 12 #include "content/public/browser/web_ui.h"
13 #include "sync/notifier/invalidation_handler.h"
13 14
14 namespace invalidation { 15 namespace invalidation {
15 class InvalidationLogger; 16 class InvalidationLogger;
16 } // namespace invalidation 17 } // namespace invalidation
17 18
18 namespace syncer { 19 namespace syncer {
19 class ObjectIdInvalidationMap; 20 class ObjectIdInvalidationMap;
20 } // namespace syncer 21 } // namespace syncer
21 22
22 InvalidationsMessageHandler::InvalidationsMessageHandler() 23 InvalidationsMessageHandler::InvalidationsMessageHandler()
23 : logger_(NULL), isRegistered(false) {} 24 : logger_(NULL) {}
24 25
25 InvalidationsMessageHandler::~InvalidationsMessageHandler() { 26 InvalidationsMessageHandler::~InvalidationsMessageHandler() {
26 if (logger_) 27 if (logger_)
27 logger_->UnregisterForDebug(this); 28 logger_->UnregisterObserver(this);
28 } 29 }
29 30
30 void InvalidationsMessageHandler::RegisterMessages() { 31 void InvalidationsMessageHandler::RegisterMessages() {
31 web_ui()->RegisterMessageCallback( 32 web_ui()->RegisterMessageCallback(
32 "doneLoading", 33 "doneLoading",
33 base::Bind(&InvalidationsMessageHandler::UIReady, 34 base::Bind(&InvalidationsMessageHandler::UIReady,
34 base::Unretained(this))); 35 base::Unretained(this)));
35 } 36 }
36 37
37 void InvalidationsMessageHandler::UIReady(const base::ListValue* args) { 38 void InvalidationsMessageHandler::UIReady(const base::ListValue* args) {
38 Profile* profile = Profile::FromWebUI(web_ui()); 39 Profile* profile = Profile::FromWebUI(web_ui());
39 if (!isRegistered && profile) { 40 if (profile) {
40 invalidation::InvalidationService* invalidation_service = 41 invalidation::InvalidationService* invalidation_service =
41 invalidation::InvalidationServiceFactory::GetForProfile(profile); 42 invalidation::InvalidationServiceFactory::GetForProfile(profile);
42 if (invalidation_service) 43 if (invalidation_service)
43 logger_ = invalidation_service->GetInvalidationLogger(); 44 logger_ = invalidation_service->GetInvalidationLogger();
44 if (logger_) { 45 if (logger_) {
45 logger_->RegisterForDebug(this); 46 if (!logger_->IsObserverRegistered(this))
46 isRegistered = true; 47 logger_->RegisterObserver(this);
47 } 48 }
48 } 49 }
49 UpdateContent(args); 50 UpdateContent(args);
50 } 51 }
51 52
52 void InvalidationsMessageHandler::UpdateContent(const base::ListValue* args) { 53 void InvalidationsMessageHandler::UpdateContent(const base::ListValue* args) {
53 if (logger_) 54 if (logger_)
54 logger_->EmitContent(); 55 logger_->EmitContent();
55 } 56 }
56 57
57 void InvalidationsMessageHandler::OnUnregistration( 58 void InvalidationsMessageHandler::OnUnregistration(
58 const base::DictionaryValue& newRegistrationState) {} 59 const base::DictionaryValue& details) {}
59 60
60 void InvalidationsMessageHandler::OnRegistration( 61 void InvalidationsMessageHandler::OnRegistration(
61 const base::DictionaryValue& newRegistrationState) {} 62 const base::DictionaryValue& details) {}
62 63
63 void InvalidationsMessageHandler::OnStateChange( 64 void InvalidationsMessageHandler::OnStateChange(
64 const syncer::InvalidatorState& newState) { 65 const syncer::InvalidatorState& new_state) {
65 std::string state(syncer::InvalidatorStateToString(newState)); 66 std::string state(syncer::InvalidatorStateToString(new_state));
66 web_ui()->CallJavascriptFunction("chrome.invalidations.updateState", 67 web_ui()->CallJavascriptFunction("chrome.invalidations.updateState",
67 base::StringValue(state)); 68 base::StringValue(state));
68 } 69 }
69 70
70 void InvalidationsMessageHandler::OnUpdateIds( 71 void InvalidationsMessageHandler::OnUpdateIds(
71 const base::DictionaryValue& newIds) {} 72 const std::string& handler_name,
72 73 const syncer::ObjectIdSet& ids_set) {
74 scoped_ptr<base::ListValue> list_of_objects = ObjectIdSetToList(ids_set);
75 web_ui()->CallJavascriptFunction("chrome.invalidations.updateIds",
76 base::StringValue(handler_name),
77 *list_of_objects);
78 }
73 void InvalidationsMessageHandler::OnDebugMessage( 79 void InvalidationsMessageHandler::OnDebugMessage(
74 const base::DictionaryValue& details) {} 80 const base::DictionaryValue& details) {}
75 81
76 void InvalidationsMessageHandler::OnInvalidation( 82 void InvalidationsMessageHandler::OnInvalidation(
77 const syncer::ObjectIdInvalidationMap& newInvalidations) { 83 const syncer::ObjectIdInvalidationMap& new_invalidations) {
78 scoped_ptr<base::ListValue> invalidationsList = newInvalidations.ToValue(); 84 scoped_ptr<base::ListValue> invalidations_list = new_invalidations.ToValue();
79 web_ui()->CallJavascriptFunction("chrome.invalidations.logInvalidations", 85 web_ui()->CallJavascriptFunction("chrome.invalidations.logInvalidations",
80 *invalidationsList); 86 *invalidations_list);
81 } 87 }
88
89 scoped_ptr<base::ListValue> InvalidationsMessageHandler::ObjectIdSetToList(
90 const syncer::ObjectIdSet& ids_set) {
91 scoped_ptr<base::ListValue> list(new base::ListValue());
92
93 for (syncer::ObjectIdSet::const_iterator it = ids_set.begin();
94 it != ids_set.end(); ++it) {
95 scoped_ptr<base::DictionaryValue> dic(new base::DictionaryValue);
96 dic->SetString("name", it->name());
97 dic->SetInteger("source", it->source());
98 list->Append(dic.release());
99 }
100 return list.Pass();
101 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/invalidations_message_handler.h ('k') | chrome/test/data/webui/about_invalidations_browsertest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698