Chromium Code Reviews| 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..3fce84eb0910fde0435e204445222b44695b1ce4 |
| --- /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(); |
|
haraken
2016/09/09 00:49:02
Is there any reason you don't always use Platform:
mlamouri (slow - plz ping)
2016/09/13 09:57:50
The service running on the Frame is able to show a
|
| + } |
| + |
| + 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 |