diff options
author | donnd@chromium.org <donnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-23 03:37:21 +0000 |
---|---|---|
committer | donnd@chromium.org <donnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-23 03:37:21 +0000 |
commit | c1982ff17db48dbc36cf2d3d861dc77d4e7f1152 (patch) | |
tree | 01e9c3c6e04df8a63b38fcc6ceec44c02d64b8e8 /sync | |
parent | a64f7a3eefd9ef022df0f2d4a28cddff016e70e8 (diff) | |
download | chromium_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.cc | 9 | ||||
-rw-r--r-- | sync/protocol/proto_value_conversions.h | 4 | ||||
-rw-r--r-- | sync/protocol/proto_value_conversions_unittest.cc | 4 | ||||
-rw-r--r-- | sync/protocol/session_specifics.proto | 13 |
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; } |