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 "components/sync/driver/model_type_controller.h" | 5 #include "components/sync/driver/model_type_controller.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 const ModelErrorHandler& error_handler, | 32 const ModelErrorHandler& error_handler, |
33 const ModelTypeChangeProcessor::StartCallback& callback, | 33 const ModelTypeChangeProcessor::StartCallback& callback, |
34 ModelTypeSyncBridge* bridge) { | 34 ModelTypeSyncBridge* bridge) { |
35 bridge->OnSyncStarting(std::move(error_handler), std::move(callback)); | 35 bridge->OnSyncStarting(std::move(error_handler), std::move(callback)); |
36 } | 36 } |
37 | 37 |
38 void ReportError(ModelType model_type, | 38 void ReportError(ModelType model_type, |
39 scoped_refptr<base::SingleThreadTaskRunner> ui_thread, | 39 scoped_refptr<base::SingleThreadTaskRunner> ui_thread, |
40 const ModelErrorHandler& error_handler, | 40 const ModelErrorHandler& error_handler, |
41 const ModelError& error) { | 41 const ModelError& error) { |
| 42 // TODO(wychen): enum uma should be strongly typed. crbug.com/661401 |
42 UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeRunFailures", | 43 UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeRunFailures", |
43 ModelTypeToHistogramInt(model_type), | 44 ModelTypeToHistogramInt(model_type), |
44 MODEL_TYPE_COUNT); | 45 static_cast<int>(MODEL_TYPE_COUNT)); |
45 ui_thread->PostTask(error.location(), base::Bind(error_handler, error)); | 46 ui_thread->PostTask(error.location(), base::Bind(error_handler, error)); |
46 } | 47 } |
47 | 48 |
48 // This function allows us to return a Callback using Bind that returns the | 49 // This function allows us to return a Callback using Bind that returns the |
49 // given |arg|. This function itself does nothing. | 50 // given |arg|. This function itself does nothing. |
50 base::WeakPtr<ModelTypeSyncBridge> ReturnCapturedBridge( | 51 base::WeakPtr<ModelTypeSyncBridge> ReturnCapturedBridge( |
51 base::WeakPtr<ModelTypeSyncBridge> arg) { | 52 base::WeakPtr<ModelTypeSyncBridge> arg) { |
52 return arg; | 53 return arg; |
53 } | 54 } |
54 | 55 |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 | 239 |
239 void ModelTypeController::ReportModelError(const ModelError& error) { | 240 void ModelTypeController::ReportModelError(const ModelError& error) { |
240 DCHECK(CalledOnValidThread()); | 241 DCHECK(CalledOnValidThread()); |
241 LoadModelsDone(UNRECOVERABLE_ERROR, | 242 LoadModelsDone(UNRECOVERABLE_ERROR, |
242 SyncError(error.location(), SyncError::DATATYPE_ERROR, | 243 SyncError(error.location(), SyncError::DATATYPE_ERROR, |
243 error.message(), type())); | 244 error.message(), type())); |
244 } | 245 } |
245 | 246 |
246 void ModelTypeController::RecordStartFailure(ConfigureResult result) const { | 247 void ModelTypeController::RecordStartFailure(ConfigureResult result) const { |
247 DCHECK(CalledOnValidThread()); | 248 DCHECK(CalledOnValidThread()); |
| 249 // TODO(wychen): enum uma should be strongly typed. crbug.com/661401 |
248 UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeStartFailures", | 250 UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeStartFailures", |
249 ModelTypeToHistogramInt(type()), MODEL_TYPE_COUNT); | 251 ModelTypeToHistogramInt(type()), |
| 252 static_cast<int>(MODEL_TYPE_COUNT)); |
250 #define PER_DATA_TYPE_MACRO(type_str) \ | 253 #define PER_DATA_TYPE_MACRO(type_str) \ |
251 UMA_HISTOGRAM_ENUMERATION("Sync." type_str "ConfigureFailure", result, \ | 254 UMA_HISTOGRAM_ENUMERATION("Sync." type_str "ConfigureFailure", result, \ |
252 MAX_CONFIGURE_RESULT); | 255 MAX_CONFIGURE_RESULT); |
253 SYNC_DATA_TYPE_HISTOGRAM(type()); | 256 SYNC_DATA_TYPE_HISTOGRAM(type()); |
254 #undef PER_DATA_TYPE_MACRO | 257 #undef PER_DATA_TYPE_MACRO |
255 } | 258 } |
256 | 259 |
257 BridgeProvider ModelTypeController::GetBridgeProvider() { | 260 BridgeProvider ModelTypeController::GetBridgeProvider() { |
258 // Get the bridge eagerly, and capture the weak pointer. | 261 // Get the bridge eagerly, and capture the weak pointer. |
259 base::WeakPtr<ModelTypeSyncBridge> bridge = | 262 base::WeakPtr<ModelTypeSyncBridge> bridge = |
260 sync_client_->GetSyncBridgeForModelType(type()); | 263 sync_client_->GetSyncBridgeForModelType(type()); |
261 return base::Bind(&ReturnCapturedBridge, bridge); | 264 return base::Bind(&ReturnCapturedBridge, bridge); |
262 } | 265 } |
263 | 266 |
264 void ModelTypeController::PostBridgeTask( | 267 void ModelTypeController::PostBridgeTask( |
265 const tracked_objects::Location& location, | 268 const tracked_objects::Location& location, |
266 const BridgeTask& task) { | 269 const BridgeTask& task) { |
267 model_thread_->PostTask( | 270 model_thread_->PostTask( |
268 location, base::Bind(&RunBridgeTask, GetBridgeProvider(), task)); | 271 location, base::Bind(&RunBridgeTask, GetBridgeProvider(), task)); |
269 } | 272 } |
270 } // namespace syncer | 273 } // namespace syncer |
OLD | NEW |