зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1409895 - Make dom/media/test stop looking up CurWorkD in content. r=cpearce
MozReview-Commit-ID: 1cWf1Ytns7f --HG-- extra : rebase_source : 7b92c56851de566f77a6fc437895d2a911bb7fdf
This commit is contained in:
Родитель
76de7367bd
Коммит
6a1ec633b2
|
@ -0,0 +1,21 @@
|
|||
/* -*- Mode: javascript; indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
|
||||
|
||||
const dirSvc = Cc["@mozilla.org/file/directory_service;1"].
|
||||
getService(Ci.nsIProperties);
|
||||
|
||||
addMessageListener('media-test:getcwd', () => {
|
||||
let cwd;
|
||||
try {
|
||||
cwd = dirSvc.get("CurWorkD", Ci.nsIFile).path;
|
||||
} finally {
|
||||
sendAsyncMessage('media-test:cwd', cwd);
|
||||
}
|
||||
});
|
|
@ -459,28 +459,40 @@ var gOggTrackInfoResults = {
|
|||
}
|
||||
};
|
||||
|
||||
// Converts a path/filename to a file:// URI which we can load from disk.
|
||||
// Returns a promise that resolves to a function that converts
|
||||
// relative paths to absolute, to test loading files from file: URIs.
|
||||
// Optionally checks whether the file actually exists on disk at the location
|
||||
// we've specified.
|
||||
function fileUriToSrc(path, mustExist) {
|
||||
// android mochitest doesn't support file://
|
||||
if (manifestNavigator().appVersion.indexOf("Android") != -1 || SpecialPowers.Services.appinfo.name == "B2G")
|
||||
return path;
|
||||
function makeAbsolutePathConverter() {
|
||||
const url = SimpleTest.getTestFileURL('chromeHelper.js');
|
||||
const script = SpecialPowers.loadChromeScript(url);
|
||||
return new Promise((resolve, reject) => {
|
||||
script.addMessageListener('media-test:cwd', cwd => {
|
||||
if (!cwd) {
|
||||
ok(false, "Failed to find path to test files");
|
||||
}
|
||||
|
||||
const Ci = SpecialPowers.Ci;
|
||||
const Cc = SpecialPowers.Cc;
|
||||
const Cr = SpecialPowers.Cr;
|
||||
var dirSvc = Cc["@mozilla.org/file/directory_service;1"].
|
||||
getService(Ci.nsIProperties);
|
||||
var f = dirSvc.get("CurWorkD", Ci.nsIFile);
|
||||
var split = path.split("/");
|
||||
for(var i = 0; i < split.length; ++i) {
|
||||
f.append(split[i]);
|
||||
}
|
||||
if (mustExist && !f.exists()) {
|
||||
ok(false, "We expected '" + path + "' to exist, but it doesn't!");
|
||||
}
|
||||
return f.path;
|
||||
resolve((path, mustExist) => {
|
||||
// android mochitest doesn't support file://
|
||||
if (manifestNavigator().appVersion.indexOf("Android") != -1 || SpecialPowers.Services.appinfo.name == "B2G")
|
||||
return path;
|
||||
|
||||
const { Ci, Cc } = SpecialPowers;
|
||||
var f = Cc["@mozilla.org/file/local;1"]
|
||||
.createInstance(Ci.nsIFile);
|
||||
f.initWithPath(cwd);
|
||||
var split = path.split("/");
|
||||
for(var i = 0; i < split.length; ++i) {
|
||||
f.append(split[i]);
|
||||
}
|
||||
if (mustExist && !f.exists()) {
|
||||
ok(false, "We expected '" + path + "' to exist, but it doesn't!");
|
||||
}
|
||||
return f.path;
|
||||
});
|
||||
});
|
||||
script.sendAsyncMessage('media-test:getcwd');
|
||||
});
|
||||
}
|
||||
|
||||
// Returns true if two TimeRanges are equal, false otherwise
|
||||
|
@ -499,48 +511,50 @@ function range_equals(r1, r2) {
|
|||
// These are URIs to files that we use to check that we don't leak any state
|
||||
// or other information such that script can determine stuff about a user's
|
||||
// environment. Used by test_info_leak.
|
||||
var gInfoLeakTests = [
|
||||
{
|
||||
type: 'video/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/320x240.ogv", true),
|
||||
},{
|
||||
type: 'video/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.ogv", false),
|
||||
}, {
|
||||
type: 'audio/x-wav',
|
||||
src: fileUriToSrc("tests/dom/media/test/r11025_s16_c1.wav", true),
|
||||
}, {
|
||||
type: 'audio/x-wav',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.wav", false),
|
||||
}, {
|
||||
type: 'audio/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/bug461281.ogg", true),
|
||||
}, {
|
||||
type: 'audio/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.ogg", false),
|
||||
}, {
|
||||
type: 'video/webm',
|
||||
src: fileUriToSrc("tests/dom/media/test/seek.webm", true),
|
||||
}, {
|
||||
type: 'video/webm',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.webm", false),
|
||||
}, {
|
||||
type: 'video/ogg',
|
||||
src: 'http://localhost/404.ogv',
|
||||
}, {
|
||||
type: 'audio/x-wav',
|
||||
src: 'http://localhost/404.wav',
|
||||
}, {
|
||||
type: 'video/webm',
|
||||
src: 'http://localhost/404.webm',
|
||||
}, {
|
||||
type: 'video/ogg',
|
||||
src: 'http://example.com/tests/dom/media/test/test_info_leak.html'
|
||||
}, {
|
||||
type: 'audio/ogg',
|
||||
src: 'http://example.com/tests/dom/media/test/test_info_leak.html'
|
||||
}
|
||||
];
|
||||
function makeInfoLeakTests() {
|
||||
return makeAbsolutePathConverter().then(fileUriToSrc => [
|
||||
{
|
||||
type: 'video/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/320x240.ogv", true),
|
||||
},{
|
||||
type: 'video/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.ogv", false),
|
||||
}, {
|
||||
type: 'audio/x-wav',
|
||||
src: fileUriToSrc("tests/dom/media/test/r11025_s16_c1.wav", true),
|
||||
}, {
|
||||
type: 'audio/x-wav',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.wav", false),
|
||||
}, {
|
||||
type: 'audio/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/bug461281.ogg", true),
|
||||
}, {
|
||||
type: 'audio/ogg',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.ogg", false),
|
||||
}, {
|
||||
type: 'video/webm',
|
||||
src: fileUriToSrc("tests/dom/media/test/seek.webm", true),
|
||||
}, {
|
||||
type: 'video/webm',
|
||||
src: fileUriToSrc("tests/dom/media/test/404.webm", false),
|
||||
}, {
|
||||
type: 'video/ogg',
|
||||
src: 'http://localhost/404.ogv',
|
||||
}, {
|
||||
type: 'audio/x-wav',
|
||||
src: 'http://localhost/404.wav',
|
||||
}, {
|
||||
type: 'video/webm',
|
||||
src: 'http://localhost/404.webm',
|
||||
}, {
|
||||
type: 'video/ogg',
|
||||
src: 'http://example.com/tests/dom/media/test/test_info_leak.html'
|
||||
}, {
|
||||
type: 'audio/ogg',
|
||||
src: 'http://example.com/tests/dom/media/test/test_info_leak.html'
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
// These are files that must fire an error during load or playback, and do not
|
||||
// cause a crash. Used by test_playback_errors, which expects one error event
|
||||
|
|
|
@ -417,6 +417,7 @@ support-files =
|
|||
chained-audio-video.ogg^headers^
|
||||
chained-video.ogv
|
||||
chained-video.ogv^headers^
|
||||
chromeHelper.js
|
||||
contentType.sjs
|
||||
detodos.opus
|
||||
detodos.opus^headers^
|
||||
|
|
|
@ -35,19 +35,21 @@ function createTestArray() {
|
|||
var tests = [];
|
||||
var tmpVid = document.createElement("video");
|
||||
|
||||
for (var testNum=0; testNum<gInfoLeakTests.length; testNum++) {
|
||||
var test = gInfoLeakTests[testNum];
|
||||
if (!tmpVid.canPlayType(test.type)) {
|
||||
continue;
|
||||
return makeInfoLeakTests().then(infoLeakTests => {
|
||||
for (var testNum=0; testNum < infoLeakTests.length; testNum++) {
|
||||
var test = infoLeakTests[testNum];
|
||||
if (!tmpVid.canPlayType(test.type)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var t = new Object;
|
||||
t.name = test.src;
|
||||
t.type = test.type;
|
||||
|
||||
tests.push(t);
|
||||
}
|
||||
|
||||
var t = new Object;
|
||||
t.name = test.src;
|
||||
t.type = test.type;
|
||||
|
||||
tests.push(t);
|
||||
}
|
||||
return tests;
|
||||
return tests;
|
||||
})
|
||||
}
|
||||
|
||||
function log(msg) {
|
||||
|
@ -160,7 +162,9 @@ function startTest(test, token) {
|
|||
createMedia(test.type, test.name, token);
|
||||
}
|
||||
|
||||
manager.runTests(createTestArray(), startTest);
|
||||
createTestArray().then(testArray => {
|
||||
manager.runTests(testArray, startTest);
|
||||
});
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
|
|
Загрузка…
Ссылка в новой задаче