1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/sync/glue/session_data_type_controller.h"
6
7 #include "base/metrics/histogram.h"
8 #include "chrome/browser/sync/profile_sync_factory.h"
9
10 namespace browser_sync {
11
SessionDataTypeController(ProfileSyncFactory * profile_sync_factory,Profile * profile,ProfileSyncService * sync_service)12 SessionDataTypeController::SessionDataTypeController(
13 ProfileSyncFactory* profile_sync_factory,
14 Profile* profile,
15 ProfileSyncService* sync_service)
16 : FrontendDataTypeController(profile_sync_factory,
17 profile,
18 sync_service) {
19 }
20
~SessionDataTypeController()21 SessionDataTypeController::~SessionDataTypeController() {}
22
GetModelAssociator()23 SessionModelAssociator* SessionDataTypeController::GetModelAssociator() {
24 return reinterpret_cast<SessionModelAssociator*>(model_associator_.get());
25 }
26
type() const27 syncable::ModelType SessionDataTypeController::type() const {
28 return syncable::SESSIONS;
29 }
30
CreateSyncComponents()31 void SessionDataTypeController::CreateSyncComponents() {
32 ProfileSyncFactory::SyncComponents sync_components = profile_sync_factory_->
33 CreateSessionSyncComponents(sync_service_, this);
34 model_associator_.reset(sync_components.model_associator);
35 change_processor_.reset(sync_components.change_processor);
36 }
37
RecordUnrecoverableError(const tracked_objects::Location & from_here,const std::string & message)38 void SessionDataTypeController::RecordUnrecoverableError(
39 const tracked_objects::Location& from_here,
40 const std::string& message) {
41 UMA_HISTOGRAM_COUNTS("Sync.SessionRunFailures", 1);
42 }
43
RecordAssociationTime(base::TimeDelta time)44 void SessionDataTypeController::RecordAssociationTime(base::TimeDelta time) {
45 UMA_HISTOGRAM_TIMES("Sync.SessionAssociationTime", time);
46 }
47
RecordStartFailure(StartResult result)48 void SessionDataTypeController::RecordStartFailure(StartResult result) {
49 UMA_HISTOGRAM_ENUMERATION("Sync.SessionStartFailures",
50 result,
51 MAX_START_RESULT);
52 }
53
54 } // namespace browser_sync
55
56