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

Side by Side Diff: third_party/WebKit/Source/web/SuspendableScriptExecutor.h

Issue 2454433002: [Extensions + Blink] Account for user gesture in v8 function calls (Closed)
Patch Set: script state changes Created 4 years, 1 month 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 SuspendableScriptExecutor_h 5 #ifndef SuspendableScriptExecutor_h
6 #define SuspendableScriptExecutor_h 6 #define SuspendableScriptExecutor_h
7 7
8 #include "core/frame/SuspendableTimer.h" 8 #include "core/frame/SuspendableTimer.h"
9 #include "platform/heap/Handle.h" 9 #include "platform/heap/Handle.h"
10 #include "platform/heap/SelfKeepAlive.h" 10 #include "platform/heap/SelfKeepAlive.h"
11 #include "wtf/Vector.h" 11 #include "wtf/Vector.h"
12 #include <v8.h> 12 #include <v8.h>
13 13
14 namespace blink { 14 namespace blink {
15 15
16 class LocalFrame; 16 class LocalFrame;
17 class ScriptSourceCode; 17 class ScriptSourceCode;
18 class ScriptState;
18 class WebScriptExecutionCallback; 19 class WebScriptExecutionCallback;
19 20
20 class SuspendableScriptExecutor final 21 class SuspendableScriptExecutor final
21 : public GarbageCollectedFinalized<SuspendableScriptExecutor>, 22 : public GarbageCollectedFinalized<SuspendableScriptExecutor>,
22 public SuspendableTimer { 23 public SuspendableTimer {
23 USING_GARBAGE_COLLECTED_MIXIN(SuspendableScriptExecutor); 24 USING_GARBAGE_COLLECTED_MIXIN(SuspendableScriptExecutor);
24 25
25 public: 26 public:
26 static void createAndRun(LocalFrame*, 27 static void createAndRun(LocalFrame*,
27 int worldID, 28 int worldID,
(...skipping 13 matching lines...) Expand all
41 42
42 void contextDestroyed() override; 43 void contextDestroyed() override;
43 44
44 DECLARE_VIRTUAL_TRACE(); 45 DECLARE_VIRTUAL_TRACE();
45 46
46 class Executor : public GarbageCollectedFinalized<Executor> { 47 class Executor : public GarbageCollectedFinalized<Executor> {
47 public: 48 public:
48 virtual ~Executor() {} 49 virtual ~Executor() {}
49 50
50 virtual Vector<v8::Local<v8::Value>> execute(LocalFrame*) = 0; 51 virtual Vector<v8::Local<v8::Value>> execute(LocalFrame*) = 0;
52 virtual ScriptState* getScriptState(LocalFrame*) = 0;
51 53
52 DEFINE_INLINE_VIRTUAL_TRACE(){}; 54 DEFINE_INLINE_VIRTUAL_TRACE(){};
53 }; 55 };
54 56
55 private: 57 private:
56 SuspendableScriptExecutor(LocalFrame*, 58 SuspendableScriptExecutor(LocalFrame*,
57 WebScriptExecutionCallback*, 59 WebScriptExecutionCallback*,
58 Executor*); 60 Executor*);
59 61
60 void fired() override; 62 void fired() override;
61 63
62 void run(); 64 void run();
63 void executeAndDestroySelf(); 65 void executeAndDestroySelf();
64 void dispose(); 66 void dispose();
65 67
66 Member<LocalFrame> m_frame; 68 Member<LocalFrame> m_frame;
dcheng 2016/10/29 04:36:21 Sorry I missed this in the original review, but le
Devlin 2016/10/31 17:00:47 TODO added; will fix in a followup.
67 WebScriptExecutionCallback* m_callback; 69 WebScriptExecutionCallback* m_callback;
68 70
69 SelfKeepAlive<SuspendableScriptExecutor> m_keepAlive; 71 SelfKeepAlive<SuspendableScriptExecutor> m_keepAlive;
70 72
71 Member<Executor> m_executor; 73 Member<Executor> m_executor;
72 }; 74 };
73 75
74 } // namespace blink 76 } // namespace blink
75 77
76 #endif // SuspendableScriptExecutor_h 78 #endif // SuspendableScriptExecutor_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698