| 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..c652d5bd0343c6b69b09eec2515eacc3ce0ee51b 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 kRequestStstemSaltDelayMs = 500;
|
| + base::MessageLoop::current()->PostDelayedTask(
|
| + FROM_HERE,
|
| + base::Bind(&DeviceId::GetMachineId, callback),
|
| + base::TimeDelta::FromMilliseconds(kRequestStstemSaltDelayMs));
|
| + return;
|
| + }
|
| callback.Run(result);
|
| }
|
|
|
|
|