summaryrefslogtreecommitdiffstats
path: root/sync
diff options
context:
space:
mode:
authordonnd@chromium.org <donnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-23 03:37:21 +0000
committerdonnd@chromium.org <donnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-23 03:37:21 +0000
commitc1982ff17db48dbc36cf2d3d861dc77d4e7f1152 (patch)
tree01e9c3c6e04df8a63b38fcc6ceec44c02d64b8e8 /sync
parenta64f7a3eefd9ef022df0f2d4a28cddff016e70e8 (diff)
downloadchromium_src-c1982ff17db48dbc36cf2d3d861dc77d4e7f1152.zip
chromium_src-c1982ff17db48dbc36cf2d3d861dc77d4e7f1152.tar.gz
chromium_src-c1982ff17db48dbc36cf2d3d861dc77d4e7f1152.tar.bz2
Add a navigation redirect-chain to Sync sessions proto for offline analysis.
Google design doc at https://docs.google.com/a/google.com/document/d/1bh7aqvCMYzkobVA2MDuqWbQgymhdhdoqaOfvcLOaAYk BUG=310373 Review URL: https://codereview.chromium.org/101573003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265515 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync')
-rw-r--r--sync/protocol/proto_value_conversions.cc9
-rw-r--r--sync/protocol/proto_value_conversions.h4
-rw-r--r--sync/protocol/proto_value_conversions_unittest.cc4
-rw-r--r--sync/protocol/session_specifics.proto13
4 files changed, 30 insertions, 0 deletions
diff --git a/sync/protocol/proto_value_conversions.cc b/sync/protocol/proto_value_conversions.cc
index b31efb0..85fd7de 100644
--- a/sync/protocol/proto_value_conversions.cc
+++ b/sync/protocol/proto_value_conversions.cc
@@ -205,6 +205,15 @@ base::DictionaryValue* TabNavigationToValue(
SET_INT32(http_status_code);
SET_INT32(referrer_policy);
SET_BOOL(is_restored);
+ SET_REP(navigation_redirect, NavigationRedirectToValue);
+ SET_STR(last_navigation_redirect_url);
+ return value;
+}
+
+base::DictionaryValue* NavigationRedirectToValue(
+ const sync_pb::NavigationRedirect& proto) {
+ base::DictionaryValue* value = new base::DictionaryValue();
+ SET_STR(url);
return value;
}
diff --git a/sync/protocol/proto_value_conversions.h b/sync/protocol/proto_value_conversions.h
index bf936ee..c8e5166c 100644
--- a/sync/protocol/proto_value_conversions.h
+++ b/sync/protocol/proto_value_conversions.h
@@ -50,6 +50,7 @@ class Media;
class ManagedUserSettingSpecifics;
class ManagedUserSharedSettingSpecifics;
class ManagedUserSpecifics;
+class NavigationRedirect;
class NigoriSpecifics;
class PasswordSpecifics;
class PasswordSpecificsData;
@@ -118,6 +119,9 @@ SYNC_EXPORT_PRIVATE base::DictionaryValue* SessionWindowToValue(
SYNC_EXPORT_PRIVATE base::DictionaryValue* TabNavigationToValue(
const sync_pb::TabNavigation& tab_navigation);
+SYNC_EXPORT_PRIVATE base::DictionaryValue* NavigationRedirectToValue(
+ const sync_pb::NavigationRedirect& navigation_redirect);
+
// Sub-protocol of PasswordSpecifics.
SYNC_EXPORT_PRIVATE base::DictionaryValue* PasswordSpecificsDataToValue(
diff --git a/sync/protocol/proto_value_conversions_unittest.cc b/sync/protocol/proto_value_conversions_unittest.cc
index b2c84e6..664a6ab 100644
--- a/sync/protocol/proto_value_conversions_unittest.cc
+++ b/sync/protocol/proto_value_conversions_unittest.cc
@@ -84,6 +84,10 @@ TEST_F(ProtoValueConversionsTest, TabNavigationToValue) {
TestSpecificsToValue(TabNavigationToValue);
}
+TEST_F(ProtoValueConversionsTest, NavigationRedirectToValue) {
+ TestSpecificsToValue(NavigationRedirectToValue);
+}
+
TEST_F(ProtoValueConversionsTest, PasswordSpecificsData) {
sync_pb::PasswordSpecificsData specifics;
specifics.set_password_value("secret");
diff --git a/sync/protocol/session_specifics.proto b/sync/protocol/session_specifics.proto
index dc3670d..bde8924 100644
--- a/sync/protocol/session_specifics.proto
+++ b/sync/protocol/session_specifics.proto
@@ -134,9 +134,22 @@ message TabNavigation {
repeated string content_pack_categories = 19;
// The status code from the last navigation.
optional int32 http_status_code = 20;
+
// Referrer policy. Valid enums are defined in
// third_party/WebKit/public/platform/WebReferrerPolicy.h.
optional int32 referrer_policy = 21 [default = 1];
// True if created from restored navigation entry that hasn't been loaded.
optional bool is_restored = 22;
+ // The chain of redirections for this navigation, from the original URL
+ // through the last URL that redirected.
+ repeated NavigationRedirect navigation_redirect = 23;
+ // Normally not present.
+ // The last URL traversed when different from the virtual_url.
+ optional string last_navigation_redirect_url = 24;
+}
+
+// Navigation information for a single redirection within a single navigation.
+message NavigationRedirect {
+ // A URL that redirected while navigating to the virtual_url.
+ optional string url = 1;
}