Index: chrome/browser/password_manager/native_backend_kwallet_x.cc |
diff --git a/chrome/browser/password_manager/native_backend_kwallet_x.cc b/chrome/browser/password_manager/native_backend_kwallet_x.cc |
index a2346ba12db6c1fca79a7dc30db543aec6c78bb1..e2b63d13c1e5f75c156a45967f600affd055c840 100644 |
--- a/chrome/browser/password_manager/native_backend_kwallet_x.cc |
+++ b/chrome/browser/password_manager/native_backend_kwallet_x.cc |
@@ -36,7 +36,7 @@ namespace { |
// In case the fields in the pickle ever change, version them so we can try to |
// read old pickles. (Note: do not eat old pickles past the expiration date.) |
-const int kPickleVersion = 8; |
+const int kPickleVersion = 9; |
// We could localize this string, but then changing your locale would cause |
// you to lose access to all your stored passwords. Maybe best not to do that. |
@@ -164,16 +164,24 @@ bool DeserializeValueSize(const std::string& signon_realm, |
int generation_upload_status = 0; |
// Note that these will be read back in the order listed due to |
// short-circuit evaluation. This is important. |
- if (!iter.ReadInt(&scheme) || |
- !ReadGURL(&iter, warn_only, &form->origin) || |
+ if (!iter.ReadInt(&scheme) || !ReadGURL(&iter, warn_only, &form->origin) || |
!ReadGURL(&iter, warn_only, &form->action) || |
!iter.ReadString16(&form->username_element) || |
!iter.ReadString16(&form->username_value) || |
!iter.ReadString16(&form->password_element) || |
!iter.ReadString16(&form->password_value) || |
- !iter.ReadString16(&form->submit_element) || |
- !iter.ReadBool(&form->ssl_valid) || |
- !iter.ReadBool(&form->preferred) || |
+ !iter.ReadString16(&form->submit_element)) { |
+ LogDeserializationWarning(version, signon_realm, warn_only); |
+ return false; |
+ } |
+ if (version <= 8) { |
+ bool dummy_unused_flag = false; |
+ if (!iter.ReadBool(&dummy_unused_flag)) { |
+ LogDeserializationWarning(version, signon_realm, warn_only); |
+ return false; |
+ } |
+ } |
+ if (!iter.ReadBool(&form->preferred) || |
!iter.ReadBool(&form->blacklisted_by_user) || |
!iter.ReadInt64(&date_created)) { |
LogDeserializationWarning(version, signon_realm, warn_only); |
@@ -254,7 +262,6 @@ void SerializeValue(const std::vector<autofill::PasswordForm*>& forms, |
pickle->WriteString16(form->password_element); |
pickle->WriteString16(form->password_value); |
pickle->WriteString16(form->submit_element); |
- pickle->WriteBool(form->ssl_valid); |
pickle->WriteBool(form->preferred); |
pickle->WriteBool(form->blacklisted_by_user); |
pickle->WriteInt64(form->date_created.ToInternalValue()); |