Bug 1529248 - Clear-Site-Data header should consider executioncontexts flag only for 2xx response status, r=farre

Differential Revision: https://phabricator.services.mozilla.com/D20502

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Andrea Marchesini 2019-02-21 08:28:38 +00:00
parent a73b34cad7
commit 4586a4f350

View File

@ -179,17 +179,6 @@ void ClearSiteData::ClearDataFromChannel(nsIHttpChannel* aChannel) {
nsresult rv;
nsCOMPtr<nsIURI> uri;
uint32_t status;
rv = aChannel->GetResponseStatus(&status);
if (NS_WARN_IF(NS_FAILED(rv))) {
return;
}
// We just care about 2xx response status.
if (status < 200 || status >= 300) {
return;
}
nsIScriptSecurityManager* ssm = nsContentUtils::GetSecurityManager();
if (NS_WARN_IF(!ssm)) {
return;
@ -258,9 +247,18 @@ void ClearSiteData::ClearDataFromChannel(nsIHttpChannel* aChannel) {
}
}
// We consider eExecutionContexts only for 2xx response status.
if (flags & eExecutionContexts) {
LogOpToConsole(aChannel, uri, eExecutionContexts);
BrowsingContextsReload(holder, principal);
uint32_t status;
rv = aChannel->GetResponseStatus(&status);
if (NS_WARN_IF(NS_FAILED(rv))) {
return;
}
if (status >= 200 && status < 300) {
LogOpToConsole(aChannel, uri, eExecutionContexts);
BrowsingContextsReload(holder, principal);
}
}
}