Chromium Code Reviews| Index: Source/modules/webusb/USBController.cpp |
| diff --git a/Source/modules/webusb/USBController.cpp b/Source/modules/webusb/USBController.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a7376bb8a569311ebdc6737d82b7bdab12f763c9 |
| --- /dev/null |
| +++ b/Source/modules/webusb/USBController.cpp |
| @@ -0,0 +1,51 @@ |
| +// Copyright 2015 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 "config.h" |
| +#include "modules/webusb/USBController.h" |
| + |
| +#include "platform/RuntimeEnabledFeatures.h" |
| +#include "public/platform/modules/webusb/WebUSBClient.h" |
| + |
| +namespace blink { |
| + |
| +USBController::~USBController() |
| +{ |
| +} |
| + |
| +void USBController::provideTo(LocalFrame& frame, WebUSBClient* client) |
| +{ |
| + ASSERT(RuntimeEnabledFeatures::webUSBEnabled()); |
| + USBController* controller = new USBController(frame, client); |
| + WillBeHeapSupplement<LocalFrame>::provideTo(frame, supplementName(), adoptPtrWillBeNoop(controller)); |
| +} |
| + |
| +USBController* USBController::from(LocalFrame& frame) |
|
haraken
2015/07/30 11:26:52
Can we add an ASSERT to verify that the from doesn
Ken Rockot(use gerrit already)
2015/07/30 18:06:54
Done.
|
| +{ |
| + return static_cast<USBController*>(WillBeHeapSupplement<LocalFrame>::from(frame, supplementName())); |
| +} |
| + |
| +const char* USBController::supplementName() |
| +{ |
| + return "USBController"; |
| +} |
| + |
| +USBController::USBController(LocalFrame& frame, WebUSBClient* client) |
| + : LocalFrameLifecycleObserver(&frame) |
| + , m_client(client) |
| +{ |
| +} |
| + |
| +void USBController::willDetachFrameHost() |
| +{ |
| + m_client = nullptr; |
| +} |
| + |
| +DEFINE_TRACE(USBController) |
| +{ |
| + WillBeHeapSupplement<LocalFrame>::trace(visitor); |
| + LocalFrameLifecycleObserver::trace(visitor); |
| +} |
| + |
| +} // namespace blink |