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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/RejectedPromises.h

Issue 1381693002: Don't report promise rejection events during the microtask checkpoint (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: layout tests Created 5 years, 2 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 RejectedPromises_h 5 #ifndef RejectedPromises_h
6 #define RejectedPromises_h 6 #define RejectedPromises_h
7 7
8 #include "platform/heap/Handle.h" 8 #include "platform/heap/Handle.h"
9 9
10 namespace v8 { 10 namespace v8 {
11 class PromiseRejectMessage; 11 class PromiseRejectMessage;
12 }; 12 };
13 13
14 namespace blink { 14 namespace blink {
15 15
16 class ScriptCallStack; 16 class ScriptCallStack;
17 class ScriptState; 17 class ScriptState;
18 18
19 class RejectedPromises final : public NoBaseWillBeGarbageCollected<RejectedPromi ses> { 19 class RejectedPromises final : public RefCountedWillBeGarbageCollected<RejectedP romises> {
haraken 2015/10/02 07:59:47 Why do you need to change OwnPtr to RefPtr?
jochen (gone - plz use gerrit) 2015/10/02 08:02:04 So the class doesn't die while a task is on the me
20 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(RejectedPromises); 20 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(RejectedPromises);
21 DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(RejectedPromises); 21 DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(RejectedPromises);
22 public: 22 public:
23 static PassOwnPtrWillBeRawPtr<RejectedPromises> create() 23 static PassRefPtrWillBeRawPtr<RejectedPromises> create()
24 { 24 {
25 return adoptPtrWillBeNoop(new RejectedPromises); 25 return adoptRefWillBeNoop(new RejectedPromises);
26 } 26 }
27 27
28 RejectedPromises(); 28 RejectedPromises();
29 void dispose(); 29 void dispose();
30 DECLARE_TRACE(); 30 DECLARE_TRACE();
31 31
32 void rejectedWithNoHandler(ScriptState*, v8::PromiseRejectMessage, const Str ing& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack>); 32 void rejectedWithNoHandler(ScriptState*, v8::PromiseRejectMessage, const Str ing& errorMessage, const String& resourceName, int scriptId, int lineNumber, int columnNumber, PassRefPtrWillBeRawPtr<ScriptCallStack>);
33 void handlerAdded(v8::PromiseRejectMessage); 33 void handlerAdded(v8::PromiseRejectMessage);
34 34
35 void processQueue(); 35 void processQueue();
36 36
37 private: 37 private:
38 class Message; 38 class Message;
39 39
40 void processQueueNow(PassOwnPtrWillBeRawPtr<WillBeHeapDeque<OwnPtrWillBeMemb er<Message>>>);
41 void revokeNow(PassOwnPtrWillBeRawPtr<Message>);
42
40 WillBeHeapDeque<OwnPtrWillBeMember<Message>> m_queue; 43 WillBeHeapDeque<OwnPtrWillBeMember<Message>> m_queue;
41 WillBeHeapVector<OwnPtrWillBeMember<Message>> m_reportedAsErrors; 44 WillBeHeapVector<OwnPtrWillBeMember<Message>> m_reportedAsErrors;
42 }; 45 };
43 46
44 } // namespace blink 47 } // namespace blink
45 48
46 #endif // RejectedPromises_h 49 #endif // RejectedPromises_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698