LCOV - code coverage report
Current view: top level - parser/html - nsHtml5TreeBuilder.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 7 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2007 Henri Sivonen
       3             :  * Copyright (c) 2007-2015 Mozilla Foundation
       4             :  * Portions of comments Copyright 2004-2008 Apple Computer, Inc., Mozilla
       5             :  * Foundation, and Opera Software ASA.
       6             :  *
       7             :  * Permission is hereby granted, free of charge, to any person obtaining a
       8             :  * copy of this software and associated documentation files (the "Software"),
       9             :  * to deal in the Software without restriction, including without limitation
      10             :  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      11             :  * and/or sell copies of the Software, and to permit persons to whom the
      12             :  * Software is furnished to do so, subject to the following conditions:
      13             :  *
      14             :  * The above copyright notice and this permission notice shall be included in
      15             :  * all copies or substantial portions of the Software.
      16             :  *
      17             :  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      18             :  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      19             :  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
      20             :  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      21             :  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
      22             :  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
      23             :  * DEALINGS IN THE SOFTWARE.
      24             :  */
      25             : 
      26             : /*
      27             :  * THIS IS A GENERATED FILE. PLEASE DO NOT EDIT.
      28             :  * Please edit TreeBuilder.java instead and regenerate.
      29             :  */
      30             : 
      31             : #ifndef nsHtml5TreeBuilder_h
      32             : #define nsHtml5TreeBuilder_h
      33             : 
      34             : #include "nsContentUtils.h"
      35             : #include "nsIAtom.h"
      36             : #include "nsHtml5AtomTable.h"
      37             : #include "nsITimer.h"
      38             : #include "nsHtml5String.h"
      39             : #include "nsNameSpaceManager.h"
      40             : #include "nsIContent.h"
      41             : #include "nsTraceRefcnt.h"
      42             : #include "jArray.h"
      43             : #include "nsHtml5DocumentMode.h"
      44             : #include "nsHtml5ArrayCopy.h"
      45             : #include "nsHtml5Parser.h"
      46             : #include "nsGkAtoms.h"
      47             : #include "nsHtml5TreeOperation.h"
      48             : #include "nsHtml5StateSnapshot.h"
      49             : #include "nsHtml5StackNode.h"
      50             : #include "nsHtml5TreeOpExecutor.h"
      51             : #include "nsHtml5StreamParser.h"
      52             : #include "nsAHtml5TreeBuilderState.h"
      53             : #include "nsHtml5Highlighter.h"
      54             : #include "nsHtml5PlainTextUtils.h"
      55             : #include "nsHtml5ViewSourceUtils.h"
      56             : #include "mozilla/Likely.h"
      57             : #include "nsIContentHandle.h"
      58             : #include "nsHtml5OplessBuilder.h"
      59             : 
      60             : class nsHtml5StreamParser;
      61             : 
      62             : class nsHtml5AttributeName;
      63             : class nsHtml5ElementName;
      64             : class nsHtml5Tokenizer;
      65             : class nsHtml5MetaScanner;
      66             : class nsHtml5UTF16Buffer;
      67             : class nsHtml5StateSnapshot;
      68             : class nsHtml5Portability;
      69             : 
      70             : 
      71             : class nsHtml5TreeBuilder : public nsAHtml5TreeBuilderState
      72             : {
      73             :   private:
      74             :     static char16_t REPLACEMENT_CHARACTER[];
      75             :   public:
      76             :     static const int32_t OTHER = 0;
      77             : 
      78             :     static const int32_t A = 1;
      79             : 
      80             :     static const int32_t BASE = 2;
      81             : 
      82             :     static const int32_t BODY = 3;
      83             : 
      84             :     static const int32_t BR = 4;
      85             : 
      86             :     static const int32_t BUTTON = 5;
      87             : 
      88             :     static const int32_t CAPTION = 6;
      89             : 
      90             :     static const int32_t COL = 7;
      91             : 
      92             :     static const int32_t COLGROUP = 8;
      93             : 
      94             :     static const int32_t FORM = 9;
      95             : 
      96             :     static const int32_t FRAME = 10;
      97             : 
      98             :     static const int32_t FRAMESET = 11;
      99             : 
     100             :     static const int32_t IMAGE = 12;
     101             : 
     102             :     static const int32_t INPUT = 13;
     103             : 
     104             :     static const int32_t ISINDEX = 14;
     105             : 
     106             :     static const int32_t LI = 15;
     107             : 
     108             :     static const int32_t LINK_OR_BASEFONT_OR_BGSOUND = 16;
     109             : 
     110             :     static const int32_t MATH = 17;
     111             : 
     112             :     static const int32_t META = 18;
     113             : 
     114             :     static const int32_t SVG = 19;
     115             : 
     116             :     static const int32_t HEAD = 20;
     117             : 
     118             :     static const int32_t HR = 22;
     119             : 
     120             :     static const int32_t HTML = 23;
     121             : 
     122             :     static const int32_t NOBR = 24;
     123             : 
     124             :     static const int32_t NOFRAMES = 25;
     125             : 
     126             :     static const int32_t NOSCRIPT = 26;
     127             : 
     128             :     static const int32_t OPTGROUP = 27;
     129             : 
     130             :     static const int32_t OPTION = 28;
     131             : 
     132             :     static const int32_t P = 29;
     133             : 
     134             :     static const int32_t PLAINTEXT = 30;
     135             : 
     136             :     static const int32_t SCRIPT = 31;
     137             : 
     138             :     static const int32_t SELECT = 32;
     139             : 
     140             :     static const int32_t STYLE = 33;
     141             : 
     142             :     static const int32_t TABLE = 34;
     143             : 
     144             :     static const int32_t TEXTAREA = 35;
     145             : 
     146             :     static const int32_t TITLE = 36;
     147             : 
     148             :     static const int32_t TR = 37;
     149             : 
     150             :     static const int32_t XMP = 38;
     151             : 
     152             :     static const int32_t TBODY_OR_THEAD_OR_TFOOT = 39;
     153             : 
     154             :     static const int32_t TD_OR_TH = 40;
     155             : 
     156             :     static const int32_t DD_OR_DT = 41;
     157             : 
     158             :     static const int32_t H1_OR_H2_OR_H3_OR_H4_OR_H5_OR_H6 = 42;
     159             : 
     160             :     static const int32_t MARQUEE_OR_APPLET = 43;
     161             : 
     162             :     static const int32_t PRE_OR_LISTING = 44;
     163             : 
     164             :     static const int32_t
     165             :       B_OR_BIG_OR_CODE_OR_EM_OR_I_OR_S_OR_SMALL_OR_STRIKE_OR_STRONG_OR_TT_OR_U =
     166             :         45;
     167             : 
     168             :     static const int32_t UL_OR_OL_OR_DL = 46;
     169             : 
     170             :     static const int32_t IFRAME = 47;
     171             : 
     172             :     static const int32_t EMBED = 48;
     173             : 
     174             :     static const int32_t AREA_OR_WBR = 49;
     175             : 
     176             :     static const int32_t DIV_OR_BLOCKQUOTE_OR_CENTER_OR_MENU = 50;
     177             : 
     178             :     static const int32_t
     179             :       ADDRESS_OR_ARTICLE_OR_ASIDE_OR_DETAILS_OR_DIALOG_OR_DIR_OR_FIGCAPTION_OR_FIGURE_OR_FOOTER_OR_HEADER_OR_HGROUP_OR_MAIN_OR_NAV_OR_SECTION_OR_SUMMARY =
     180             :         51;
     181             : 
     182             :     static const int32_t RUBY_OR_SPAN_OR_SUB_OR_SUP_OR_VAR = 52;
     183             : 
     184             :     static const int32_t RB_OR_RTC = 53;
     185             : 
     186             :     static const int32_t PARAM_OR_SOURCE_OR_TRACK = 55;
     187             : 
     188             :     static const int32_t MGLYPH_OR_MALIGNMARK = 56;
     189             : 
     190             :     static const int32_t MI_MO_MN_MS_MTEXT = 57;
     191             : 
     192             :     static const int32_t ANNOTATION_XML = 58;
     193             : 
     194             :     static const int32_t FOREIGNOBJECT_OR_DESC = 59;
     195             : 
     196             :     static const int32_t NOEMBED = 60;
     197             : 
     198             :     static const int32_t FIELDSET = 61;
     199             : 
     200             :     static const int32_t OUTPUT = 62;
     201             : 
     202             :     static const int32_t OBJECT = 63;
     203             : 
     204             :     static const int32_t FONT = 64;
     205             : 
     206             :     static const int32_t KEYGEN = 65;
     207             : 
     208             :     static const int32_t MENUITEM = 66;
     209             : 
     210             :     static const int32_t TEMPLATE = 67;
     211             : 
     212             :     static const int32_t IMG = 68;
     213             : 
     214             :     static const int32_t RT_OR_RP = 69;
     215             : 
     216             :   private:
     217             :     static const int32_t IN_ROW = 0;
     218             : 
     219             :     static const int32_t IN_TABLE_BODY = 1;
     220             : 
     221             :     static const int32_t IN_TABLE = 2;
     222             : 
     223             :     static const int32_t IN_CAPTION = 3;
     224             : 
     225             :     static const int32_t IN_CELL = 4;
     226             : 
     227             :     static const int32_t FRAMESET_OK = 5;
     228             : 
     229             :     static const int32_t IN_BODY = 6;
     230             : 
     231             :     static const int32_t IN_HEAD = 7;
     232             : 
     233             :     static const int32_t IN_HEAD_NOSCRIPT = 8;
     234             : 
     235             :     static const int32_t IN_COLUMN_GROUP = 9;
     236             : 
     237             :     static const int32_t IN_SELECT_IN_TABLE = 10;
     238             : 
     239             :     static const int32_t IN_SELECT = 11;
     240             : 
     241             :     static const int32_t AFTER_BODY = 12;
     242             : 
     243             :     static const int32_t IN_FRAMESET = 13;
     244             : 
     245             :     static const int32_t AFTER_FRAMESET = 14;
     246             : 
     247             :     static const int32_t INITIAL = 15;
     248             : 
     249             :     static const int32_t BEFORE_HTML = 16;
     250             : 
     251             :     static const int32_t BEFORE_HEAD = 17;
     252             : 
     253             :     static const int32_t AFTER_HEAD = 18;
     254             : 
     255             :     static const int32_t AFTER_AFTER_BODY = 19;
     256             : 
     257             :     static const int32_t AFTER_AFTER_FRAMESET = 20;
     258             : 
     259             :     static const int32_t TEXT = 21;
     260             : 
     261             :     static const int32_t IN_TEMPLATE = 22;
     262             : 
     263             :     static const int32_t CHARSET_INITIAL = 0;
     264             : 
     265             :     static const int32_t CHARSET_C = 1;
     266             : 
     267             :     static const int32_t CHARSET_H = 2;
     268             : 
     269             :     static const int32_t CHARSET_A = 3;
     270             : 
     271             :     static const int32_t CHARSET_R = 4;
     272             : 
     273             :     static const int32_t CHARSET_S = 5;
     274             : 
     275             :     static const int32_t CHARSET_E = 6;
     276             : 
     277             :     static const int32_t CHARSET_T = 7;
     278             : 
     279             :     static const int32_t CHARSET_EQUALS = 8;
     280             : 
     281             :     static const int32_t CHARSET_SINGLE_QUOTED = 9;
     282             : 
     283             :     static const int32_t CHARSET_DOUBLE_QUOTED = 10;
     284             : 
     285             :     static const int32_t CHARSET_UNQUOTED = 11;
     286             : 
     287             :     static staticJArray<const char*,int32_t> QUIRKY_PUBLIC_IDS;
     288             :     static const int32_t NOT_FOUND_ON_STACK = INT32_MAX;
     289             : 
     290             :     int32_t mode;
     291             :     int32_t originalMode;
     292             :     bool framesetOk;
     293             :   protected:
     294             :     nsHtml5Tokenizer* tokenizer;
     295             :   private:
     296             :     bool scriptingEnabled;
     297             :     bool needToDropLF;
     298             :     bool fragment;
     299             :     nsIAtom* contextName;
     300             :     int32_t contextNamespace;
     301             :     nsIContentHandle* contextNode;
     302             :     autoJArray<int32_t,int32_t> templateModeStack;
     303             :     int32_t templateModePtr;
     304             :     autoJArray<nsHtml5StackNode*, int32_t> stackNodes;
     305             :     int32_t stackNodesIdx;
     306             :     int32_t numStackNodes;
     307             :     autoJArray<nsHtml5StackNode*,int32_t> stack;
     308             :     int32_t currentPtr;
     309             :     autoJArray<nsHtml5StackNode*,int32_t> listOfActiveFormattingElements;
     310             :     int32_t listPtr;
     311             :     nsIContentHandle* formPointer;
     312             :     nsIContentHandle* headPointer;
     313             :     nsIContentHandle* deepTreeSurrogateParent;
     314             :   protected:
     315             :     autoJArray<char16_t,int32_t> charBuffer;
     316             :     int32_t charBufferLen;
     317             :   private:
     318             :     bool quirks;
     319             :     bool isSrcdocDocument;
     320             :   public:
     321             :     void startTokenization(nsHtml5Tokenizer* self);
     322             :     void doctype(nsIAtom* name,
     323             :                  nsHtml5String publicIdentifier,
     324             :                  nsHtml5String systemIdentifier,
     325             :                  bool forceQuirks);
     326             :     void comment(char16_t* buf, int32_t start, int32_t length);
     327             :     void characters(const char16_t* buf, int32_t start, int32_t length);
     328             :     void zeroOriginatingReplacementCharacter();
     329             :     void eof();
     330             :     void endTokenization();
     331             :     void startTag(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes, bool selfClosing);
     332             :   private:
     333             :     void startTagTitleInHead(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     334             :     void startTagGenericRawText(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     335             :     void startTagScriptInHead(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     336             :     void startTagTemplateInHead(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     337             :     bool isTemplateContents();
     338             :     bool isTemplateModeStackEmpty();
     339             :     bool isSpecialParentInForeign(nsHtml5StackNode* stackNode);
     340             :   public:
     341             :     static nsHtml5String extractCharsetFromContent(nsHtml5String attributeValue,
     342             :                                                    nsHtml5TreeBuilder* tb);
     343             : 
     344             :   private:
     345             :     void checkMetaCharset(nsHtml5HtmlAttributes* attributes);
     346             :   public:
     347             :     void endTag(nsHtml5ElementName* elementName);
     348             :   private:
     349             :     void endTagTemplateInHead();
     350             :     int32_t findLastInTableScopeOrRootTemplateTbodyTheadTfoot();
     351             :     int32_t findLast(nsIAtom* name);
     352             :     int32_t findLastInTableScope(nsIAtom* name);
     353             :     int32_t findLastInButtonScope(nsIAtom* name);
     354             :     int32_t findLastInScope(nsIAtom* name);
     355             :     int32_t findLastInListScope(nsIAtom* name);
     356             :     int32_t findLastInScopeHn();
     357             :     void generateImpliedEndTagsExceptFor(nsIAtom* name);
     358             :     void generateImpliedEndTags();
     359             :     bool isSecondOnStackBody();
     360             :     void documentModeInternal(nsHtml5DocumentMode m,
     361             :                               nsHtml5String publicIdentifier,
     362             :                               nsHtml5String systemIdentifier,
     363             :                               bool html4SpecificAdditionalErrorChecks);
     364             :     bool isAlmostStandards(nsHtml5String publicIdentifier,
     365             :                            nsHtml5String systemIdentifier);
     366             :     bool isQuirky(nsIAtom* name,
     367             :                   nsHtml5String publicIdentifier,
     368             :                   nsHtml5String systemIdentifier,
     369             :                   bool forceQuirks);
     370             :     void closeTheCell(int32_t eltPos);
     371             :     int32_t findLastInTableScopeTdTh();
     372             :     void clearStackBackTo(int32_t eltPos);
     373             :     void resetTheInsertionMode();
     374             :     void implicitlyCloseP();
     375             :     bool debugOnlyClearLastStackSlot();
     376             :     bool debugOnlyClearLastListSlot();
     377             :     void pushTemplateMode(int32_t mode);
     378             :     void push(nsHtml5StackNode* node);
     379             :     void silentPush(nsHtml5StackNode* node);
     380             :     void append(nsHtml5StackNode* node);
     381           0 :     inline void insertMarker()
     382             :     {
     383           0 :       append(nullptr);
     384           0 :     }
     385             : 
     386             :     void clearTheListOfActiveFormattingElementsUpToTheLastMarker();
     387           0 :     inline bool isCurrent(nsIAtom* name)
     388             :     {
     389           0 :       return stack[currentPtr]->ns == kNameSpaceID_XHTML && name == stack[currentPtr]->name;
     390             :     }
     391             : 
     392             :     void removeFromStack(int32_t pos);
     393             :     void removeFromStack(nsHtml5StackNode* node);
     394             :     void removeFromListOfActiveFormattingElements(int32_t pos);
     395             :     bool adoptionAgencyEndTag(nsIAtom* name);
     396             :     void insertIntoStack(nsHtml5StackNode* node, int32_t position);
     397             :     void insertIntoListOfActiveFormattingElements(nsHtml5StackNode* formattingClone, int32_t bookmark);
     398             :     int32_t findInListOfActiveFormattingElements(nsHtml5StackNode* node);
     399             :     int32_t findInListOfActiveFormattingElementsContainsBetweenEndAndLastMarker(nsIAtom* name);
     400             :     void maybeForgetEarlierDuplicateFormattingElement(nsIAtom* name, nsHtml5HtmlAttributes* attributes);
     401             :     int32_t findLastOrRoot(nsIAtom* name);
     402             :     int32_t findLastOrRoot(int32_t group);
     403             :     bool addAttributesToBody(nsHtml5HtmlAttributes* attributes);
     404             :     void addAttributesToHtml(nsHtml5HtmlAttributes* attributes);
     405             :     void pushHeadPointerOntoStack();
     406             :     void reconstructTheActiveFormattingElements();
     407             :   public:
     408             :     void notifyUnusedStackNode(int32_t idxInStackNodes);
     409             :   private:
     410             :     nsHtml5StackNode* getUnusedStackNode();
     411             :     nsHtml5StackNode* createStackNode(int32_t flags,
     412             :                                       int32_t ns,
     413             :                                       nsIAtom* name,
     414             :                                       nsIContentHandle* node,
     415             :                                       nsIAtom* popName,
     416             :                                       nsHtml5HtmlAttributes* attributes);
     417             :     nsHtml5StackNode* createStackNode(nsHtml5ElementName* elementName,
     418             :                                       nsIContentHandle* node);
     419             :     nsHtml5StackNode* createStackNode(nsHtml5ElementName* elementName,
     420             :                                       nsIContentHandle* node,
     421             :                                       nsHtml5HtmlAttributes* attributes);
     422             :     nsHtml5StackNode* createStackNode(nsHtml5ElementName* elementName,
     423             :                                       nsIContentHandle* node,
     424             :                                       nsIAtom* popName);
     425             :     nsHtml5StackNode* createStackNode(nsHtml5ElementName* elementName,
     426             :                                       nsIAtom* popName,
     427             :                                       nsIContentHandle* node);
     428             :     nsHtml5StackNode* createStackNode(nsHtml5ElementName* elementName,
     429             :                                       nsIContentHandle* node,
     430             :                                       nsIAtom* popName,
     431             :                                       bool markAsIntegrationPoint);
     432             :     void insertIntoFosterParent(nsIContentHandle* child);
     433             :     nsIContentHandle* createAndInsertFosterParentedElement(int32_t ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes);
     434             :     nsIContentHandle* createAndInsertFosterParentedElement(int32_t ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContentHandle* form);
     435             :     bool isInStack(nsHtml5StackNode* node);
     436             :     void popTemplateMode();
     437             :     void pop();
     438             :     void silentPop();
     439             :     void popOnEof();
     440             :     void appendHtmlElementToDocumentAndPush(nsHtml5HtmlAttributes* attributes);
     441             :     void appendHtmlElementToDocumentAndPush();
     442             :     void appendToCurrentNodeAndPushHeadElement(nsHtml5HtmlAttributes* attributes);
     443             :     void appendToCurrentNodeAndPushBodyElement(nsHtml5HtmlAttributes* attributes);
     444             :     void appendToCurrentNodeAndPushBodyElement();
     445             :     void appendToCurrentNodeAndPushFormElementMayFoster(nsHtml5HtmlAttributes* attributes);
     446             :     void appendToCurrentNodeAndPushFormattingElementMayFoster(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     447             :     void appendToCurrentNodeAndPushElement(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     448             :     void appendToCurrentNodeAndPushElementMayFoster(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     449             :     void appendToCurrentNodeAndPushElementMayFosterMathML(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     450             :     bool annotationXmlEncodingPermitsHtml(nsHtml5HtmlAttributes* attributes);
     451             :     void appendToCurrentNodeAndPushElementMayFosterSVG(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     452             :     void appendToCurrentNodeAndPushElementMayFoster(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes, nsIContentHandle* form);
     453             :     void appendVoidElementToCurrentMayFoster(nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContentHandle* form);
     454             :     void appendVoidElementToCurrentMayFoster(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     455             :     void appendVoidElementToCurrentMayFosterSVG(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     456             :     void appendVoidElementToCurrentMayFosterMathML(nsHtml5ElementName* elementName, nsHtml5HtmlAttributes* attributes);
     457             :     void appendVoidElementToCurrent(nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContentHandle* form);
     458             :     void appendVoidFormToCurrent(nsHtml5HtmlAttributes* attributes);
     459             :   protected:
     460             :     void accumulateCharacters(const char16_t* buf, int32_t start, int32_t length);
     461             :     void requestSuspension();
     462             :     nsIContentHandle* createElement(int32_t ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContentHandle* intendedParent);
     463             :     nsIContentHandle* createElement(int32_t ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContentHandle* form, nsIContentHandle* intendedParent);
     464             :     nsIContentHandle* createHtmlElementSetAsRoot(nsHtml5HtmlAttributes* attributes);
     465             :     void detachFromParent(nsIContentHandle* element);
     466             :     bool hasChildren(nsIContentHandle* element);
     467             :     void appendElement(nsIContentHandle* child, nsIContentHandle* newParent);
     468             :     void appendChildrenToNewParent(nsIContentHandle* oldParent, nsIContentHandle* newParent);
     469             :     void insertFosterParentedChild(nsIContentHandle* child, nsIContentHandle* table, nsIContentHandle* stackParent);
     470             :     nsIContentHandle* createAndInsertFosterParentedElement(int32_t ns, nsIAtom* name, nsHtml5HtmlAttributes* attributes, nsIContentHandle* form, nsIContentHandle* table, nsIContentHandle* stackParent);
     471             :     ;void insertFosterParentedCharacters(char16_t* buf, int32_t start, int32_t length, nsIContentHandle* table, nsIContentHandle* stackParent);
     472             :     void appendCharacters(nsIContentHandle* parent, char16_t* buf, int32_t start, int32_t length);
     473             :     void appendIsindexPrompt(nsIContentHandle* parent);
     474             :     void appendComment(nsIContentHandle* parent, char16_t* buf, int32_t start, int32_t length);
     475             :     void appendCommentToDocument(char16_t* buf, int32_t start, int32_t length);
     476             :     void addAttributesToElement(nsIContentHandle* element, nsHtml5HtmlAttributes* attributes);
     477             :     void markMalformedIfScript(nsIContentHandle* elt);
     478             :     void start(bool fragmentMode);
     479             :     void end();
     480             :     void appendDoctypeToDocument(nsIAtom* name,
     481             :                                  nsHtml5String publicIdentifier,
     482             :                                  nsHtml5String systemIdentifier);
     483             :     void elementPushed(int32_t ns, nsIAtom* name, nsIContentHandle* node);
     484             :     void elementPopped(int32_t ns, nsIAtom* name, nsIContentHandle* node);
     485             :   public:
     486           0 :     inline bool cdataSectionAllowed()
     487             :     {
     488           0 :       return isInForeign();
     489             :     }
     490             : 
     491             :   private:
     492             :     bool isInForeign();
     493             :     bool isInForeignButNotHtmlOrMathTextIntegrationPoint();
     494             :   public:
     495             :     void setFragmentContext(nsIAtom* context, int32_t ns, nsIContentHandle* node, bool quirks);
     496             :   protected:
     497             :     nsIContentHandle* currentNode();
     498             :   public:
     499             :     bool isScriptingEnabled();
     500             :     void setScriptingEnabled(bool scriptingEnabled);
     501             :     void setIsSrcdocDocument(bool isSrcdocDocument);
     502             :     void flushCharacters();
     503             :   private:
     504             :     bool charBufferContainsNonWhitespace();
     505             :   public:
     506             :     nsAHtml5TreeBuilderState* newSnapshot();
     507             :     bool snapshotMatches(nsAHtml5TreeBuilderState* snapshot);
     508             :     void loadState(nsAHtml5TreeBuilderState* snapshot, nsHtml5AtomTable* interner);
     509             :   private:
     510             :     int32_t findInArray(nsHtml5StackNode* node, jArray<nsHtml5StackNode*,int32_t> arr);
     511             :   public:
     512             :     nsIContentHandle* getFormPointer();
     513             :     nsIContentHandle* getHeadPointer();
     514             :     nsIContentHandle* getDeepTreeSurrogateParent();
     515             :     jArray<nsHtml5StackNode*,int32_t> getListOfActiveFormattingElements();
     516             :     jArray<nsHtml5StackNode*,int32_t> getStack();
     517             :     jArray<int32_t,int32_t> getTemplateModeStack();
     518             :     int32_t getMode();
     519             :     int32_t getOriginalMode();
     520             :     bool isFramesetOk();
     521             :     bool isNeedToDropLF();
     522             :     bool isQuirks();
     523             :     int32_t getListOfActiveFormattingElementsLength();
     524             :     int32_t getStackLength();
     525             :     int32_t getTemplateModeStackLength();
     526             :     static void initializeStatics();
     527             :     static void releaseStatics();
     528             : 
     529             : #include "nsHtml5TreeBuilderHSupplement.h"
     530             : };
     531             : 
     532             : #endif
     533             : 

Generated by: LCOV version 1.13