Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / music_manager_private / music_manager_private_api.cc
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/api/music_manager_private/music_manager_private_api.h"
6
7 #include "chrome/browser/extensions/api/music_manager_private/device_id.h"
8
9 using content::BrowserThread;
10
11 namespace {
12
13 const char kDeviceIdNotSupported[] =
14     "Device ID API is not supported on this platform.";
15
16 }
17
18 namespace extensions {
19 namespace api {
20
21 MusicManagerPrivateGetDeviceIdFunction::
22     MusicManagerPrivateGetDeviceIdFunction() {
23 }
24
25 MusicManagerPrivateGetDeviceIdFunction::
26     ~MusicManagerPrivateGetDeviceIdFunction() {
27 }
28
29 bool MusicManagerPrivateGetDeviceIdFunction::RunAsync() {
30   DCHECK_CURRENTLY_ON(BrowserThread::UI);
31   DeviceId::GetDeviceId(
32       this->extension_id(),
33       base::Bind(
34           &MusicManagerPrivateGetDeviceIdFunction::DeviceIdCallback,
35           this));
36   return true;  // Still processing!
37 }
38
39 void MusicManagerPrivateGetDeviceIdFunction::DeviceIdCallback(
40     const std::string& device_id) {
41   DCHECK_CURRENTLY_ON(BrowserThread::UI);
42   bool response;
43   if (device_id.empty()) {
44     SetError(kDeviceIdNotSupported);
45     response = false;
46   } else {
47     SetResult(new base::StringValue(device_id));
48     response = true;
49   }
50
51   SendResponse(response);
52 }
53
54 } // namespace api
55 } // namespace extensions