Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/parser/html/nsHtml5StackNode.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (c) 2007 Henri Sivonen
3
 * Copyright (c) 2007-2011 Mozilla Foundation
4
 *
5
 * Permission is hereby granted, free of charge, to any person obtaining a
6
 * copy of this software and associated documentation files (the "Software"),
7
 * to deal in the Software without restriction, including without limitation
8
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9
 * and/or sell copies of the Software, and to permit persons to whom the
10
 * Software is furnished to do so, subject to the following conditions:
11
 *
12
 * The above copyright notice and this permission notice shall be included in
13
 * all copies or substantial portions of the Software.
14
 *
15
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21
 * DEALINGS IN THE SOFTWARE.
22
 */
23
24
/*
25
 * THIS IS A GENERATED FILE. PLEASE DO NOT EDIT.
26
 * Please edit StackNode.java instead and regenerate.
27
 */
28
29
#ifndef nsHtml5StackNode_h
30
#define nsHtml5StackNode_h
31
32
#include "nsAtom.h"
33
#include "nsHtml5AtomTable.h"
34
#include "nsHtml5String.h"
35
#include "nsNameSpaceManager.h"
36
#include "nsIContent.h"
37
#include "nsTraceRefcnt.h"
38
#include "jArray.h"
39
#include "nsHtml5ArrayCopy.h"
40
#include "nsAHtml5TreeBuilderState.h"
41
#include "nsGkAtoms.h"
42
#include "nsHtml5ByteReadable.h"
43
#include "nsHtml5Macros.h"
44
#include "nsIContentHandle.h"
45
#include "nsHtml5Portability.h"
46
#include "nsHtml5ContentCreatorFunction.h"
47
48
class nsHtml5StreamParser;
49
50
class nsHtml5AttributeName;
51
class nsHtml5ElementName;
52
class nsHtml5Tokenizer;
53
class nsHtml5TreeBuilder;
54
class nsHtml5MetaScanner;
55
class nsHtml5UTF16Buffer;
56
class nsHtml5StateSnapshot;
57
class nsHtml5Portability;
58
59
class nsHtml5StackNode
60
{
61
public:
62
  int32_t idxInTreeBuilder;
63
  int32_t flags;
64
  nsAtom* name;
65
  nsAtom* popName;
66
  int32_t ns;
67
  nsIContentHandle* node;
68
  nsHtml5HtmlAttributes* attributes;
69
70
private:
71
  int32_t refcount;
72
  mozilla::dom::HTMLContentCreatorFunction htmlCreator;
73
74
public:
75
0
  inline int32_t getFlags() { return flags; }
76
77
  int32_t getGroup();
78
  bool isScoping();
79
  bool isSpecial();
80
  bool isFosterParenting();
81
  bool isHtmlIntegrationPoint();
82
  explicit nsHtml5StackNode(int32_t idxInTreeBuilder);
83
  mozilla::dom::HTMLContentCreatorFunction getHtmlCreator();
84
  void setValues(int32_t flags,
85
                 int32_t ns,
86
                 nsAtom* name,
87
                 nsIContentHandle* node,
88
                 nsAtom* popName,
89
                 nsHtml5HtmlAttributes* attributes,
90
                 mozilla::dom::HTMLContentCreatorFunction htmlCreator);
91
  void setValues(nsHtml5ElementName* elementName, nsIContentHandle* node);
92
  void setValues(nsHtml5ElementName* elementName,
93
                 nsIContentHandle* node,
94
                 nsHtml5HtmlAttributes* attributes);
95
  void setValues(nsHtml5ElementName* elementName,
96
                 nsIContentHandle* node,
97
                 nsAtom* popName);
98
  void setValues(nsHtml5ElementName* elementName,
99
                 nsAtom* popName,
100
                 nsIContentHandle* node);
101
  void setValues(nsHtml5ElementName* elementName,
102
                 nsIContentHandle* node,
103
                 nsAtom* popName,
104
                 bool markAsIntegrationPoint);
105
106
private:
107
  static int32_t prepareSvgFlags(int32_t flags);
108
  static int32_t prepareMathFlags(int32_t flags, bool markAsIntegrationPoint);
109
110
public:
111
  ~nsHtml5StackNode();
112
  void dropAttributes();
113
  void retain();
114
  void release(nsHtml5TreeBuilder* owningTreeBuilder);
115
  bool isUnused();
116
  static void initializeStatics();
117
  static void releaseStatics();
118
};
119
120
#endif