OLD | NEW |
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/sync_internals_message_handler.h" | 5 #include "chrome/browser/ui/webui/sync_internals_message_handler.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 | 27 |
28 using browser_sync::ProfileSyncService; | 28 using browser_sync::ProfileSyncService; |
29 using syncer::JsEventDetails; | 29 using syncer::JsEventDetails; |
30 using syncer::ModelTypeSet; | 30 using syncer::ModelTypeSet; |
31 using syncer::WeakHandle; | 31 using syncer::WeakHandle; |
32 | 32 |
33 namespace { | 33 namespace { |
34 class UtilAboutSyncDataExtractor : public AboutSyncDataExtractor { | 34 class UtilAboutSyncDataExtractor : public AboutSyncDataExtractor { |
35 public: | 35 public: |
36 std::unique_ptr<base::DictionaryValue> ConstructAboutInformation( | 36 std::unique_ptr<base::DictionaryValue> ConstructAboutInformation( |
37 sync_driver::SyncService* service, | 37 syncer::SyncService* service, |
38 SigninManagerBase* signin) override { | 38 SigninManagerBase* signin) override { |
39 return sync_driver::sync_ui_util::ConstructAboutInformation( | 39 return syncer::sync_ui_util::ConstructAboutInformation( |
40 service, signin, chrome::GetChannel()); | 40 service, signin, chrome::GetChannel()); |
41 } | 41 } |
42 }; | 42 }; |
43 } // namespace | 43 } // namespace |
44 | 44 |
45 SyncInternalsMessageHandler::SyncInternalsMessageHandler() | 45 SyncInternalsMessageHandler::SyncInternalsMessageHandler() |
46 : SyncInternalsMessageHandler( | 46 : SyncInternalsMessageHandler( |
47 base::MakeUnique<UtilAboutSyncDataExtractor>()) {} | 47 base::MakeUnique<UtilAboutSyncDataExtractor>()) {} |
48 | 48 |
49 SyncInternalsMessageHandler::SyncInternalsMessageHandler( | 49 SyncInternalsMessageHandler::SyncInternalsMessageHandler( |
(...skipping 13 matching lines...) Expand all Loading... |
63 | 63 |
64 if (service && is_registered_for_counters_) { | 64 if (service && is_registered_for_counters_) { |
65 service->RemoveTypeDebugInfoObserver(this); | 65 service->RemoveTypeDebugInfoObserver(this); |
66 } | 66 } |
67 } | 67 } |
68 | 68 |
69 void SyncInternalsMessageHandler::RegisterMessages() { | 69 void SyncInternalsMessageHandler::RegisterMessages() { |
70 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 70 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
71 | 71 |
72 web_ui()->RegisterMessageCallback( | 72 web_ui()->RegisterMessageCallback( |
73 sync_driver::sync_ui_util::kRegisterForEvents, | 73 syncer::sync_ui_util::kRegisterForEvents, |
74 base::Bind(&SyncInternalsMessageHandler::HandleRegisterForEvents, | 74 base::Bind(&SyncInternalsMessageHandler::HandleRegisterForEvents, |
75 base::Unretained(this))); | 75 base::Unretained(this))); |
76 | 76 |
77 web_ui()->RegisterMessageCallback( | 77 web_ui()->RegisterMessageCallback( |
78 sync_driver::sync_ui_util::kRegisterForPerTypeCounters, | 78 syncer::sync_ui_util::kRegisterForPerTypeCounters, |
79 base::Bind(&SyncInternalsMessageHandler::HandleRegisterForPerTypeCounters, | 79 base::Bind(&SyncInternalsMessageHandler::HandleRegisterForPerTypeCounters, |
80 base::Unretained(this))); | 80 base::Unretained(this))); |
81 | 81 |
82 web_ui()->RegisterMessageCallback( | 82 web_ui()->RegisterMessageCallback( |
83 sync_driver::sync_ui_util::kRequestUpdatedAboutInfo, | 83 syncer::sync_ui_util::kRequestUpdatedAboutInfo, |
84 base::Bind(&SyncInternalsMessageHandler::HandleRequestUpdatedAboutInfo, | 84 base::Bind(&SyncInternalsMessageHandler::HandleRequestUpdatedAboutInfo, |
85 base::Unretained(this))); | 85 base::Unretained(this))); |
86 | 86 |
87 web_ui()->RegisterMessageCallback( | 87 web_ui()->RegisterMessageCallback( |
88 sync_driver::sync_ui_util::kRequestListOfTypes, | 88 syncer::sync_ui_util::kRequestListOfTypes, |
89 base::Bind(&SyncInternalsMessageHandler::HandleRequestListOfTypes, | 89 base::Bind(&SyncInternalsMessageHandler::HandleRequestListOfTypes, |
90 base::Unretained(this))); | 90 base::Unretained(this))); |
91 | 91 |
92 web_ui()->RegisterMessageCallback( | 92 web_ui()->RegisterMessageCallback( |
93 sync_driver::sync_ui_util::kGetAllNodes, | 93 syncer::sync_ui_util::kGetAllNodes, |
94 base::Bind(&SyncInternalsMessageHandler::HandleGetAllNodes, | 94 base::Bind(&SyncInternalsMessageHandler::HandleGetAllNodes, |
95 base::Unretained(this))); | 95 base::Unretained(this))); |
96 } | 96 } |
97 | 97 |
98 void SyncInternalsMessageHandler::HandleRegisterForEvents( | 98 void SyncInternalsMessageHandler::HandleRegisterForEvents( |
99 const base::ListValue* args) { | 99 const base::ListValue* args) { |
100 DCHECK(args->empty()); | 100 DCHECK(args->empty()); |
101 | 101 |
102 // is_registered_ flag protects us from double-registering. This could | 102 // is_registered_ flag protects us from double-registering. This could |
103 // happen on a page refresh, where the JavaScript gets re-run but the | 103 // happen on a page refresh, where the JavaScript gets re-run but the |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 void SyncInternalsMessageHandler::HandleRequestListOfTypes( | 137 void SyncInternalsMessageHandler::HandleRequestListOfTypes( |
138 const base::ListValue* args) { | 138 const base::ListValue* args) { |
139 DCHECK(args->empty()); | 139 DCHECK(args->empty()); |
140 base::DictionaryValue event_details; | 140 base::DictionaryValue event_details; |
141 std::unique_ptr<base::ListValue> type_list(new base::ListValue()); | 141 std::unique_ptr<base::ListValue> type_list(new base::ListValue()); |
142 ModelTypeSet protocol_types = syncer::ProtocolTypes(); | 142 ModelTypeSet protocol_types = syncer::ProtocolTypes(); |
143 for (ModelTypeSet::Iterator it = protocol_types.First(); | 143 for (ModelTypeSet::Iterator it = protocol_types.First(); |
144 it.Good(); it.Inc()) { | 144 it.Good(); it.Inc()) { |
145 type_list->AppendString(ModelTypeToString(it.Get())); | 145 type_list->AppendString(ModelTypeToString(it.Get())); |
146 } | 146 } |
147 event_details.Set(sync_driver::sync_ui_util::kTypes, type_list.release()); | 147 event_details.Set(syncer::sync_ui_util::kTypes, type_list.release()); |
148 web_ui()->CallJavascriptFunctionUnsafe( | 148 web_ui()->CallJavascriptFunctionUnsafe( |
149 sync_driver::sync_ui_util::kDispatchEvent, | 149 syncer::sync_ui_util::kDispatchEvent, |
150 base::StringValue(sync_driver::sync_ui_util::kOnReceivedListOfTypes), | 150 base::StringValue(syncer::sync_ui_util::kOnReceivedListOfTypes), |
151 event_details); | 151 event_details); |
152 } | 152 } |
153 | 153 |
154 void SyncInternalsMessageHandler::HandleGetAllNodes( | 154 void SyncInternalsMessageHandler::HandleGetAllNodes( |
155 const base::ListValue* args) { | 155 const base::ListValue* args) { |
156 DCHECK_EQ(1U, args->GetSize()); | 156 DCHECK_EQ(1U, args->GetSize()); |
157 int request_id = 0; | 157 int request_id = 0; |
158 bool success = args->GetInteger(0, &request_id); | 158 bool success = args->GetInteger(0, &request_id); |
159 DCHECK(success); | 159 DCHECK(success); |
160 | 160 |
161 ProfileSyncService* service = GetProfileSyncService(); | 161 ProfileSyncService* service = GetProfileSyncService(); |
162 if (service) { | 162 if (service) { |
163 service->GetAllNodes( | 163 service->GetAllNodes( |
164 base::Bind(&SyncInternalsMessageHandler::OnReceivedAllNodes, | 164 base::Bind(&SyncInternalsMessageHandler::OnReceivedAllNodes, |
165 weak_ptr_factory_.GetWeakPtr(), request_id)); | 165 weak_ptr_factory_.GetWeakPtr(), request_id)); |
166 } | 166 } |
167 } | 167 } |
168 | 168 |
169 void SyncInternalsMessageHandler::OnReceivedAllNodes( | 169 void SyncInternalsMessageHandler::OnReceivedAllNodes( |
170 int request_id, | 170 int request_id, |
171 std::unique_ptr<base::ListValue> nodes) { | 171 std::unique_ptr<base::ListValue> nodes) { |
172 base::FundamentalValue id(request_id); | 172 base::FundamentalValue id(request_id); |
173 web_ui()->CallJavascriptFunctionUnsafe( | 173 web_ui()->CallJavascriptFunctionUnsafe( |
174 sync_driver::sync_ui_util::kGetAllNodesCallback, id, *nodes); | 174 syncer::sync_ui_util::kGetAllNodesCallback, id, *nodes); |
175 } | 175 } |
176 | 176 |
177 void SyncInternalsMessageHandler::OnStateChanged() { | 177 void SyncInternalsMessageHandler::OnStateChanged() { |
178 SendAboutInfo(); | 178 SendAboutInfo(); |
179 } | 179 } |
180 | 180 |
181 void SyncInternalsMessageHandler::OnProtocolEvent( | 181 void SyncInternalsMessageHandler::OnProtocolEvent( |
182 const syncer::ProtocolEvent& event) { | 182 const syncer::ProtocolEvent& event) { |
183 std::unique_ptr<base::DictionaryValue> value( | 183 std::unique_ptr<base::DictionaryValue> value( |
184 syncer::ProtocolEvent::ToValue(event)); | 184 syncer::ProtocolEvent::ToValue(event)); |
185 web_ui()->CallJavascriptFunctionUnsafe( | 185 web_ui()->CallJavascriptFunctionUnsafe( |
186 sync_driver::sync_ui_util::kDispatchEvent, | 186 syncer::sync_ui_util::kDispatchEvent, |
187 base::StringValue(sync_driver::sync_ui_util::kOnProtocolEvent), *value); | 187 base::StringValue(syncer::sync_ui_util::kOnProtocolEvent), *value); |
188 } | 188 } |
189 | 189 |
190 void SyncInternalsMessageHandler::OnCommitCountersUpdated( | 190 void SyncInternalsMessageHandler::OnCommitCountersUpdated( |
191 syncer::ModelType type, | 191 syncer::ModelType type, |
192 const syncer::CommitCounters& counters) { | 192 const syncer::CommitCounters& counters) { |
193 EmitCounterUpdate(type, sync_driver::sync_ui_util::kCommit, | 193 EmitCounterUpdate(type, syncer::sync_ui_util::kCommit, counters.ToValue()); |
194 counters.ToValue()); | |
195 } | 194 } |
196 | 195 |
197 void SyncInternalsMessageHandler::OnUpdateCountersUpdated( | 196 void SyncInternalsMessageHandler::OnUpdateCountersUpdated( |
198 syncer::ModelType type, | 197 syncer::ModelType type, |
199 const syncer::UpdateCounters& counters) { | 198 const syncer::UpdateCounters& counters) { |
200 EmitCounterUpdate(type, sync_driver::sync_ui_util::kUpdate, | 199 EmitCounterUpdate(type, syncer::sync_ui_util::kUpdate, counters.ToValue()); |
201 counters.ToValue()); | |
202 } | 200 } |
203 | 201 |
204 void SyncInternalsMessageHandler::OnStatusCountersUpdated( | 202 void SyncInternalsMessageHandler::OnStatusCountersUpdated( |
205 syncer::ModelType type, | 203 syncer::ModelType type, |
206 const syncer::StatusCounters& counters) { | 204 const syncer::StatusCounters& counters) { |
207 EmitCounterUpdate(type, sync_driver::sync_ui_util::kStatus, | 205 EmitCounterUpdate(type, syncer::sync_ui_util::kStatus, counters.ToValue()); |
208 counters.ToValue()); | |
209 } | 206 } |
210 | 207 |
211 void SyncInternalsMessageHandler::EmitCounterUpdate( | 208 void SyncInternalsMessageHandler::EmitCounterUpdate( |
212 syncer::ModelType type, | 209 syncer::ModelType type, |
213 const std::string& counter_type, | 210 const std::string& counter_type, |
214 std::unique_ptr<base::DictionaryValue> value) { | 211 std::unique_ptr<base::DictionaryValue> value) { |
215 std::unique_ptr<base::DictionaryValue> details(new base::DictionaryValue()); | 212 std::unique_ptr<base::DictionaryValue> details(new base::DictionaryValue()); |
216 details->SetString(sync_driver::sync_ui_util::kModelType, | 213 details->SetString(syncer::sync_ui_util::kModelType, ModelTypeToString(type)); |
217 ModelTypeToString(type)); | 214 details->SetString(syncer::sync_ui_util::kCounterType, counter_type); |
218 details->SetString(sync_driver::sync_ui_util::kCounterType, counter_type); | 215 details->Set(syncer::sync_ui_util::kCounters, value.release()); |
219 details->Set(sync_driver::sync_ui_util::kCounters, value.release()); | |
220 web_ui()->CallJavascriptFunctionUnsafe( | 216 web_ui()->CallJavascriptFunctionUnsafe( |
221 sync_driver::sync_ui_util::kDispatchEvent, | 217 syncer::sync_ui_util::kDispatchEvent, |
222 base::StringValue(sync_driver::sync_ui_util::kOnCountersUpdated), | 218 base::StringValue(syncer::sync_ui_util::kOnCountersUpdated), *details); |
223 *details); | |
224 } | 219 } |
225 | 220 |
226 void SyncInternalsMessageHandler::HandleJsEvent( | 221 void SyncInternalsMessageHandler::HandleJsEvent( |
227 const std::string& name, | 222 const std::string& name, |
228 const JsEventDetails& details) { | 223 const JsEventDetails& details) { |
229 DVLOG(1) << "Handling event: " << name | 224 DVLOG(1) << "Handling event: " << name |
230 << " with details " << details.ToString(); | 225 << " with details " << details.ToString(); |
231 web_ui()->CallJavascriptFunctionUnsafe( | 226 web_ui()->CallJavascriptFunctionUnsafe(syncer::sync_ui_util::kDispatchEvent, |
232 sync_driver::sync_ui_util::kDispatchEvent, base::StringValue(name), | 227 base::StringValue(name), |
233 details.Get()); | 228 details.Get()); |
234 } | 229 } |
235 | 230 |
236 void SyncInternalsMessageHandler::SendAboutInfo() { | 231 void SyncInternalsMessageHandler::SendAboutInfo() { |
237 ProfileSyncService* sync_service = GetProfileSyncService(); | 232 ProfileSyncService* sync_service = GetProfileSyncService(); |
238 SigninManagerBase* signin = sync_service ? sync_service->signin() : nullptr; | 233 SigninManagerBase* signin = sync_service ? sync_service->signin() : nullptr; |
239 std::unique_ptr<base::DictionaryValue> value = | 234 std::unique_ptr<base::DictionaryValue> value = |
240 about_sync_data_extractor_->ConstructAboutInformation(sync_service, | 235 about_sync_data_extractor_->ConstructAboutInformation(sync_service, |
241 signin); | 236 signin); |
242 web_ui()->CallJavascriptFunctionUnsafe( | 237 web_ui()->CallJavascriptFunctionUnsafe( |
243 sync_driver::sync_ui_util::kDispatchEvent, | 238 syncer::sync_ui_util::kDispatchEvent, |
244 base::StringValue(sync_driver::sync_ui_util::kOnAboutInfoUpdated), | 239 base::StringValue(syncer::sync_ui_util::kOnAboutInfoUpdated), *value); |
245 *value); | |
246 } | 240 } |
247 | 241 |
248 // Gets the ProfileSyncService of the underlying original profile. | 242 // Gets the ProfileSyncService of the underlying original profile. |
249 // May return NULL (e.g., if sync is disabled on the command line). | 243 // May return NULL (e.g., if sync is disabled on the command line). |
250 ProfileSyncService* SyncInternalsMessageHandler::GetProfileSyncService() { | 244 ProfileSyncService* SyncInternalsMessageHandler::GetProfileSyncService() { |
251 Profile* profile = Profile::FromWebUI(web_ui()); | 245 Profile* profile = Profile::FromWebUI(web_ui()); |
252 return ProfileSyncServiceFactory::GetForProfile( | 246 return ProfileSyncServiceFactory::GetForProfile( |
253 profile->GetOriginalProfile()); | 247 profile->GetOriginalProfile()); |
254 } | 248 } |
OLD | NEW |