mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 10:37:45 +00:00
LibWeb: Add basic support for dynamic markup insertion
This implements basic support for dynamic markup insertion, adding * Document::open() * Document::write(Vector<String> const&) * Document::writeln(Vector<String> const&) * Document::close() The HTMLParser is modified to make it possible to create a script-created parser which initially only contains a HTMLTokenizer without any data. Aditionally the HTMLParser::run method gains an overload which does not modify the Document and does not run HTMLParser::the_end() so that we can reenter the parser at a later time. Furthermore all FIXMEs that consern the insertion point are implemented wich is defined in the HTMLTokenizer. Additionally the following member-variables of the HTMLParser are now exposed by getter funcions: * m_tokenizer * m_aborted * m_script_nesting_level The HTMLTokenizer is modified so that it contains an insertion point which keeps track of where the next input from the Document::write functions will be inserted. The insertion point is implemented as the charakter offset into m_decoded_input and a boolean describing if the insertion point is defined. Functions to update, check and {re}store the insertion point are also added. The function HTMLTokenizer::insert_eof is added to tell a script-created parser that document::close was called and HTMLParser::the_end() should be called. Lastly an explicit default constructor is added to HTMLTokenizer to create a empty HTMLTokenizer into which data can be inserted.
This commit is contained in:
parent
d29d9462e9
commit
db789813c9
7 changed files with 282 additions and 19 deletions
|
@ -32,8 +32,12 @@ interface Document : Node {
|
|||
|
||||
readonly attribute Window? defaultView;
|
||||
|
||||
undefined write(DOMString... text);
|
||||
undefined writeln(DOMString... text);
|
||||
[CEReactions] Document open(optional DOMString unused1, optional DOMString unused2);
|
||||
// FIXME: implement ExceptionOr<Window> Document::open(...)
|
||||
// WindowProxy? open(USVString url, DOMString name, DOMString features);
|
||||
[CEReactions] undefined close();
|
||||
[CEReactions] undefined write(DOMString... text);
|
||||
[CEReactions] undefined writeln(DOMString... text);
|
||||
|
||||
attribute DOMString cookie;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue