Fix dcheck on blink::ScriptPromiseResolverBase::Dispose()

This commit is contained in:
Carmelo Messina
2024-05-22 16:33:55 +02:00
parent a238056593
commit decf2121e6
@@ -12,11 +12,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/loader/keep_alive_url_loader.cc | 33 +++++++++++++++++--
.../browser/loader/keep_alive_url_loader.h | 3 --
.../Keep-disabled-FetchLaterAPI.inc | 2 ++
.../renderer/core/fetch/fetch_manager.cc | 8 +++--
.../renderer/core/fetch/fetch_manager.cc | 12 +++++--
.../loader/child_url_loader_factory_bundle.cc | 14 ++++----
.../platform/loader/fetch/resource_fetcher.cc | 2 +-
.../platform/runtime_enabled_features.json5 | 5 ++-
7 files changed, 50 insertions(+), 17 deletions(-)
7 files changed, 54 insertions(+), 17 deletions(-)
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc
diff --git a/content/browser/loader/keep_alive_url_loader.cc b/content/browser/loader/keep_alive_url_loader.cc
@@ -99,24 +99,28 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_party/blink/renderer/core/fetch/fetch_manager.cc
--- a/third_party/blink/renderer/core/fetch/fetch_manager.cc
+++ b/third_party/blink/renderer/core/fetch/fetch_manager.cc
@@ -1176,7 +1176,9 @@ void FetchManager::Loader::Failed(
@@ -1176,7 +1176,11 @@ void FetchManager::Loader::Failed(
if (resolver_) {
ScriptState::Scope scope(GetScriptState());
if (dom_exception) {
- resolver_->Reject(dom_exception);
+ if (!GetFetchRequestData()->Keepalive()) {
+ resolver_->Reject(dom_exception);
+ } else {
+ resolver_->Detach();
+ }
} else {
v8::Local<v8::Value> value =
exception_.Get(GetScriptState()->GetIsolate());
@@ -1196,7 +1198,9 @@ void FetchManager::Loader::Failed(
@@ -1196,7 +1200,11 @@ void FetchManager::Loader::Failed(
V8String(GetScriptState()->GetIsolate(),
IdentifiersFactory::IdFromToken(*issue_id)));
}
- resolver_->Reject(value);
+ if (!GetFetchRequestData()->Keepalive()) {
+ resolver_->Reject(value);;
+ } else {
+ resolver_->Detach();
+ }
SendHistogram(FetchManagerLoaderCheckPoint::kFailed);
LogIfKeepalive("Failed");