1 add_task(async function test() {
2 await SpecialPowers.pushPrefEnv({
3 set: [["browser.tabs.remote.separateFileUriProcess", true]],
7 for (var i = 0; i < 100; ++i) {
8 fileData += "hello world!";
11 let file = Services.dirsvc.get("ProfD", Ci.nsIFile);
12 file.append("file.txt");
13 file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600);
16 "@mozilla.org/network/file-output-stream;1"
17 ].createInstance(Ci.nsIFileOutputStream);
20 0x02 | 0x08 | 0x20, // write, create, truncate
21 // eslint-disable-next-line no-octal
25 outStream.write(fileData, fileData.length);
28 let fileHandler = Services.io
29 .getProtocolHandler("file")
30 .QueryInterface(Ci.nsIFileProtocolHandler);
32 let fileURL = fileHandler.getURLSpecFromActualFile(file);
34 info("Opening url: " + fileURL);
35 let tab = BrowserTestUtils.addTab(gBrowser, fileURL);
37 let browser = gBrowser.getBrowserForTab(tab);
38 await BrowserTestUtils.browserLoaded(browser);
40 let blob = await SpecialPowers.spawn(
44 return new content.window.Promise(resolve => {
45 let xhr = new content.window.XMLHttpRequest();
46 xhr.responseType = "blob";
47 xhr.open("GET", fileName);
49 xhr.onload = function () {
50 resolve(xhr.response);
56 ok(File.isInstance(blob), "We have a file");
58 is(blob.size, file.fileSize, "The size matches");
59 is(blob.name, file.leafName, "The name is correct");
63 gBrowser.removeTab(tab);