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

Unified Diff: content/browser/bluetooth/bluetooth_dispatcher_host.h

Issue 1922923002: bluetooth: Move requestDevice to mojo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bluetooth-separate-tests-request-device
Patch Set: Change ref to pointer Created 4 years, 7 months 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: content/browser/bluetooth/bluetooth_dispatcher_host.h
diff --git a/content/browser/bluetooth/bluetooth_dispatcher_host.h b/content/browser/bluetooth/bluetooth_dispatcher_host.h
deleted file mode 100644
index b1715af4e5ca8b23a28ea09091fcd246ce9ceaad..0000000000000000000000000000000000000000
--- a/content/browser/bluetooth/bluetooth_dispatcher_host.h
+++ /dev/null
@@ -1,187 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_DISPATCHER_HOST_H_
-#define CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_DISPATCHER_HOST_H_
-
-#include <stdint.h>
-
-#include <map>
-
-#include "base/id_map.h"
-#include "base/macros.h"
-#include "base/memory/scoped_vector.h"
-#include "base/memory/weak_ptr.h"
-#include "content/browser/bluetooth/bluetooth_allowed_devices_map.h"
-#include "content/public/browser/bluetooth_chooser.h"
-#include "content/public/browser/browser_message_filter.h"
-#include "device/bluetooth/bluetooth_adapter.h"
-#include "device/bluetooth/bluetooth_gatt_notify_session.h"
-#include "device/bluetooth/bluetooth_remote_gatt_service.h"
-
-namespace device {
-class BluetoothUUID;
-}
-
-namespace content {
-
-class WebBluetoothServiceImpl;
-
-struct BluetoothScanFilter;
-struct CacheQueryResult;
-
-// Dispatches and sends bluetooth related messages sent to/from a child
-// process BluetoothDispatcher from/to the main browser process.
-//
-// Intended to be instantiated by the RenderProcessHost and installed as
-// a filter on the channel. BrowserMessageFilter is refcounted and typically
-// lives as long as it is installed on a channel.
-//
-// UI Thread Note:
-// BluetoothDispatcherHost is constructed, operates, and destroyed on the UI
-// thread because BluetoothAdapter and related objects live there.
-class CONTENT_EXPORT BluetoothDispatcherHost final
- : public BrowserMessageFilter,
- public device::BluetoothAdapter::Observer {
- public:
- BluetoothDispatcherHost(int render_process_id);
- // BrowserMessageFilter:
- void OnDestruct() const override;
- void OverrideThreadForMessage(const IPC::Message& message,
- BrowserThread::ID* thread) override;
- bool OnMessageReceived(const IPC::Message& message) override;
-
- void SetBluetoothAdapterForTesting(
- scoped_refptr<device::BluetoothAdapter> mock_adapter);
-
- // Temporary functions so that WebBluetoothServices can add themselves as
- // observers of the Bluetooth Adapter without having to get an adapter for
- // themselves.
- // TODO(ortuno): Remove once WebBluetoothServiceImpl gets its own adapter.
- // https://crbug.com/508771
- void AddAdapterObserver(device::BluetoothAdapter::Observer* observer);
- void RemoveAdapterObserver(device::BluetoothAdapter::Observer* observer);
-
- protected:
- ~BluetoothDispatcherHost() override;
-
- private:
- friend class WebBluetoothServiceImpl;
- friend class base::DeleteHelper<BluetoothDispatcherHost>;
- friend struct BrowserThread::DeleteOnThread<BrowserThread::UI>;
-
- struct RequestDeviceSession;
-
- // Set |adapter_| to a BluetoothAdapter instance and register observers,
- // releasing references to previous |adapter_|.
- //
- // We currently keep track of observers that used BluetoothDispatcherHost
- // to register themselves on the adapter and remove them from |adapter_| and
- // add them to |adapter| when this function is called.
- // TODO(ortuno): Observers should add/remove themselves to/from the adapter.
- // http://crbug.com/603291
- void set_adapter(scoped_refptr<device::BluetoothAdapter> adapter);
-
- // Makes sure a BluetoothDiscoverySession is active for |session|, and resets
- // its timeout.
- void StartDeviceDiscovery(RequestDeviceSession* session, int chooser_id);
-
- // Stops all BluetoothDiscoverySessions being run for requestDevice()
- // choosers.
- void StopDeviceDiscovery();
-
- // BluetoothAdapter::Observer:
- void AdapterPoweredChanged(device::BluetoothAdapter* adapter,
- bool powered) override;
- void DeviceAdded(device::BluetoothAdapter* adapter,
- device::BluetoothDevice* device) override;
- void DeviceRemoved(device::BluetoothAdapter* adapter,
- device::BluetoothDevice* device) override;
-
- // IPC Handlers, see definitions in bluetooth_messages.h.
- void OnRequestDevice(
- int thread_id,
- int request_id,
- int frame_routing_id,
- const std::vector<content::BluetoothScanFilter>& filters,
- const std::vector<device::BluetoothUUID>& optional_services);
-
- // Callbacks for BluetoothDevice::OnRequestDevice.
- // If necessary, the adapter must be obtained before continuing to Impl.
- void OnGetAdapter(base::Closure continuation,
- scoped_refptr<device::BluetoothAdapter> adapter);
- void OnRequestDeviceImpl(
- int thread_id,
- int request_id,
- int frame_routing_id,
- const std::vector<content::BluetoothScanFilter>& filters,
- const std::vector<device::BluetoothUUID>& optional_services);
-
- // Callbacks for BluetoothAdapter::StartDiscoverySession.
- void OnDiscoverySessionStarted(
- int chooser_id,
- std::unique_ptr<device::BluetoothDiscoverySession> discovery_session);
- void OnDiscoverySessionStartedError(int chooser_id);
-
- // BluetoothChooser::EventHandler:
- void OnBluetoothChooserEvent(int chooser_id,
- BluetoothChooser::Event event,
- const std::string& device_id);
-
- // The chooser implementation yields to the event loop to avoid re-entering
- // code that's still using the RequestDeviceSession, and continues with this
- // function.
- void FinishClosingChooser(int chooser_id,
- BluetoothChooser::Event event,
- const std::string& device_id);
-
- // Functions to query the platform cache for the bluetooth object.
- // result.outcome == CacheQueryOutcome::SUCCESS if the object was found in the
- // cache. Otherwise result.outcome that can used to record the outcome and
- // result.error will contain the error that should be send to the renderer.
- // One of the possible outcomes is BAD_RENDERER. In this case the outcome
- // was already recorded and since there renderer crashed there is no need to
- // send a response.
- // Queries the platform cache for a Device with |device_id| for |origin|.
- // Fills in the |outcome| field and the |device| field if successful.
- CacheQueryResult QueryCacheForDevice(const url::Origin& origin,
- const std::string& device_id);
-
- int render_process_id_;
-
- // Maps a (thread_id,request_id) to information about its requestDevice call,
- // including the chooser dialog.
- // An entry is added to this map in OnRequestDevice, and should be removed
- // again everywhere a requestDevice() reply is sent.
- IDMap<RequestDeviceSession, IDMapOwnPointer> request_device_sessions_;
-
- BluetoothAllowedDevicesMap allowed_devices_map_;
-
- // Defines how long to scan for and how long to discover services for.
- int current_delay_time_;
-
- // A BluetoothAdapter instance representing an adapter of the system.
- scoped_refptr<device::BluetoothAdapter> adapter_;
-
- std::unordered_set<device::BluetoothAdapter::Observer*> adapter_observers_;
-
- // Automatically stops Bluetooth discovery a set amount of time after it was
- // started. We have a single timer for all of Web Bluetooth because it's
- // simpler than tracking timeouts for each RequestDeviceSession individually,
- // and because there's no harm in extending the length of a few discovery
- // sessions when other sessions are active.
- base::Timer discovery_session_timer_;
-
- // |weak_ptr_on_ui_thread_| provides weak pointers, e.g. for callbacks, and
- // because it exists and has been bound to the UI thread enforces that all
- // copies verify they are also used on the UI thread.
- base::WeakPtr<BluetoothDispatcherHost> weak_ptr_on_ui_thread_;
- base::WeakPtrFactory<BluetoothDispatcherHost> weak_ptr_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(BluetoothDispatcherHost);
-};
-
-} // namespace content
-
-#endif // CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_DISPATCHER_HOST_H_

Powered by Google App Engine
This is Rietveld 408576698