Chromium Code Reviews| Index: third_party/WebKit/Source/modules/permissions/PermissionStatus.cpp |
| diff --git a/third_party/WebKit/Source/modules/permissions/PermissionStatus.cpp b/third_party/WebKit/Source/modules/permissions/PermissionStatus.cpp |
| index 3730575bbe0b37ec93e09cf5adfb83fe68a517a4..88e1013a0ce32a0e748c4e85f460d64159ee4f11 100644 |
| --- a/third_party/WebKit/Source/modules/permissions/PermissionStatus.cpp |
| +++ b/third_party/WebKit/Source/modules/permissions/PermissionStatus.cpp |
| @@ -8,33 +8,34 @@ |
| #include "core/dom/Document.h" |
| #include "core/events/Event.h" |
| #include "modules/EventTargetModulesNames.h" |
| -#include "modules/permissions/PermissionController.h" |
| #include "modules/permissions/Permissions.h" |
| +#include "platform/mojo/MojoHelper.h" |
| #include "public/platform/Platform.h" |
| -#include "public/platform/modules/permissions/WebPermissionClient.h" |
| namespace blink { |
| +using mojom::blink::PermissionName; |
|
esprehn
2016/07/19 04:00:05
MojoPermissionName ? it's weird to alias the two t
Reilly Grant (use Gerrit)
2016/07/19 20:10:28
I needed to use MojoPermissionStatus to avoid a co
|
| +using MojoPermissionStatus = mojom::blink::PermissionStatus; |
| + |
| // static |
| -PermissionStatus* PermissionStatus::take(ScriptPromiseResolver* resolver, WebPermissionStatus status, WebPermissionType type) |
| +PermissionStatus* PermissionStatus::take(ScriptPromiseResolver* resolver, MojoPermissionStatus status, PermissionName name) |
| { |
| - return PermissionStatus::createAndListen(resolver->getExecutionContext(), status, type); |
| + return PermissionStatus::createAndListen(resolver->getExecutionContext(), status, name); |
| } |
| -PermissionStatus* PermissionStatus::createAndListen(ExecutionContext* executionContext, WebPermissionStatus status, WebPermissionType type) |
| +PermissionStatus* PermissionStatus::createAndListen(ExecutionContext* executionContext, MojoPermissionStatus status, PermissionName name) |
| { |
| - PermissionStatus* permissionStatus = new PermissionStatus(executionContext, status, type); |
| + PermissionStatus* permissionStatus = new PermissionStatus(executionContext, status, name); |
| permissionStatus->suspendIfNeeded(); |
| permissionStatus->startListening(); |
| return permissionStatus; |
| } |
| -PermissionStatus::PermissionStatus(ExecutionContext* executionContext, WebPermissionStatus status, WebPermissionType type) |
| +PermissionStatus::PermissionStatus(ExecutionContext* executionContext, MojoPermissionStatus status, PermissionName name) |
| : ActiveScriptWrappable(this) |
| , ActiveDOMObject(executionContext) |
| , m_status(status) |
| - , m_type(type) |
| - , m_listening(false) |
| + , m_name(name) |
| { |
| } |
| @@ -53,19 +54,19 @@ ExecutionContext* PermissionStatus::getExecutionContext() const |
| return ActiveDOMObject::getExecutionContext(); |
| } |
| -void PermissionStatus::permissionChanged(WebPermissionType type, WebPermissionStatus status) |
| +void PermissionStatus::permissionChanged(MojoPermissionStatus status) |
| { |
| - ASSERT(m_type == type); |
| if (m_status == status) |
| return; |
| m_status = status; |
| dispatchEvent(Event::create(EventTypeNames::change)); |
| + m_service->GetNextPermissionChange(m_name, getExecutionContext()->getSecurityOrigin()->toString(), m_status, createBaseCallback(bind(&PermissionStatus::permissionChanged, wrapWeakPersistent(this)))); |
|
esprehn
2016/07/19 04:00:05
createBaseCallback is gone, you can use WTF::bind
Reilly Grant (use Gerrit)
2016/07/19 20:10:28
Someone just renamed it to convertToBaseCallback a
|
| } |
| bool PermissionStatus::hasPendingActivity() const |
| { |
| - return m_listening; |
| + return m_service; |
| } |
| void PermissionStatus::resume() |
| @@ -85,37 +86,24 @@ void PermissionStatus::stop() |
| void PermissionStatus::startListening() |
| { |
| - ASSERT(!m_listening); |
| - |
| - WebPermissionClient* client = Permissions::getClient(getExecutionContext()); |
| - if (!client) |
| - return; |
| - m_listening = true; |
| - client->startListening(m_type, KURL(KURL(), getExecutionContext()->getSecurityOrigin()->toString()), this); |
| + DCHECK(!m_service); |
| + Permissions::connectToService(getExecutionContext(), mojo::GetProxy(&m_service)); |
| + m_service->GetNextPermissionChange(m_name, getExecutionContext()->getSecurityOrigin()->toString(), m_status, createBaseCallback(bind(&PermissionStatus::permissionChanged, wrapWeakPersistent(this)))); |
|
esprehn
2016/07/19 04:00:05
ditto
|
| } |
| void PermissionStatus::stopListening() |
| { |
| - if (!m_listening) |
| - return; |
| - |
| - ASSERT(getExecutionContext()); |
| - |
| - m_listening = false; |
| - WebPermissionClient* client = Permissions::getClient(getExecutionContext()); |
| - if (!client) |
| - return; |
| - client->stopListening(this); |
| + m_service.reset(); |
| } |
| String PermissionStatus::state() const |
| { |
| switch (m_status) { |
| - case WebPermissionStatusGranted: |
| + case MojoPermissionStatus::GRANTED: |
| return "granted"; |
| - case WebPermissionStatusDenied: |
| + case MojoPermissionStatus::DENIED: |
| return "denied"; |
| - case WebPermissionStatusPrompt: |
| + case MojoPermissionStatus::ASK: |
| return "prompt"; |
| } |