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

Side by Side Diff: third_party/WebKit/Source/modules/webusb/USB.cpp

Issue 2463453002: "Fix" remaining connection error handlers in Blink (Closed)
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "modules/webusb/USB.h" 5 #include "modules/webusb/USB.h"
6 6
7 #include "bindings/core/v8/ScriptPromise.h" 7 #include "bindings/core/v8/ScriptPromise.h"
8 #include "bindings/core/v8/ScriptPromiseResolver.h" 8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "core/dom/DOMException.h" 9 #include "core/dom/DOMException.h"
10 #include "core/dom/Document.h" 10 #include "core/dom/Document.h"
11 #include "core/dom/ExceptionCode.h" 11 #include "core/dom/ExceptionCode.h"
12 #include "core/frame/UseCounter.h" 12 #include "core/frame/UseCounter.h"
13 #include "device/usb/public/interfaces/device.mojom-blink.h" 13 #include "device/usb/public/interfaces/device.mojom-blink.h"
14 #include "modules/EventTargetModules.h" 14 #include "modules/EventTargetModules.h"
15 #include "modules/webusb/USBConnectionEvent.h" 15 #include "modules/webusb/USBConnectionEvent.h"
16 #include "modules/webusb/USBDevice.h" 16 #include "modules/webusb/USBDevice.h"
17 #include "modules/webusb/USBDeviceFilter.h" 17 #include "modules/webusb/USBDeviceFilter.h"
18 #include "modules/webusb/USBDeviceRequestOptions.h" 18 #include "modules/webusb/USBDeviceRequestOptions.h"
19 #include "platform/UserGestureIndicator.h" 19 #include "platform/UserGestureIndicator.h"
20 #include "platform/mojo/MojoHelper.h" 20 #include "platform/mojo/MojoHelper.h"
21 #include "public/platform/InterfaceProvider.h" 21 #include "public/platform/InterfaceProvider.h"
22 #include "public/platform/Platform.h"
22 #include "wtf/Functional.h" 23 #include "wtf/Functional.h"
23 24
24 namespace usb = device::usb::blink; 25 namespace usb = device::usb::blink;
25 26
26 namespace blink { 27 namespace blink {
27 namespace { 28 namespace {
28 29
29 const char kNoServiceError[] = "USB service unavailable."; 30 const char kNoServiceError[] = "USB service unavailable.";
30 31
31 usb::DeviceFilterPtr convertDeviceFilter(const USBDeviceFilter& filter) { 32 usb::DeviceFilterPtr convertDeviceFilter(const USBDeviceFilter& filter) {
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 String guid = deviceInfo->guid; 215 String guid = deviceInfo->guid;
215 USBDevice* device = m_deviceCache.get(guid); 216 USBDevice* device = m_deviceCache.get(guid);
216 if (!device) 217 if (!device)
217 device = USBDevice::create(std::move(deviceInfo), nullptr, 218 device = USBDevice::create(std::move(deviceInfo), nullptr,
218 getExecutionContext()); 219 getExecutionContext());
219 dispatchEvent(USBConnectionEvent::create(EventTypeNames::disconnect, device)); 220 dispatchEvent(USBConnectionEvent::create(EventTypeNames::disconnect, device));
220 m_deviceCache.remove(guid); 221 m_deviceCache.remove(guid);
221 } 222 }
222 223
223 void USB::onDeviceManagerConnectionError() { 224 void USB::onDeviceManagerConnectionError() {
225 if (!Platform::current()) {
226 // TODO(rockot): Clean this up once renderer shutdown sequence is fixed.
227 return;
228 }
229
224 m_deviceManager.reset(); 230 m_deviceManager.reset();
225 for (ScriptPromiseResolver* resolver : m_deviceManagerRequests) 231 for (ScriptPromiseResolver* resolver : m_deviceManagerRequests)
226 resolver->reject(DOMException::create(NotFoundError, kNoServiceError)); 232 resolver->reject(DOMException::create(NotFoundError, kNoServiceError));
227 m_deviceManagerRequests.clear(); 233 m_deviceManagerRequests.clear();
228 } 234 }
229 235
230 void USB::onChooserServiceConnectionError() { 236 void USB::onChooserServiceConnectionError() {
237 if (!Platform::current()) {
238 // TODO(rockot): Clean this up once renderer shutdown sequence is fixed.
239 return;
240 }
241
231 m_chooserService.reset(); 242 m_chooserService.reset();
232 for (ScriptPromiseResolver* resolver : m_chooserServiceRequests) 243 for (ScriptPromiseResolver* resolver : m_chooserServiceRequests)
233 resolver->reject(DOMException::create(NotFoundError, kNoServiceError)); 244 resolver->reject(DOMException::create(NotFoundError, kNoServiceError));
234 m_chooserServiceRequests.clear(); 245 m_chooserServiceRequests.clear();
235 } 246 }
236 247
237 DEFINE_TRACE(USB) { 248 DEFINE_TRACE(USB) {
238 EventTargetWithInlineData::trace(visitor); 249 EventTargetWithInlineData::trace(visitor);
239 ContextLifecycleObserver::trace(visitor); 250 ContextLifecycleObserver::trace(visitor);
240 visitor->trace(m_deviceManagerRequests); 251 visitor->trace(m_deviceManagerRequests);
241 visitor->trace(m_chooserServiceRequests); 252 visitor->trace(m_chooserServiceRequests);
242 visitor->trace(m_deviceCache); 253 visitor->trace(m_deviceCache);
243 } 254 }
244 255
245 } // namespace blink 256 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/webshare/NavigatorShare.cpp ('k') | third_party/WebKit/Source/modules/webusb/USBDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698