Index: Source/modules/permissions/PermissionStatus.cpp |
diff --git a/Source/modules/permissions/PermissionStatus.cpp b/Source/modules/permissions/PermissionStatus.cpp |
index 18765425e9d548b7a12ac6ff85ea1fbc2a02fba4..863fae142c40ea8614b3732fd2e4c66cc848d3a9 100644 |
--- a/Source/modules/permissions/PermissionStatus.cpp |
+++ b/Source/modules/permissions/PermissionStatus.cpp |
@@ -5,18 +5,29 @@ |
#include "config.h" |
#include "modules/permissions/PermissionStatus.h" |
+#include "bindings/core/v8/ScriptPromiseResolver.h" |
#include "modules/EventTargetModulesNames.h" |
namespace blink { |
// static |
-PermissionStatus* PermissionStatus::create(ExecutionContext* executionContext) |
+PermissionStatus* PermissionStatus::take(ScriptPromiseResolver* resolver, WebPermissionStatus* status, WebPermissionType type) |
{ |
- return new PermissionStatus(executionContext); |
+ PermissionStatus* permissionStatus = new PermissionStatus(resolver->executionContext(), type, *status); |
+ delete status; |
+ return permissionStatus; |
} |
-PermissionStatus::PermissionStatus(ExecutionContext* executionContext) |
+// static |
+void PermissionStatus::dispose(WebPermissionStatus* status) |
+{ |
+ delete status; |
+} |
+ |
+PermissionStatus::PermissionStatus(ExecutionContext* executionContext, WebPermissionType permissionType, WebPermissionStatus permissionStatus) |
: ContextLifecycleObserver(executionContext) |
+ , m_type(permissionType) |
+ , m_status(permissionStatus) |
{ |
} |
@@ -42,8 +53,17 @@ DEFINE_TRACE(PermissionStatus) |
String PermissionStatus::status() const |
{ |
- // FIXME: implement. |
- return String(); |
+ switch (m_status) { |
+ case WebPermissionStatusGranted: |
+ return "granted"; |
+ case WebPermissionStatusDenied: |
+ return "denied"; |
+ case WebPermissionStatusPrompt: |
+ return "prompt"; |
+ } |
+ |
+ ASSERT_NOT_REACHED(); |
+ return "denied"; |
} |
} // namespace blink |