Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/68f359d1ec2212939f19a...
...commit
http://git.netsurf-browser.org/netsurf.git/commit/68f359d1ec2212939f19a25...
...tree
http://git.netsurf-browser.org/netsurf.git/tree/68f359d1ec2212939f19a25df...
The branch, master has been updated
via 68f359d1ec2212939f19a25dfb182d08cfa37afd (commit)
via fb5d763d757719a552b8849cbdef9c2a1c1c2db0 (commit)
from fefc9ed6bea667d9ed2a8c02e8aafb2ab9e60e31 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commitdiff/68f359d1ec2212939f1...
commit 68f359d1ec2212939f19a25dfb182d08cfa37afd
Author: Vincent Sanders <vince(a)netsurf-browser.org>
Commit: Vincent Sanders <vince(a)netsurf-browser.org>
initial event fireing implementation
diff --git a/Makefile.sources.javascript b/Makefile.sources.javascript
index 2a33565..1ece3b6 100644
--- a/Makefile.sources.javascript
+++ b/Makefile.sources.javascript
@@ -21,6 +21,7 @@ JSAPI_BINDING_htmlcollection := javascript/jsapi/htmlcollection.bnd
JSAPI_BINDING_nodelist := javascript/jsapi/nodelist.bnd
JSAPI_BINDING_text := javascript/jsapi/text.bnd
JSAPI_BINDING_node := javascript/jsapi/node.bnd
+JSAPI_BINDING_event := javascript/jsapi/event.bnd
# 1: input file
# 2: output file
diff --git a/javascript/js.h b/javascript/js.h
index a6566f9..4dd8f15 100644
--- a/javascript/js.h
+++ b/javascript/js.h
@@ -51,4 +51,7 @@ jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void
*doc_priv);
/* execute some javascript in a context */
bool js_exec(jscontext *ctx, const char *txt, size_t txtlen);
+/* fire an event at a dom node */
+bool js_fire_event(jscontext *ctx, const char *type, void *target);
+
#endif /* _NETSURF_JAVASCRIPT_JS_H_ */
diff --git a/javascript/jsapi.c b/javascript/jsapi.c
index 35e3da3..2aa0f89 100644
--- a/javascript/jsapi.c
+++ b/javascript/jsapi.c
@@ -149,3 +149,59 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen)
return false;
}
+
+bool js_fire_event(jscontext *ctx, const char *type, void *target)
+{
+ JSContext *cx = (JSContext *)ctx;
+ dom_node *node = target;
+ JSObject *jsevent;
+ jsval rval;
+ jsval argv[1];
+ JSBool ret = JS_TRUE;
+ dom_exception exc;
+ dom_event *event;
+ dom_string *type_dom;
+
+ if (node == NULL) {
+ /* deliver to window */
+ if (cx == NULL) {
+ return false;
+ }
+
+ exc = dom_string_create((unsigned char*)type, strlen(type), &type_dom);
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+/* exc = dom_event_create(document, &event);*/
+ exc = -1;
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+ exc = dom_event_init(event, type_dom, false, false);
+ dom_string_unref(type_dom);
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+ jsevent = jsapi_new_Event(cx, NULL, NULL, event);
+ if (jsevent == NULL) {
+ return false;
+ }
+
+ argv[0] = OBJECT_TO_JSVAL(jsevent);
+
+ ret = JS_CallFunctionName(cx,
+ JS_GetGlobalObject(cx),
+ "dispatchEvent",
+ 1,
+ argv,
+ &rval);
+ }
+
+ if (ret == JS_TRUE) {
+ return true;
+ }
+ return false;
+}
diff --git a/javascript/jsapi/binding.h b/javascript/jsapi/binding.h
index 6d069b9..f274935 100644
--- a/javascript/jsapi/binding.h
+++ b/javascript/jsapi/binding.h
@@ -149,4 +149,11 @@ JSObject *jsapi_new_Node(JSContext *cx,
JSObject *prototype,
JSObject *parent);
+extern JSClass JSClass_Event;
+JSObject *jsapi_InitClass_Event(JSContext *cx, JSObject *parent);
+JSObject *jsapi_new_Event(JSContext *cx,
+ JSObject *prototype,
+ JSObject *parent,
+ dom_event *event);
+
#endif
diff --git a/javascript/jsapi/event.bnd b/javascript/jsapi/event.bnd
new file mode 100644
index 0000000..cc03c92
--- /dev/null
+++ b/javascript/jsapi/event.bnd
@@ -0,0 +1,36 @@
+/* Binding to generate event interface
+ *
+ * Copyright 2012 Vincent Sanders <vince(a)netsurf-browser.org>
+ *
+ * This file is part of NetSurf,
http://www.netsurf-browser.org/
+ *
+ * Released under the terms of the MIT License,
+ *
http://www.opensource.org/licenses/mit-license
+ */
+
+webidlfile "dom.idl";
+
+hdrcomment "Copyright 2012 Vincent Sanders <vince(a)netsurf-browser.org>";
+hdrcomment "This file is part of NetSurf,
http://www.netsurf-browser.org/";
+hdrcomment "Released under the terms of the MIT License,";
+hdrcomment "
http://www.opensource.org/licenses/mit-license";
+
+preamble %{
+
+#include <dom/dom.h>
+
+#include "utils/config.h"
+#include "utils/log.h"
+
+#include "javascript/jsapi.h"
+#include "javascript/jsapi/binding.h"
+
+%}
+
+binding node {
+ type js_libdom; /* the binding type */
+
+ interface Event; /* Web IDL interface to generate */
+
+ private "dom_event *" event;
+}
diff --git a/javascript/jsapi/window.bnd b/javascript/jsapi/window.bnd
index 7875ab4..3f89304 100644
--- a/javascript/jsapi/window.bnd
+++ b/javascript/jsapi/window.bnd
@@ -23,6 +23,7 @@ preamble %{
#include "utils/config.h"
#include "utils/log.h"
+#include "utils/corestrings.h"
#include "javascript/jsapi.h"
#include "javascript/jsapi/binding.h"
@@ -147,6 +148,11 @@ api init %{
return NULL;
}
+ user_proto = jsapi_InitClass_Event(cx, prototype);
+ if (user_proto == NULL) {
+ return NULL;
+ }
+
%}
api new %{
@@ -211,10 +217,51 @@ getter self %{
jsret = obj;
%}
+/* boolean dispatchEvent(Event event); */
+operation dispatchEvent %{
+ /* this implementation is unique to the window object as it is
+ * not a "real" dom node.
+ */
+
+ /* caution, this must match the struct generated from event.bnd */
+ if (event == JSVAL_VOID) {
+ jsret = JS_FALSE;
+ } else {
+ dom_event *domevent;
+ dom_string *type_dom;
+ dom_exception exc;
+ jsval eventval = JSVAL_VOID;
+ jsval event_argv[1];
+ jsval event_rval;
+
+ domevent = JS_GetInstancePrivate(cx, event, &JSClass_Event, NULL);
+ if (domevent == NULL) {
+ /** @todo type error? */
+ jsret = JS_FALSE;
+ } else {
+ exc = dom_event_get_type(domevent, &type_dom);
+ if (dom_string_isequal(type_dom, corestring_dom_load)) {
+ JS_GetProperty(cx, JSAPI_THIS_OBJECT(cx, vp), "onload", &eventval);
+ }
+
+ if (eventval != JSVAL_VOID) {
+ event_argv[0] = event;
+ jsret = JS_CallFunctionValue(cx, NULL, eventval, 1, event_argv, &event_rval);
+ }
+ }
+ }
+%}
+
getter EventHandler %{
+ /* this implementation is unique to the window object as it is
+ * not a dom node.
+ */
JSLOG("propname[%d] %s %s", tinyid , jsclass_properties[tinyid].name,
JS_GetTypeName(cx, JS_TypeOfValue(cx, tinyid_jsval)));
%}
setter EventHandler %{
+ /* this implementation is unique to the window object as it is
+ * not a dom node.
+ */
JSLOG("propname[%d] %s %s", tinyid, jsclass_properties[tinyid].name,
JS_GetTypeName(cx, JS_TypeOfValue(cx, tinyid_jsval)));
%}
diff --git a/javascript/none.c b/javascript/none.c
index b5cfc78..6354a12 100644
--- a/javascript/none.c
+++ b/javascript/none.c
@@ -53,3 +53,8 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen)
{
return true;
}
+
+bool js_fire_event(jscontext *ctx, const char *type, void *target)
+{
+ return true;
+}
diff --git a/render/html.c b/render/html.c
index 548295c..fc60843 100644
--- a/render/html.c
+++ b/render/html.c
@@ -331,6 +331,12 @@ void html_finish_conversion(html_content *c)
}
}
+ /* fire a simple event named load at the Document's Window
+ * object, but with its target set to the Document object (and
+ * the currentTarget set to the Window object)
+ */
+ js_fire_event(c->jscontext, "load", NULL);
+
/* convert dom tree to box tree */
LOG(("DOM to box (%p)", c));
content_set_status(&c->base, messages_get("Processing"));
commitdiff
http://git.netsurf-browser.org/netsurf.git/commitdiff/fb5d763d757719a552b...
commit fb5d763d757719a552b8849cbdef9c2a1c1c2db0
Author: Vincent Sanders <vince(a)netsurf-browser.org>
Commit: Vincent Sanders <vince(a)netsurf-browser.org>
extend corestings with event types
diff --git a/utils/corestrings.c b/utils/corestrings.c
index 7697786..ee50757 100644
--- a/utils/corestrings.c
+++ b/utils/corestrings.c
@@ -115,45 +115,113 @@ lwc_string *corestring_lwc__top;
/* dom_string strings */
dom_string *corestring_dom_a;
+dom_string *corestring_dom_abort;
+dom_string *corestring_dom_afterprint;
dom_string *corestring_dom_align;
dom_string *corestring_dom_area;
dom_string *corestring_dom_async;
dom_string *corestring_dom_background;
+dom_string *corestring_dom_beforeprint;
+dom_string *corestring_dom_beforeunload;
dom_string *corestring_dom_bgcolor;
+dom_string *corestring_dom_blur;
dom_string *corestring_dom_border;
dom_string *corestring_dom_bordercolor;
+dom_string *corestring_dom_cancel;
+dom_string *corestring_dom_canplay;
+dom_string *corestring_dom_canplaythrough;
dom_string *corestring_dom_cellpadding;
dom_string *corestring_dom_cellspacing;
+dom_string *corestring_dom_change;
+dom_string *corestring_dom_click;
+dom_string *corestring_dom_close;
dom_string *corestring_dom_color;
dom_string *corestring_dom_cols;
dom_string *corestring_dom_content;
+dom_string *corestring_dom_contextmenu;
dom_string *corestring_dom_coords;
+dom_string *corestring_dom_cuechange;
+dom_string *corestring_dom_dblclick;
dom_string *corestring_dom_defer;
+dom_string *corestring_dom_drag;
+dom_string *corestring_dom_dragend;
+dom_string *corestring_dom_dragenter;
+dom_string *corestring_dom_dragleave;
+dom_string *corestring_dom_dragover;
+dom_string *corestring_dom_dragstart;
+dom_string *corestring_dom_drop;
+dom_string *corestring_dom_durationchange;
+dom_string *corestring_dom_emptied;
+dom_string *corestring_dom_ended;
+dom_string *corestring_dom_error;
+dom_string *corestring_dom_focus;
+dom_string *corestring_dom_hashchange;
dom_string *corestring_dom_height;
dom_string *corestring_dom_href;
dom_string *corestring_dom_hreflang;
dom_string *corestring_dom_hspace;
dom_string *corestring_dom_http_equiv;
dom_string *corestring_dom_id;
+dom_string *corestring_dom_input;
+dom_string *corestring_dom_invalid;
+dom_string *corestring_dom_keydown;
+dom_string *corestring_dom_keypress;
+dom_string *corestring_dom_keyup;
dom_string *corestring_dom_link;
+dom_string *corestring_dom_load;
+dom_string *corestring_dom_loadeddata;
+dom_string *corestring_dom_loadedmetadata;
+dom_string *corestring_dom_loadstart;
dom_string *corestring_dom_map;
dom_string *corestring_dom_media;
+dom_string *corestring_dom_message;
+dom_string *corestring_dom_mousedown;
+dom_string *corestring_dom_mousemove;
+dom_string *corestring_dom_mouseout;
+dom_string *corestring_dom_mouseover;
+dom_string *corestring_dom_mouseup;
+dom_string *corestring_dom_mousewheel;
dom_string *corestring_dom_name;
dom_string *corestring_dom_nohref;
+dom_string *corestring_dom_offline;
+dom_string *corestring_dom_online;
+dom_string *corestring_dom_pagehide;
+dom_string *corestring_dom_pageshow;
+dom_string *corestring_dom_pause;
+dom_string *corestring_dom_play;
+dom_string *corestring_dom_playing;
+dom_string *corestring_dom_popstate;
+dom_string *corestring_dom_progress;
+dom_string *corestring_dom_ratechange;
dom_string *corestring_dom_rect;
dom_string *corestring_dom_rel;
+dom_string *corestring_dom_reset;
+dom_string *corestring_dom_resize;
dom_string *corestring_dom_rows;
+dom_string *corestring_dom_scroll;
+dom_string *corestring_dom_seeked;
+dom_string *corestring_dom_seeking;
+dom_string *corestring_dom_select;
+dom_string *corestring_dom_shape;
+dom_string *corestring_dom_show;
dom_string *corestring_dom_size;
dom_string *corestring_dom_sizes;
-dom_string *corestring_dom_shape;
dom_string *corestring_dom_src;
+dom_string *corestring_dom_stalled;
+dom_string *corestring_dom_storage;
+dom_string *corestring_dom_submit;
+dom_string *corestring_dom_suspend;
dom_string *corestring_dom_target;
dom_string *corestring_dom_text;
dom_string *corestring_dom_text_javascript;
+dom_string *corestring_dom_timeupdate;
dom_string *corestring_dom_type;
+dom_string *corestring_dom_unload;
dom_string *corestring_dom_valign;
dom_string *corestring_dom_vlink;
+dom_string *corestring_dom_volumechange;
dom_string *corestring_dom_vspace;
+dom_string *corestring_dom_waiting;
dom_string *corestring_dom_width;
@@ -268,45 +336,113 @@ void corestrings_fini(void)
} while (0)
CSS_DOM_STRING_UNREF(a);
+ CSS_DOM_STRING_UNREF(abort);
+ CSS_DOM_STRING_UNREF(afterprint);
CSS_DOM_STRING_UNREF(align);
CSS_DOM_STRING_UNREF(area);
CSS_DOM_STRING_UNREF(async);
CSS_DOM_STRING_UNREF(background);
+ CSS_DOM_STRING_UNREF(beforeprint);
+ CSS_DOM_STRING_UNREF(beforeunload);
CSS_DOM_STRING_UNREF(bgcolor);
+ CSS_DOM_STRING_UNREF(blur);
CSS_DOM_STRING_UNREF(border);
CSS_DOM_STRING_UNREF(bordercolor);
+ CSS_DOM_STRING_UNREF(cancel);
+ CSS_DOM_STRING_UNREF(canplay);
+ CSS_DOM_STRING_UNREF(canplaythrough);
CSS_DOM_STRING_UNREF(cellpadding);
CSS_DOM_STRING_UNREF(cellspacing);
+ CSS_DOM_STRING_UNREF(change);
+ CSS_DOM_STRING_UNREF(click);
+ CSS_DOM_STRING_UNREF(close);
CSS_DOM_STRING_UNREF(color);
CSS_DOM_STRING_UNREF(cols);
CSS_DOM_STRING_UNREF(content);
+ CSS_DOM_STRING_UNREF(contextmenu);
CSS_DOM_STRING_UNREF(coords);
+ CSS_DOM_STRING_UNREF(cuechange);
+ CSS_DOM_STRING_UNREF(dblclick);
CSS_DOM_STRING_UNREF(defer);
+ CSS_DOM_STRING_UNREF(drag);
+ CSS_DOM_STRING_UNREF(dragend);
+ CSS_DOM_STRING_UNREF(dragenter);
+ CSS_DOM_STRING_UNREF(dragleave);
+ CSS_DOM_STRING_UNREF(dragover);
+ CSS_DOM_STRING_UNREF(dragstart);
+ CSS_DOM_STRING_UNREF(drop);
+ CSS_DOM_STRING_UNREF(durationchange);
+ CSS_DOM_STRING_UNREF(emptied);
+ CSS_DOM_STRING_UNREF(ended);
+ CSS_DOM_STRING_UNREF(error);
+ CSS_DOM_STRING_UNREF(focus);
+ CSS_DOM_STRING_UNREF(hashchange);
CSS_DOM_STRING_UNREF(height);
CSS_DOM_STRING_UNREF(href);
CSS_DOM_STRING_UNREF(hreflang);
CSS_DOM_STRING_UNREF(hspace);
CSS_DOM_STRING_UNREF(http_equiv);
CSS_DOM_STRING_UNREF(id);
+ CSS_DOM_STRING_UNREF(input);
+ CSS_DOM_STRING_UNREF(invalid);
+ CSS_DOM_STRING_UNREF(keydown);
+ CSS_DOM_STRING_UNREF(keypress);
+ CSS_DOM_STRING_UNREF(keyup);
CSS_DOM_STRING_UNREF(link);
+ CSS_DOM_STRING_UNREF(load);
+ CSS_DOM_STRING_UNREF(loadeddata);
+ CSS_DOM_STRING_UNREF(loadedmetadata);
+ CSS_DOM_STRING_UNREF(loadstart);
CSS_DOM_STRING_UNREF(map);
CSS_DOM_STRING_UNREF(media);
+ CSS_DOM_STRING_UNREF(message);
+ CSS_DOM_STRING_UNREF(mousedown);
+ CSS_DOM_STRING_UNREF(mousemove);
+ CSS_DOM_STRING_UNREF(mouseout);
+ CSS_DOM_STRING_UNREF(mouseover);
+ CSS_DOM_STRING_UNREF(mouseup);
+ CSS_DOM_STRING_UNREF(mousewheel);
CSS_DOM_STRING_UNREF(name);
CSS_DOM_STRING_UNREF(nohref);
+ CSS_DOM_STRING_UNREF(offline);
+ CSS_DOM_STRING_UNREF(online);
+ CSS_DOM_STRING_UNREF(pagehide);
+ CSS_DOM_STRING_UNREF(pageshow);
+ CSS_DOM_STRING_UNREF(pause);
+ CSS_DOM_STRING_UNREF(play);
+ CSS_DOM_STRING_UNREF(playing);
+ CSS_DOM_STRING_UNREF(popstate);
+ CSS_DOM_STRING_UNREF(progress);
+ CSS_DOM_STRING_UNREF(ratechange);
CSS_DOM_STRING_UNREF(rect);
CSS_DOM_STRING_UNREF(rel);
+ CSS_DOM_STRING_UNREF(reset);
+ CSS_DOM_STRING_UNREF(resize);
CSS_DOM_STRING_UNREF(rows);
+ CSS_DOM_STRING_UNREF(scroll);
+ CSS_DOM_STRING_UNREF(seeked);
+ CSS_DOM_STRING_UNREF(seeking);
+ CSS_DOM_STRING_UNREF(select);
+ CSS_DOM_STRING_UNREF(shape);
+ CSS_DOM_STRING_UNREF(show);
CSS_DOM_STRING_UNREF(size);
CSS_DOM_STRING_UNREF(sizes);
- CSS_DOM_STRING_UNREF(shape);
CSS_DOM_STRING_UNREF(src);
+ CSS_DOM_STRING_UNREF(stalled);
+ CSS_DOM_STRING_UNREF(storage);
+ CSS_DOM_STRING_UNREF(submit);
+ CSS_DOM_STRING_UNREF(suspend);
CSS_DOM_STRING_UNREF(target);
CSS_DOM_STRING_UNREF(text);
CSS_DOM_STRING_UNREF(text_javascript);
+ CSS_DOM_STRING_UNREF(timeupdate);
CSS_DOM_STRING_UNREF(type);
+ CSS_DOM_STRING_UNREF(unload);
CSS_DOM_STRING_UNREF(valign);
CSS_DOM_STRING_UNREF(vlink);
+ CSS_DOM_STRING_UNREF(volumechange);
CSS_DOM_STRING_UNREF(vspace);
+ CSS_DOM_STRING_UNREF(waiting);
CSS_DOM_STRING_UNREF(width);
#undef CSS_DOM_STRING_UNREF
}
@@ -452,43 +588,112 @@ nserror corestrings_init(void)
} while(0)
CSS_DOM_STRING_INTERN(a);
+ CSS_DOM_STRING_INTERN(abort);
+ CSS_DOM_STRING_INTERN(afterprint);
CSS_DOM_STRING_INTERN(align);
CSS_DOM_STRING_INTERN(area);
CSS_DOM_STRING_INTERN(async);
CSS_DOM_STRING_INTERN(background);
+ CSS_DOM_STRING_INTERN(beforeprint);
+ CSS_DOM_STRING_INTERN(beforeunload);
CSS_DOM_STRING_INTERN(bgcolor);
+ CSS_DOM_STRING_INTERN(blur);
CSS_DOM_STRING_INTERN(border);
CSS_DOM_STRING_INTERN(bordercolor);
+ CSS_DOM_STRING_INTERN(cancel);
+ CSS_DOM_STRING_INTERN(canplay);
+ CSS_DOM_STRING_INTERN(canplaythrough);
CSS_DOM_STRING_INTERN(cellpadding);
CSS_DOM_STRING_INTERN(cellspacing);
+ CSS_DOM_STRING_INTERN(change);
+ CSS_DOM_STRING_INTERN(click);
+ CSS_DOM_STRING_INTERN(close);
CSS_DOM_STRING_INTERN(color);
CSS_DOM_STRING_INTERN(cols);
CSS_DOM_STRING_INTERN(content);
+ CSS_DOM_STRING_INTERN(contextmenu);
CSS_DOM_STRING_INTERN(coords);
+ CSS_DOM_STRING_INTERN(cuechange);
+ CSS_DOM_STRING_INTERN(dblclick);
CSS_DOM_STRING_INTERN(defer);
+ CSS_DOM_STRING_INTERN(drag);
+ CSS_DOM_STRING_INTERN(dragend);
+ CSS_DOM_STRING_INTERN(dragenter);
+ CSS_DOM_STRING_INTERN(dragleave);
+ CSS_DOM_STRING_INTERN(dragover);
+ CSS_DOM_STRING_INTERN(dragstart);
+ CSS_DOM_STRING_INTERN(drop);
+ CSS_DOM_STRING_INTERN(durationchange);
+ CSS_DOM_STRING_INTERN(emptied);
+ CSS_DOM_STRING_INTERN(ended);
+ CSS_DOM_STRING_INTERN(error);
+ CSS_DOM_STRING_INTERN(focus);
+ CSS_DOM_STRING_INTERN(hashchange);
CSS_DOM_STRING_INTERN(height);
CSS_DOM_STRING_INTERN(href);
CSS_DOM_STRING_INTERN(hreflang);
CSS_DOM_STRING_INTERN(hspace);
+ CSS_DOM_STRING_INTERN(http_equiv);
CSS_DOM_STRING_INTERN(id);
+ CSS_DOM_STRING_INTERN(input);
+ CSS_DOM_STRING_INTERN(invalid);
+ CSS_DOM_STRING_INTERN(keydown);
+ CSS_DOM_STRING_INTERN(keypress);
+ CSS_DOM_STRING_INTERN(keyup);
CSS_DOM_STRING_INTERN(link);
+ CSS_DOM_STRING_INTERN(load);
+ CSS_DOM_STRING_INTERN(loadeddata);
+ CSS_DOM_STRING_INTERN(loadedmetadata);
+ CSS_DOM_STRING_INTERN(loadstart);
CSS_DOM_STRING_INTERN(map);
CSS_DOM_STRING_INTERN(media);
+ CSS_DOM_STRING_INTERN(message);
+ CSS_DOM_STRING_INTERN(mousedown);
+ CSS_DOM_STRING_INTERN(mousemove);
+ CSS_DOM_STRING_INTERN(mouseout);
+ CSS_DOM_STRING_INTERN(mouseover);
+ CSS_DOM_STRING_INTERN(mouseup);
+ CSS_DOM_STRING_INTERN(mousewheel);
CSS_DOM_STRING_INTERN(name);
CSS_DOM_STRING_INTERN(nohref);
+ CSS_DOM_STRING_INTERN(offline);
+ CSS_DOM_STRING_INTERN(online);
+ CSS_DOM_STRING_INTERN(pagehide);
+ CSS_DOM_STRING_INTERN(pageshow);
+ CSS_DOM_STRING_INTERN(pause);
+ CSS_DOM_STRING_INTERN(play);
+ CSS_DOM_STRING_INTERN(playing);
+ CSS_DOM_STRING_INTERN(popstate);
+ CSS_DOM_STRING_INTERN(progress);
+ CSS_DOM_STRING_INTERN(ratechange);
CSS_DOM_STRING_INTERN(rect);
CSS_DOM_STRING_INTERN(rel);
+ CSS_DOM_STRING_INTERN(reset);
+ CSS_DOM_STRING_INTERN(resize);
CSS_DOM_STRING_INTERN(rows);
+ CSS_DOM_STRING_INTERN(scroll);
+ CSS_DOM_STRING_INTERN(seeked);
+ CSS_DOM_STRING_INTERN(seeking);
+ CSS_DOM_STRING_INTERN(select);
+ CSS_DOM_STRING_INTERN(shape);
+ CSS_DOM_STRING_INTERN(show);
CSS_DOM_STRING_INTERN(size);
CSS_DOM_STRING_INTERN(sizes);
- CSS_DOM_STRING_INTERN(shape);
CSS_DOM_STRING_INTERN(src);
+ CSS_DOM_STRING_INTERN(stalled);
+ CSS_DOM_STRING_INTERN(storage);
+ CSS_DOM_STRING_INTERN(submit);
+ CSS_DOM_STRING_INTERN(suspend);
CSS_DOM_STRING_INTERN(target);
CSS_DOM_STRING_INTERN(text);
+ CSS_DOM_STRING_INTERN(timeupdate);
CSS_DOM_STRING_INTERN(type);
+ CSS_DOM_STRING_INTERN(unload);
CSS_DOM_STRING_INTERN(valign);
CSS_DOM_STRING_INTERN(vlink);
+ CSS_DOM_STRING_INTERN(volumechange);
CSS_DOM_STRING_INTERN(vspace);
+ CSS_DOM_STRING_INTERN(waiting);
CSS_DOM_STRING_INTERN(width);
#undef CSS_DOM_STRING_INTERN
diff --git a/utils/corestrings.h b/utils/corestrings.h
index b72c53e..e8c9b6f 100644
--- a/utils/corestrings.h
+++ b/utils/corestrings.h
@@ -121,45 +121,114 @@ struct dom_string;
/* dom_string strings */
extern struct dom_string *corestring_dom_a;
+extern struct dom_string *corestring_dom_abort;
+extern struct dom_string *corestring_dom_afterprint;
extern struct dom_string *corestring_dom_align;
extern struct dom_string *corestring_dom_area;
extern struct dom_string *corestring_dom_async;
extern struct dom_string *corestring_dom_background;
+extern struct dom_string *corestring_dom_beforeprint;
+extern struct dom_string *corestring_dom_beforeunload;
extern struct dom_string *corestring_dom_bgcolor;
+extern struct dom_string *corestring_dom_blur;
extern struct dom_string *corestring_dom_border;
extern struct dom_string *corestring_dom_bordercolor;
+extern struct dom_string *corestring_dom_cancel;
+extern struct dom_string *corestring_dom_canplay;
+extern struct dom_string *corestring_dom_canplaythrough;
extern struct dom_string *corestring_dom_cellpadding;
extern struct dom_string *corestring_dom_cellspacing;
+extern struct dom_string *corestring_dom_change;
+extern struct dom_string *corestring_dom_click;
+extern struct dom_string *corestring_dom_close;
extern struct dom_string *corestring_dom_color;
extern struct dom_string *corestring_dom_cols;
extern struct dom_string *corestring_dom_content;
+extern struct dom_string *corestring_dom_contextmenu;
extern struct dom_string *corestring_dom_coords;
+extern struct dom_string *corestring_dom_cuechange;
+extern struct dom_string *corestring_dom_dblclick;
extern struct dom_string *corestring_dom_defer;
+extern struct dom_string *corestring_dom_drag;
+extern struct dom_string *corestring_dom_dragend;
+extern struct dom_string *corestring_dom_dragenter;
+extern struct dom_string *corestring_dom_dragleave;
+extern struct dom_string *corestring_dom_dragover;
+extern struct dom_string *corestring_dom_dragstart;
+extern struct dom_string *corestring_dom_drop;
+extern struct dom_string *corestring_dom_durationchange;
+extern struct dom_string *corestring_dom_emptied;
+extern struct dom_string *corestring_dom_ended;
+extern struct dom_string *corestring_dom_error;
+extern struct dom_string *corestring_dom_focus;
+extern struct dom_string *corestring_dom_hashchange;
extern struct dom_string *corestring_dom_height;
extern struct dom_string *corestring_dom_href;
extern struct dom_string *corestring_dom_hreflang;
extern struct dom_string *corestring_dom_hspace;
extern struct dom_string *corestring_dom_http_equiv;
extern struct dom_string *corestring_dom_id;
+extern struct dom_string *corestring_dom_input;
+extern struct dom_string *corestring_dom_invalid;
+extern struct dom_string *corestring_dom_keydown;
+extern struct dom_string *corestring_dom_keypress;
+extern struct dom_string *corestring_dom_keyup;
extern struct dom_string *corestring_dom_link;
+extern struct dom_string *corestring_dom_load;
+extern struct dom_string *corestring_dom_loadeddata;
+extern struct dom_string *corestring_dom_loadedmetadata;
+extern struct dom_string *corestring_dom_loadstart;
extern struct dom_string *corestring_dom_map;
extern struct dom_string *corestring_dom_media;
+extern struct dom_string *corestring_dom_message;
+extern struct dom_string *corestring_dom_mousedown;
+extern struct dom_string *corestring_dom_mousemove;
+extern struct dom_string *corestring_dom_mouseout;
+extern struct dom_string *corestring_dom_mouseover;
+extern struct dom_string *corestring_dom_mouseup;
+extern struct dom_string *corestring_dom_mousewheel;
extern struct dom_string *corestring_dom_name;
extern struct dom_string *corestring_dom_nohref;
+extern struct dom_string *corestring_dom_offline;
+extern struct dom_string *corestring_dom_online;
+extern struct dom_string *corestring_dom_pagehide;
+extern struct dom_string *corestring_dom_pageshow;
+extern struct dom_string *corestring_dom_pause;
+extern struct dom_string *corestring_dom_play;
+extern struct dom_string *corestring_dom_playing;
+extern struct dom_string *corestring_dom_popstate;
+extern struct dom_string *corestring_dom_progress;
+extern struct dom_string *corestring_dom_ratechange;
extern struct dom_string *corestring_dom_rect;
extern struct dom_string *corestring_dom_rel;
+extern struct dom_string *corestring_dom_reset;
+extern struct dom_string *corestring_dom_resize;
extern struct dom_string *corestring_dom_rows;
+extern struct dom_string *corestring_dom_scroll;
+extern struct dom_string *corestring_dom_seeked;
+extern struct dom_string *corestring_dom_seeking;
+extern struct dom_string *corestring_dom_select;
+extern struct dom_string *corestring_dom_shape;
+extern struct dom_string *corestring_dom_show;
extern struct dom_string *corestring_dom_size;
extern struct dom_string *corestring_dom_sizes;
-extern struct dom_string *corestring_dom_shape;
extern struct dom_string *corestring_dom_src;
+extern struct dom_string *corestring_dom_stalled;
+extern struct dom_string *corestring_dom_storage;
+extern struct dom_string *corestring_dom_submit;
+extern struct dom_string *corestring_dom_suspend;
extern struct dom_string *corestring_dom_target;
extern struct dom_string *corestring_dom_text;
extern struct dom_string *corestring_dom_text_javascript;
+extern struct dom_string *corestring_dom_timeupdate;
extern struct dom_string *corestring_dom_type;
+extern struct dom_string *corestring_dom_unload;
extern struct dom_string *corestring_dom_valign;
extern struct dom_string *corestring_dom_vlink;
+extern struct dom_string *corestring_dom_volumechange;
extern struct dom_string *corestring_dom_vspace;
+extern struct dom_string *corestring_dom_waiting;
extern struct dom_string *corestring_dom_width;
+
#endif
-----------------------------------------------------------------------
Summary of changes:
Makefile.sources.javascript | 1 +
javascript/js.h | 3 +
javascript/jsapi.c | 56 ++++++++
javascript/jsapi/binding.h | 7 +
javascript/jsapi/{node.bnd => event.bnd} | 6 +-
javascript/jsapi/window.bnd | 47 +++++++
javascript/none.c | 5 +
render/html.c | 6 +
utils/corestrings.c | 211 +++++++++++++++++++++++++++++-
utils/corestrings.h | 71 ++++++++++-
10 files changed, 407 insertions(+), 6 deletions(-)
copy javascript/jsapi/{node.bnd => event.bnd} (85%)
diff --git a/Makefile.sources.javascript b/Makefile.sources.javascript
index 2a33565..1ece3b6 100644
--- a/Makefile.sources.javascript
+++ b/Makefile.sources.javascript
@@ -21,6 +21,7 @@ JSAPI_BINDING_htmlcollection := javascript/jsapi/htmlcollection.bnd
JSAPI_BINDING_nodelist := javascript/jsapi/nodelist.bnd
JSAPI_BINDING_text := javascript/jsapi/text.bnd
JSAPI_BINDING_node := javascript/jsapi/node.bnd
+JSAPI_BINDING_event := javascript/jsapi/event.bnd
# 1: input file
# 2: output file
diff --git a/javascript/js.h b/javascript/js.h
index a6566f9..4dd8f15 100644
--- a/javascript/js.h
+++ b/javascript/js.h
@@ -51,4 +51,7 @@ jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void
*doc_priv);
/* execute some javascript in a context */
bool js_exec(jscontext *ctx, const char *txt, size_t txtlen);
+/* fire an event at a dom node */
+bool js_fire_event(jscontext *ctx, const char *type, void *target);
+
#endif /* _NETSURF_JAVASCRIPT_JS_H_ */
diff --git a/javascript/jsapi.c b/javascript/jsapi.c
index 35e3da3..2aa0f89 100644
--- a/javascript/jsapi.c
+++ b/javascript/jsapi.c
@@ -149,3 +149,59 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen)
return false;
}
+
+bool js_fire_event(jscontext *ctx, const char *type, void *target)
+{
+ JSContext *cx = (JSContext *)ctx;
+ dom_node *node = target;
+ JSObject *jsevent;
+ jsval rval;
+ jsval argv[1];
+ JSBool ret = JS_TRUE;
+ dom_exception exc;
+ dom_event *event;
+ dom_string *type_dom;
+
+ if (node == NULL) {
+ /* deliver to window */
+ if (cx == NULL) {
+ return false;
+ }
+
+ exc = dom_string_create((unsigned char*)type, strlen(type), &type_dom);
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+/* exc = dom_event_create(document, &event);*/
+ exc = -1;
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+ exc = dom_event_init(event, type_dom, false, false);
+ dom_string_unref(type_dom);
+ if (exc != DOM_NO_ERR) {
+ return false;
+ }
+
+ jsevent = jsapi_new_Event(cx, NULL, NULL, event);
+ if (jsevent == NULL) {
+ return false;
+ }
+
+ argv[0] = OBJECT_TO_JSVAL(jsevent);
+
+ ret = JS_CallFunctionName(cx,
+ JS_GetGlobalObject(cx),
+ "dispatchEvent",
+ 1,
+ argv,
+ &rval);
+ }
+
+ if (ret == JS_TRUE) {
+ return true;
+ }
+ return false;
+}
diff --git a/javascript/jsapi/binding.h b/javascript/jsapi/binding.h
index 6d069b9..f274935 100644
--- a/javascript/jsapi/binding.h
+++ b/javascript/jsapi/binding.h
@@ -149,4 +149,11 @@ JSObject *jsapi_new_Node(JSContext *cx,
JSObject *prototype,
JSObject *parent);
+extern JSClass JSClass_Event;
+JSObject *jsapi_InitClass_Event(JSContext *cx, JSObject *parent);
+JSObject *jsapi_new_Event(JSContext *cx,
+ JSObject *prototype,
+ JSObject *parent,
+ dom_event *event);
+
#endif
diff --git a/javascript/jsapi/node.bnd b/javascript/jsapi/event.bnd
similarity index 85%
copy from javascript/jsapi/node.bnd
copy to javascript/jsapi/event.bnd
index bcf0ef7..cc03c92 100644
--- a/javascript/jsapi/node.bnd
+++ b/javascript/jsapi/event.bnd
@@ -1,4 +1,4 @@
-/* Binding to generate Node interface
+/* Binding to generate event interface
*
* Copyright 2012 Vincent Sanders <vince(a)netsurf-browser.org>
*
@@ -30,5 +30,7 @@ preamble %{
binding node {
type js_libdom; /* the binding type */
- interface Node; /* Web IDL interface to generate */
+ interface Event; /* Web IDL interface to generate */
+
+ private "dom_event *" event;
}
diff --git a/javascript/jsapi/window.bnd b/javascript/jsapi/window.bnd
index 7875ab4..3f89304 100644
--- a/javascript/jsapi/window.bnd
+++ b/javascript/jsapi/window.bnd
@@ -23,6 +23,7 @@ preamble %{
#include "utils/config.h"
#include "utils/log.h"
+#include "utils/corestrings.h"
#include "javascript/jsapi.h"
#include "javascript/jsapi/binding.h"
@@ -147,6 +148,11 @@ api init %{
return NULL;
}
+ user_proto = jsapi_InitClass_Event(cx, prototype);
+ if (user_proto == NULL) {
+ return NULL;
+ }
+
%}
api new %{
@@ -211,10 +217,51 @@ getter self %{
jsret = obj;
%}
+/* boolean dispatchEvent(Event event); */
+operation dispatchEvent %{
+ /* this implementation is unique to the window object as it is
+ * not a "real" dom node.
+ */
+
+ /* caution, this must match the struct generated from event.bnd */
+ if (event == JSVAL_VOID) {
+ jsret = JS_FALSE;
+ } else {
+ dom_event *domevent;
+ dom_string *type_dom;
+ dom_exception exc;
+ jsval eventval = JSVAL_VOID;
+ jsval event_argv[1];
+ jsval event_rval;
+
+ domevent = JS_GetInstancePrivate(cx, event, &JSClass_Event, NULL);
+ if (domevent == NULL) {
+ /** @todo type error? */
+ jsret = JS_FALSE;
+ } else {
+ exc = dom_event_get_type(domevent, &type_dom);
+ if (dom_string_isequal(type_dom, corestring_dom_load)) {
+ JS_GetProperty(cx, JSAPI_THIS_OBJECT(cx, vp), "onload", &eventval);
+ }
+
+ if (eventval != JSVAL_VOID) {
+ event_argv[0] = event;
+ jsret = JS_CallFunctionValue(cx, NULL, eventval, 1, event_argv, &event_rval);
+ }
+ }
+ }
+%}
+
getter EventHandler %{
+ /* this implementation is unique to the window object as it is
+ * not a dom node.
+ */
JSLOG("propname[%d] %s %s", tinyid , jsclass_properties[tinyid].name,
JS_GetTypeName(cx, JS_TypeOfValue(cx, tinyid_jsval)));
%}
setter EventHandler %{
+ /* this implementation is unique to the window object as it is
+ * not a dom node.
+ */
JSLOG("propname[%d] %s %s", tinyid, jsclass_properties[tinyid].name,
JS_GetTypeName(cx, JS_TypeOfValue(cx, tinyid_jsval)));
%}
diff --git a/javascript/none.c b/javascript/none.c
index b5cfc78..6354a12 100644
--- a/javascript/none.c
+++ b/javascript/none.c
@@ -53,3 +53,8 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen)
{
return true;
}
+
+bool js_fire_event(jscontext *ctx, const char *type, void *target)
+{
+ return true;
+}
diff --git a/render/html.c b/render/html.c
index 548295c..fc60843 100644
--- a/render/html.c
+++ b/render/html.c
@@ -331,6 +331,12 @@ void html_finish_conversion(html_content *c)
}
}
+ /* fire a simple event named load at the Document's Window
+ * object, but with its target set to the Document object (and
+ * the currentTarget set to the Window object)
+ */
+ js_fire_event(c->jscontext, "load", NULL);
+
/* convert dom tree to box tree */
LOG(("DOM to box (%p)", c));
content_set_status(&c->base, messages_get("Processing"));
diff --git a/utils/corestrings.c b/utils/corestrings.c
index 7697786..ee50757 100644
--- a/utils/corestrings.c
+++ b/utils/corestrings.c
@@ -115,45 +115,113 @@ lwc_string *corestring_lwc__top;
/* dom_string strings */
dom_string *corestring_dom_a;
+dom_string *corestring_dom_abort;
+dom_string *corestring_dom_afterprint;
dom_string *corestring_dom_align;
dom_string *corestring_dom_area;
dom_string *corestring_dom_async;
dom_string *corestring_dom_background;
+dom_string *corestring_dom_beforeprint;
+dom_string *corestring_dom_beforeunload;
dom_string *corestring_dom_bgcolor;
+dom_string *corestring_dom_blur;
dom_string *corestring_dom_border;
dom_string *corestring_dom_bordercolor;
+dom_string *corestring_dom_cancel;
+dom_string *corestring_dom_canplay;
+dom_string *corestring_dom_canplaythrough;
dom_string *corestring_dom_cellpadding;
dom_string *corestring_dom_cellspacing;
+dom_string *corestring_dom_change;
+dom_string *corestring_dom_click;
+dom_string *corestring_dom_close;
dom_string *corestring_dom_color;
dom_string *corestring_dom_cols;
dom_string *corestring_dom_content;
+dom_string *corestring_dom_contextmenu;
dom_string *corestring_dom_coords;
+dom_string *corestring_dom_cuechange;
+dom_string *corestring_dom_dblclick;
dom_string *corestring_dom_defer;
+dom_string *corestring_dom_drag;
+dom_string *corestring_dom_dragend;
+dom_string *corestring_dom_dragenter;
+dom_string *corestring_dom_dragleave;
+dom_string *corestring_dom_dragover;
+dom_string *corestring_dom_dragstart;
+dom_string *corestring_dom_drop;
+dom_string *corestring_dom_durationchange;
+dom_string *corestring_dom_emptied;
+dom_string *corestring_dom_ended;
+dom_string *corestring_dom_error;
+dom_string *corestring_dom_focus;
+dom_string *corestring_dom_hashchange;
dom_string *corestring_dom_height;
dom_string *corestring_dom_href;
dom_string *corestring_dom_hreflang;
dom_string *corestring_dom_hspace;
dom_string *corestring_dom_http_equiv;
dom_string *corestring_dom_id;
+dom_string *corestring_dom_input;
+dom_string *corestring_dom_invalid;
+dom_string *corestring_dom_keydown;
+dom_string *corestring_dom_keypress;
+dom_string *corestring_dom_keyup;
dom_string *corestring_dom_link;
+dom_string *corestring_dom_load;
+dom_string *corestring_dom_loadeddata;
+dom_string *corestring_dom_loadedmetadata;
+dom_string *corestring_dom_loadstart;
dom_string *corestring_dom_map;
dom_string *corestring_dom_media;
+dom_string *corestring_dom_message;
+dom_string *corestring_dom_mousedown;
+dom_string *corestring_dom_mousemove;
+dom_string *corestring_dom_mouseout;
+dom_string *corestring_dom_mouseover;
+dom_string *corestring_dom_mouseup;
+dom_string *corestring_dom_mousewheel;
dom_string *corestring_dom_name;
dom_string *corestring_dom_nohref;
+dom_string *corestring_dom_offline;
+dom_string *corestring_dom_online;
+dom_string *corestring_dom_pagehide;
+dom_string *corestring_dom_pageshow;
+dom_string *corestring_dom_pause;
+dom_string *corestring_dom_play;
+dom_string *corestring_dom_playing;
+dom_string *corestring_dom_popstate;
+dom_string *corestring_dom_progress;
+dom_string *corestring_dom_ratechange;
dom_string *corestring_dom_rect;
dom_string *corestring_dom_rel;
+dom_string *corestring_dom_reset;
+dom_string *corestring_dom_resize;
dom_string *corestring_dom_rows;
+dom_string *corestring_dom_scroll;
+dom_string *corestring_dom_seeked;
+dom_string *corestring_dom_seeking;
+dom_string *corestring_dom_select;
+dom_string *corestring_dom_shape;
+dom_string *corestring_dom_show;
dom_string *corestring_dom_size;
dom_string *corestring_dom_sizes;
-dom_string *corestring_dom_shape;
dom_string *corestring_dom_src;
+dom_string *corestring_dom_stalled;
+dom_string *corestring_dom_storage;
+dom_string *corestring_dom_submit;
+dom_string *corestring_dom_suspend;
dom_string *corestring_dom_target;
dom_string *corestring_dom_text;
dom_string *corestring_dom_text_javascript;
+dom_string *corestring_dom_timeupdate;
dom_string *corestring_dom_type;
+dom_string *corestring_dom_unload;
dom_string *corestring_dom_valign;
dom_string *corestring_dom_vlink;
+dom_string *corestring_dom_volumechange;
dom_string *corestring_dom_vspace;
+dom_string *corestring_dom_waiting;
dom_string *corestring_dom_width;
@@ -268,45 +336,113 @@ void corestrings_fini(void)
} while (0)
CSS_DOM_STRING_UNREF(a);
+ CSS_DOM_STRING_UNREF(abort);
+ CSS_DOM_STRING_UNREF(afterprint);
CSS_DOM_STRING_UNREF(align);
CSS_DOM_STRING_UNREF(area);
CSS_DOM_STRING_UNREF(async);
CSS_DOM_STRING_UNREF(background);
+ CSS_DOM_STRING_UNREF(beforeprint);
+ CSS_DOM_STRING_UNREF(beforeunload);
CSS_DOM_STRING_UNREF(bgcolor);
+ CSS_DOM_STRING_UNREF(blur);
CSS_DOM_STRING_UNREF(border);
CSS_DOM_STRING_UNREF(bordercolor);
+ CSS_DOM_STRING_UNREF(cancel);
+ CSS_DOM_STRING_UNREF(canplay);
+ CSS_DOM_STRING_UNREF(canplaythrough);
CSS_DOM_STRING_UNREF(cellpadding);
CSS_DOM_STRING_UNREF(cellspacing);
+ CSS_DOM_STRING_UNREF(change);
+ CSS_DOM_STRING_UNREF(click);
+ CSS_DOM_STRING_UNREF(close);
CSS_DOM_STRING_UNREF(color);
CSS_DOM_STRING_UNREF(cols);
CSS_DOM_STRING_UNREF(content);
+ CSS_DOM_STRING_UNREF(contextmenu);
CSS_DOM_STRING_UNREF(coords);
+ CSS_DOM_STRING_UNREF(cuechange);
+ CSS_DOM_STRING_UNREF(dblclick);
CSS_DOM_STRING_UNREF(defer);
+ CSS_DOM_STRING_UNREF(drag);
+ CSS_DOM_STRING_UNREF(dragend);
+ CSS_DOM_STRING_UNREF(dragenter);
+ CSS_DOM_STRING_UNREF(dragleave);
+ CSS_DOM_STRING_UNREF(dragover);
+ CSS_DOM_STRING_UNREF(dragstart);
+ CSS_DOM_STRING_UNREF(drop);
+ CSS_DOM_STRING_UNREF(durationchange);
+ CSS_DOM_STRING_UNREF(emptied);
+ CSS_DOM_STRING_UNREF(ended);
+ CSS_DOM_STRING_UNREF(error);
+ CSS_DOM_STRING_UNREF(focus);
+ CSS_DOM_STRING_UNREF(hashchange);
CSS_DOM_STRING_UNREF(height);
CSS_DOM_STRING_UNREF(href);
CSS_DOM_STRING_UNREF(hreflang);
CSS_DOM_STRING_UNREF(hspace);
CSS_DOM_STRING_UNREF(http_equiv);
CSS_DOM_STRING_UNREF(id);
+ CSS_DOM_STRING_UNREF(input);
+ CSS_DOM_STRING_UNREF(invalid);
+ CSS_DOM_STRING_UNREF(keydown);
+ CSS_DOM_STRING_UNREF(keypress);
+ CSS_DOM_STRING_UNREF(keyup);
CSS_DOM_STRING_UNREF(link);
+ CSS_DOM_STRING_UNREF(load);
+ CSS_DOM_STRING_UNREF(loadeddata);
+ CSS_DOM_STRING_UNREF(loadedmetadata);
+ CSS_DOM_STRING_UNREF(loadstart);
CSS_DOM_STRING_UNREF(map);
CSS_DOM_STRING_UNREF(media);
+ CSS_DOM_STRING_UNREF(message);
+ CSS_DOM_STRING_UNREF(mousedown);
+ CSS_DOM_STRING_UNREF(mousemove);
+ CSS_DOM_STRING_UNREF(mouseout);
+ CSS_DOM_STRING_UNREF(mouseover);
+ CSS_DOM_STRING_UNREF(mouseup);
+ CSS_DOM_STRING_UNREF(mousewheel);
CSS_DOM_STRING_UNREF(name);
CSS_DOM_STRING_UNREF(nohref);
+ CSS_DOM_STRING_UNREF(offline);
+ CSS_DOM_STRING_UNREF(online);
+ CSS_DOM_STRING_UNREF(pagehide);
+ CSS_DOM_STRING_UNREF(pageshow);
+ CSS_DOM_STRING_UNREF(pause);
+ CSS_DOM_STRING_UNREF(play);
+ CSS_DOM_STRING_UNREF(playing);
+ CSS_DOM_STRING_UNREF(popstate);
+ CSS_DOM_STRING_UNREF(progress);
+ CSS_DOM_STRING_UNREF(ratechange);
CSS_DOM_STRING_UNREF(rect);
CSS_DOM_STRING_UNREF(rel);
+ CSS_DOM_STRING_UNREF(reset);
+ CSS_DOM_STRING_UNREF(resize);
CSS_DOM_STRING_UNREF(rows);
+ CSS_DOM_STRING_UNREF(scroll);
+ CSS_DOM_STRING_UNREF(seeked);
+ CSS_DOM_STRING_UNREF(seeking);
+ CSS_DOM_STRING_UNREF(select);
+ CSS_DOM_STRING_UNREF(shape);
+ CSS_DOM_STRING_UNREF(show);
CSS_DOM_STRING_UNREF(size);
CSS_DOM_STRING_UNREF(sizes);
- CSS_DOM_STRING_UNREF(shape);
CSS_DOM_STRING_UNREF(src);
+ CSS_DOM_STRING_UNREF(stalled);
+ CSS_DOM_STRING_UNREF(storage);
+ CSS_DOM_STRING_UNREF(submit);
+ CSS_DOM_STRING_UNREF(suspend);
CSS_DOM_STRING_UNREF(target);
CSS_DOM_STRING_UNREF(text);
CSS_DOM_STRING_UNREF(text_javascript);
+ CSS_DOM_STRING_UNREF(timeupdate);
CSS_DOM_STRING_UNREF(type);
+ CSS_DOM_STRING_UNREF(unload);
CSS_DOM_STRING_UNREF(valign);
CSS_DOM_STRING_UNREF(vlink);
+ CSS_DOM_STRING_UNREF(volumechange);
CSS_DOM_STRING_UNREF(vspace);
+ CSS_DOM_STRING_UNREF(waiting);
CSS_DOM_STRING_UNREF(width);
#undef CSS_DOM_STRING_UNREF
}
@@ -452,43 +588,112 @@ nserror corestrings_init(void)
} while(0)
CSS_DOM_STRING_INTERN(a);
+ CSS_DOM_STRING_INTERN(abort);
+ CSS_DOM_STRING_INTERN(afterprint);
CSS_DOM_STRING_INTERN(align);
CSS_DOM_STRING_INTERN(area);
CSS_DOM_STRING_INTERN(async);
CSS_DOM_STRING_INTERN(background);
+ CSS_DOM_STRING_INTERN(beforeprint);
+ CSS_DOM_STRING_INTERN(beforeunload);
CSS_DOM_STRING_INTERN(bgcolor);
+ CSS_DOM_STRING_INTERN(blur);
CSS_DOM_STRING_INTERN(border);
CSS_DOM_STRING_INTERN(bordercolor);
+ CSS_DOM_STRING_INTERN(cancel);
+ CSS_DOM_STRING_INTERN(canplay);
+ CSS_DOM_STRING_INTERN(canplaythrough);
CSS_DOM_STRING_INTERN(cellpadding);
CSS_DOM_STRING_INTERN(cellspacing);
+ CSS_DOM_STRING_INTERN(change);
+ CSS_DOM_STRING_INTERN(click);
+ CSS_DOM_STRING_INTERN(close);
CSS_DOM_STRING_INTERN(color);
CSS_DOM_STRING_INTERN(cols);
CSS_DOM_STRING_INTERN(content);
+ CSS_DOM_STRING_INTERN(contextmenu);
CSS_DOM_STRING_INTERN(coords);
+ CSS_DOM_STRING_INTERN(cuechange);
+ CSS_DOM_STRING_INTERN(dblclick);
CSS_DOM_STRING_INTERN(defer);
+ CSS_DOM_STRING_INTERN(drag);
+ CSS_DOM_STRING_INTERN(dragend);
+ CSS_DOM_STRING_INTERN(dragenter);
+ CSS_DOM_STRING_INTERN(dragleave);
+ CSS_DOM_STRING_INTERN(dragover);
+ CSS_DOM_STRING_INTERN(dragstart);
+ CSS_DOM_STRING_INTERN(drop);
+ CSS_DOM_STRING_INTERN(durationchange);
+ CSS_DOM_STRING_INTERN(emptied);
+ CSS_DOM_STRING_INTERN(ended);
+ CSS_DOM_STRING_INTERN(error);
+ CSS_DOM_STRING_INTERN(focus);
+ CSS_DOM_STRING_INTERN(hashchange);
CSS_DOM_STRING_INTERN(height);
CSS_DOM_STRING_INTERN(href);
CSS_DOM_STRING_INTERN(hreflang);
CSS_DOM_STRING_INTERN(hspace);
+ CSS_DOM_STRING_INTERN(http_equiv);
CSS_DOM_STRING_INTERN(id);
+ CSS_DOM_STRING_INTERN(input);
+ CSS_DOM_STRING_INTERN(invalid);
+ CSS_DOM_STRING_INTERN(keydown);
+ CSS_DOM_STRING_INTERN(keypress);
+ CSS_DOM_STRING_INTERN(keyup);
CSS_DOM_STRING_INTERN(link);
+ CSS_DOM_STRING_INTERN(load);
+ CSS_DOM_STRING_INTERN(loadeddata);
+ CSS_DOM_STRING_INTERN(loadedmetadata);
+ CSS_DOM_STRING_INTERN(loadstart);
CSS_DOM_STRING_INTERN(map);
CSS_DOM_STRING_INTERN(media);
+ CSS_DOM_STRING_INTERN(message);
+ CSS_DOM_STRING_INTERN(mousedown);
+ CSS_DOM_STRING_INTERN(mousemove);
+ CSS_DOM_STRING_INTERN(mouseout);
+ CSS_DOM_STRING_INTERN(mouseover);
+ CSS_DOM_STRING_INTERN(mouseup);
+ CSS_DOM_STRING_INTERN(mousewheel);
CSS_DOM_STRING_INTERN(name);
CSS_DOM_STRING_INTERN(nohref);
+ CSS_DOM_STRING_INTERN(offline);
+ CSS_DOM_STRING_INTERN(online);
+ CSS_DOM_STRING_INTERN(pagehide);
+ CSS_DOM_STRING_INTERN(pageshow);
+ CSS_DOM_STRING_INTERN(pause);
+ CSS_DOM_STRING_INTERN(play);
+ CSS_DOM_STRING_INTERN(playing);
+ CSS_DOM_STRING_INTERN(popstate);
+ CSS_DOM_STRING_INTERN(progress);
+ CSS_DOM_STRING_INTERN(ratechange);
CSS_DOM_STRING_INTERN(rect);
CSS_DOM_STRING_INTERN(rel);
+ CSS_DOM_STRING_INTERN(reset);
+ CSS_DOM_STRING_INTERN(resize);
CSS_DOM_STRING_INTERN(rows);
+ CSS_DOM_STRING_INTERN(scroll);
+ CSS_DOM_STRING_INTERN(seeked);
+ CSS_DOM_STRING_INTERN(seeking);
+ CSS_DOM_STRING_INTERN(select);
+ CSS_DOM_STRING_INTERN(shape);
+ CSS_DOM_STRING_INTERN(show);
CSS_DOM_STRING_INTERN(size);
CSS_DOM_STRING_INTERN(sizes);
- CSS_DOM_STRING_INTERN(shape);
CSS_DOM_STRING_INTERN(src);
+ CSS_DOM_STRING_INTERN(stalled);
+ CSS_DOM_STRING_INTERN(storage);
+ CSS_DOM_STRING_INTERN(submit);
+ CSS_DOM_STRING_INTERN(suspend);
CSS_DOM_STRING_INTERN(target);
CSS_DOM_STRING_INTERN(text);
+ CSS_DOM_STRING_INTERN(timeupdate);
CSS_DOM_STRING_INTERN(type);
+ CSS_DOM_STRING_INTERN(unload);
CSS_DOM_STRING_INTERN(valign);
CSS_DOM_STRING_INTERN(vlink);
+ CSS_DOM_STRING_INTERN(volumechange);
CSS_DOM_STRING_INTERN(vspace);
+ CSS_DOM_STRING_INTERN(waiting);
CSS_DOM_STRING_INTERN(width);
#undef CSS_DOM_STRING_INTERN
diff --git a/utils/corestrings.h b/utils/corestrings.h
index b72c53e..e8c9b6f 100644
--- a/utils/corestrings.h
+++ b/utils/corestrings.h
@@ -121,45 +121,114 @@ struct dom_string;
/* dom_string strings */
extern struct dom_string *corestring_dom_a;
+extern struct dom_string *corestring_dom_abort;
+extern struct dom_string *corestring_dom_afterprint;
extern struct dom_string *corestring_dom_align;
extern struct dom_string *corestring_dom_area;
extern struct dom_string *corestring_dom_async;
extern struct dom_string *corestring_dom_background;
+extern struct dom_string *corestring_dom_beforeprint;
+extern struct dom_string *corestring_dom_beforeunload;
extern struct dom_string *corestring_dom_bgcolor;
+extern struct dom_string *corestring_dom_blur;
extern struct dom_string *corestring_dom_border;
extern struct dom_string *corestring_dom_bordercolor;
+extern struct dom_string *corestring_dom_cancel;
+extern struct dom_string *corestring_dom_canplay;
+extern struct dom_string *corestring_dom_canplaythrough;
extern struct dom_string *corestring_dom_cellpadding;
extern struct dom_string *corestring_dom_cellspacing;
+extern struct dom_string *corestring_dom_change;
+extern struct dom_string *corestring_dom_click;
+extern struct dom_string *corestring_dom_close;
extern struct dom_string *corestring_dom_color;
extern struct dom_string *corestring_dom_cols;
extern struct dom_string *corestring_dom_content;
+extern struct dom_string *corestring_dom_contextmenu;
extern struct dom_string *corestring_dom_coords;
+extern struct dom_string *corestring_dom_cuechange;
+extern struct dom_string *corestring_dom_dblclick;
extern struct dom_string *corestring_dom_defer;
+extern struct dom_string *corestring_dom_drag;
+extern struct dom_string *corestring_dom_dragend;
+extern struct dom_string *corestring_dom_dragenter;
+extern struct dom_string *corestring_dom_dragleave;
+extern struct dom_string *corestring_dom_dragover;
+extern struct dom_string *corestring_dom_dragstart;
+extern struct dom_string *corestring_dom_drop;
+extern struct dom_string *corestring_dom_durationchange;
+extern struct dom_string *corestring_dom_emptied;
+extern struct dom_string *corestring_dom_ended;
+extern struct dom_string *corestring_dom_error;
+extern struct dom_string *corestring_dom_focus;
+extern struct dom_string *corestring_dom_hashchange;
extern struct dom_string *corestring_dom_height;
extern struct dom_string *corestring_dom_href;
extern struct dom_string *corestring_dom_hreflang;
extern struct dom_string *corestring_dom_hspace;
extern struct dom_string *corestring_dom_http_equiv;
extern struct dom_string *corestring_dom_id;
+extern struct dom_string *corestring_dom_input;
+extern struct dom_string *corestring_dom_invalid;
+extern struct dom_string *corestring_dom_keydown;
+extern struct dom_string *corestring_dom_keypress;
+extern struct dom_string *corestring_dom_keyup;
extern struct dom_string *corestring_dom_link;
+extern struct dom_string *corestring_dom_load;
+extern struct dom_string *corestring_dom_loadeddata;
+extern struct dom_string *corestring_dom_loadedmetadata;
+extern struct dom_string *corestring_dom_loadstart;
extern struct dom_string *corestring_dom_map;
extern struct dom_string *corestring_dom_media;
+extern struct dom_string *corestring_dom_message;
+extern struct dom_string *corestring_dom_mousedown;
+extern struct dom_string *corestring_dom_mousemove;
+extern struct dom_string *corestring_dom_mouseout;
+extern struct dom_string *corestring_dom_mouseover;
+extern struct dom_string *corestring_dom_mouseup;
+extern struct dom_string *corestring_dom_mousewheel;
extern struct dom_string *corestring_dom_name;
extern struct dom_string *corestring_dom_nohref;
+extern struct dom_string *corestring_dom_offline;
+extern struct dom_string *corestring_dom_online;
+extern struct dom_string *corestring_dom_pagehide;
+extern struct dom_string *corestring_dom_pageshow;
+extern struct dom_string *corestring_dom_pause;
+extern struct dom_string *corestring_dom_play;
+extern struct dom_string *corestring_dom_playing;
+extern struct dom_string *corestring_dom_popstate;
+extern struct dom_string *corestring_dom_progress;
+extern struct dom_string *corestring_dom_ratechange;
extern struct dom_string *corestring_dom_rect;
extern struct dom_string *corestring_dom_rel;
+extern struct dom_string *corestring_dom_reset;
+extern struct dom_string *corestring_dom_resize;
extern struct dom_string *corestring_dom_rows;
+extern struct dom_string *corestring_dom_scroll;
+extern struct dom_string *corestring_dom_seeked;
+extern struct dom_string *corestring_dom_seeking;
+extern struct dom_string *corestring_dom_select;
+extern struct dom_string *corestring_dom_shape;
+extern struct dom_string *corestring_dom_show;
extern struct dom_string *corestring_dom_size;
extern struct dom_string *corestring_dom_sizes;
-extern struct dom_string *corestring_dom_shape;
extern struct dom_string *corestring_dom_src;
+extern struct dom_string *corestring_dom_stalled;
+extern struct dom_string *corestring_dom_storage;
+extern struct dom_string *corestring_dom_submit;
+extern struct dom_string *corestring_dom_suspend;
extern struct dom_string *corestring_dom_target;
extern struct dom_string *corestring_dom_text;
extern struct dom_string *corestring_dom_text_javascript;
+extern struct dom_string *corestring_dom_timeupdate;
extern struct dom_string *corestring_dom_type;
+extern struct dom_string *corestring_dom_unload;
extern struct dom_string *corestring_dom_valign;
extern struct dom_string *corestring_dom_vlink;
+extern struct dom_string *corestring_dom_volumechange;
extern struct dom_string *corestring_dom_vspace;
+extern struct dom_string *corestring_dom_waiting;
extern struct dom_string *corestring_dom_width;
+
#endif
--
NetSurf Browser