зеркало из https://github.com/mozilla/gecko-dev.git
Bug 512515. Let JAR channels report 'file not found' when the file isn't found in the JAR file. r=bsmedberg
--HG-- extra : rebase_source : bc52f7c34fe08c755d17ca5b3587807d63f34a14
This commit is contained in:
Родитель
5bd7481f48
Коммит
98ae1ef3ec
|
@ -672,7 +672,8 @@ nsJARChannel::Open(nsIInputStream **stream)
|
||||||
|
|
||||||
// force load the jar file now so GetContentLength will return a
|
// force load the jar file now so GetContentLength will return a
|
||||||
// meaningful value once we return.
|
// meaningful value once we return.
|
||||||
mJarInput->EnsureJarStream();
|
rv = mJarInput->EnsureJarStream();
|
||||||
|
if (NS_FAILED(rv)) return rv;
|
||||||
|
|
||||||
NS_ADDREF(*stream = mJarInput);
|
NS_ADDREF(*stream = mJarInput);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Should report file not found on non-existent files
|
||||||
|
|
||||||
|
const Cc = Components.classes;
|
||||||
|
const Ci = Components.interfaces;
|
||||||
|
const path = "data/test_bug333423.zip";
|
||||||
|
|
||||||
|
function run_test() {
|
||||||
|
var ios = Cc["@mozilla.org/network/io-service;1"].
|
||||||
|
getService(Ci.nsIIOService);
|
||||||
|
var spec = "jar:" + ios.newFileURI(do_get_file(path)).spec + "!/";
|
||||||
|
var channel = ios.newChannel(spec + "file_that_isnt_in.archive", null, null);
|
||||||
|
try {
|
||||||
|
instr = channel.open();
|
||||||
|
do_throw("Failed to report that file doesn't exist")
|
||||||
|
} catch (e) {
|
||||||
|
do_check_true(e.name == "NS_ERROR_FILE_NOT_FOUND")
|
||||||
|
}
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче