diff options
author | gayane <gayane@chromium.org> | 2015-01-27 08:21:57 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-27 16:23:19 +0000 |
commit | c59ec5ebf876c91ac207ad63c1207346abec7660 (patch) | |
tree | 0e81ae894c8ab9611575a074a6ad4743d88b4fc5 /components/sessions | |
parent | 9ab9df492a3b66d4b509edf528ae8a3776f8f081 (diff) | |
download | chromium_src-c59ec5ebf876c91ac207ad63c1207346abec7660.zip chromium_src-c59ec5ebf876c91ac207ad63c1207346abec7660.tar.gz chromium_src-c59ec5ebf876c91ac207ad63c1207346abec7660.tar.bz2 |
Implement necessary changes for sync to get variation ids.
BUG=450365
Review URL: https://codereview.chromium.org/865213003
Cr-Commit-Position: refs/heads/master@{#313285}
Diffstat (limited to 'components/sessions')
-rw-r--r-- | components/sessions/DEPS | 1 | ||||
-rw-r--r-- | components/sessions/session_types.cc | 11 | ||||
-rw-r--r-- | components/sessions/session_types.h | 4 | ||||
-rw-r--r-- | components/sessions/session_types_unittest.cc | 11 |
4 files changed, 24 insertions, 3 deletions
diff --git a/components/sessions/DEPS b/components/sessions/DEPS index 1997ca6..5ae3e85 100644 --- a/components/sessions/DEPS +++ b/components/sessions/DEPS @@ -2,4 +2,5 @@ include_rules = [ "+sync", "+ui/base", "+ui/gfx", + "+components/variations", ] diff --git a/components/sessions/session_types.cc b/components/sessions/session_types.cc index fcbe44d..4d2e9ac 100644 --- a/components/sessions/session_types.cc +++ b/components/sessions/session_types.cc @@ -39,6 +39,9 @@ void SessionTab::SetFromSyncData(const sync_pb::SessionTab& sync_data, SerializedNavigationEntry::FromSyncData(i, sync_data.navigation(i))); } session_storage_persistent_id.clear(); + variation_ids.clear(); + for (int i = 0; i < sync_data.variation_id_size(); ++i) + variation_ids.push_back(sync_data.variation_id(i)); } sync_pb::SessionTab SessionTab::ToSyncData() const { @@ -49,9 +52,11 @@ sync_pb::SessionTab SessionTab::ToSyncData() const { sync_data.set_current_navigation_index(current_navigation_index); sync_data.set_pinned(pinned); sync_data.set_extension_app_id(extension_app_id); - for (std::vector<SerializedNavigationEntry>::const_iterator - it = navigations.begin(); it != navigations.end(); ++it) { - *sync_data.add_navigation() = it->ToSyncData(); + for (const SerializedNavigationEntry& navigation : navigations) { + *sync_data.add_navigation() = navigation.ToSyncData(); + } + for (const variations::VariationID variation_id : variation_ids) { + sync_data.add_variation_id(variation_id); } return sync_data; } diff --git a/components/sessions/session_types.h b/components/sessions/session_types.h index 454c935..a7f0358 100644 --- a/components/sessions/session_types.h +++ b/components/sessions/session_types.h @@ -15,6 +15,7 @@ #include "components/sessions/serialized_navigation_entry.h" #include "components/sessions/session_id.h" #include "components/sessions/sessions_export.h" +#include "components/variations/variations_associated_data.h" #include "sync/protocol/session_specifics.pb.h" #include "ui/base/ui_base_types.h" #include "ui/gfx/geometry/rect.h" @@ -101,6 +102,9 @@ struct SESSIONS_EXPORT SessionTab { // For reassociating sessionStorage. std::string session_storage_persistent_id; + // Ids of the currently assigned variations which should be sent to sync. + std::vector<variations::VariationID> variation_ids; + private: DISALLOW_COPY_AND_ASSIGN(SessionTab); }; diff --git a/components/sessions/session_types_unittest.cc b/components/sessions/session_types_unittest.cc index 0ba2c9e..aeece6f 100644 --- a/components/sessions/session_types_unittest.cc +++ b/components/sessions/session_types_unittest.cc @@ -39,6 +39,8 @@ TEST(SessionTab, FromSyncData) { navigation->set_title("title"); navigation->set_page_transition(sync_pb::SyncEnums_PageTransition_TYPED); } + sync_data.add_variation_id(3312238); + sync_data.add_variation_id(3312242); sessions::SessionTab tab; tab.window_id.set_id(100); @@ -71,6 +73,9 @@ TEST(SessionTab, FromSyncData) { EXPECT_EQ(GURL("http://foo/" + base::IntToString(i)), tab.navigations[i].virtual_url()); } + ASSERT_EQ(2u, tab.variation_ids.size()); + EXPECT_EQ(3312238, tab.variation_ids[0]); + EXPECT_EQ(3312242, tab.variation_ids[1]); EXPECT_TRUE(tab.session_storage_persistent_id.empty()); } @@ -90,6 +95,8 @@ TEST(SessionTab, ToSyncData) { "http://foo/" + base::IntToString(i), "title")); } tab.session_storage_persistent_id = "fake"; + tab.variation_ids.push_back(3312238); + tab.variation_ids.push_back(3312242); const sync_pb::SessionTab& sync_data = tab.ToSyncData(); EXPECT_EQ(5, sync_data.tab_id()); @@ -108,6 +115,10 @@ TEST(SessionTab, ToSyncData) { EXPECT_FALSE(sync_data.has_favicon()); EXPECT_FALSE(sync_data.has_favicon_type()); EXPECT_FALSE(sync_data.has_favicon_source()); + + ASSERT_EQ(2, sync_data.variation_id_size()); + EXPECT_EQ(3312238u, sync_data.variation_id(0)); + EXPECT_EQ(3312242u, sync_data.variation_id(1)); } } // namespace |