diff options
author | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-08 04:01:49 +0000 |
---|---|---|
committer | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-08 04:01:49 +0000 |
commit | 5a332fddc29425e09799ffed3cbb20ec5d1c9a65 (patch) | |
tree | dafc3cee27733ef243705e730e1bb282c7e34bfa | |
parent | 0aeba311050cfe49413b2ead77c167977542c154 (diff) | |
download | chromium_src-5a332fddc29425e09799ffed3cbb20ec5d1c9a65.zip chromium_src-5a332fddc29425e09799ffed3cbb20ec5d1c9a65.tar.gz chromium_src-5a332fddc29425e09799ffed3cbb20ec5d1c9a65.tar.bz2 |
[Sync] Make creation of session header node more resilient
BUG=125574
TEST=
Review URL: https://chromiumcodereview.appspot.com/10381048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135789 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/sync/glue/session_model_associator.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/chrome/browser/sync/glue/session_model_associator.cc b/chrome/browser/sync/glue/session_model_associator.cc index d0e875c..2019ccb 100644 --- a/chrome/browser/sync/glue/session_model_associator.cc +++ b/chrome/browser/sync/glue/session_model_associator.cc @@ -773,6 +773,16 @@ SyncError SessionModelAssociator::AssociateModels() { model_type()); } write_node.SetTitle(UTF8ToWide(current_machine_tag_)); + + // Write the initial values to the specifics so that in case of a crash or + // error we don't persist a half-written node. + sync_pb::SessionSpecifics base_specifics; + base_specifics.set_session_tag(current_machine_tag_); + sync_pb::SessionHeader* header_s = base_specifics.mutable_header(); + header_s->set_client_name(current_session_name_); + header_s->set_device_type(GetLocalDeviceType()); + write_node.SetSessionSpecifics(base_specifics); + local_session_syncid_ = write_node.GetId(); } } |