Auto merge of #13358 - rjgoldsborough:form-action-url-11219, r=mbrubeck

Form action url 11219

First pass at fixing #10580.
I've added a new macro that returns a DomString with either the attr val or the doc url.
I then made the form element use that macro on the action attribute.
I also added a test that contains an iframe with a form and base url that submits to a page in
a resources directory.

I made all these changes based on https://github.com/servo/servo/pull/11219#issuecomment-223318881.

The only thing I'm confused on is how to change step 8. It looks to just be getting the action so I'm wondering if I need to change either step 9 or 10 instead?

---

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #10580 (github issue number if applicable).

- [X] There are tests for these changes OR

using that macro with the form action,
making the form submit process use base url,
adding tests.

<!-- 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/13358)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-09-27 15:28:09 -05:00 committed by GitHub
commit 040075ad08
6 changed files with 52 additions and 2 deletions

View file

@ -37715,6 +37715,12 @@
"deleted_reftests": {},
"items": {
"testharness": {
"html/semantics/forms/the-form-element/form-action-url.html": [
{
"path": "html/semantics/forms/the-form-element/form-action-url.html",
"url": "/html/semantics/forms/the-form-element/form-action-url.html"
}
],
"html/semantics/forms/the-select-element/common-HTMLOptionsCollection-add.html": [
{
"path": "html/semantics/forms/the-select-element/common-HTMLOptionsCollection-add.html",

View file

@ -0,0 +1,9 @@
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
var t = async_test("Submit a form from an iframe with a base url");
var success = function() { t.done(); };
</script>
<iframe src="resources/form-action-url-iframe.html">

View file

@ -0,0 +1,11 @@
<!doctype html>
<base href="target/"></base>
<form action="form-action-url-target.html">
<input type="submit" value="Submit" />
</form>
<script>
var form = document.getElementsByTagName("form")[0];
form.submit();
</script>

View file

@ -0,0 +1,4 @@
<!doctype html>
<script>
window.parent.success();
</script>