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

Unified Diff: content/renderer/bluetooth/bluetooth_dispatcher.cc

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/renderer/bluetooth/bluetooth_dispatcher.cc
diff --git a/content/renderer/bluetooth/bluetooth_dispatcher.cc b/content/renderer/bluetooth/bluetooth_dispatcher.cc
deleted file mode 100644
index 2ff8caaf74c32e73c4dcb8e469ef093e0c1ecd52..0000000000000000000000000000000000000000
--- a/content/renderer/bluetooth/bluetooth_dispatcher.cc
+++ /dev/null
@@ -1,145 +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.
-
-#include "content/renderer/bluetooth/bluetooth_dispatcher.h"
-
-#include <stddef.h>
-
-#include <memory>
-#include <utility>
-
-#include "base/lazy_instance.h"
-#include "base/memory/ptr_util.h"
-#include "base/message_loop/message_loop.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "content/child/thread_safe_sender.h"
-#include "content/common/bluetooth/bluetooth_messages.h"
-#include "device/bluetooth/bluetooth_uuid.h"
-#include "third_party/WebKit/public/platform/modules/bluetooth/WebBluetoothDeviceInit.h"
-#include "third_party/WebKit/public/platform/modules/bluetooth/WebBluetoothError.h"
-#include "third_party/WebKit/public/platform/modules/bluetooth/WebBluetoothRemoteGATTService.h"
-#include "third_party/WebKit/public/platform/modules/bluetooth/WebRequestDeviceOptions.h"
-
-using blink::WebBluetoothDeviceInit;
-using blink::WebBluetoothError;
-using blink::WebBluetoothRemoteGATTService;
-using blink::WebBluetoothReadValueCallbacks;
-using blink::WebBluetoothRequestDeviceCallbacks;
-using blink::WebBluetoothScanFilter;
-using blink::WebRequestDeviceOptions;
-using blink::WebString;
-using blink::WebVector;
-
-namespace content {
-
-namespace {
-
-base::LazyInstance<base::ThreadLocalPointer<void>>::Leaky g_dispatcher_tls =
- LAZY_INSTANCE_INITIALIZER;
-
-void* const kHasBeenDeleted = reinterpret_cast<void*>(0x1);
-
-int CurrentWorkerId() {
- return WorkerThread::GetCurrentId();
-}
-
-} // namespace
-
-BluetoothDispatcher::BluetoothDispatcher(ThreadSafeSender* sender)
- : thread_safe_sender_(sender) {
- g_dispatcher_tls.Pointer()->Set(static_cast<void*>(this));
-}
-
-BluetoothDispatcher::~BluetoothDispatcher() {
- g_dispatcher_tls.Pointer()->Set(kHasBeenDeleted);
-}
-
-BluetoothDispatcher* BluetoothDispatcher::GetOrCreateThreadSpecificInstance(
- ThreadSafeSender* thread_safe_sender) {
- if (g_dispatcher_tls.Pointer()->Get() == kHasBeenDeleted) {
- NOTREACHED() << "Re-instantiating TLS BluetoothDispatcher.";
- g_dispatcher_tls.Pointer()->Set(NULL);
- }
- if (g_dispatcher_tls.Pointer()->Get())
- return static_cast<BluetoothDispatcher*>(g_dispatcher_tls.Pointer()->Get());
-
- BluetoothDispatcher* dispatcher = new BluetoothDispatcher(thread_safe_sender);
- if (CurrentWorkerId())
- WorkerThread::AddObserver(dispatcher);
- return dispatcher;
-}
-
-bool BluetoothDispatcher::Send(IPC::Message* msg) {
- return thread_safe_sender_->Send(msg);
-}
-
-void BluetoothDispatcher::OnMessageReceived(const IPC::Message& msg) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(BluetoothDispatcher, msg)
- IPC_MESSAGE_HANDLER(BluetoothMsg_RequestDeviceSuccess,
- OnRequestDeviceSuccess);
- IPC_MESSAGE_HANDLER(BluetoothMsg_RequestDeviceError, OnRequestDeviceError);
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- DCHECK(handled) << "Unhandled message:" << msg.type();
-}
-
-void BluetoothDispatcher::requestDevice(
- int frame_routing_id,
- const WebRequestDeviceOptions& options,
- blink::WebBluetoothRequestDeviceCallbacks* callbacks) {
- int request_id = pending_requests_.Add(callbacks);
-
- // Convert |options| to its IPC form.
- std::vector<content::BluetoothScanFilter> filters(options.filters.size());
- for (size_t i = 0; i < options.filters.size(); ++i) {
- const WebBluetoothScanFilter& web_filter = options.filters[i];
- BluetoothScanFilter& filter = filters[i];
- filter.services.reserve(web_filter.services.size());
- for (const WebString& service : web_filter.services) {
- filter.services.push_back(device::BluetoothUUID(service.utf8()));
- }
- filter.name = web_filter.name.utf8();
- filter.namePrefix = web_filter.namePrefix.utf8();
- }
- std::vector<device::BluetoothUUID> optional_services;
- optional_services.reserve(options.optionalServices.size());
- for (const WebString& optional_service : options.optionalServices) {
- optional_services.push_back(device::BluetoothUUID(optional_service.utf8()));
- }
-
- Send(new BluetoothHostMsg_RequestDevice(CurrentWorkerId(), request_id,
- frame_routing_id, filters,
- optional_services));
-}
-
-void BluetoothDispatcher::WillStopCurrentWorkerThread() {
- delete this;
-}
-
-void BluetoothDispatcher::OnRequestDeviceSuccess(
- int thread_id,
- int request_id,
- const BluetoothDevice& device) {
- DCHECK(pending_requests_.Lookup(request_id)) << request_id;
-
- WebVector<WebString> uuids(device.uuids.size());
- for (size_t i = 0; i < device.uuids.size(); ++i)
- uuids[i] = WebString::fromUTF8(device.uuids[i].c_str());
-
- pending_requests_.Lookup(request_id)
- ->onSuccess(base::WrapUnique(new WebBluetoothDeviceInit(
- WebString::fromUTF8(device.id), WebString(device.name), uuids)));
- pending_requests_.Remove(request_id);
-}
-
-void BluetoothDispatcher::OnRequestDeviceError(int thread_id,
- int request_id,
- WebBluetoothError error) {
- DCHECK(pending_requests_.Lookup(request_id)) << request_id;
- pending_requests_.Lookup(request_id)->onError(WebBluetoothError(error));
- pending_requests_.Remove(request_id);
-}
-
-} // namespace content
« no previous file with comments | « content/renderer/bluetooth/bluetooth_dispatcher.h ('k') | content/renderer/bluetooth/bluetooth_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698