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_event_router.h" | 5 #include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "content/public/browser/notification_details.h" | 24 #include "content/public/browser/notification_details.h" |
25 #include "content/public/browser/notification_source.h" | 25 #include "content/public/browser/notification_source.h" |
26 #include "device/bluetooth/bluetooth_adapter.h" | 26 #include "device/bluetooth/bluetooth_adapter.h" |
27 #include "device/bluetooth/bluetooth_adapter_factory.h" | 27 #include "device/bluetooth/bluetooth_adapter_factory.h" |
28 #include "device/bluetooth/bluetooth_device.h" | 28 #include "device/bluetooth/bluetooth_device.h" |
29 #include "device/bluetooth/bluetooth_discovery_session.h" | 29 #include "device/bluetooth/bluetooth_discovery_session.h" |
30 #include "device/bluetooth/bluetooth_profile.h" | 30 #include "device/bluetooth/bluetooth_profile.h" |
31 #include "device/bluetooth/bluetooth_socket.h" | 31 #include "device/bluetooth/bluetooth_socket.h" |
32 #include "extensions/browser/event_router.h" | 32 #include "extensions/browser/event_router.h" |
33 #include "extensions/browser/extension_host.h" | 33 #include "extensions/browser/extension_host.h" |
34 #include "extensions/browser/extension_system.h" | |
35 | 34 |
36 namespace extensions { | 35 namespace extensions { |
37 | 36 |
38 namespace bluetooth = api::bluetooth; | 37 namespace bluetooth = api::bluetooth; |
39 namespace bt_private = api::bluetooth_private; | 38 namespace bt_private = api::bluetooth_private; |
40 | 39 |
41 // A struct storing a Bluetooth profile and the extension that added it. | 40 // A struct storing a Bluetooth profile and the extension that added it. |
42 struct BluetoothEventRouter::ExtensionBluetoothProfileRecord { | 41 struct BluetoothEventRouter::ExtensionBluetoothProfileRecord { |
43 std::string extension_id; | 42 std::string extension_id; |
44 device::BluetoothProfile* profile; | 43 device::BluetoothProfile* profile; |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 void BluetoothEventRouter::DispatchAdapterStateEvent() { | 328 void BluetoothEventRouter::DispatchAdapterStateEvent() { |
330 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 329 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
331 api::bluetooth::AdapterState state; | 330 api::bluetooth::AdapterState state; |
332 PopulateAdapterState(*adapter_.get(), &state); | 331 PopulateAdapterState(*adapter_.get(), &state); |
333 | 332 |
334 scoped_ptr<base::ListValue> args = | 333 scoped_ptr<base::ListValue> args = |
335 bluetooth::OnAdapterStateChanged::Create(state); | 334 bluetooth::OnAdapterStateChanged::Create(state); |
336 scoped_ptr<Event> event(new Event( | 335 scoped_ptr<Event> event(new Event( |
337 bluetooth::OnAdapterStateChanged::kEventName, | 336 bluetooth::OnAdapterStateChanged::kEventName, |
338 args.Pass())); | 337 args.Pass())); |
339 ExtensionSystem::Get(browser_context_)->event_router()->BroadcastEvent( | 338 EventRouter::Get(browser_context_)->BroadcastEvent(event.Pass()); |
340 event.Pass()); | |
341 } | 339 } |
342 | 340 |
343 void BluetoothEventRouter::DispatchDeviceEvent( | 341 void BluetoothEventRouter::DispatchDeviceEvent( |
344 const std::string& event_name, | 342 const std::string& event_name, |
345 device::BluetoothDevice* device) { | 343 device::BluetoothDevice* device) { |
346 bluetooth::Device extension_device; | 344 bluetooth::Device extension_device; |
347 bluetooth::BluetoothDeviceToApiDevice(*device, &extension_device); | 345 bluetooth::BluetoothDeviceToApiDevice(*device, &extension_device); |
348 | 346 |
349 scoped_ptr<base::ListValue> args = | 347 scoped_ptr<base::ListValue> args = |
350 bluetooth::OnDeviceAdded::Create(extension_device); | 348 bluetooth::OnDeviceAdded::Create(extension_device); |
351 scoped_ptr<Event> event(new Event(event_name, args.Pass())); | 349 scoped_ptr<Event> event(new Event(event_name, args.Pass())); |
352 ExtensionSystem::Get(browser_context_)->event_router()->BroadcastEvent( | 350 EventRouter::Get(browser_context_)->BroadcastEvent(event.Pass()); |
353 event.Pass()); | |
354 } | 351 } |
355 | 352 |
356 void BluetoothEventRouter::CleanUpForExtension( | 353 void BluetoothEventRouter::CleanUpForExtension( |
357 const std::string& extension_id) { | 354 const std::string& extension_id) { |
358 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 355 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
359 RemovePairingDelegate(extension_id); | 356 RemovePairingDelegate(extension_id); |
360 | 357 |
361 // Remove all profiles added by the extension. | 358 // Remove all profiles added by the extension. |
362 BluetoothProfileMap::iterator profile_iter = bluetooth_profile_map_.begin(); | 359 BluetoothProfileMap::iterator profile_iter = bluetooth_profile_map_.begin(); |
363 while (profile_iter != bluetooth_profile_map_.end()) { | 360 while (profile_iter != bluetooth_profile_map_.end()) { |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 } | 423 } |
427 case chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED: { | 424 case chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED: { |
428 ExtensionHost* host = content::Details<ExtensionHost>(details).ptr(); | 425 ExtensionHost* host = content::Details<ExtensionHost>(details).ptr(); |
429 CleanUpForExtension(host->extension_id()); | 426 CleanUpForExtension(host->extension_id()); |
430 break; | 427 break; |
431 } | 428 } |
432 } | 429 } |
433 } | 430 } |
434 | 431 |
435 } // namespace extensions | 432 } // namespace extensions |
OLD | NEW |