Index: android_webview/native/state_serializer.cc |
diff --git a/android_webview/native/state_serializer.cc b/android_webview/native/state_serializer.cc |
index f4a628b39a70bf1023f80b24e00c3361f50016fe..4e79d4b4e200d56c5dcfb71e7edacff6d65ded0e 100644 |
--- a/android_webview/native/state_serializer.cc |
+++ b/android_webview/native/state_serializer.cc |
@@ -35,7 +35,7 @@ namespace { |
// Sanity check value that we are restoring from a valid pickle. |
// This can potentially used as an actual serialization version number in the |
// future if we ever decide to support restoring from older versions. |
-const uint32 AW_STATE_VERSION = 20130814; |
+const uint32 AW_STATE_VERSION = 20131123; |
} // namespace |
@@ -177,6 +177,11 @@ bool WriteNavigationEntryToPickle(const content::NavigationEntry& entry, |
if (!pickle->WriteString(entry.GetOriginalRequestURL().spec())) |
return false; |
+ base::StringPiece data(base::RefCountedMemory::AsString( |
+ entry.GetDataForDataURL())); |
+ if (!pickle->WriteData(data.data(), data.size())) |
+ return false; |
+ |
if (!pickle->WriteString(entry.GetBaseURLForDataURL().spec())) |
return false; |
@@ -255,6 +260,18 @@ bool RestoreNavigationEntryFromPickle(PickleIterator* iterator, |
} |
{ |
+ const char* data; |
+ int len; |
+ if (!iterator->ReadData(&data, &len)) |
+ return false; |
+ if (len > 0) { |
+ scoped_refptr<base::RefCountedString> ref = new base::RefCountedString; |
+ ref->data().assign(data, len); |
+ entry->SetDataForDataURL(ref.get()); |
+ } |
+ } |
+ |
+ { |
string base_url_for_data_url; |
if (!iterator->ReadString(&base_url_for_data_url)) |
return false; |