Chromium Code Reviews| Index: Source/modules/permissions/PermissionStatus.h |
| diff --git a/Source/modules/permissions/PermissionStatus.h b/Source/modules/permissions/PermissionStatus.h |
| index 74d0af3cd0a1995cf0862f7dd161e3b731ee0703..956c5ad5ab018a8dc374b135be52eee7c56eb522 100644 |
| --- a/Source/modules/permissions/PermissionStatus.h |
| +++ b/Source/modules/permissions/PermissionStatus.h |
| @@ -5,9 +5,10 @@ |
| #ifndef PermissionStatus_h |
| #define PermissionStatus_h |
| -#include "core/dom/ContextLifecycleObserver.h" |
| +#include "core/dom/ActiveDOMObject.h" |
| #include "core/events/EventTarget.h" |
| #include "platform/heap/Handle.h" |
| +#include "public/platform/modules/permissions/WebPermissionObserver.h" |
| #include "public/platform/modules/permissions/WebPermissionStatus.h" |
| #include "public/platform/modules/permissions/WebPermissionType.h" |
| #include "wtf/text/AtomicString.h" |
| @@ -22,7 +23,8 @@ class ScriptPromiseResolver; |
| // ExecutionContext. |
| class PermissionStatus final |
| : public RefCountedGarbageCollectedEventTargetWithInlineData<PermissionStatus> |
| - , public ContextLifecycleObserver { |
|
Miguel Garcia
2015/04/01 17:41:51
why this change?
mlamouri (slow - plz ping)
2015/04/01 17:53:10
ActiveDOMObject are objects that shouldn't be dele
|
| + , public ActiveDOMObject |
| + , public WebPermissionObserver { |
| DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(RefCountedGarbageCollected<PermissionStatus>); |
| WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PermissionStatus); |
| DEFINE_WRAPPERTYPEINFO(); |
| @@ -30,21 +32,37 @@ public: |
| static PermissionStatus* take(ScriptPromiseResolver*, WebPermissionStatus*, WebPermissionType); |
| static void dispose(WebPermissionStatus*); |
| - PermissionStatus(ExecutionContext*, WebPermissionStatus); |
| + static PermissionStatus* create(ExecutionContext*, WebPermissionStatus, WebPermissionType); |
| ~PermissionStatus() override; |
| // EventTarget implementation. |
| const AtomicString& interfaceName() const override; |
| ExecutionContext* executionContext() const override; |
| - DECLARE_VIRTUAL_TRACE(); |
| + // WebPermissionObserver implementation. |
| + void permissionChanged(WebPermissionType, WebPermissionStatus) override; |
| + |
| + // ActiveDOMObject implementation. |
| + bool hasPendingActivity() const override; |
| + void suspend() override; |
| + void resume() override; |
| + void stop() override; |
| String status() const; |
| DEFINE_ATTRIBUTE_EVENT_LISTENER(change); |
| + DECLARE_VIRTUAL_TRACE(); |
| + |
| private: |
| + PermissionStatus(ExecutionContext*, WebPermissionStatus, WebPermissionType); |
| + |
| + void startListening(); |
| + void stopListening(); |
| + |
| WebPermissionStatus m_status; |
| + WebPermissionType m_type; |
| + bool m_listening; |
| }; |
| } // namespace blink |