Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(850)

Unified Diff: chrome/browser/extensions/api/music_manager_private/device_id_chromeos.cc

Issue 23903051: Eliminate CHECK from CryptohomeLibrary::LoadSystemSalt (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/music_manager_private/device_id_chromeos.cc
diff --git a/chrome/browser/extensions/api/music_manager_private/device_id_chromeos.cc b/chrome/browser/extensions/api/music_manager_private/device_id_chromeos.cc
index e1e0dac3d4934847371a208afe7324f822ab0fc6..0dbbf6eda2e3abc1d15c0ddcef7cb8a09bd5b02c 100644
--- a/chrome/browser/extensions/api/music_manager_private/device_id_chromeos.cc
+++ b/chrome/browser/extensions/api/music_manager_private/device_id_chromeos.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/extensions/api/music_manager_private/device_id.h"
+#include "base/message_loop/message_loop.h"
#include "chromeos/cryptohome/cryptohome_library.h"
namespace extensions {
@@ -14,6 +15,15 @@ namespace api {
void DeviceId::GetMachineId(const IdCallback& callback) {
chromeos::CryptohomeLibrary* c_home = chromeos::CryptohomeLibrary::Get();
std::string result = c_home->GetSystemSalt();
+ if (result.empty()) {
+ // cryptohome must not be running; re-request after a delay.
+ const int64 kRequestSystemSaltDelayMs = 500;
+ base::MessageLoop::current()->PostDelayedTask(
+ FROM_HERE,
+ base::Bind(&DeviceId::GetMachineId, callback),
+ base::TimeDelta::FromMilliseconds(kRequestSystemSaltDelayMs));
+ return;
+ }
callback.Run(result);
}

Powered by Google App Engine
This is Rietveld 408576698