blob: cb0f24b541c2f46e5265c792c826b67f5e778f3d [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/extensions/api/music_manager_private/music_manager_private_api.h"
#include "base/memory/ptr_util.h"
#include "chrome/browser/extensions/api/music_manager_private/device_id.h"
using content::BrowserThread;
namespace {
const char kDeviceIdNotSupported[] =
"Device ID API is not supported on this platform.";
}
namespace extensions {
namespace api {
MusicManagerPrivateGetDeviceIdFunction::
MusicManagerPrivateGetDeviceIdFunction() {
}
MusicManagerPrivateGetDeviceIdFunction::
~MusicManagerPrivateGetDeviceIdFunction() {
}
bool MusicManagerPrivateGetDeviceIdFunction::RunAsync() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
DeviceId::GetDeviceId(
this->extension_id(),
base::Bind(
&MusicManagerPrivateGetDeviceIdFunction::DeviceIdCallback,
this));
return true; // Still processing!
}
void MusicManagerPrivateGetDeviceIdFunction::DeviceIdCallback(
const std::string& device_id) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
bool response;
if (device_id.empty()) {
SetError(kDeviceIdNotSupported);
response = false;
} else {
SetResult(base::MakeUnique<base::StringValue>(device_id));
response = true;
}
SendResponse(response);
}
} // namespace api
} // namespace extensions