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

Unified Diff: chrome/browser/extensions/api/bluetooth/bluetooth_api.cc

Issue 11360200: Decouple bluetooth_event_router from extension_system. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Removed MockBluetoothSocket 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/api/bluetooth/bluetooth_api.cc
diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc b/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc
index ba365e1bfaa5c3a514fbe941934314af7dc579a6..5373b787c4fcd36fbead0893e94acc3c2a30d228 100644
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_api.cc
@@ -11,11 +11,11 @@
#include <string>
#include "base/memory/ref_counted.h"
+#include "chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h"
#include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h"
-#include "chrome/browser/extensions/bluetooth_event_router.h"
+#include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h"
#include "chrome/browser/extensions/event_names.h"
#include "chrome/browser/extensions/event_router.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/bluetooth.h"
@@ -39,7 +39,7 @@ using device::BluetoothSocket;
namespace {
extensions::ExtensionBluetoothEventRouter* GetEventRouter(Profile* profile) {
- return profile->GetExtensionService()->bluetooth_event_router();
+ return extensions::BluetoothAPI::Get(profile)->bluetooth_event_router();
}
const BluetoothAdapter* GetAdapter(Profile* profile) {
@@ -47,8 +47,7 @@ const BluetoothAdapter* GetAdapter(Profile* profile) {
}
BluetoothAdapter* GetMutableAdapter(Profile* profile) {
- BluetoothAdapter* adapter = GetEventRouter(profile)->GetMutableAdapter();
- return adapter;
+ return GetEventRouter(profile)->GetMutableAdapter();
}
bool IsBluetoothSupported(Profile* profile) {
@@ -85,6 +84,43 @@ namespace SetOutOfBandPairingData =
namespace Write = extensions::api::bluetooth::Write;
namespace extensions {
+
+// static
+BluetoothAPI* BluetoothAPI::Get(Profile* profile) {
+ return BluetoothAPIFactory::GetForProfile(profile);
+}
+
+BluetoothAPI::BluetoothAPI(Profile* profile) : profile_(profile) {
+ ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
+ this, extensions::event_names::kBluetoothOnAvailabilityChanged);
+ ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
+ this, extensions::event_names::kBluetoothOnPowerChanged);
+ ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
+ this, extensions::event_names::kBluetoothOnDiscoveringChanged);
+}
+
+BluetoothAPI::~BluetoothAPI() {
+}
+
+ExtensionBluetoothEventRouter* BluetoothAPI::bluetooth_event_router() {
+ if (!bluetooth_event_router_)
+ bluetooth_event_router_.reset(new ExtensionBluetoothEventRouter(profile_));
+
+ return bluetooth_event_router_.get();
+}
+
+void BluetoothAPI::Shutdown() {
+ ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);
+}
+
+void BluetoothAPI::OnListenerAdded(const std::string& event_name) {
+ bluetooth_event_router()->OnListenerAdded();
+}
+
+void BluetoothAPI::OnListenerRemoved(const std::string& event_name) {
+ bluetooth_event_router()->OnListenerRemoved();
+}
+
namespace api {
bool BluetoothIsAvailableFunction::RunImpl() {

Powered by Google App Engine
This is Rietveld 408576698