Bug 1590748 - Setup result principal URI on the content process LoadInfo as well as the parent process one, since ServiceWorkers depends on it there. r=nika

Differential Revision: https://phabricator.services.mozilla.com/D50372
This commit is contained in:
Matt Woodrow
2019-10-24 00:46:37 +00:00
parent 75fb88c013
commit 165dde9a8d

View File

@@ -9862,17 +9862,6 @@ static bool HasHttpScheme(nsIURI* aURI) {
MOZ_ASSERT(NS_SUCCEEDED(aRv));
}
nsCOMPtr<nsIURI> rpURI;
aLoadInfo->GetResultPrincipalURI(getter_AddRefs(rpURI));
Maybe<nsCOMPtr<nsIURI>> originalResultPrincipalURI;
aLoadState->GetMaybeResultPrincipalURI(originalResultPrincipalURI);
if (originalResultPrincipalURI &&
(!aLoadState->KeepResultPrincipalURIIfSet() || !rpURI)) {
// Unconditionally override, we want the replay to be equal to what has
// been captured.
aLoadInfo->SetResultPrincipalURI(originalResultPrincipalURI.ref());
}
if (httpChannel) {
if (aLoadState->HeadersStream()) {
aRv = AddHeadersToChannel(aLoadState->HeadersStream(), httpChannel);
@@ -9918,6 +9907,20 @@ static bool HasHttpScheme(nsIURI* aURI) {
NS_LITERAL_STRING("docshell.internalReferrer"), referrer);
}
nsCOMPtr<nsILoadInfo> loadInfo;
MOZ_ALWAYS_SUCCEEDS(aChannel->GetLoadInfo(getter_AddRefs(loadInfo)));
nsCOMPtr<nsIURI> rpURI;
loadInfo->GetResultPrincipalURI(getter_AddRefs(rpURI));
Maybe<nsCOMPtr<nsIURI>> originalResultPrincipalURI;
aLoadState->GetMaybeResultPrincipalURI(originalResultPrincipalURI);
if (originalResultPrincipalURI &&
(!aLoadState->KeepResultPrincipalURIIfSet() || !rpURI)) {
// Unconditionally override, we want the replay to be equal to what has
// been captured.
loadInfo->SetResultPrincipalURI(originalResultPrincipalURI.ref());
}
nsresult rv = NS_OK;
if (aLoadState->OriginalURI()) {
aChannel->SetOriginalURI(aLoadState->OriginalURI());
@@ -10034,9 +10037,6 @@ static bool HasHttpScheme(nsIURI* aURI) {
nsCOMPtr<nsIContentSecurityPolicy> csp = aLoadState->Csp();
if (csp) {
nsCOMPtr<nsILoadInfo> loadInfo;
MOZ_ALWAYS_SUCCEEDS(aChannel->GetLoadInfo(getter_AddRefs(loadInfo)));
// Navigational requests that are same origin need to be upgraded in case
// upgrade-insecure-requests is present.
bool upgradeInsecureRequests = false;