Index: third_party/WebKit/Source/modules/webmidi/MIDIAccessInitializer.cpp |
diff --git a/third_party/WebKit/Source/modules/webmidi/MIDIAccessInitializer.cpp b/third_party/WebKit/Source/modules/webmidi/MIDIAccessInitializer.cpp |
index c670d6d1cd4446b3146c337d280a20d6e3d94a51..14423689883acd91daa9400070db6eaba7de55d2 100644 |
--- a/third_party/WebKit/Source/modules/webmidi/MIDIAccessInitializer.cpp |
+++ b/third_party/WebKit/Source/modules/webmidi/MIDIAccessInitializer.cpp |
@@ -11,19 +11,19 @@ |
#include "core/dom/ExceptionCode.h" |
#include "core/frame/LocalFrame.h" |
#include "core/frame/Navigator.h" |
+#include "modules/permissions/PermissionUtils.h" |
#include "modules/webmidi/MIDIAccess.h" |
#include "modules/webmidi/MIDIOptions.h" |
#include "modules/webmidi/MIDIPort.h" |
#include "platform/UserGestureIndicator.h" |
#include "platform/mojo/MojoHelper.h" |
#include "public/platform/InterfaceProvider.h" |
-#include "third_party/WebKit/public/platform/modules/permissions/permission.mojom-blink.h" |
+#include "public/platform/modules/permissions/permission.mojom-blink.h" |
namespace blink { |
using PortState = WebMIDIAccessorClient::MIDIPortState; |
-using mojom::blink::PermissionName; |
using mojom::blink::PermissionStatus; |
MIDIAccessInitializer::MIDIAccessInitializer(ScriptState* scriptState, const MIDIOptions& options) |
@@ -43,21 +43,9 @@ ScriptPromise MIDIAccessInitializer::start() |
ScriptPromise promise = this->promise(); |
m_accessor = MIDIAccessor::create(this); |
- Document* document = toDocument(getExecutionContext()); |
- DCHECK(document); |
- |
- document->frame()->interfaceProvider()->getInterface(mojo::GetProxy(&m_permissionService)); |
- |
- bool requestSysEx = m_options.hasSysex() && m_options.sysex(); |
- Vector<PermissionName> permissions; |
- permissions.resize(requestSysEx ? 2 : 1); |
- |
- permissions[0] = PermissionName::MIDI; |
- if (requestSysEx) |
- permissions[1] = PermissionName::MIDI_SYSEX; |
- |
- m_permissionService->RequestPermissions( |
- permissions, |
+ connectToPermissionService(getExecutionContext(), mojo::GetProxy(&m_permissionService)); |
+ m_permissionService->RequestPermission( |
+ createMidiPermissionDescriptor(m_options.hasSysex() && m_options.sysex()), |
getExecutionContext()->getSecurityOrigin(), |
UserGestureIndicator::processingUserGesture(), |
convertToBaseCallback(WTF::bind(&MIDIAccessInitializer::onPermissionsUpdated, wrapPersistent(this)))); |
@@ -123,17 +111,10 @@ ExecutionContext* MIDIAccessInitializer::getExecutionContext() const |
return getScriptState()->getExecutionContext(); |
} |
-void MIDIAccessInitializer::onPermissionsUpdated(const Vector<PermissionStatus>& statusArray) |
+void MIDIAccessInitializer::onPermissionsUpdated(PermissionStatus status) |
{ |
- bool allowed = true; |
- for (const auto status : statusArray) { |
- if (status != PermissionStatus::GRANTED) { |
- allowed = false; |
- break; |
- } |
- } |
m_permissionService.reset(); |
- if (allowed) |
+ if (status == PermissionStatus::GRANTED) |
m_accessor->startSession(); |
else |
reject(DOMException::create(SecurityError)); |