mirror of
https://github.com/servo/servo.git
synced 2025-08-09 15:35:34 +01:00
Auto merge of #21976 - notriddle:iframe-target-form-race, r=jdm
Assign a name to iframes when loading the initial about:blank Before, it would assign the name too late, causing scripts (which will not wait for another tick) to accidentally spawn pop-up windows instead of loading into the iframe. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #21886 - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21976) <!-- Reviewable:end -->
This commit is contained in:
commit
2f8dc65519
5 changed files with 62 additions and 10 deletions
|
@ -0,0 +1,3 @@
|
|||
def main(request, response):
|
||||
return ([("Content-Type", "text/plain")],
|
||||
"OK")
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Form targetted at iframe</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
async_test(function(t) {
|
||||
window.addEventListener("load", t.step_func(function() {
|
||||
var frame = document.createElement("iframe");
|
||||
frame.name = "frame";
|
||||
document.documentElement.appendChild(frame);
|
||||
var form = document.createElement("form");
|
||||
form.target = "frame";
|
||||
form.action = "form-target-iframe-helper.py";
|
||||
form.method = "POST";
|
||||
var input = document.createElement("input");
|
||||
input.name = "n";
|
||||
form.appendChild(input);
|
||||
document.documentElement.appendChild(form);
|
||||
form.submit();
|
||||
frame.addEventListener("load", t.step_func(function() {
|
||||
if (frame.contentWindow.location.href.includes("form-target-iframe-helper.py")) {
|
||||
assert_equals(frame.contentWindow.document.body.textContent, "OK");
|
||||
t.done();
|
||||
}
|
||||
}));
|
||||
}));
|
||||
}, "Form targetted at iframe");
|
||||
</script>
|
||||
<body>
|
Loading…
Add table
Add a link
Reference in a new issue