Index: third_party/WebKit/Source/modules/permissions/PermissionUtils.cpp |
diff --git a/third_party/WebKit/Source/modules/permissions/PermissionUtils.cpp b/third_party/WebKit/Source/modules/permissions/PermissionUtils.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ee29c2373f6ad53f5cbdce0ca331d81795539ce8 |
--- /dev/null |
+++ b/third_party/WebKit/Source/modules/permissions/PermissionUtils.cpp |
@@ -0,0 +1,52 @@ |
+// Copyright 2016 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 "modules/permissions/PermissionUtils.h" |
+ |
+#include "core/dom/Document.h" |
+#include "core/dom/ExecutionContext.h" |
+#include "core/frame/LocalFrame.h" |
+#include "public/platform/InterfaceProvider.h" |
+#include "public/platform/Platform.h" |
+ |
+namespace blink { |
+ |
+using mojom::blink::PermissionDescriptor; |
+using mojom::blink::PermissionDescriptorPtr; |
+using mojom::blink::PermissionName; |
+ |
+bool connectToPermissionService( |
+ ExecutionContext* executionContext, |
+ mojom::blink::PermissionServiceRequest request) { |
+ InterfaceProvider* interfaceProvider = nullptr; |
+ if (executionContext->isDocument()) { |
+ Document* document = toDocument(executionContext); |
+ if (document->frame()) |
+ interfaceProvider = document->frame()->interfaceProvider(); |
+ } else { |
+ interfaceProvider = Platform::current()->interfaceProvider(); |
+ } |
+ |
+ if (interfaceProvider) |
+ interfaceProvider->getInterface(std::move(request)); |
+ return interfaceProvider; |
+} |
+ |
+PermissionDescriptorPtr createPermissionDescriptor(PermissionName name) { |
+ auto descriptor = PermissionDescriptor::New(); |
+ descriptor->name = name; |
+ return descriptor; |
+} |
+ |
+PermissionDescriptorPtr createMidiPermissionDescriptor(bool sysex) { |
+ auto descriptor = |
+ createPermissionDescriptor(mojom::blink::PermissionName::MIDI); |
+ auto midiExtension = mojom::blink::MidiPermissionDescriptor::New(); |
+ midiExtension->sysex = sysex; |
+ descriptor->extension = mojom::blink::PermissionDescriptorExtension::New(); |
+ descriptor->extension->set_midi(std::move(midiExtension)); |
+ return descriptor; |
+} |
+ |
+} // namespace blink |