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

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

Issue 2817533003: Replace ASSERT, RELEASE_ASSERT, and ASSERT_NOT_REACHED in bindings (Closed)
Patch Set: fixed dcheck build error Created 3 years, 8 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 #include "bindings/core/v8/RejectedPromises.h" 5 #include "bindings/core/v8/RejectedPromises.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include "bindings/core/v8/ScopedPersistent.h" 8 #include "bindings/core/v8/ScopedPersistent.h"
9 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "bindings/core/v8/ScriptValue.h" 10 #include "bindings/core/v8/ScriptValue.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 if (!execution_context) 56 if (!execution_context)
57 return; 57 return;
58 58
59 ScriptState::Scope scope(script_state_); 59 ScriptState::Scope scope(script_state_);
60 v8::Local<v8::Value> value = promise_.NewLocal(script_state_->GetIsolate()); 60 v8::Local<v8::Value> value = promise_.NewLocal(script_state_->GetIsolate());
61 v8::Local<v8::Value> reason = 61 v8::Local<v8::Value> reason =
62 exception_.NewLocal(script_state_->GetIsolate()); 62 exception_.NewLocal(script_state_->GetIsolate());
63 // Either collected or https://crbug.com/450330 63 // Either collected or https://crbug.com/450330
64 if (value.IsEmpty() || !value->IsPromise()) 64 if (value.IsEmpty() || !value->IsPromise())
65 return; 65 return;
66 ASSERT(!HasHandler()); 66 DCHECK(!HasHandler());
67 67
68 EventTarget* target = execution_context->ErrorEventTarget(); 68 EventTarget* target = execution_context->ErrorEventTarget();
69 if (target && !execution_context->ShouldSanitizeScriptError(resource_name_, 69 if (target && !execution_context->ShouldSanitizeScriptError(resource_name_,
70 cors_status_)) { 70 cors_status_)) {
71 PromiseRejectionEventInit init; 71 PromiseRejectionEventInit init;
72 init.setPromise(ScriptPromise(script_state_, value)); 72 init.setPromise(ScriptPromise(script_state_, value));
73 init.setReason(ScriptValue(script_state_, reason)); 73 init.setReason(ScriptValue(script_state_, reason));
74 init.setCancelable(true); 74 init.setCancelable(true);
75 PromiseRejectionEvent* event = PromiseRejectionEvent::Create( 75 PromiseRejectionEvent* event = PromiseRejectionEvent::Create(
76 script_state_, EventTypeNames::unhandledrejection, init); 76 script_state_, EventTypeNames::unhandledrejection, init);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 ThreadDebugger* debugger = 120 ThreadDebugger* debugger =
121 ThreadDebugger::From(script_state_->GetIsolate()); 121 ThreadDebugger::From(script_state_->GetIsolate());
122 if (debugger) { 122 if (debugger) {
123 debugger->PromiseRejectionRevoked(script_state_->GetContext(), 123 debugger->PromiseRejectionRevoked(script_state_->GetContext(),
124 promise_rejection_id_); 124 promise_rejection_id_);
125 } 125 }
126 } 126 }
127 } 127 }
128 128
129 void MakePromiseWeak() { 129 void MakePromiseWeak() {
130 ASSERT(!promise_.IsEmpty() && !promise_.IsWeak()); 130 DCHECK(!promise_.IsEmpty());
131 DCHECK(!promise_.IsWeak());
131 promise_.SetWeak(this, &Message::DidCollectPromise); 132 promise_.SetWeak(this, &Message::DidCollectPromise);
132 exception_.SetWeak(this, &Message::DidCollectException); 133 exception_.SetWeak(this, &Message::DidCollectException);
133 } 134 }
134 135
135 void MakePromiseStrong() { 136 void MakePromiseStrong() {
136 ASSERT(!promise_.IsEmpty() && promise_.IsWeak()); 137 DCHECK(!promise_.IsEmpty());
138 DCHECK(promise_.IsWeak());
137 promise_.ClearWeak(); 139 promise_.ClearWeak();
138 exception_.ClearWeak(); 140 exception_.ClearWeak();
139 } 141 }
140 142
141 bool HasHandler() { 143 bool HasHandler() {
142 ASSERT(!IsCollected()); 144 DCHECK(!IsCollected());
143 ScriptState::Scope scope(script_state_); 145 ScriptState::Scope scope(script_state_);
144 v8::Local<v8::Value> value = promise_.NewLocal(script_state_->GetIsolate()); 146 v8::Local<v8::Value> value = promise_.NewLocal(script_state_->GetIsolate());
145 return v8::Local<v8::Promise>::Cast(value)->HasHandler(); 147 return v8::Local<v8::Promise>::Cast(value)->HasHandler();
146 } 148 }
147 149
148 private: 150 private:
149 Message(ScriptState* script_state, 151 Message(ScriptState* script_state,
150 v8::Local<v8::Promise> promise, 152 v8::Local<v8::Promise> promise,
151 v8::Local<v8::Value> exception, 153 v8::Local<v8::Value> exception,
152 const String& error_message, 154 const String& error_message,
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 kMaxReportedHandlersPendingResolution / 10); 281 kMaxReportedHandlersPendingResolution / 10);
280 } 282 }
281 } 283 }
282 } 284 }
283 285
284 void RejectedPromises::RevokeNow(std::unique_ptr<Message> message) { 286 void RejectedPromises::RevokeNow(std::unique_ptr<Message> message) {
285 message->Revoke(); 287 message->Revoke();
286 } 288 }
287 289
288 } // namespace blink 290 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/bindings/core/v8/Iterable.h ('k') | third_party/WebKit/Source/bindings/core/v8/RetainedDOMInfo.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698