зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 2 changesets (bug 1495363
) for causing bug 1542912 a=backout
Backed out changeset 1d6b361c337a (bug1495363
) Backed out changeset 7973453599bb (bug1495363
) --HG-- extra : rebase_source : a229beaff397ed384109715ff3bf1a205a865d1d
This commit is contained in:
Родитель
955ffbbf4c
Коммит
f553e66590
|
@ -1,48 +0,0 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<form id="form" method="POST" action="file_bug1495363.sjs" enctype="multipart/form-data">
|
||||
<input type="text" name="post" id="post" />
|
||||
<input type="file" name="file" id="file" />
|
||||
<input id="btn" type="submit" />
|
||||
</form>
|
||||
|
||||
<script type="application/javascript">
|
||||
|
||||
let p = new Promise(resolve => {
|
||||
let url = SimpleTest.getTestFileURL("../../../../dom/filesystem/tests/script_fileList.js");
|
||||
let script = SpecialPowers.loadChromeScript(url);
|
||||
|
||||
function onOpened(message) {
|
||||
SpecialPowers.wrap(document.getElementById("file")).mozSetFileArray([message.file]);
|
||||
resolve();
|
||||
}
|
||||
|
||||
script.addMessageListener("file.opened", onOpened);
|
||||
script.sendAsyncMessage("file.open");
|
||||
});
|
||||
|
||||
p.then(() => {
|
||||
let form = document.getElementById("form");
|
||||
form.onsubmit = function() {
|
||||
setTimeout(() => {
|
||||
document.getElementById("post").value = "TIMEOUT";
|
||||
form.submit();
|
||||
parent.timeoutExpired();
|
||||
}, 0);
|
||||
parent.formSubmitted();
|
||||
return true;
|
||||
}
|
||||
|
||||
document.getElementById("post").value = "CLICK";
|
||||
document.getElementById("btn").click();
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,45 +0,0 @@
|
|||
const CC = Components.Constructor;
|
||||
const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
|
||||
"nsIBinaryInputStream",
|
||||
"setInputStream");
|
||||
|
||||
function handleRequest(aRequest, aResponse) {
|
||||
aResponse.setStatusLine(aRequest.httpVersion, 200);
|
||||
|
||||
// This returns number of requests received so far.
|
||||
if (aRequest.queryString.includes("result")) {
|
||||
let hints = getState("hints") || 0;
|
||||
setState("hints", "0");
|
||||
|
||||
let submitter = getState("submitter");
|
||||
setState("submitter", "");
|
||||
|
||||
aResponse.write(hints + "-" + submitter);
|
||||
return;
|
||||
}
|
||||
|
||||
// Here we count the number of requests and we store who was the last
|
||||
// submitter.
|
||||
|
||||
let bodyStream = new BinaryInputStream(aRequest.bodyInputStream);
|
||||
let requestBody = "";
|
||||
while ((bodyAvail = bodyStream.available()) > 0) {
|
||||
requestBody += bodyStream.readBytes(bodyAvail);
|
||||
}
|
||||
|
||||
let lines = requestBody.split("\n");
|
||||
let submitter = "";
|
||||
for (let i = 0; i < lines.length; ++i) {
|
||||
if (lines[i].trim() == 'Content-Disposition: form-data; name="post"') {
|
||||
submitter = lines[i+2].trim();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
let hints = parseInt(getState("hints") || 0) + 1;
|
||||
setState("hints", hints.toString());
|
||||
setState("submitter", submitter);
|
||||
|
||||
aResponse.setHeader("Content-Type", "text/html", false);
|
||||
aResponse.write("Hello World!");
|
||||
}
|
|
@ -119,9 +119,3 @@ skip-if = android_version == '18' || os == 'mac'
|
|||
[test_valueasnumber_attribute.html]
|
||||
[test_validation_not_in_doc.html]
|
||||
[test_reportValidation_preventDefault.html]
|
||||
[test_bug1495363.html]
|
||||
skip-if = (toolkit == 'android' && !is_fennec) || (webrender && os == "linux") # Bugs 1525959, 1520674
|
||||
support-files =
|
||||
file_bug1495363.html
|
||||
file_bug1495363.sjs
|
||||
!/dom/filesystem/tests/script_fileList.js
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test for Bug 1495363</title>
|
||||
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<script type="application/javascript">
|
||||
|
||||
let readyToCheck = 0;
|
||||
window.timeoutExpired = () => {
|
||||
ok(true, "Timeout expired");
|
||||
readyToCheck++;
|
||||
maybeCheckResults();
|
||||
}
|
||||
|
||||
window.formSubmitted = () => {
|
||||
ok(true, "Form submited!");
|
||||
ifr.addEventListener("load", () => {
|
||||
readyToCheck++;
|
||||
maybeCheckResults();
|
||||
}, {once: true});
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var ifr = document.createElement('iframe');
|
||||
ifr.src = "file_bug1495363.html";
|
||||
document.body.appendChild(ifr);
|
||||
|
||||
function maybeCheckResults() {
|
||||
ok(readyToCheck <= 2, "So far so good");
|
||||
if (readyToCheck < 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
SimpleTest.executeSoon(() => {
|
||||
fetch("file_bug1495363.sjs?result").then(r => r.text()).then(text => {
|
||||
let parts = text.split("-");
|
||||
is(parts[0], "1", "We have 1 request only");
|
||||
is(parts[1], "TIMEOUT", "The request comes from the timer");
|
||||
SimpleTest.finish();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -403,12 +403,13 @@ nsDocLoader::OnStartRequest(nsIRequest* request) {
|
|||
//
|
||||
if (mIsLoadingDocument) {
|
||||
if (loadFlags & nsIChannel::LOAD_DOCUMENT_URI) {
|
||||
// If we have a document request channel, and this is not a redirect, we
|
||||
// must abort it and replace it with the new one.
|
||||
if (!(loadFlags & nsIChannel::LOAD_REPLACE) && mDocumentRequest) {
|
||||
mDocumentRequest->Cancel(NS_ERROR_ABORT);
|
||||
mDocumentRequest = nullptr;
|
||||
}
|
||||
//
|
||||
// Make sure that the document channel is null at this point...
|
||||
// (unless its been redirected)
|
||||
//
|
||||
NS_ASSERTION(
|
||||
(loadFlags & nsIChannel::LOAD_REPLACE) || !(mDocumentRequest.get()),
|
||||
"Overwriting an existing document channel!");
|
||||
|
||||
// This request is associated with the entire document...
|
||||
mDocumentRequest = request;
|
||||
|
|
Загрузка…
Ссылка в новой задаче