Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1470)

Unified Diff: chrome/browser/extensions/bluetooth_event_router.cc

Issue 11369055: Delayed adding BluetoothEventRouter as BluetoothAdapter observer until when the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed BluetoothApiTest Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/bluetooth_event_router.cc
diff --git a/chrome/browser/extensions/bluetooth_event_router.cc b/chrome/browser/extensions/bluetooth_event_router.cc
index d38db9e8b925a6438b7a199889ee2f576b1ea5dc..185685904f3b6d7c63adf459e4d568dc38349afc 100644
--- a/chrome/browser/extensions/bluetooth_event_router.cc
+++ b/chrome/browser/extensions/bluetooth_event_router.cc
@@ -29,8 +29,16 @@ ExtensionBluetoothEventRouter::ExtensionBluetoothEventRouter(Profile* profile)
adapter_(device::BluetoothAdapterFactory::DefaultAdapter()),
next_socket_id_(1) {
DCHECK(profile_);
- if (adapter_.get())
- adapter_->AddObserver(this);
+}
+
+ExtensionBluetoothEventRouter::ExtensionBluetoothEventRouter(
+ Profile* profile, device::BluetoothAdapter* adapter)
+ : send_discovery_events_(false),
+ responsible_for_discovery_(false),
+ profile_(profile),
+ adapter_(adapter),
+ next_socket_id_(1) {
+ DCHECK(profile_);
}
ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() {
@@ -40,6 +48,13 @@ ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() {
socket_map_.clear();
}
+device::BluetoothAdapter* ExtensionBluetoothEventRouter::GetMutableAdapter() {
+ if (adapter_.get()) {
+ adapter_->AddObserver(this);
miket_OOO 2012/11/06 02:04:09 Braces not needed. I might answer this question f
youngki 2012/11/06 16:18:54 Done.
+ }
+ return adapter_.get();
+}
+
int ExtensionBluetoothEventRouter::RegisterSocket(
scoped_refptr<device::BluetoothSocket> socket) {
// If there is a socket registered with the same fd, just return it's id
@@ -62,6 +77,21 @@ bool ExtensionBluetoothEventRouter::ReleaseSocket(int id) {
return true;
}
+bool ExtensionBluetoothEventRouter::IsBluetoothEvent(
+ const std::string& event_name) {
miket_OOO 2012/11/06 02:04:09 this method could be const.
youngki 2012/11/06 16:18:54 This method is actually static, so no need to be c
+ return
+ event_name == extensions::event_names::kBluetoothOnAvailabilityChanged ||
+ event_name == extensions::event_names::kBluetoothOnDiscoveringChanged ||
+ event_name == extensions::event_names::kBluetoothOnPowerChanged;
+}
+
+void ExtensionBluetoothEventRouter::OnEventListenerAdded(
+ const std::string& event_name) {
+ if (IsBluetoothEvent(event_name) && adapter_.get()) {
+ adapter_->AddObserver(this);
miket_OOO 2012/11/06 02:04:09 Would it be correct, or more elegant, to call GetM
youngki 2012/11/06 16:18:54 Hm.. Although they do the same thing, we are not t
+ }
+}
+
scoped_refptr<device::BluetoothSocket>
ExtensionBluetoothEventRouter::GetSocket(int id) {
SocketMap::iterator socket_entry = socket_map_.find(id);

Powered by Google App Engine
This is Rietveld 408576698