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"; |
} |