summaryrefslogtreecommitdiffstats
path: root/components/sessions
diff options
context:
space:
mode:
authorgayane <gayane@chromium.org>2015-01-27 08:21:57 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-27 16:23:19 +0000
commitc59ec5ebf876c91ac207ad63c1207346abec7660 (patch)
tree0e81ae894c8ab9611575a074a6ad4743d88b4fc5 /components/sessions
parent9ab9df492a3b66d4b509edf528ae8a3776f8f081 (diff)
downloadchromium_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/DEPS1
-rw-r--r--components/sessions/session_types.cc11
-rw-r--r--components/sessions/session_types.h4
-rw-r--r--components/sessions/session_types_unittest.cc11
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