Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: third_party/WebKit/Source/modules/permissions/PermissionStatus.h

Issue 1805843002: [v8 gc] Introduce a base class for all objects that can have pending activity (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef PermissionStatus_h 5 #ifndef PermissionStatus_h
6 #define PermissionStatus_h 6 #define PermissionStatus_h
7 7
8 #include "bindings/core/v8/ActiveScriptWrappable.h"
8 #include "core/dom/ActiveDOMObject.h" 9 #include "core/dom/ActiveDOMObject.h"
9 #include "core/events/EventTarget.h" 10 #include "core/events/EventTarget.h"
10 #include "platform/heap/Handle.h" 11 #include "platform/heap/Handle.h"
11 #include "public/platform/modules/permissions/WebPermissionObserver.h" 12 #include "public/platform/modules/permissions/WebPermissionObserver.h"
12 #include "public/platform/modules/permissions/WebPermissionStatus.h" 13 #include "public/platform/modules/permissions/WebPermissionStatus.h"
13 #include "public/platform/modules/permissions/WebPermissionType.h" 14 #include "public/platform/modules/permissions/WebPermissionType.h"
14 #include "wtf/text/AtomicString.h" 15 #include "wtf/text/AtomicString.h"
15 #include "wtf/text/WTFString.h" 16 #include "wtf/text/WTFString.h"
16 17
17 namespace blink { 18 namespace blink {
18 19
19 class ExecutionContext; 20 class ExecutionContext;
20 class ScriptPromiseResolver; 21 class ScriptPromiseResolver;
21 22
22 // Expose the status of a given WebPermissionType for the current 23 // Expose the status of a given WebPermissionType for the current
23 // ExecutionContext. 24 // ExecutionContext.
24 class PermissionStatus final 25 class PermissionStatus final
25 : public RefCountedGarbageCollectedEventTargetWithInlineData<PermissionStatu s> 26 : public RefCountedGarbageCollectedEventTargetWithInlineData<PermissionStatu s>
27 , public ActiveScriptWrappable
26 , public ActiveDOMObject 28 , public ActiveDOMObject
27 , public WebPermissionObserver { 29 , public WebPermissionObserver {
28 REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(PermissionStatus); 30 REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(PermissionStatus);
29 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PermissionStatus); 31 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PermissionStatus);
30 DEFINE_WRAPPERTYPEINFO(); 32 DEFINE_WRAPPERTYPEINFO();
31 public: 33 public:
32 static PermissionStatus* take(ScriptPromiseResolver*, WebPermissionStatus, W ebPermissionType); 34 static PermissionStatus* take(ScriptPromiseResolver*, WebPermissionStatus, W ebPermissionType);
33 35
34 static PermissionStatus* createAndListen(ExecutionContext*, WebPermissionSta tus, WebPermissionType); 36 static PermissionStatus* createAndListen(ExecutionContext*, WebPermissionSta tus, WebPermissionType);
35 ~PermissionStatus() override; 37 ~PermissionStatus() override;
36 38
37 // EventTarget implementation. 39 // EventTarget implementation.
38 const AtomicString& interfaceName() const override; 40 const AtomicString& interfaceName() const override;
39 ExecutionContext* getExecutionContext() const override; 41 ExecutionContext* getExecutionContext() const override;
40 42
41 // WebPermissionObserver implementation. 43 // WebPermissionObserver implementation.
42 void permissionChanged(WebPermissionType, WebPermissionStatus) override; 44 void permissionChanged(WebPermissionType, WebPermissionStatus) override;
43 45
46 // ActiveScriptWrappable implementation.
47 bool hasPendingActivity() const final;
48
44 // ActiveDOMObject implementation. 49 // ActiveDOMObject implementation.
45 bool hasPendingActivity() const override;
46 void suspend() override; 50 void suspend() override;
47 void resume() override; 51 void resume() override;
48 void stop() override; 52 void stop() override;
49 53
50 String state() const; 54 String state() const;
51 55
52 DEFINE_ATTRIBUTE_EVENT_LISTENER(change); 56 DEFINE_ATTRIBUTE_EVENT_LISTENER(change);
53 57
54 DECLARE_VIRTUAL_TRACE(); 58 DECLARE_VIRTUAL_TRACE();
55 59
56 private: 60 private:
57 PermissionStatus(ExecutionContext*, WebPermissionStatus, WebPermissionType); 61 PermissionStatus(ExecutionContext*, WebPermissionStatus, WebPermissionType);
58 62
59 void startListening(); 63 void startListening();
60 void stopListening(); 64 void stopListening();
61 65
62 WebPermissionStatus m_status; 66 WebPermissionStatus m_status;
63 WebPermissionType m_type; 67 WebPermissionType m_type;
64 bool m_listening; 68 bool m_listening;
65 }; 69 };
66 70
67 } // namespace blink 71 } // namespace blink
68 72
69 #endif // PermissionStatus_h 73 #endif // PermissionStatus_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698