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

Side by Side Diff: components/sync/model/data_type_error_handler_impl.cc

Issue 2886933003: Use stricter type checking in UMA_HISTOGRAM_ENUMERATION (Closed)
Patch Set: simplify type checking Created 3 years, 5 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/model/data_type_error_handler_impl.h" 5 #include "components/sync/model/data_type_error_handler_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 9
10 namespace syncer { 10 namespace syncer {
11 11
12 DataTypeErrorHandlerImpl::DataTypeErrorHandlerImpl( 12 DataTypeErrorHandlerImpl::DataTypeErrorHandlerImpl(
13 const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread, 13 const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
14 const base::Closure& dump_stack, 14 const base::Closure& dump_stack,
15 const ErrorCallback& sync_callback) 15 const ErrorCallback& sync_callback)
16 : ui_thread_(ui_thread), 16 : ui_thread_(ui_thread),
17 dump_stack_(dump_stack), 17 dump_stack_(dump_stack),
18 sync_callback_(sync_callback) {} 18 sync_callback_(sync_callback) {}
19 19
20 DataTypeErrorHandlerImpl::~DataTypeErrorHandlerImpl() {} 20 DataTypeErrorHandlerImpl::~DataTypeErrorHandlerImpl() {}
21 21
22 void DataTypeErrorHandlerImpl::OnUnrecoverableError(const SyncError& error) { 22 void DataTypeErrorHandlerImpl::OnUnrecoverableError(const SyncError& error) {
23 if (!dump_stack_.is_null()) 23 if (!dump_stack_.is_null())
24 dump_stack_.Run(); 24 dump_stack_.Run();
25 // TODO(wychen): enum uma should be strongly typed. crbug.com/661401
25 UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeRunFailures", 26 UMA_HISTOGRAM_ENUMERATION("Sync.DataTypeRunFailures",
26 ModelTypeToHistogramInt(error.model_type()), 27 ModelTypeToHistogramInt(error.model_type()),
27 MODEL_TYPE_COUNT); 28 static_cast<int>(MODEL_TYPE_COUNT));
28 ui_thread_->PostTask(error.location(), base::Bind(sync_callback_, error)); 29 ui_thread_->PostTask(error.location(), base::Bind(sync_callback_, error));
29 } 30 }
30 31
31 SyncError DataTypeErrorHandlerImpl::CreateAndUploadError( 32 SyncError DataTypeErrorHandlerImpl::CreateAndUploadError(
32 const tracked_objects::Location& location, 33 const tracked_objects::Location& location,
33 const std::string& message, 34 const std::string& message,
34 ModelType type) { 35 ModelType type) {
35 if (!dump_stack_.is_null()) 36 if (!dump_stack_.is_null())
36 dump_stack_.Run(); 37 dump_stack_.Run();
37 return SyncError(location, SyncError::DATATYPE_ERROR, message, type); 38 return SyncError(location, SyncError::DATATYPE_ERROR, message, type);
38 } 39 }
39 40
40 std::unique_ptr<DataTypeErrorHandler> DataTypeErrorHandlerImpl::Copy() const { 41 std::unique_ptr<DataTypeErrorHandler> DataTypeErrorHandlerImpl::Copy() const {
41 return base::MakeUnique<DataTypeErrorHandlerImpl>(ui_thread_, dump_stack_, 42 return base::MakeUnique<DataTypeErrorHandlerImpl>(ui_thread_, dump_stack_,
42 sync_callback_); 43 sync_callback_);
43 } 44 }
44 45
45 } // namespace syncer 46 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/engine_impl/model_type_registry.cc ('k') | components/sync_bookmarks/bookmark_model_associator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698