Add Phone/Tablet device types for syncing session from Android.

This is most of the scaffolding. The logic to choose between
Tablet/Phone requires Java code which can't be upstreamed yet due to
other dependencies.

BUG=
TEST=


Review URL: http://codereview.chromium.org/9664008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126762 0039d316-1c4b-4281-b951-d872f2087c98
parent d80c3146
...@@ -57,6 +57,24 @@ static const int kMaxSyncNavigationCount = 6; ...@@ -57,6 +57,24 @@ static const int kMaxSyncNavigationCount = 6;
// Default number of days without activity after which a session is considered // Default number of days without activity after which a session is considered
// stale and becomes a candidate for garbage collection. // stale and becomes a candidate for garbage collection.
static const size_t kDefaultStaleSessionThresholdDays = 14; // 2 weeks. static const size_t kDefaultStaleSessionThresholdDays = 14; // 2 weeks.
sync_pb::SessionHeader::DeviceType GetLocalDeviceType() {
#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)
// TODO(yfriedman): Add logic to conditionally set device_type to tablet.
return sync_pb::SessionHeader_DeviceType_TYPE_PHONE;
#else
return sync_pb::SessionHeader_DeviceType_TYPE_OTHER;
#endif
}
} // namespace } // namespace
SessionModelAssociator::SessionModelAssociator(ProfileSyncService* sync_service) SessionModelAssociator::SessionModelAssociator(ProfileSyncService* sync_service)
...@@ -153,17 +171,7 @@ bool SessionModelAssociator::AssociateWindows(bool reload_tabs, ...@@ -153,17 +171,7 @@ bool SessionModelAssociator::AssociateWindows(bool reload_tabs,
synced_session_tracker_.GetSession(local_tag); synced_session_tracker_.GetSession(local_tag);
current_session->modified_time = base::Time::Now(); current_session->modified_time = base::Time::Now();
header_s->set_client_name(current_session_name_); header_s->set_client_name(current_session_name_);
#if defined(OS_CHROMEOS) header_s->set_device_type(GetLocalDeviceType());
header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_CROS);
#elif defined(OS_LINUX)
header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_LINUX);
#elif defined(OS_MACOSX)
header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_MAC);
#elif defined(OS_WIN)
header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_WIN);
#else
header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_OTHER);
#endif
synced_session_tracker_.ResetSessionTracking(local_tag); synced_session_tracker_.ResetSessionTracking(local_tag);
std::set<SyncedWindowDelegate*> windows = std::set<SyncedWindowDelegate*> windows =
...@@ -721,6 +729,12 @@ void SessionModelAssociator::PopulateSessionHeaderFromSpecifics( ...@@ -721,6 +729,12 @@ void SessionModelAssociator::PopulateSessionHeaderFromSpecifics(
case sync_pb::SessionHeader_DeviceType_TYPE_CROS: case sync_pb::SessionHeader_DeviceType_TYPE_CROS:
session_header->device_type = SyncedSession::TYPE_CHROMEOS; session_header->device_type = SyncedSession::TYPE_CHROMEOS;
break; break;
case sync_pb::SessionHeader_DeviceType_TYPE_PHONE:
session_header->device_type = SyncedSession::TYPE_PHONE;
break;
case sync_pb::SessionHeader_DeviceType_TYPE_TABLET:
session_header->device_type = SyncedSession::TYPE_TABLET;
break;
case sync_pb::SessionHeader_DeviceType_TYPE_OTHER: case sync_pb::SessionHeader_DeviceType_TYPE_OTHER:
// Intentionally fall-through // Intentionally fall-through
default: default:
......
...@@ -30,7 +30,9 @@ struct SyncedSession { ...@@ -30,7 +30,9 @@ struct SyncedSession {
TYPE_MACOSX = 2, TYPE_MACOSX = 2,
TYPE_LINUX = 3, TYPE_LINUX = 3,
TYPE_CHROMEOS = 4, TYPE_CHROMEOS = 4,
TYPE_OTHER = 5 TYPE_OTHER = 5,
TYPE_PHONE = 6,
TYPE_TABLET = 7
}; };
SyncedSession(); SyncedSession();
......
...@@ -92,13 +92,15 @@ const char* GetUpdatesSourceString( ...@@ -92,13 +92,15 @@ const char* GetUpdatesSourceString(
const char* GetDeviceTypeString( const char* GetDeviceTypeString(
sync_pb::SessionHeader::DeviceType device_type) { sync_pb::SessionHeader::DeviceType device_type) {
ASSERT_ENUM_BOUNDS(sync_pb::SessionHeader, DeviceType, TYPE_WIN, TYPE_OTHER); ASSERT_ENUM_BOUNDS(sync_pb::SessionHeader, DeviceType, TYPE_WIN, TYPE_TABLET);
switch (device_type) { switch (device_type) {
ENUM_CASE(sync_pb::SessionHeader, TYPE_WIN); ENUM_CASE(sync_pb::SessionHeader, TYPE_WIN);
ENUM_CASE(sync_pb::SessionHeader, TYPE_MAC); ENUM_CASE(sync_pb::SessionHeader, TYPE_MAC);
ENUM_CASE(sync_pb::SessionHeader, TYPE_LINUX); ENUM_CASE(sync_pb::SessionHeader, TYPE_LINUX);
ENUM_CASE(sync_pb::SessionHeader, TYPE_CROS); ENUM_CASE(sync_pb::SessionHeader, TYPE_CROS);
ENUM_CASE(sync_pb::SessionHeader, TYPE_OTHER); ENUM_CASE(sync_pb::SessionHeader, TYPE_OTHER);
ENUM_CASE(sync_pb::SessionHeader, TYPE_PHONE);
ENUM_CASE(sync_pb::SessionHeader, TYPE_TABLET);
} }
NOTREACHED(); NOTREACHED();
return ""; return "";
......
...@@ -33,6 +33,8 @@ message SessionHeader { ...@@ -33,6 +33,8 @@ message SessionHeader {
TYPE_LINUX = 3; TYPE_LINUX = 3;
TYPE_CROS = 4; TYPE_CROS = 4;
TYPE_OTHER = 5; TYPE_OTHER = 5;
TYPE_PHONE = 6;
TYPE_TABLET = 7;
} }
optional DeviceType device_type = 4; optional DeviceType device_type = 4;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment