Index: chrome/browser/chromeos/login/signed_settings.cc |
diff --git a/chrome/browser/chromeos/login/signed_settings.cc b/chrome/browser/chromeos/login/signed_settings.cc |
index 58bce4bc0d401fb8a25d7792fa3e3289ae44bd76..074d4ad3367a59b9270838b79225632320b78b2f 100644 |
--- a/chrome/browser/chromeos/login/signed_settings.cc |
+++ b/chrome/browser/chromeos/login/signed_settings.cc |
@@ -9,6 +9,7 @@ |
#include "base/ref_counted.h" |
#include "base/stringprintf.h" |
+#include "base/threading/thread_restrictions.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/browser_thread.h" |
#include "chrome/browser/chromeos/cros/cros_library.h" |
@@ -241,7 +242,14 @@ StorePropertyOp::StorePropertyOp(const std::string& name, |
StorePropertyOp::~StorePropertyOp() {} |
void StorePropertyOp::Execute() { |
- if (!service_->IsAlreadyOwned()) { |
+ bool is_owned = false; |
+ { |
+ // This should not do blocking IO from the UI thread. |
+ // Temporarily allow it for now. http://crbug.com/70097 |
+ base::ThreadRestrictions::ScopedAllowIO allow_io; |
+ is_owned = service_->IsAlreadyOwned(); |
+ } |
+ if (!is_owned) { |
if (g_browser_process && |
g_browser_process->local_state() && |
SignedSettingsTempStorage::Store(name_, value_, |
@@ -305,7 +313,14 @@ void RetrievePropertyOp::Execute() { |
// device has been owned and before temp_storage settings are finally |
// persisted into signed settings. |
// In this lapse of time Retrieve loses access to those settings. |
- if (!service_->IsAlreadyOwned()) { |
+ bool is_owned = false; |
+ { |
+ // This should not do blocking IO from the UI thread. |
+ // Temporarily allow it for now. http://crbug.com/70097 |
+ base::ThreadRestrictions::ScopedAllowIO allow_io; |
+ is_owned = service_->IsAlreadyOwned(); |
+ } |
+ if (!is_owned) { |
if (g_browser_process && |
g_browser_process->local_state() && |
SignedSettingsTempStorage::Retrieve( |