Bug 1697494 - adding tests for Opaque Response Blocking with media range requests. r=necko-reviewers,dragana

Differential Revision: https://phabricator.services.mozilla.com/D112547
This commit is contained in:
Eden Chuang 2021-04-27 08:57:29 +00:00
Родитель 9e71b19a86
Коммит d73f39ec15
8 изменённых файлов: 50 добавлений и 1 удалений

Просмотреть файл

@ -21,6 +21,12 @@ support-files =
res.unknown
res_img_unknown.png
res.mp3
res_invalid_partial.mp3
res_invalid_partial.mp3^headers^
res_206.mp3
res_206.mp3^headers^
res_not_200or206.mp3
res_not_200or206.mp3^headers^
[browser_about_cache.js]
[browser_bug1535877.js]

Просмотреть файл

@ -24,6 +24,10 @@ const NOSNIFF_URL = `${ORIGIN2}/${DIRPATH}res_nosniff2.html`;
const NOT_OK_URL = `${ORIGIN2}/${DIRPATH}res_not_ok.html`;
const UNKNOWN_URL = `${ORIGIN2}/${DIRPATH}res.unknown`;
const IMAGE_UNKNOWN_URL = `${ORIGIN2}/${DIRPATH}res_img_unknown.png`;
const MEDIA_URL = `${ORIGIN2}/${DIRPATH}res.mp3`;
const MEDIA_206_URL = `${ORIGIN2}/${DIRPATH}res_206.mp3`;
const MEDIA_INVALID_PARTIAL_URL = `${ORIGIN2}/${DIRPATH}res_invalid_partial.mp3`;
const MEDIA_NOT_200OR206_URL = `${ORIGIN2}/${DIRPATH}res_not_200or206.mp3`;
add_task(async function() {
await SpecialPowers.pushPrefEnv({
@ -69,6 +73,26 @@ add_task(async function() {
url: IMAGE_UNKNOWN_URL,
key: "Blocked_ContentTypeBeginsWithImageOrVideoOrAudio",
},
{
url: MEDIA_URL,
key: "Allowed_SniffAsImageOrAudioOrVideo",
media: true,
},
{
url: MEDIA_206_URL,
key: "Allowed_SniffAsImageOrAudioOrVideo",
media: true,
},
{
url: MEDIA_INVALID_PARTIAL_URL,
key: "Blocked_InvaliidPartialResponse",
media: true,
},
{
url: MEDIA_NOT_200OR206_URL,
key: "Blocked_Not200Or206",
media: true,
},
];
for (let testcase of testcases) {
@ -85,7 +109,22 @@ add_task(async function() {
[testcase.url, testcase.media],
async (url, media) => {
try {
await content.window.fetch(url);
if (media) {
const audio = content.document.createElement("audio");
audio.src = url;
content.document.body.appendChild(audio);
audio.load();
await new Promise(res => {
audio.onloadedmetadata = () => {
audio.src = "";
audio.onloadedmetadata = undefined;
audio.load();
res();
};
});
} else {
await content.window.fetch(url);
}
} catch (e) {
/* Ignore result */
}

Двоичные данные
netwerk/test/browser/res_206.mp3 Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1 @@
HTTP 206

Двоичные данные
netwerk/test/browser/res_invalid_partial.mp3 Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,2 @@
HTTP 206
Content-Range: bytes 100-1024/*

Двоичные данные
netwerk/test/browser/res_not_200or206.mp3 Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1 @@
HTTP 226