mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 18:05:07 +00:00
LibWeb: Update parser with more insertion modes :^)
Implements handling of InHeadNoScript, InSelectInTable, InTemplate, InFrameset, AfterFrameset, and AfterAfterFrameset.
This commit is contained in:
parent
8e24a17d0d
commit
5eb39a5f61
6 changed files with 471 additions and 30 deletions
|
@ -100,6 +100,10 @@ private:
|
|||
void handle_in_select(HTMLToken&);
|
||||
void handle_in_caption(HTMLToken&);
|
||||
void handle_in_column_group(HTMLToken&);
|
||||
void handle_in_template(HTMLToken&);
|
||||
void handle_in_frameset(HTMLToken&);
|
||||
void handle_after_frameset(HTMLToken&);
|
||||
void handle_after_after_frameset(HTMLToken&);
|
||||
|
||||
void stop_parsing() { m_stop_parsing = true; }
|
||||
|
||||
|
@ -123,6 +127,10 @@ private:
|
|||
size_t script_nesting_level() const { return m_script_nesting_level; }
|
||||
void reset_the_insertion_mode_appropriately();
|
||||
|
||||
void adjust_mathml_attributes(HTMLToken&);
|
||||
void adjust_svg_attributes(HTMLToken&);
|
||||
void adjust_foreign_attributes(HTMLToken&);
|
||||
|
||||
enum AdoptionAgencyAlgorithmOutcome {
|
||||
DoNothing,
|
||||
RunAnyOtherEndTagSteps,
|
||||
|
@ -138,6 +146,7 @@ private:
|
|||
InsertionMode m_original_insertion_mode { InsertionMode::Initial };
|
||||
|
||||
StackOfOpenElements m_stack_of_open_elements;
|
||||
Vector<InsertionMode> m_stack_of_template_insertion_modes;
|
||||
ListOfActiveFormattingElements m_list_of_active_formatting_elements;
|
||||
|
||||
HTMLTokenizer m_tokenizer;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue