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 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
11 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h" | 11 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h" |
12 #include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" | 12 #include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" |
13 #include "chrome/browser/extensions/api/bluetooth/bluetooth_socket_event_dispatc
her.h" | 13 #include "chrome/browser/extensions/api/bluetooth/bluetooth_socket_event_dispatc
her.h" |
14 #include "chrome/browser/profiles/profile_manager.h" | 14 #include "chrome/browser/profiles/profile_manager.h" |
15 #include "chrome/common/extensions/api/bluetooth.h" | 15 #include "chrome/common/extensions/api/bluetooth.h" |
16 #include "chrome/common/extensions/api/bluetooth/bluetooth_manifest_data.h" | 16 #include "chrome/common/extensions/api/bluetooth/bluetooth_manifest_data.h" |
17 #include "content/public/browser/browser_thread.h" | 17 #include "content/public/browser/browser_thread.h" |
18 #include "device/bluetooth/bluetooth_adapter.h" | 18 #include "device/bluetooth/bluetooth_adapter.h" |
19 #include "device/bluetooth/bluetooth_device.h" | 19 #include "device/bluetooth/bluetooth_device.h" |
20 #include "device/bluetooth/bluetooth_out_of_band_pairing_data.h" | 20 #include "device/bluetooth/bluetooth_out_of_band_pairing_data.h" |
21 #include "device/bluetooth/bluetooth_profile.h" | 21 #include "device/bluetooth/bluetooth_profile.h" |
22 #include "device/bluetooth/bluetooth_service_record.h" | 22 #include "device/bluetooth/bluetooth_service_record.h" |
23 #include "device/bluetooth/bluetooth_socket.h" | 23 #include "device/bluetooth/bluetooth_socket.h" |
24 #include "extensions/browser/event_router.h" | 24 #include "extensions/browser/event_router.h" |
25 #include "extensions/browser/extension_system.h" | |
26 #include "extensions/common/permissions/permissions_data.h" | 25 #include "extensions/common/permissions/permissions_data.h" |
27 #include "net/base/io_buffer.h" | 26 #include "net/base/io_buffer.h" |
28 | 27 |
29 using content::BrowserContext; | 28 using content::BrowserContext; |
30 using content::BrowserThread; | 29 using content::BrowserThread; |
31 | 30 |
32 using device::BluetoothAdapter; | 31 using device::BluetoothAdapter; |
33 using device::BluetoothDevice; | 32 using device::BluetoothDevice; |
34 using device::BluetoothProfile; | 33 using device::BluetoothProfile; |
35 using device::BluetoothServiceRecord; | 34 using device::BluetoothServiceRecord; |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 return GetFactoryInstance()->Get(context); | 147 return GetFactoryInstance()->Get(context); |
149 } | 148 } |
150 | 149 |
151 BluetoothAPI::ConnectionParams::ConnectionParams() {} | 150 BluetoothAPI::ConnectionParams::ConnectionParams() {} |
152 | 151 |
153 BluetoothAPI::ConnectionParams::~ConnectionParams() {} | 152 BluetoothAPI::ConnectionParams::~ConnectionParams() {} |
154 | 153 |
155 BluetoothAPI::BluetoothAPI(content::BrowserContext* context) | 154 BluetoothAPI::BluetoothAPI(content::BrowserContext* context) |
156 : browser_context_(context) { | 155 : browser_context_(context) { |
157 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 156 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
158 ExtensionSystem::Get(browser_context_)->event_router()->RegisterObserver( | 157 EventRouter* event_router = EventRouter::Get(browser_context_); |
159 this, bluetooth::OnAdapterStateChanged::kEventName); | 158 event_router->RegisterObserver(this, |
160 ExtensionSystem::Get(browser_context_)->event_router()->RegisterObserver( | 159 bluetooth::OnAdapterStateChanged::kEventName); |
161 this, bluetooth::OnDeviceAdded::kEventName); | 160 event_router->RegisterObserver(this, bluetooth::OnDeviceAdded::kEventName); |
162 ExtensionSystem::Get(browser_context_)->event_router()->RegisterObserver( | 161 event_router->RegisterObserver(this, bluetooth::OnDeviceChanged::kEventName); |
163 this, bluetooth::OnDeviceChanged::kEventName); | 162 event_router->RegisterObserver(this, bluetooth::OnDeviceRemoved::kEventName); |
164 ExtensionSystem::Get(browser_context_)->event_router()->RegisterObserver( | |
165 this, bluetooth::OnDeviceRemoved::kEventName); | |
166 } | 163 } |
167 | 164 |
168 BluetoothAPI::~BluetoothAPI() {} | 165 BluetoothAPI::~BluetoothAPI() {} |
169 | 166 |
170 BluetoothEventRouter* BluetoothAPI::event_router() { | 167 BluetoothEventRouter* BluetoothAPI::event_router() { |
171 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 168 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
172 if (!event_router_) { | 169 if (!event_router_) { |
173 event_router_.reset(new BluetoothEventRouter(browser_context_)); | 170 event_router_.reset(new BluetoothEventRouter(browser_context_)); |
174 } | 171 } |
175 return event_router_.get(); | 172 return event_router_.get(); |
(...skipping 19 matching lines...) Expand all Loading... |
195 BluetoothAPI::socket_event_dispatcher() { | 192 BluetoothAPI::socket_event_dispatcher() { |
196 if (!socket_event_dispatcher_) { | 193 if (!socket_event_dispatcher_) { |
197 socket_event_dispatcher_ = new api::BluetoothSocketEventDispatcher( | 194 socket_event_dispatcher_ = new api::BluetoothSocketEventDispatcher( |
198 browser_context_, socket_data()); | 195 browser_context_, socket_data()); |
199 } | 196 } |
200 return socket_event_dispatcher_; | 197 return socket_event_dispatcher_; |
201 } | 198 } |
202 | 199 |
203 void BluetoothAPI::Shutdown() { | 200 void BluetoothAPI::Shutdown() { |
204 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 201 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
205 ExtensionSystem::Get(browser_context_)->event_router()->UnregisterObserver( | 202 EventRouter::Get(browser_context_)->UnregisterObserver(this); |
206 this); | |
207 } | 203 } |
208 | 204 |
209 void BluetoothAPI::OnListenerAdded(const EventListenerInfo& details) { | 205 void BluetoothAPI::OnListenerAdded(const EventListenerInfo& details) { |
210 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 206 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
211 if (event_router()->IsBluetoothSupported()) | 207 if (event_router()->IsBluetoothSupported()) |
212 event_router()->OnListenerAdded(); | 208 event_router()->OnListenerAdded(); |
213 } | 209 } |
214 | 210 |
215 void BluetoothAPI::OnListenerRemoved(const EventListenerInfo& details) { | 211 void BluetoothAPI::OnListenerRemoved(const EventListenerInfo& details) { |
216 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 212 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 api::bluetooth::Socket result_socket; | 282 api::bluetooth::Socket result_socket; |
287 bluetooth::BluetoothDeviceToApiDevice(*device, &result_socket.device); | 283 bluetooth::BluetoothDeviceToApiDevice(*device, &result_socket.device); |
288 result_socket.uuid = params.uuid.canonical_value(); | 284 result_socket.uuid = params.uuid.canonical_value(); |
289 result_socket.id = socket_id; | 285 result_socket.id = socket_id; |
290 | 286 |
291 scoped_ptr<base::ListValue> args = | 287 scoped_ptr<base::ListValue> args = |
292 bluetooth::OnConnection::Create(result_socket); | 288 bluetooth::OnConnection::Create(result_socket); |
293 scoped_ptr<Event> event( | 289 scoped_ptr<Event> event( |
294 new Event(bluetooth::OnConnection::kEventName, args.Pass())); | 290 new Event(bluetooth::OnConnection::kEventName, args.Pass())); |
295 | 291 |
296 EventRouter* router = ExtensionSystem::Get(context)->event_router(); | 292 EventRouter* router = EventRouter::Get(context); |
297 if (router) | 293 if (router) |
298 router->DispatchEventToExtension(params.extension_id, event.Pass()); | 294 router->DispatchEventToExtension(params.extension_id, event.Pass()); |
299 } | 295 } |
300 | 296 |
301 namespace api { | 297 namespace api { |
302 | 298 |
303 BluetoothSocketApiFunction::BluetoothSocketApiFunction() {} | 299 BluetoothSocketApiFunction::BluetoothSocketApiFunction() {} |
304 | 300 |
305 BluetoothSocketApiFunction::~BluetoothSocketApiFunction() {} | 301 BluetoothSocketApiFunction::~BluetoothSocketApiFunction() {} |
306 | 302 |
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
857 adapter, | 853 adapter, |
858 extension_id(), | 854 extension_id(), |
859 base::Bind(&BluetoothStopDiscoveryFunction::OnSuccessCallback, this), | 855 base::Bind(&BluetoothStopDiscoveryFunction::OnSuccessCallback, this), |
860 base::Bind(&BluetoothStopDiscoveryFunction::OnErrorCallback, this)); | 856 base::Bind(&BluetoothStopDiscoveryFunction::OnErrorCallback, this)); |
861 | 857 |
862 return true; | 858 return true; |
863 } | 859 } |
864 | 860 |
865 } // namespace api | 861 } // namespace api |
866 } // namespace extensions | 862 } // namespace extensions |
OLD | NEW |