Backed out changeset 8aeb6541520a (bug 1405174) for landing wrong version of patch. r=backout

This commit is contained in:
Sebastian Hengst 2017-10-05 01:06:56 +02:00
Родитель 561b271b7d
Коммит 5057df5497
2 изменённых файлов: 1 добавлений и 27 удалений

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

@ -425,27 +425,7 @@ SubstitutingProtocolHandler::ResolveURI(nsIURI *uri, nsACString &result)
rv = baseURI->GetSpec(result);
} else {
// Make sure we always resolve the path as file-relative to our target URI.
// When the baseURI is a nsIFileURL, and the directory it points to doesn't
// exist, it doesn't end with a /. In that case, a file-relative resolution
// is going to pick something in the parent directory, so we resolve using
// an absolute path derived from the full path in that case.
nsCOMPtr<nsIFileURL> baseDir = do_QueryInterface(baseURI);
if (baseDir) {
nsAutoCString basePath;
rv = baseURI->GetFilePath(basePath);
if (NS_SUCCEEDED(rv) && !StringEndsWith(basePath, NS_LITERAL_CSTRING("/"))) {
// Cf. the assertion above, path already starts with a /, so prefixing
// with a string that doesn't end with one will leave us wit the right
// amount of /.
path.Insert(basePath, 0);
} else {
// Allow to fall through below.
baseDir = nullptr;
}
}
if (!baseDir) {
path.Insert('.', 0);
}
path.Insert('.', 0);
rv = baseURI->Resolve(path, result);
}

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

@ -94,14 +94,9 @@ function run_test() {
let rootFile = Services.dirsvc.get("GreD", Ci.nsIFile);
let rootURI = Services.io.newFileURI(rootFile);
rootFile.appendRelativePath("this/directory/does/not/exist");
let inexistentURI = Services.io.newFileURI(rootFile);
resProto.setSubstitution("res-test", rootURI);
resProto.setSubstitution("res-inexistent", inexistentURI);
do_register_cleanup(() => {
resProto.setSubstitution("res-test", null);
resProto.setSubstitution("res-inexistent", null);
});
let baseRoot = resProto.resolveURI(Services.io.newURI("resource:///"));
@ -109,7 +104,6 @@ function run_test() {
for (var spec of specs) {
check_safe_resolution(spec, rootURI.spec);
check_safe_resolution(spec.replace("res-test", "res-inexistent"), inexistentURI.spec);
check_safe_resolution(spec.replace("res-test", ""), baseRoot);
check_safe_resolution(spec.replace("res-test", "gre"), greRoot);
}