summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-08 04:01:49 +0000
committerzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-08 04:01:49 +0000
commit5a332fddc29425e09799ffed3cbb20ec5d1c9a65 (patch)
treedafc3cee27733ef243705e730e1bb282c7e34bfa
parent0aeba311050cfe49413b2ead77c167977542c154 (diff)
downloadchromium_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.cc10
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();
}
}