From 62e2fbc4e93992d9e3ee0db2d931f959e4b2692c Mon Sep 17 00:00:00 2001 From: FranklinDM Date: Sat, 11 Mar 2023 12:44:46 +0800 Subject: [PATCH] Bug 1432272 - Make Fetch API use the global's base URL instead of the entry document's base URL --- dom/fetch/Request.cpp | 6 ++++-- dom/fetch/Response.cpp | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dom/fetch/Request.cpp b/dom/fetch/Request.cpp index 7a93a81799..ab87a3215a 100644 --- a/dom/fetch/Request.cpp +++ b/dom/fetch/Request.cpp @@ -313,7 +313,8 @@ Request::Constructor(const GlobalObject& aGlobal, nsAutoString requestURL; nsCString fragment; if (NS_IsMainThread()) { - nsIDocument* doc = GetEntryDocument(); + nsCOMPtr inner(do_QueryInterface(global)); + nsIDocument* doc = inner ? inner->GetExtantDoc() : nullptr; if (doc) { GetRequestURLFromDocument(doc, input, requestURL, fragment, aRv); } else { @@ -362,7 +363,8 @@ Request::Constructor(const GlobalObject& aGlobal, } else { nsAutoString referrerURL; if (NS_IsMainThread()) { - nsIDocument* doc = GetEntryDocument(); + nsCOMPtr inner(do_QueryInterface(global)); + nsIDocument* doc = inner ? inner->GetExtantDoc() : nullptr; nsCOMPtr uri; if (doc) { uri = ParseURLFromDocument(doc, referrer, aRv); diff --git a/dom/fetch/Response.cpp b/dom/fetch/Response.cpp index 100a0204c3..42b25ae1d9 100644 --- a/dom/fetch/Response.cpp +++ b/dom/fetch/Response.cpp @@ -65,7 +65,8 @@ Response::Redirect(const GlobalObject& aGlobal, const nsAString& aUrl, if (NS_IsMainThread()) { nsCOMPtr baseURI; - nsIDocument* doc = GetEntryDocument(); + nsCOMPtr inner(do_QueryInterface(aGlobal.GetAsSupports())); + nsIDocument* doc = inner ? inner->GetExtantDoc() : nullptr; if (doc) { baseURI = doc->GetBaseURI(); }