mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-26 22:09:43 +03:00
Merge branch 'master' of git://git.netsurf-browser.org/netsurf
This commit is contained in:
commit
488c4038fb
1
Makefile
1
Makefile
@ -621,6 +621,7 @@ $(eval $(foreach SOURCE,$(filter %.m,$(SOURCES)), \
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
-include $(sort $(addprefix $(DEPROOT)/,$(DEPFILES)))
|
||||
-include $(D_JSAPI_BINDING)
|
||||
endif
|
||||
|
||||
# And rules to build the objects themselves...
|
||||
|
@ -9,6 +9,7 @@
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
S_JSAPI_BINDING:=
|
||||
D_JSAPI_BINDING:=
|
||||
|
||||
JSAPI_BINDING_htmldocument := javascript/jsapi/htmldocument.bnd
|
||||
JSAPI_BINDING_htmlelement := javascript/jsapi/htmlelement.bnd
|
||||
@ -25,10 +26,11 @@ JSAPI_BINDING_nodelist := javascript/jsapi/nodelist.bnd
|
||||
define convert_jsapi_binding
|
||||
|
||||
S_JSAPI_BINDING += $(2)
|
||||
D_JSAPI_BINDING += $(patsubst %.c,%.d,$(2))
|
||||
|
||||
$(2): $(1)
|
||||
$(2): $(1) $(OBJROOT)/created
|
||||
$$(VQ)echo " GENBIND: $(1)"
|
||||
$(Q)nsgenbind -I javascript/WebIDL/ -o $(2) $(1)
|
||||
$(Q)nsgenbind -I javascript/WebIDL/ -d $(patsubst %.c,%.d,$(2)) -o $(2) $(1)
|
||||
|
||||
endef
|
||||
|
||||
@ -43,7 +45,7 @@ endif
|
||||
|
||||
ifeq ($(WANT_JS_SOURCE),YES)
|
||||
|
||||
S_JSAPI =
|
||||
S_JSAPI :=
|
||||
|
||||
S_JAVASCRIPT += content.c jsapi.c $(addprefix jsapi/,$(S_JSAPI))
|
||||
|
||||
|
@ -2511,12 +2511,17 @@ node_presentational_hint_width(nscss_select_ctx *ctx,
|
||||
if (input) {
|
||||
err = dom_element_get_attribute(node,
|
||||
corestring_dom_type, &width);
|
||||
if ((err != DOM_NO_ERR) || (width == NULL)) {
|
||||
if (err != DOM_NO_ERR) {
|
||||
return CSS_PROPERTY_NOT_SET;
|
||||
}
|
||||
|
||||
if (dom_string_lwc_isequal(width,
|
||||
if ((width == NULL) ||
|
||||
dom_string_lwc_isequal(width,
|
||||
corestring_lwc_text) ||
|
||||
dom_string_lwc_isequal(width,
|
||||
corestring_lwc_search) ||
|
||||
dom_string_lwc_isequal(width,
|
||||
corestring_lwc_file) ||
|
||||
dom_string_lwc_isequal(width,
|
||||
corestring_lwc_password)) {
|
||||
hint->data.length.unit = CSS_UNIT_EX;
|
||||
|
@ -2,62 +2,6 @@
|
||||
|
||||
webidlfile "dom.idl";
|
||||
|
||||
operation getElementById %{
|
||||
dom_string *elementId_dom;
|
||||
dom_element *element;
|
||||
dom_exception exc;
|
||||
|
||||
exc = dom_string_create((unsigned char*)elementId, elementId_len, &elementId_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
exc = dom_document_get_element_by_id(private->node, elementId_dom, &element);
|
||||
dom_string_unref(elementId_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (element != NULL) {
|
||||
jsret = jsapi_new_HTMLElement(cx, NULL, NULL, element, private->htmlc);
|
||||
}
|
||||
%}
|
||||
|
||||
/* Dom 4 says this should return a htmlcollection, libdom currently
|
||||
* returns DOM 3 spec of a nodelist
|
||||
*/
|
||||
|
||||
operation getElementsByTagName %{
|
||||
dom_string *localName_dom;
|
||||
/* dom_html_collection *collection;*/
|
||||
dom_nodelist *nodelist;
|
||||
dom_exception exc;
|
||||
|
||||
exc = dom_string_create((uint8_t *)localName, localName_len, &localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
exc = dom_document_get_elements_by_tag_name(private->node, localName_dom, /*&collection*/&nodelist);
|
||||
dom_string_unref(localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (/*collection*/nodelist != NULL) {
|
||||
/*jsret = jsapi_new_HTMLCollection(cx,
|
||||
NULL,
|
||||
NULL,
|
||||
collection,
|
||||
private->htmlc);*/
|
||||
jsret = jsapi_new_NodeList(cx,
|
||||
NULL,
|
||||
NULL,
|
||||
nodelist,
|
||||
private->htmlc);
|
||||
}
|
||||
|
||||
%}
|
||||
|
||||
getter textContent %{
|
||||
dom_exception exc;
|
||||
|
@ -13,30 +13,23 @@ preamble %{
|
||||
#include "utils/config.h"
|
||||
#include "utils/log.h"
|
||||
|
||||
#include "content/urldb.h"
|
||||
|
||||
#include "javascript/jsapi.h"
|
||||
#include "javascript/jsapi/binding.h"
|
||||
|
||||
%}
|
||||
|
||||
operation write %{
|
||||
LOG(("content %p parser %p writing %s",
|
||||
private->htmlc, private->htmlc->parser, text));
|
||||
|
||||
if (private->htmlc->parser != NULL) {
|
||||
dom_hubbub_parser_insert_chunk(private->htmlc->parser, (uint8_t *)text, text_len);
|
||||
}
|
||||
%}
|
||||
|
||||
binding document {
|
||||
type js_libdom; /* the binding type */
|
||||
type js_libdom; /* the binding type */
|
||||
|
||||
/* parameters to constructor value stored in private
|
||||
* context structure.
|
||||
*/
|
||||
private "dom_document *" node;
|
||||
private "struct html_content *" htmlc;
|
||||
/* parameters to constructor value stored in private
|
||||
* context structure.
|
||||
*/
|
||||
private "dom_document *" node;
|
||||
private "struct html_content *" htmlc;
|
||||
|
||||
interface Document; /* Web IDL interface to generate */
|
||||
interface Document; /* Web IDL interface to generate */
|
||||
}
|
||||
|
||||
api finalise %{
|
||||
@ -44,3 +37,76 @@ api finalise %{
|
||||
dom_node_unref(private->node);
|
||||
}
|
||||
%}
|
||||
|
||||
getter cookie %{
|
||||
char *cookie_str;
|
||||
cookie_str = urldb_get_cookie(llcache_handle_get_url(private->htmlc->base.llcache));
|
||||
if (cookie_str != NULL) {
|
||||
jsret = JS_NewStringCopyN(cx, cookie_str, strlen(cookie_str));
|
||||
free(cookie_str);
|
||||
}
|
||||
%}
|
||||
|
||||
operation getElementById %{
|
||||
dom_string *elementId_dom;
|
||||
dom_element *element;
|
||||
dom_exception exc;
|
||||
|
||||
exc = dom_string_create((unsigned char*)elementId, elementId_len, &elementId_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
exc = dom_document_get_element_by_id(private->node, elementId_dom, &element);
|
||||
dom_string_unref(elementId_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (element != NULL) {
|
||||
jsret = jsapi_new_HTMLElement(cx, NULL, NULL, element, private->htmlc);
|
||||
}
|
||||
%}
|
||||
|
||||
/*
|
||||
*
|
||||
* Dom 4 says this should return a htmlcollection, libdom currently
|
||||
* returns DOM 3 spec of a nodelist
|
||||
*/
|
||||
operation getElementsByTagName %{
|
||||
dom_string *localName_dom;
|
||||
/* dom_html_collection *collection;*/
|
||||
dom_nodelist *nodelist;
|
||||
dom_exception exc;
|
||||
|
||||
exc = dom_string_create((uint8_t *)localName, localName_len, &localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
exc = dom_document_get_elements_by_tag_name(private->node, localName_dom, /*&collection*/&nodelist);
|
||||
dom_string_unref(localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (/*collection*/nodelist != NULL) {
|
||||
/*jsret = jsapi_new_HTMLCollection(cx,
|
||||
NULL,
|
||||
NULL,
|
||||
collection,
|
||||
private->htmlc);*/
|
||||
jsret = jsapi_new_NodeList(cx,
|
||||
NULL,
|
||||
NULL,
|
||||
nodelist,
|
||||
private->htmlc);
|
||||
}
|
||||
|
||||
%}
|
||||
|
||||
operation write %{
|
||||
if (private->htmlc->parser != NULL) {
|
||||
dom_hubbub_parser_insert_chunk(private->htmlc->parser, (uint8_t *)text, text_len);
|
||||
}
|
||||
%}
|
||||
|
9
test/js/dom-doc-cookie.html
Normal file
9
test/js/dom-doc-cookie.html
Normal file
@ -0,0 +1,9 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Show cookie</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Show cookie</h1>
|
||||
<p><script>document.write(document.cookie);</script>
|
||||
</body>
|
||||
</html>
|
@ -87,6 +87,7 @@ lwc_string *corestring_lwc_rectangle;
|
||||
lwc_string *corestring_lwc_refresh;
|
||||
lwc_string *corestring_lwc_reset;
|
||||
lwc_string *corestring_lwc_right;
|
||||
lwc_string *corestring_lwc_search;
|
||||
lwc_string *corestring_lwc_select;
|
||||
lwc_string *corestring_lwc_src;
|
||||
lwc_string *corestring_lwc_style;
|
||||
@ -230,6 +231,7 @@ void corestrings_fini(void)
|
||||
CSS_LWC_STRING_UNREF(refresh);
|
||||
CSS_LWC_STRING_UNREF(reset);
|
||||
CSS_LWC_STRING_UNREF(right);
|
||||
CSS_LWC_STRING_UNREF(search);
|
||||
CSS_LWC_STRING_UNREF(select);
|
||||
CSS_LWC_STRING_UNREF(src);
|
||||
CSS_LWC_STRING_UNREF(style);
|
||||
@ -392,6 +394,7 @@ nserror corestrings_init(void)
|
||||
CSS_LWC_STRING_INTERN(refresh);
|
||||
CSS_LWC_STRING_INTERN(reset);
|
||||
CSS_LWC_STRING_INTERN(right);
|
||||
CSS_LWC_STRING_INTERN(search);
|
||||
CSS_LWC_STRING_INTERN(select);
|
||||
CSS_LWC_STRING_INTERN(src);
|
||||
CSS_LWC_STRING_INTERN(style);
|
||||
|
@ -91,6 +91,7 @@ extern lwc_string *corestring_lwc_rectangle;
|
||||
extern lwc_string *corestring_lwc_refresh;
|
||||
extern lwc_string *corestring_lwc_reset;
|
||||
extern lwc_string *corestring_lwc_right;
|
||||
extern lwc_string *corestring_lwc_search;
|
||||
extern lwc_string *corestring_lwc_select;
|
||||
extern lwc_string *corestring_lwc_src;
|
||||
extern lwc_string *corestring_lwc_style;
|
||||
|
Loading…
Reference in New Issue
Block a user