Bug 1965628 - Align with Chrome for handling ORB blocked JS. r=sefeng,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D249559
This commit is contained in:
committed by
afarre@mozilla.com
parent
6951827636
commit
8065bd80ce
@@ -559,8 +559,7 @@ nsresult OpaqueResponseBlocker::ValidateJavaScript(HttpBaseChannel* aChannel,
|
||||
self->AllowResponse();
|
||||
break;
|
||||
case OpaqueResponse::Block:
|
||||
// We'll filter the data out later
|
||||
self->AllowResponse();
|
||||
self->BlockResponse(channel, NS_ERROR_FAILURE);
|
||||
break;
|
||||
default:
|
||||
MOZ_ASSERT_UNREACHABLE(
|
||||
@@ -620,19 +619,11 @@ void OpaqueResponseBlocker::FilterResponse() {
|
||||
|
||||
void OpaqueResponseBlocker::ResolveAndProcessData(
|
||||
HttpBaseChannel* aChannel, bool aAllowed, Maybe<ipc::Shmem>& aSharedData) {
|
||||
if (!aAllowed) {
|
||||
// OpaqueResponseFilter allows us to filter the headers
|
||||
mNext = new OpaqueResponseFilter(mNext);
|
||||
}
|
||||
|
||||
nsresult rv = OnStartRequest(aChannel);
|
||||
|
||||
if (!aAllowed || NS_FAILED(rv)) {
|
||||
MOZ_ASSERT_IF(!aAllowed, mState == State::Allowed);
|
||||
// No need to call OnDataAvailable because
|
||||
// 1. The input stream is consumed by
|
||||
// OpaqueResponseBlocker::OnDataAvailable already
|
||||
// 2. We don't want to pass any data over
|
||||
MOZ_ASSERT_IF(!aAllowed, mState == State::Blocked);
|
||||
// We decided to block, so nothing more to do.
|
||||
MaybeRunOnStopRequest(aChannel);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3,33 +3,18 @@
|
||||
[ORB should block opaque font/ttf: fetch(..., {mode: "no-cors"})]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque font/ttf: <script src=...>]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque text/plain: fetch(..., {mode: "no-cors"})]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque text/plain: <script src=...>]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (non-empty): fetch(..., {mode: "no-cors"})]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (non-empty): <script src=...>]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (empty): fetch(..., {mode: "no-cors"})]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json (empty): <script src=...>]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json which contains non ascii characters: fetch(..., {mode: "no-cors"})]
|
||||
expected: FAIL
|
||||
|
||||
[ORB should block opaque application/json which contains non ascii characters: <script src=...>]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[known-mime-type.sub.any.worker.html]
|
||||
prefs: [browser.opaqueResponseBlocking:true, browser.opaqueResponseBlocking.filterFetchResponse:2]
|
||||
|
||||
Reference in New Issue
Block a user