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..7248346ff8a929db657ced9fb593e9eab6c08b5f 100644 |
--- a/third_party/WebKit/Source/modules/permissions/PermissionStatus.cpp |
+++ b/third_party/WebKit/Source/modules/permissions/PermissionStatus.cpp |
@@ -8,33 +8,31 @@ |
#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 "public/platform/Platform.h" |
-#include "public/platform/modules/permissions/WebPermissionClient.h" |
+#include "wtf/Functional.h" |
namespace blink { |
// static |
-PermissionStatus* PermissionStatus::take(ScriptPromiseResolver* resolver, WebPermissionStatus status, WebPermissionType type) |
+PermissionStatus* PermissionStatus::take(ScriptPromiseResolver* resolver, MojoPermissionStatus status, MojoPermissionName 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, MojoPermissionName 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, MojoPermissionName name) |
: ActiveScriptWrappable(this) |
, ActiveDOMObject(executionContext) |
, m_status(status) |
- , m_type(type) |
- , m_listening(false) |
+ , m_name(name) |
{ |
} |
@@ -53,19 +51,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, convertToBaseCallback(WTF::bind(&PermissionStatus::permissionChanged, wrapWeakPersistent(this)))); |
} |
bool PermissionStatus::hasPendingActivity() const |
{ |
- return m_listening; |
+ return m_service; |
} |
void PermissionStatus::resume() |
@@ -85,37 +83,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, convertToBaseCallback(WTF::bind(&PermissionStatus::permissionChanged, wrapWeakPersistent(this)))); |
} |
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"; |
} |