/* Binding to generate Navigator interface * * Copyright 2012 Vincent Sanders * * 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 */ #include "dom.bnd" webidlfile "html.idl"; hdrcomment "Copyright 2012 Vincent Sanders "; 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 #include "utils/config.h" #include "utils/log.h" #include "javascript/jsapi.h" #include "javascript/jsapi/binding.h" /* * navigator properties for netsurf * * Property | Everyone else | NetSurf | Notes * ------------+-----------------+--------------+------------------------------ * appCodeName | "Mozilla" | "NetSurf" | This is kinda a pointless * | | | constant as everyone returns * | | | "Mozilla" which is dumb * ------------+-----------------+--------------+------------------------------ * appName | "" | "NetSurf" | Browsers named other than * | | | "Netscape", "Mozilla", * | | | "Netscape Navigator", * | | | "Microsoft Internet Explorer" * | | | often other browser have * | | | "(compatible with Netscape)" * | | | append. * ------------+-----------------+--------------+------------------------------ * appVersion | " ()"| "" | Actually just the version * | | | number e.g "3.0". * ------------+-----------------+--------------+------------------------------ * language | "" | "" | The language the frontend is * | | | configured for * ------------+-----------------+--------------+------------------------------ * platform | " " | " " | Efectively uname -s -i, * | | | eg "Linux x86_64" * ------------+-----------------+--------------+------------------------------ * userAgent | "Mozilla/5.0 (" | "NetSurf" | The usual useragent string * | | | with excessive lies * ------------+-----------------+--------------+------------------------------ */ %} binding navigator { type js_libdom; /* the binding type */ interface Navigator; /* Web IDL interface to generate */ /* private members: * - stored in private context structure. * - passed as parameters to constructor and stored automatically. * - are *not* considered for property getters/setters. * * internal members: * - value stored in private context structure * - not passed to constructor * - must be instantiated by constructor * - are considered for property getters/setters. */ private "dom_document *" node; private "struct html_content *" htmlc; } 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); } %}