Index: chrome/browser/sync/glue/session_model_associator.cc |
diff --git a/chrome/browser/sync/glue/session_model_associator.cc b/chrome/browser/sync/glue/session_model_associator.cc |
index 0457f7241c4dd6511e1f02ad88a3212fd33c60ea..66cb3c677eb1c0aed0b503f685e1739d56395319 100644 |
--- a/chrome/browser/sync/glue/session_model_associator.cc |
+++ b/chrome/browser/sync/glue/session_model_associator.cc |
@@ -18,6 +18,7 @@ |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/sessions/session_id.h" |
+#include "chrome/browser/sync/glue/device_info.h" |
#include "chrome/browser/sync/glue/synced_session.h" |
#include "chrome/browser/sync/glue/synced_tab_delegate.h" |
#include "chrome/browser/sync/glue/synced_window_delegate.h" |
@@ -34,12 +35,10 @@ |
#include "sync/internal_api/public/base/model_type_state_map.h" |
#include "sync/internal_api/public/read_node.h" |
#include "sync/internal_api/public/read_transaction.h" |
+#include "sync/internal_api/public/user_share.h" |
#include "sync/internal_api/public/write_node.h" |
#include "sync/internal_api/public/write_transaction.h" |
#include "sync/protocol/session_specifics.pb.h" |
-#include "sync/syncable/directory.h" |
-#include "sync/syncable/read_transaction.h" |
-#include "sync/syncable/write_transaction.h" |
#include "sync/util/get_session_name.h" |
#include "sync/util/time.h" |
#include "ui/gfx/favicon_size.h" |
@@ -76,26 +75,6 @@ bool IsTabletUI() { |
} |
#endif |
-sync_pb::SessionHeader::DeviceType GetLocalDeviceType() { |
- // TODO(yfriedman): Refactor/combine with "DeviceInformation" code in |
- // sync_manager.cc[1060] |
-#if defined(OS_CHROMEOS) |
- return sync_pb::SessionHeader_DeviceType_TYPE_CROS; |
-#elif defined(OS_LINUX) |
- return sync_pb::SessionHeader_DeviceType_TYPE_LINUX; |
-#elif defined(OS_MACOSX) |
- return sync_pb::SessionHeader_DeviceType_TYPE_MAC; |
-#elif defined(OS_WIN) |
- return sync_pb::SessionHeader_DeviceType_TYPE_WIN; |
-#elif defined(OS_ANDROID) |
- return IsTabletUI() ? |
- sync_pb::SessionHeader_DeviceType_TYPE_TABLET : |
- sync_pb::SessionHeader_DeviceType_TYPE_PHONE; |
-#else |
- return sync_pb::SessionHeader_DeviceType_TYPE_OTHER; |
-#endif |
-} |
- |
} // namespace |
SessionModelAssociator::SessionModelAssociator(ProfileSyncService* sync_service, |
@@ -203,7 +182,7 @@ bool SessionModelAssociator::AssociateWindows(bool reload_tabs, |
synced_session_tracker_.GetSession(local_tag); |
current_session->modified_time = base::Time::Now(); |
header_s->set_client_name(current_session_name_); |
- header_s->set_device_type(GetLocalDeviceType()); |
+ header_s->set_device_type(DeviceInfo::GetLocalDeviceType()); |
synced_session_tracker_.ResetSessionTracking(local_tag); |
std::set<SyncedWindowDelegate*> windows = |
@@ -763,7 +742,7 @@ syncer::SyncError SessionModelAssociator::AssociateModels() { |
// Make sure we have a machine tag. |
if (current_machine_tag_.empty()) { |
- InitializeCurrentMachineTag(&trans); |
+ InitializeCurrentMachineTag(sync_service_->GetUserShare()); |
// The session name is retrieved asynchronously so it might not come back |
// for the writing of the session. However, we write to the session often |
// enough (on every navigation) that we'll pick it up quickly. |
@@ -797,7 +776,7 @@ syncer::SyncError SessionModelAssociator::AssociateModels() { |
base_specifics.set_session_tag(current_machine_tag_); |
sync_pb::SessionHeader* header_s = base_specifics.mutable_header(); |
header_s->set_client_name(current_session_name_); |
- header_s->set_device_type(GetLocalDeviceType()); |
+ header_s->set_device_type(DeviceInfo::GetLocalDeviceType()); |
write_node.SetSessionSpecifics(base_specifics); |
local_session_syncid_ = write_node.GetId(); |
@@ -838,7 +817,7 @@ syncer::SyncError SessionModelAssociator::DisassociateModels() { |
} |
void SessionModelAssociator::InitializeCurrentMachineTag( |
- syncer::WriteTransaction* trans) { |
+ syncer::UserShare* share) { |
DCHECK(CalledOnValidThread()); |
DCHECK(current_machine_tag_.empty()); |
std::string persisted_guid; |
@@ -849,8 +828,6 @@ void SessionModelAssociator::InitializeCurrentMachineTag( |
DVLOG(1) << "Restoring persisted session sync guid: " |
<< persisted_guid; |
} else { |
- syncer::syncable::Directory* dir = |
- trans->GetWrappedWriteTrans()->directory(); |
current_machine_tag_ = "session_sync"; |
#if defined(OS_ANDROID) |
const std::string android_id = syncer::internal::GetAndroidId(); |
@@ -858,9 +835,9 @@ void SessionModelAssociator::InitializeCurrentMachineTag( |
// are supposed to be fixed as of Gingerbread, but if it happens we fall |
// back to use the same GUID generation as on other platforms. |
current_machine_tag_.append(android_id.empty() ? |
- dir->cache_guid() : android_id); |
+ share->cache_guid() : android_id); |
#else |
- current_machine_tag_.append(dir->cache_guid()); |
+ current_machine_tag_.append(share->cache_guid()); |
#endif |
DVLOG(1) << "Creating session sync guid: " << current_machine_tag_; |
if (pref_service_) |
@@ -1123,25 +1100,25 @@ void SessionModelAssociator::PopulateSessionHeaderFromSpecifics( |
} |
if (header_specifics.has_device_type()) { |
switch (header_specifics.device_type()) { |
- case sync_pb::SessionHeader_DeviceType_TYPE_WIN: |
+ case sync_pb::SyncEnums_DeviceType_TYPE_WIN: |
session_header->device_type = SyncedSession::TYPE_WIN; |
break; |
- case sync_pb::SessionHeader_DeviceType_TYPE_MAC: |
+ case sync_pb::SyncEnums_DeviceType_TYPE_MAC: |
session_header->device_type = SyncedSession::TYPE_MACOSX; |
break; |
- case sync_pb::SessionHeader_DeviceType_TYPE_LINUX: |
+ case sync_pb::SyncEnums_DeviceType_TYPE_LINUX: |
session_header->device_type = SyncedSession::TYPE_LINUX; |
break; |
- case sync_pb::SessionHeader_DeviceType_TYPE_CROS: |
+ case sync_pb::SyncEnums_DeviceType_TYPE_CROS: |
session_header->device_type = SyncedSession::TYPE_CHROMEOS; |
break; |
- case sync_pb::SessionHeader_DeviceType_TYPE_PHONE: |
+ case sync_pb::SyncEnums_DeviceType_TYPE_PHONE: |
session_header->device_type = SyncedSession::TYPE_PHONE; |
break; |
- case sync_pb::SessionHeader_DeviceType_TYPE_TABLET: |
+ case sync_pb::SyncEnums_DeviceType_TYPE_TABLET: |
session_header->device_type = SyncedSession::TYPE_TABLET; |
break; |
- case sync_pb::SessionHeader_DeviceType_TYPE_OTHER: |
+ case sync_pb::SyncEnums_DeviceType_TYPE_OTHER: |
// Intentionally fall-through |
default: |
session_header->device_type = SyncedSession::TYPE_OTHER; |