summaryrefslogtreecommitdiff
path: root/render/html.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2011-02-25 19:56:28 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2011-02-25 19:56:28 +0000
commitec39ae69d625dd5d9e768d7fedf464d8e2808022 (patch)
treed5c291dad78dd1a728c888979935494570e8fd75 /render/html.c
parent021d3afd3e6276834ff992518b8a9e8498d1e24e (diff)
downloadnetsurf-ec39ae69d625dd5d9e768d7fedf464d8e2808022.tar.gz
netsurf-ec39ae69d625dd5d9e768d7fedf464d8e2808022.tar.bz2
Correct handling of action="": should submit to the document URL, not the base URL.
svn path=/trunk/netsurf/; revision=11799
Diffstat (limited to 'render/html.c')
-rw-r--r--render/html.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/render/html.c b/render/html.c
index dce873c4f..78275f15d 100644
--- a/render/html.c
+++ b/render/html.c
@@ -414,7 +414,15 @@ bool html_convert(struct content *c)
url_func_result res;
/* Make all actions absolute */
- res = url_join(f->action, c->data.html.base_url, &action);
+ if (f->action == NULL || f->action[0] == '\0') {
+ /* HTML5 4.10.22.3 step 11 */
+ res = url_join(content__get_url(c),
+ c->data.html.base_url, &action);
+ } else {
+ res = url_join(f->action,
+ c->data.html.base_url, &action);
+ }
+
if (res != URL_FUNC_OK) {
msg_data.error = messages_get("NoMemory");
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);