summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 14:01:47 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 14:01:47 +0000
commit4b522bdf185cec1e4cea6a657de2c8142df779a8 (patch)
tree1ff0697907251f3be1ce488a18fdccb23a32dfb1 /chrome/browser/chromeos
parente434c89824290cdd49c606ce5c3cd2d488373554 (diff)
downloadchromium_src-4b522bdf185cec1e4cea6a657de2c8142df779a8.zip
chromium_src-4b522bdf185cec1e4cea6a657de2c8142df779a8.tar.gz
chromium_src-4b522bdf185cec1e4cea6a657de2c8142df779a8.tar.bz2
Tolerate absence of suitable libcros upon policy load/store.
BUG=chromium-os:17339 TEST=Chrome doesn't crash upon startup when libcros is missing or has the wrong version. Review URL: http://codereview.chromium.org/7355028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92688 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r--chrome/browser/chromeos/login/signed_settings.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/chrome/browser/chromeos/login/signed_settings.cc b/chrome/browser/chromeos/login/signed_settings.cc
index 470573a..f210201 100644
--- a/chrome/browser/chromeos/login/signed_settings.cc
+++ b/chrome/browser/chromeos/login/signed_settings.cc
@@ -839,7 +839,8 @@ void StorePolicyOp::OnKeyOpComplete(const OwnerManager::KeyOpCode return_code,
void StorePolicyOp::RequestStorePolicy() {
std::string serialized;
- if (policy_->SerializeToString(&serialized)) {
+ if (policy_->SerializeToString(&serialized) &&
+ CrosLibrary::Get()->EnsureLoaded()) {
CrosLibrary::Get()->GetLoginLibrary()->RequestStorePolicy(
serialized,
&StorePolicyOp::OnBoolComplete,
@@ -862,8 +863,12 @@ RetrievePolicyOp::RetrievePolicyOp(
RetrievePolicyOp::~RetrievePolicyOp() {}
void RetrievePolicyOp::Execute() {
- CrosLibrary::Get()->GetLoginLibrary()->RequestRetrievePolicy(
- &RetrievePolicyOp::OnStringComplete, this);
+ if (CrosLibrary::Get()->EnsureLoaded()) {
+ CrosLibrary::Get()->GetLoginLibrary()->RequestRetrievePolicy(
+ &RetrievePolicyOp::OnStringComplete, this);
+ } else {
+ Fail(OPERATION_FAILED);
+ }
}
void RetrievePolicyOp::Fail(SignedSettings::ReturnCode code) {