OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api.h" | 5 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api.h" |
6 | 6 |
7 #if defined(OS_CHROMEOS) | 7 #if defined(OS_CHROMEOS) |
8 #include <errno.h> | 8 #include <errno.h> |
9 #endif | 9 #endif |
10 | 10 |
11 #include <string> | 11 #include <string> |
12 | 12 |
13 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h" | 13 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h" |
14 #include "chrome/browser/extensions/event_names.h" | 14 #include "chrome/browser/extensions/event_names.h" |
15 #include "chrome/browser/extensions/extension_service.h" | 15 #include "chrome/browser/extensions/extension_service.h" |
16 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
17 #include "chrome/common/extensions/api/experimental_bluetooth.h" | 17 #include "chrome/common/extensions/api/experimental_bluetooth.h" |
18 #include "content/public/browser/browser_thread.h" | 18 #include "content/public/browser/browser_thread.h" |
19 | 19 |
20 #if defined(OS_CHROMEOS) | 20 #if defined(OS_CHROMEOS) |
21 #include "base/memory/ref_counted.h" | 21 #include "base/memory/ref_counted.h" |
22 #include "base/safe_strerror_posix.h" | 22 #include "base/safe_strerror_posix.h" |
23 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h" | |
24 #include "chrome/browser/chromeos/bluetooth/bluetooth_device.h" | |
25 #include "chrome/browser/chromeos/bluetooth/bluetooth_service_record.h" | |
26 #include "chrome/browser/chromeos/bluetooth/bluetooth_socket.h" | |
27 #include "chrome/browser/chromeos/bluetooth/bluetooth_utils.h" | |
28 #include "chrome/browser/chromeos/extensions/bluetooth_event_router.h" | 23 #include "chrome/browser/chromeos/extensions/bluetooth_event_router.h" |
29 #include "chromeos/dbus/bluetooth_out_of_band_client.h" | 24 #include "chromeos/dbus/bluetooth_out_of_band_client.h" |
30 #include "chromeos/dbus/bluetooth_out_of_band_pairing_data.h" | 25 #include "device/bluetooth/bluetooth_adapter.h" |
| 26 #include "device/bluetooth/bluetooth_device.h" |
| 27 #include "device/bluetooth/bluetooth_out_of_band_pairing_data.h" |
| 28 #include "device/bluetooth/bluetooth_service_record.h" |
| 29 #include "device/bluetooth/bluetooth_socket.h" |
| 30 #include "device/bluetooth/bluetooth_utils.h" |
| 31 |
| 32 using device_bluetooth::BluetoothAdapter; |
31 | 33 |
32 namespace { | 34 namespace { |
33 | 35 |
34 chromeos::ExtensionBluetoothEventRouter* GetEventRouter(Profile* profile) { | 36 chromeos::ExtensionBluetoothEventRouter* GetEventRouter(Profile* profile) { |
35 return profile->GetExtensionService()->bluetooth_event_router(); | 37 return profile->GetExtensionService()->bluetooth_event_router(); |
36 } | 38 } |
37 | 39 |
38 const chromeos::BluetoothAdapter& GetAdapter(Profile* profile) { | 40 const device_bluetooth::BluetoothAdapter& GetAdapter(Profile* profile) { |
39 return GetEventRouter(profile)->adapter(); | 41 return GetEventRouter(profile)->adapter(); |
40 } | 42 } |
41 | 43 |
42 chromeos::BluetoothAdapter* GetMutableAdapter(Profile* profile) { | 44 device_bluetooth::BluetoothAdapter* GetMutableAdapter(Profile* profile) { |
43 chromeos::BluetoothAdapter* adapter = | 45 device_bluetooth::BluetoothAdapter* adapter = |
44 GetEventRouter(profile)->GetMutableAdapter(); | 46 GetEventRouter(profile)->GetMutableAdapter(); |
45 CHECK(adapter); | 47 CHECK(adapter); |
46 return adapter; | 48 return adapter; |
47 } | 49 } |
48 | 50 |
49 } // namespace | 51 } // namespace |
50 #endif | 52 #endif |
51 | 53 |
52 namespace { | 54 namespace { |
53 | 55 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 | 98 |
97 bool BluetoothGetNameFunction::RunImpl() { | 99 bool BluetoothGetNameFunction::RunImpl() { |
98 SetResult(Value::CreateStringValue(GetAdapter(profile()).name())); | 100 SetResult(Value::CreateStringValue(GetAdapter(profile()).name())); |
99 return true; | 101 return true; |
100 } | 102 } |
101 | 103 |
102 BluetoothGetDevicesFunction::BluetoothGetDevicesFunction() | 104 BluetoothGetDevicesFunction::BluetoothGetDevicesFunction() |
103 : callbacks_pending_(0) {} | 105 : callbacks_pending_(0) {} |
104 | 106 |
105 void BluetoothGetDevicesFunction::DispatchDeviceSearchResult( | 107 void BluetoothGetDevicesFunction::DispatchDeviceSearchResult( |
106 const chromeos::BluetoothDevice& device) { | 108 const device_bluetooth::BluetoothDevice& device) { |
107 experimental_bluetooth::Device extension_device; | 109 experimental_bluetooth::Device extension_device; |
108 experimental_bluetooth::BluetoothDeviceToApiDevice(device, &extension_device); | 110 experimental_bluetooth::BluetoothDeviceToApiDevice(device, &extension_device); |
109 GetEventRouter(profile())->DispatchDeviceEvent( | 111 GetEventRouter(profile())->DispatchDeviceEvent( |
110 extensions::event_names::kBluetoothOnDeviceSearchResult, | 112 extensions::event_names::kBluetoothOnDeviceSearchResult, |
111 extension_device); | 113 extension_device); |
112 } | 114 } |
113 | 115 |
114 void BluetoothGetDevicesFunction::ProvidesServiceCallback( | 116 void BluetoothGetDevicesFunction::ProvidesServiceCallback( |
115 const chromeos::BluetoothDevice* device, | 117 const device_bluetooth::BluetoothDevice* device, |
116 bool providesService) { | 118 bool providesService) { |
117 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 119 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
118 | 120 |
119 CHECK(device); | 121 CHECK(device); |
120 if (providesService) | 122 if (providesService) |
121 DispatchDeviceSearchResult(*device); | 123 DispatchDeviceSearchResult(*device); |
122 | 124 |
123 callbacks_pending_--; | 125 callbacks_pending_--; |
124 if (callbacks_pending_ == -1) | 126 if (callbacks_pending_ == -1) |
125 SendResponse(true); | 127 SendResponse(true); |
126 } | 128 } |
127 | 129 |
128 bool BluetoothGetDevicesFunction::RunImpl() { | 130 bool BluetoothGetDevicesFunction::RunImpl() { |
129 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 131 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
130 | 132 |
131 scoped_ptr<GetDevices::Params> params(GetDevices::Params::Create(*args_)); | 133 scoped_ptr<GetDevices::Params> params(GetDevices::Params::Create(*args_)); |
132 EXTENSION_FUNCTION_VALIDATE(params.get() != NULL); | 134 EXTENSION_FUNCTION_VALIDATE(params.get() != NULL); |
133 const experimental_bluetooth::GetDevicesOptions& options = params->options; | 135 const experimental_bluetooth::GetDevicesOptions& options = params->options; |
134 | 136 |
135 std::string uuid; | 137 std::string uuid; |
136 if (options.uuid.get() != NULL) { | 138 if (options.uuid.get() != NULL) { |
137 uuid = chromeos::bluetooth_utils::CanonicalUuid(*options.uuid.get()); | 139 uuid = device_bluetooth::bluetooth_utils::CanonicalUuid( |
| 140 *options.uuid.get()); |
138 if (uuid.empty()) { | 141 if (uuid.empty()) { |
139 SetError(kInvalidUuid); | 142 SetError(kInvalidUuid); |
140 return false; | 143 return false; |
141 } | 144 } |
142 } | 145 } |
143 | 146 |
144 CHECK_EQ(0, callbacks_pending_); | 147 CHECK_EQ(0, callbacks_pending_); |
145 | 148 |
146 chromeos::BluetoothAdapter::DeviceList devices = | 149 BluetoothAdapter::DeviceList devices = |
147 GetMutableAdapter(profile())->GetDevices(); | 150 GetMutableAdapter(profile())->GetDevices(); |
148 for (chromeos::BluetoothAdapter::DeviceList::iterator i = devices.begin(); | 151 for (BluetoothAdapter::DeviceList::iterator i = devices.begin(); |
149 i != devices.end(); ++i) { | 152 i != devices.end(); ++i) { |
150 chromeos::BluetoothDevice* device = *i; | 153 device_bluetooth::BluetoothDevice* device = *i; |
151 CHECK(device); | 154 CHECK(device); |
152 | 155 |
153 if (!uuid.empty() && !(device->ProvidesServiceWithUUID(uuid))) | 156 if (!uuid.empty() && !(device->ProvidesServiceWithUUID(uuid))) |
154 continue; | 157 continue; |
155 | 158 |
156 if (options.name.get() == NULL) { | 159 if (options.name.get() == NULL) { |
157 DispatchDeviceSearchResult(*device); | 160 DispatchDeviceSearchResult(*device); |
158 continue; | 161 continue; |
159 } | 162 } |
160 | 163 |
(...skipping 10 matching lines...) Expand all Loading... |
171 // for-loop, which ensures that all requests have been made before | 174 // for-loop, which ensures that all requests have been made before |
172 // SendResponse happens. | 175 // SendResponse happens. |
173 if (callbacks_pending_ == -1) | 176 if (callbacks_pending_ == -1) |
174 SendResponse(true); | 177 SendResponse(true); |
175 | 178 |
176 return true; | 179 return true; |
177 } | 180 } |
178 | 181 |
179 void BluetoothGetServicesFunction::GetServiceRecordsCallback( | 182 void BluetoothGetServicesFunction::GetServiceRecordsCallback( |
180 base::ListValue* services, | 183 base::ListValue* services, |
181 const chromeos::BluetoothDevice::ServiceRecordList& records) { | 184 const device_bluetooth::BluetoothDevice::ServiceRecordList& records) { |
182 for (chromeos::BluetoothDevice::ServiceRecordList::const_iterator i = | 185 for (device_bluetooth::BluetoothDevice::ServiceRecordList::const_iterator i = |
183 records.begin(); i != records.end(); ++i) { | 186 records.begin(); i != records.end(); ++i) { |
184 const chromeos::BluetoothServiceRecord& record = **i; | 187 const device_bluetooth::BluetoothServiceRecord& record = **i; |
185 experimental_bluetooth::ServiceRecord api_record; | 188 experimental_bluetooth::ServiceRecord api_record; |
186 api_record.name = record.name(); | 189 api_record.name = record.name(); |
187 if (!record.uuid().empty()) | 190 if (!record.uuid().empty()) |
188 api_record.uuid.reset(new std::string(record.uuid())); | 191 api_record.uuid.reset(new std::string(record.uuid())); |
189 services->Append(api_record.ToValue().release()); | 192 services->Append(api_record.ToValue().release()); |
190 } | 193 } |
191 | 194 |
192 SendResponse(true); | 195 SendResponse(true); |
193 } | 196 } |
194 | 197 |
195 void BluetoothGetServicesFunction::OnErrorCallback() { | 198 void BluetoothGetServicesFunction::OnErrorCallback() { |
196 SetError(kServiceDiscoveryFailed); | 199 SetError(kServiceDiscoveryFailed); |
197 SendResponse(false); | 200 SendResponse(false); |
198 } | 201 } |
199 | 202 |
200 bool BluetoothGetServicesFunction::RunImpl() { | 203 bool BluetoothGetServicesFunction::RunImpl() { |
201 scoped_ptr<GetServices::Params> params(GetServices::Params::Create(*args_)); | 204 scoped_ptr<GetServices::Params> params(GetServices::Params::Create(*args_)); |
202 EXTENSION_FUNCTION_VALIDATE(params.get() != NULL); | 205 EXTENSION_FUNCTION_VALIDATE(params.get() != NULL); |
203 const experimental_bluetooth::GetServicesOptions& options = params->options; | 206 const experimental_bluetooth::GetServicesOptions& options = params->options; |
204 | 207 |
205 chromeos::BluetoothDevice* device = | 208 device_bluetooth::BluetoothDevice* device = |
206 GetMutableAdapter(profile())->GetDevice(options.device_address); | 209 GetMutableAdapter(profile())->GetDevice(options.device_address); |
207 if (!device) { | 210 if (!device) { |
208 SetError(kInvalidDevice); | 211 SetError(kInvalidDevice); |
209 return false; | 212 return false; |
210 } | 213 } |
211 | 214 |
212 ListValue* services = new ListValue; | 215 ListValue* services = new ListValue; |
213 SetResult(services); | 216 SetResult(services); |
214 | 217 |
215 device->GetServiceRecords( | 218 device->GetServiceRecords( |
216 base::Bind(&BluetoothGetServicesFunction::GetServiceRecordsCallback, | 219 base::Bind(&BluetoothGetServicesFunction::GetServiceRecordsCallback, |
217 this, | 220 this, |
218 services), | 221 services), |
219 base::Bind(&BluetoothGetServicesFunction::OnErrorCallback, | 222 base::Bind(&BluetoothGetServicesFunction::OnErrorCallback, |
220 this)); | 223 this)); |
221 | 224 |
222 return true; | 225 return true; |
223 } | 226 } |
224 | 227 |
225 void BluetoothConnectFunction::ConnectToServiceCallback( | 228 void BluetoothConnectFunction::ConnectToServiceCallback( |
226 const chromeos::BluetoothDevice* device, | 229 const device_bluetooth::BluetoothDevice* device, |
227 const std::string& service_uuid, | 230 const std::string& service_uuid, |
228 scoped_refptr<chromeos::BluetoothSocket> socket) { | 231 scoped_refptr<device_bluetooth::BluetoothSocket> socket) { |
229 if (socket.get()) { | 232 if (socket.get()) { |
230 int socket_id = GetEventRouter(profile())->RegisterSocket(socket); | 233 int socket_id = GetEventRouter(profile())->RegisterSocket(socket); |
231 | 234 |
232 experimental_bluetooth::Socket result_socket; | 235 experimental_bluetooth::Socket result_socket; |
233 experimental_bluetooth::BluetoothDeviceToApiDevice( | 236 experimental_bluetooth::BluetoothDeviceToApiDevice( |
234 *device, &result_socket.device); | 237 *device, &result_socket.device); |
235 result_socket.service_uuid = service_uuid; | 238 result_socket.service_uuid = service_uuid; |
236 result_socket.id = socket_id; | 239 result_socket.id = socket_id; |
237 SetResult(result_socket.ToValue().release()); | 240 SetResult(result_socket.ToValue().release()); |
238 SendResponse(true); | 241 SendResponse(true); |
239 } else { | 242 } else { |
240 SetError(kFailedToConnect); | 243 SetError(kFailedToConnect); |
241 SendResponse(false); | 244 SendResponse(false); |
242 } | 245 } |
243 } | 246 } |
244 | 247 |
245 bool BluetoothConnectFunction::RunImpl() { | 248 bool BluetoothConnectFunction::RunImpl() { |
246 scoped_ptr<Connect::Params> params(Connect::Params::Create(*args_)); | 249 scoped_ptr<Connect::Params> params(Connect::Params::Create(*args_)); |
247 EXTENSION_FUNCTION_VALIDATE(params.get() != NULL); | 250 EXTENSION_FUNCTION_VALIDATE(params.get() != NULL); |
248 const experimental_bluetooth::ConnectOptions& options = params->options; | 251 const experimental_bluetooth::ConnectOptions& options = params->options; |
249 | 252 |
250 std::string uuid = chromeos::bluetooth_utils::CanonicalUuid( | 253 std::string uuid = device_bluetooth::bluetooth_utils::CanonicalUuid( |
251 options.service_uuid); | 254 options.service_uuid); |
252 if (uuid.empty()) { | 255 if (uuid.empty()) { |
253 SetError(kInvalidUuid); | 256 SetError(kInvalidUuid); |
254 return false; | 257 return false; |
255 } | 258 } |
256 | 259 |
257 chromeos::BluetoothDevice* device = | 260 device_bluetooth::BluetoothDevice* device = |
258 GetMutableAdapter(profile())->GetDevice(options.device_address); | 261 GetMutableAdapter(profile())->GetDevice(options.device_address); |
259 if (!device) { | 262 if (!device) { |
260 SetError(kInvalidDevice); | 263 SetError(kInvalidDevice); |
261 return false; | 264 return false; |
262 } | 265 } |
263 | 266 |
264 device->ConnectToService(uuid, | 267 device->ConnectToService(uuid, |
265 base::Bind(&BluetoothConnectFunction::ConnectToServiceCallback, | 268 base::Bind(&BluetoothConnectFunction::ConnectToServiceCallback, |
266 this, | 269 this, |
267 device, | 270 device, |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 } | 391 } |
389 | 392 |
390 bool BluetoothSetOutOfBandPairingDataFunction::RunImpl() { | 393 bool BluetoothSetOutOfBandPairingDataFunction::RunImpl() { |
391 // TODO(bryeung): update to new-style parameter passing when ArrayBuffer | 394 // TODO(bryeung): update to new-style parameter passing when ArrayBuffer |
392 // support is added | 395 // support is added |
393 DictionaryValue* options; | 396 DictionaryValue* options; |
394 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &options)); | 397 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &options)); |
395 std::string address; | 398 std::string address; |
396 EXTENSION_FUNCTION_VALIDATE(options->GetString("deviceAddress", &address)); | 399 EXTENSION_FUNCTION_VALIDATE(options->GetString("deviceAddress", &address)); |
397 | 400 |
398 chromeos::BluetoothDevice* device = | 401 device_bluetooth::BluetoothDevice* device = |
399 GetMutableAdapter(profile())->GetDevice(address); | 402 GetMutableAdapter(profile())->GetDevice(address); |
400 if (!device) { | 403 if (!device) { |
401 SetError(kInvalidDevice); | 404 SetError(kInvalidDevice); |
402 return false; | 405 return false; |
403 } | 406 } |
404 | 407 |
405 if (options->HasKey("data")) { | 408 if (options->HasKey("data")) { |
406 DictionaryValue* data_in; | 409 DictionaryValue* data_in; |
407 EXTENSION_FUNCTION_VALIDATE(options->GetDictionary("data", &data_in)); | 410 EXTENSION_FUNCTION_VALIDATE(options->GetDictionary("data", &data_in)); |
408 | 411 |
409 chromeos::BluetoothOutOfBandPairingData data_out; | 412 device_bluetooth::BluetoothOutOfBandPairingData data_out; |
410 | 413 |
411 base::BinaryValue* tmp_data; | 414 base::BinaryValue* tmp_data; |
412 EXTENSION_FUNCTION_VALIDATE(data_in->GetBinary("hash", &tmp_data)); | 415 EXTENSION_FUNCTION_VALIDATE(data_in->GetBinary("hash", &tmp_data)); |
413 EXTENSION_FUNCTION_VALIDATE( | 416 EXTENSION_FUNCTION_VALIDATE( |
414 tmp_data->GetSize() == chromeos::kBluetoothOutOfBandPairingDataSize); | 417 tmp_data->GetSize() == |
| 418 device_bluetooth::kBluetoothOutOfBandPairingDataSize); |
415 memcpy(data_out.hash, | 419 memcpy(data_out.hash, |
416 reinterpret_cast<uint8_t*>(tmp_data->GetBuffer()), | 420 reinterpret_cast<uint8_t*>(tmp_data->GetBuffer()), |
417 chromeos::kBluetoothOutOfBandPairingDataSize); | 421 device_bluetooth::kBluetoothOutOfBandPairingDataSize); |
418 | 422 |
419 EXTENSION_FUNCTION_VALIDATE(data_in->GetBinary("randomizer", &tmp_data)); | 423 EXTENSION_FUNCTION_VALIDATE(data_in->GetBinary("randomizer", &tmp_data)); |
420 EXTENSION_FUNCTION_VALIDATE( | 424 EXTENSION_FUNCTION_VALIDATE( |
421 tmp_data->GetSize() == chromeos::kBluetoothOutOfBandPairingDataSize); | 425 tmp_data->GetSize() == |
| 426 device_bluetooth::kBluetoothOutOfBandPairingDataSize); |
422 memcpy(data_out.randomizer, | 427 memcpy(data_out.randomizer, |
423 reinterpret_cast<uint8_t*>(tmp_data->GetBuffer()), | 428 reinterpret_cast<uint8_t*>(tmp_data->GetBuffer()), |
424 chromeos::kBluetoothOutOfBandPairingDataSize); | 429 device_bluetooth::kBluetoothOutOfBandPairingDataSize); |
425 | 430 |
426 device->SetOutOfBandPairingData( | 431 device->SetOutOfBandPairingData( |
427 data_out, | 432 data_out, |
428 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnSuccessCallback, | 433 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnSuccessCallback, |
429 this), | 434 this), |
430 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnErrorCallback, | 435 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnErrorCallback, |
431 this)); | 436 this)); |
432 } else { | 437 } else { |
433 device->ClearOutOfBandPairingData( | 438 device->ClearOutOfBandPairingData( |
434 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnSuccessCallback, | 439 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnSuccessCallback, |
435 this), | 440 this), |
436 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnErrorCallback, | 441 base::Bind(&BluetoothSetOutOfBandPairingDataFunction::OnErrorCallback, |
437 this)); | 442 this)); |
438 } | 443 } |
439 | 444 |
440 return true; | 445 return true; |
441 } | 446 } |
442 | 447 |
443 void BluetoothGetLocalOutOfBandPairingDataFunction::ReadCallback( | 448 void BluetoothGetLocalOutOfBandPairingDataFunction::ReadCallback( |
444 const chromeos::BluetoothOutOfBandPairingData& data) { | 449 const device_bluetooth::BluetoothOutOfBandPairingData& data) { |
445 base::BinaryValue* hash = base::BinaryValue::CreateWithCopiedBuffer( | 450 base::BinaryValue* hash = base::BinaryValue::CreateWithCopiedBuffer( |
446 reinterpret_cast<const char*>(data.hash), | 451 reinterpret_cast<const char*>(data.hash), |
447 chromeos::kBluetoothOutOfBandPairingDataSize); | 452 device_bluetooth::kBluetoothOutOfBandPairingDataSize); |
448 base::BinaryValue* randomizer = base::BinaryValue::CreateWithCopiedBuffer( | 453 base::BinaryValue* randomizer = base::BinaryValue::CreateWithCopiedBuffer( |
449 reinterpret_cast<const char*>(data.randomizer), | 454 reinterpret_cast<const char*>(data.randomizer), |
450 chromeos::kBluetoothOutOfBandPairingDataSize); | 455 device_bluetooth::kBluetoothOutOfBandPairingDataSize); |
451 | 456 |
452 // TODO(bryeung): convert to experimental_bluetooth::OutOfBandPairingData | 457 // TODO(bryeung): convert to experimental_bluetooth::OutOfBandPairingData |
453 // when ArrayBuffer support within objects is completed. | 458 // when ArrayBuffer support within objects is completed. |
454 DictionaryValue* result = new DictionaryValue(); | 459 DictionaryValue* result = new DictionaryValue(); |
455 result->Set("hash", hash); | 460 result->Set("hash", hash); |
456 result->Set("randomizer", randomizer); | 461 result->Set("randomizer", randomizer); |
457 | 462 |
458 SetResult(result); | 463 SetResult(result); |
459 | 464 |
460 SendResponse(true); | 465 SendResponse(true); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
610 #endif | 615 #endif |
611 | 616 |
612 BluetoothReadFunction::BluetoothReadFunction() {} | 617 BluetoothReadFunction::BluetoothReadFunction() {} |
613 BluetoothReadFunction::~BluetoothReadFunction() {} | 618 BluetoothReadFunction::~BluetoothReadFunction() {} |
614 | 619 |
615 BluetoothWriteFunction::BluetoothWriteFunction() {} | 620 BluetoothWriteFunction::BluetoothWriteFunction() {} |
616 BluetoothWriteFunction::~BluetoothWriteFunction() {} | 621 BluetoothWriteFunction::~BluetoothWriteFunction() {} |
617 | 622 |
618 } // namespace api | 623 } // namespace api |
619 } // namespace extensions | 624 } // namespace extensions |
OLD | NEW |