1 /*
2  * Copyright (c) 2008-2017 Mozilla Foundation
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20  * DEALINGS IN THE SOFTWARE.
21  */
22 
23 /*
24  * THIS IS A GENERATED FILE. PLEASE DO NOT EDIT.
25  * Please edit AttributeName.java instead and regenerate.
26  */
27 
28 #ifndef nsHtml5AttributeName_h
29 #define nsHtml5AttributeName_h
30 
31 #include "nsAtom.h"
32 #include "nsHtml5AtomTable.h"
33 #include "nsHtml5String.h"
34 #include "nsNameSpaceManager.h"
35 #include "nsIContent.h"
36 #include "nsTraceRefcnt.h"
37 #include "jArray.h"
38 #include "nsHtml5ArrayCopy.h"
39 #include "nsAHtml5TreeBuilderState.h"
40 #include "nsGkAtoms.h"
41 #include "nsHtml5ByteReadable.h"
42 #include "nsHtml5Macros.h"
43 #include "nsIContentHandle.h"
44 #include "nsHtml5Portability.h"
45 #include "nsHtml5ContentCreatorFunction.h"
46 
47 class nsHtml5StreamParser;
48 
49 class nsHtml5ElementName;
50 class nsHtml5Tokenizer;
51 class nsHtml5TreeBuilder;
52 class nsHtml5MetaScanner;
53 class nsHtml5UTF16Buffer;
54 class nsHtml5StateSnapshot;
55 class nsHtml5Portability;
56 
57 class nsHtml5AttributeName {
58  public:
59   static int32_t* ALL_NO_NS;
60 
61  private:
62   static int32_t* XMLNS_NS;
63   static int32_t* XML_NS;
64   static int32_t* XLINK_NS;
65 
66  public:
67   static nsStaticAtom** ALL_NO_PREFIX;
68 
69  private:
70   static nsStaticAtom** XMLNS_PREFIX;
71   static nsStaticAtom** XLINK_PREFIX;
72   static nsStaticAtom** XML_PREFIX;
73   static RefPtr<nsAtom>* SVG_DIFFERENT(nsAtom* name, nsAtom* camel);
74   static RefPtr<nsAtom>* MATH_DIFFERENT(nsAtom* name, nsAtom* camel);
75   static RefPtr<nsAtom>* COLONIFIED_LOCAL(nsAtom* name, nsAtom* suffix);
76 
77  public:
78   static RefPtr<nsAtom>* SAME_LOCAL(nsAtom* name);
levelOrderBinarySearch(jArray<int32_t,int32_t> data,int32_t key)79   inline static int32_t levelOrderBinarySearch(jArray<int32_t, int32_t> data,
80                                                int32_t key) {
81     int32_t n = data.length;
82     int32_t i = 0;
83     while (i < n) {
84       int32_t val = data[i];
85       if (val < key) {
86         i = 2 * i + 2;
87       } else if (val > key) {
88         i = 2 * i + 1;
89       } else {
90         return i;
91       }
92     }
93     return -1;
94   }
95 
nameByBuffer(char16_t * buf,int32_t length,nsHtml5AtomTable * interner)96   inline static nsHtml5AttributeName* nameByBuffer(char16_t* buf,
97                                                    int32_t length,
98                                                    nsHtml5AtomTable* interner) {
99     uint32_t hash = nsHtml5AttributeName::bufToHash(buf, length);
100     jArray<int32_t, int32_t> hashes;
101     hashes = nsHtml5AttributeName::ATTRIBUTE_HASHES;
102     int32_t index = levelOrderBinarySearch(hashes, hash);
103     if (index < 0) {
104       return nullptr;
105     }
106     nsHtml5AttributeName* attributeName =
107         nsHtml5AttributeName::ATTRIBUTE_NAMES[index];
108     nsAtom* name = attributeName->getLocal(0);
109     if (!nsHtml5Portability::localEqualsBuffer(name, buf, length)) {
110       return nullptr;
111     }
112     return attributeName;
113   }
114 
115  private:
bufToHash(char16_t * buf,int32_t length)116   inline static uint32_t bufToHash(char16_t* buf, int32_t length) {
117     uint32_t len = length;
118     uint32_t first = buf[0];
119     first <<= 19;
120     uint32_t second = 1 << 23;
121     uint32_t third = 0;
122     uint32_t fourth = 0;
123     uint32_t fifth = 0;
124     uint32_t sixth = 0;
125     if (length >= 4) {
126       second = buf[length - 4];
127       second <<= 4;
128       third = buf[1];
129       third <<= 9;
130       fourth = buf[length - 2];
131       fourth <<= 14;
132       fifth = buf[3];
133       fifth <<= 24;
134       sixth = buf[length - 1];
135       sixth <<= 11;
136     } else if (length == 3) {
137       second = buf[1];
138       second <<= 4;
139       third = buf[2];
140       third <<= 9;
141     } else if (length == 2) {
142       second = buf[1];
143       second <<= 24;
144     }
145     return len + first + second + third + fourth + fifth + sixth;
146   }
147 
148  public:
149   static const int32_t HTML = 0;
150 
151   static const int32_t MATHML = 1;
152 
153   static const int32_t SVG = 2;
154 
155  private:
156   int32_t* uri;
157   RefPtr<nsAtom>* local;
158   nsStaticAtom** prefix;
159   bool custom;
160   nsHtml5AttributeName(int32_t* uri, RefPtr<nsAtom>* local,
161                        nsStaticAtom** prefix);
162 
163  public:
164   nsHtml5AttributeName();
isInterned()165   inline bool isInterned() { return !custom; }
166 
setNameForNonInterned(nsAtom * name)167   inline void setNameForNonInterned(nsAtom* name) {
168     MOZ_ASSERT(custom);
169     local[0] = name;
170     local[1] = name;
171     local[2] = name;
172   }
173 
174   static nsHtml5AttributeName* createAttributeName(nsAtom* name);
175   ~nsHtml5AttributeName();
176   int32_t getUri(int32_t mode);
177   nsAtom* getLocal(int32_t mode);
178   nsStaticAtom* getPrefix(int32_t mode);
179   bool equalsAnother(nsHtml5AttributeName* another);
180   static nsHtml5AttributeName* ATTR_ALT;
181   static nsHtml5AttributeName* ATTR_DIR;
182   static nsHtml5AttributeName* ATTR_DUR;
183   static nsHtml5AttributeName* ATTR_END;
184   static nsHtml5AttributeName* ATTR_FOR;
185   static nsHtml5AttributeName* ATTR_IN2;
186   static nsHtml5AttributeName* ATTR_LOW;
187   static nsHtml5AttributeName* ATTR_MIN;
188   static nsHtml5AttributeName* ATTR_MAX;
189   static nsHtml5AttributeName* ATTR_REL;
190   static nsHtml5AttributeName* ATTR_REV;
191   static nsHtml5AttributeName* ATTR_SRC;
192   static nsHtml5AttributeName* ATTR_D;
193   static nsHtml5AttributeName* ATTR_R;
194   static nsHtml5AttributeName* ATTR_X;
195   static nsHtml5AttributeName* ATTR_Y;
196   static nsHtml5AttributeName* ATTR_Z;
197   static nsHtml5AttributeName* ATTR_K1;
198   static nsHtml5AttributeName* ATTR_X1;
199   static nsHtml5AttributeName* ATTR_Y1;
200   static nsHtml5AttributeName* ATTR_K2;
201   static nsHtml5AttributeName* ATTR_X2;
202   static nsHtml5AttributeName* ATTR_Y2;
203   static nsHtml5AttributeName* ATTR_K3;
204   static nsHtml5AttributeName* ATTR_K4;
205   static nsHtml5AttributeName* ATTR_XML_SPACE;
206   static nsHtml5AttributeName* ATTR_XML_LANG;
207   static nsHtml5AttributeName* ATTR_ARIA_GRAB;
208   static nsHtml5AttributeName* ATTR_ARIA_VALUEMAX;
209   static nsHtml5AttributeName* ATTR_ARIA_LABELLEDBY;
210   static nsHtml5AttributeName* ATTR_ARIA_DESCRIBEDBY;
211   static nsHtml5AttributeName* ATTR_ARIA_DISABLED;
212   static nsHtml5AttributeName* ATTR_ARIA_CHECKED;
213   static nsHtml5AttributeName* ATTR_ARIA_SELECTED;
214   static nsHtml5AttributeName* ATTR_ARIA_DROPEFFECT;
215   static nsHtml5AttributeName* ATTR_ARIA_REQUIRED;
216   static nsHtml5AttributeName* ATTR_ARIA_EXPANDED;
217   static nsHtml5AttributeName* ATTR_ARIA_PRESSED;
218   static nsHtml5AttributeName* ATTR_ARIA_LEVEL;
219   static nsHtml5AttributeName* ATTR_ARIA_CHANNEL;
220   static nsHtml5AttributeName* ATTR_ARIA_HIDDEN;
221   static nsHtml5AttributeName* ATTR_ARIA_SECRET;
222   static nsHtml5AttributeName* ATTR_ARIA_POSINSET;
223   static nsHtml5AttributeName* ATTR_ARIA_ATOMIC;
224   static nsHtml5AttributeName* ATTR_ARIA_INVALID;
225   static nsHtml5AttributeName* ATTR_ARIA_TEMPLATEID;
226   static nsHtml5AttributeName* ATTR_ARIA_VALUEMIN;
227   static nsHtml5AttributeName* ATTR_ARIA_MULTISELECTABLE;
228   static nsHtml5AttributeName* ATTR_ARIA_CONTROLS;
229   static nsHtml5AttributeName* ATTR_ARIA_MULTILINE;
230   static nsHtml5AttributeName* ATTR_ARIA_READONLY;
231   static nsHtml5AttributeName* ATTR_ARIA_OWNS;
232   static nsHtml5AttributeName* ATTR_ARIA_ACTIVEDESCENDANT;
233   static nsHtml5AttributeName* ATTR_ARIA_RELEVANT;
234   static nsHtml5AttributeName* ATTR_ARIA_DATATYPE;
235   static nsHtml5AttributeName* ATTR_ARIA_VALUENOW;
236   static nsHtml5AttributeName* ATTR_ARIA_SORT;
237   static nsHtml5AttributeName* ATTR_ARIA_AUTOCOMPLETE;
238   static nsHtml5AttributeName* ATTR_ARIA_FLOWTO;
239   static nsHtml5AttributeName* ATTR_ARIA_BUSY;
240   static nsHtml5AttributeName* ATTR_ARIA_LIVE;
241   static nsHtml5AttributeName* ATTR_ARIA_HASPOPUP;
242   static nsHtml5AttributeName* ATTR_ARIA_SETSIZE;
243   static nsHtml5AttributeName* ATTR_CLEAR;
244   static nsHtml5AttributeName* ATTR_DISABLED;
245   static nsHtml5AttributeName* ATTR_DEFAULT;
246   static nsHtml5AttributeName* ATTR_DATA;
247   static nsHtml5AttributeName* ATTR_EQUALCOLUMNS;
248   static nsHtml5AttributeName* ATTR_EQUALROWS;
249   static nsHtml5AttributeName* ATTR_HSPACE;
250   static nsHtml5AttributeName* ATTR_ISMAP;
251   static nsHtml5AttributeName* ATTR_LOCAL;
252   static nsHtml5AttributeName* ATTR_LSPACE;
253   static nsHtml5AttributeName* ATTR_MOVABLELIMITS;
254   static nsHtml5AttributeName* ATTR_NOTATION;
255   static nsHtml5AttributeName* ATTR_ONDATAAVAILABLE;
256   static nsHtml5AttributeName* ATTR_ONPASTE;
257   static nsHtml5AttributeName* ATTR_RSPACE;
258   static nsHtml5AttributeName* ATTR_ROWALIGN;
259   static nsHtml5AttributeName* ATTR_ROTATE;
260   static nsHtml5AttributeName* ATTR_SEPARATOR;
261   static nsHtml5AttributeName* ATTR_SEPARATORS;
262   static nsHtml5AttributeName* ATTR_VSPACE;
263   static nsHtml5AttributeName* ATTR_XCHANNELSELECTOR;
264   static nsHtml5AttributeName* ATTR_YCHANNELSELECTOR;
265   static nsHtml5AttributeName* ATTR_ENABLE_BACKGROUND;
266   static nsHtml5AttributeName* ATTR_ONDBLCLICK;
267   static nsHtml5AttributeName* ATTR_ONABORT;
268   static nsHtml5AttributeName* ATTR_CALCMODE;
269   static nsHtml5AttributeName* ATTR_CHECKED;
270   static nsHtml5AttributeName* ATTR_FENCE;
271   static nsHtml5AttributeName* ATTR_ONSCROLL;
272   static nsHtml5AttributeName* ATTR_ONACTIVATE;
273   static nsHtml5AttributeName* ATTR_OPACITY;
274   static nsHtml5AttributeName* ATTR_SPACING;
275   static nsHtml5AttributeName* ATTR_SPECULAREXPONENT;
276   static nsHtml5AttributeName* ATTR_SPECULARCONSTANT;
277   static nsHtml5AttributeName* ATTR_BORDER;
278   static nsHtml5AttributeName* ATTR_ID;
279   static nsHtml5AttributeName* ATTR_GRADIENTTRANSFORM;
280   static nsHtml5AttributeName* ATTR_GRADIENTUNITS;
281   static nsHtml5AttributeName* ATTR_HIDDEN;
282   static nsHtml5AttributeName* ATTR_HEADERS;
283   static nsHtml5AttributeName* ATTR_LOADING;
284   static nsHtml5AttributeName* ATTR_READONLY;
285   static nsHtml5AttributeName* ATTR_RENDERING_INTENT;
286   static nsHtml5AttributeName* ATTR_SEED;
287   static nsHtml5AttributeName* ATTR_SRCDOC;
288   static nsHtml5AttributeName* ATTR_STDDEVIATION;
289   static nsHtml5AttributeName* ATTR_SANDBOX;
290   static nsHtml5AttributeName* ATTR_WORD_SPACING;
291   static nsHtml5AttributeName* ATTR_ACCENTUNDER;
292   static nsHtml5AttributeName* ATTR_ACCEPT_CHARSET;
293   static nsHtml5AttributeName* ATTR_ACCESSKEY;
294   static nsHtml5AttributeName* ATTR_ACCENT;
295   static nsHtml5AttributeName* ATTR_ACCEPT;
296   static nsHtml5AttributeName* ATTR_BEVELLED;
297   static nsHtml5AttributeName* ATTR_BASEFREQUENCY;
298   static nsHtml5AttributeName* ATTR_BASELINE_SHIFT;
299   static nsHtml5AttributeName* ATTR_BASEPROFILE;
300   static nsHtml5AttributeName* ATTR_BASELINE;
301   static nsHtml5AttributeName* ATTR_BASE;
302   static nsHtml5AttributeName* ATTR_CODE;
303   static nsHtml5AttributeName* ATTR_CODETYPE;
304   static nsHtml5AttributeName* ATTR_CODEBASE;
305   static nsHtml5AttributeName* ATTR_CITE;
306   static nsHtml5AttributeName* ATTR_DEFER;
307   static nsHtml5AttributeName* ATTR_DATETIME;
308   static nsHtml5AttributeName* ATTR_DIRECTION;
309   static nsHtml5AttributeName* ATTR_EDGEMODE;
310   static nsHtml5AttributeName* ATTR_EDGE;
311   static nsHtml5AttributeName* ATTR_ENTERKEYHINT;
312   static nsHtml5AttributeName* ATTR_FACE;
313   static nsHtml5AttributeName* ATTR_INDEX;
314   static nsHtml5AttributeName* ATTR_INTERCEPT;
315   static nsHtml5AttributeName* ATTR_INTEGRITY;
316   static nsHtml5AttributeName* ATTR_LINEBREAK;
317   static nsHtml5AttributeName* ATTR_LABEL;
318   static nsHtml5AttributeName* ATTR_LINETHICKNESS;
319   static nsHtml5AttributeName* ATTR_MODE;
320   static nsHtml5AttributeName* ATTR_NAME;
321   static nsHtml5AttributeName* ATTR_NORESIZE;
322   static nsHtml5AttributeName* ATTR_ONBEFOREUNLOAD;
323   static nsHtml5AttributeName* ATTR_ONREPEAT;
324   static nsHtml5AttributeName* ATTR_OBJECT;
325   static nsHtml5AttributeName* ATTR_ONSELECT;
326   static nsHtml5AttributeName* ATTR_ORDER;
327   static nsHtml5AttributeName* ATTR_OTHER;
328   static nsHtml5AttributeName* ATTR_ONRESET;
329   static nsHtml5AttributeName* ATTR_ONREADYSTATECHANGE;
330   static nsHtml5AttributeName* ATTR_ONMESSAGE;
331   static nsHtml5AttributeName* ATTR_ONBEGIN;
332   static nsHtml5AttributeName* ATTR_ONBEFOREPRINT;
333   static nsHtml5AttributeName* ATTR_ORIENT;
334   static nsHtml5AttributeName* ATTR_ORIENTATION;
335   static nsHtml5AttributeName* ATTR_ONBEFORECOPY;
336   static nsHtml5AttributeName* ATTR_ONSELECTSTART;
337   static nsHtml5AttributeName* ATTR_ONBEFOREPASTE;
338   static nsHtml5AttributeName* ATTR_ONKEYPRESS;
339   static nsHtml5AttributeName* ATTR_ONKEYUP;
340   static nsHtml5AttributeName* ATTR_ONBEFORECUT;
341   static nsHtml5AttributeName* ATTR_ONKEYDOWN;
342   static nsHtml5AttributeName* ATTR_ONRESIZE;
343   static nsHtml5AttributeName* ATTR_REPEAT;
344   static nsHtml5AttributeName* ATTR_REFERRERPOLICY;
345   static nsHtml5AttributeName* ATTR_RULES;
346   static nsHtml5AttributeName* ATTR_ROLE;
347   static nsHtml5AttributeName* ATTR_REPEATCOUNT;
348   static nsHtml5AttributeName* ATTR_REPEATDUR;
349   static nsHtml5AttributeName* ATTR_SELECTED;
350   static nsHtml5AttributeName* ATTR_SIZES;
351   static nsHtml5AttributeName* ATTR_SUPERSCRIPTSHIFT;
352   static nsHtml5AttributeName* ATTR_STRETCHY;
353   static nsHtml5AttributeName* ATTR_SCHEME;
354   static nsHtml5AttributeName* ATTR_SPREADMETHOD;
355   static nsHtml5AttributeName* ATTR_SELECTION;
356   static nsHtml5AttributeName* ATTR_SIZE;
357   static nsHtml5AttributeName* ATTR_TYPE;
358   static nsHtml5AttributeName* ATTR_DIFFUSECONSTANT;
359   static nsHtml5AttributeName* ATTR_HREF;
360   static nsHtml5AttributeName* ATTR_HREFLANG;
361   static nsHtml5AttributeName* ATTR_ONAFTERPRINT;
362   static nsHtml5AttributeName* ATTR_PROFILE;
363   static nsHtml5AttributeName* ATTR_SURFACESCALE;
364   static nsHtml5AttributeName* ATTR_XREF;
365   static nsHtml5AttributeName* ATTR_ALIGN;
366   static nsHtml5AttributeName* ATTR_ALIGNMENT_BASELINE;
367   static nsHtml5AttributeName* ATTR_ALIGNMENTSCOPE;
368   static nsHtml5AttributeName* ATTR_DRAGGABLE;
369   static nsHtml5AttributeName* ATTR_HEIGHT;
370   static nsHtml5AttributeName* ATTR_IMAGESIZES;
371   static nsHtml5AttributeName* ATTR_IMAGESRCSET;
372   static nsHtml5AttributeName* ATTR_IMAGE_RENDERING;
373   static nsHtml5AttributeName* ATTR_LANGUAGE;
374   static nsHtml5AttributeName* ATTR_LANG;
375   static nsHtml5AttributeName* ATTR_LARGEOP;
376   static nsHtml5AttributeName* ATTR_LONGDESC;
377   static nsHtml5AttributeName* ATTR_LENGTHADJUST;
378   static nsHtml5AttributeName* ATTR_MARGINHEIGHT;
379   static nsHtml5AttributeName* ATTR_MARGINWIDTH;
380   static nsHtml5AttributeName* ATTR_ORIGIN;
381   static nsHtml5AttributeName* ATTR_PING;
382   static nsHtml5AttributeName* ATTR_TARGET;
383   static nsHtml5AttributeName* ATTR_TARGETX;
384   static nsHtml5AttributeName* ATTR_TARGETY;
385   static nsHtml5AttributeName* ATTR_ARCHIVE;
386   static nsHtml5AttributeName* ATTR_HIGH;
387   static nsHtml5AttributeName* ATTR_LIGHTING_COLOR;
388   static nsHtml5AttributeName* ATTR_MATHBACKGROUND;
389   static nsHtml5AttributeName* ATTR_METHOD;
390   static nsHtml5AttributeName* ATTR_MATHVARIANT;
391   static nsHtml5AttributeName* ATTR_MATHCOLOR;
392   static nsHtml5AttributeName* ATTR_MATHSIZE;
393   static nsHtml5AttributeName* ATTR_NOSHADE;
394   static nsHtml5AttributeName* ATTR_ONCHANGE;
395   static nsHtml5AttributeName* ATTR_PATHLENGTH;
396   static nsHtml5AttributeName* ATTR_PATH;
397   static nsHtml5AttributeName* ATTR_ALTIMG;
398   static nsHtml5AttributeName* ATTR_ACTIONTYPE;
399   static nsHtml5AttributeName* ATTR_ACTION;
400   static nsHtml5AttributeName* ATTR_ACTIVE;
401   static nsHtml5AttributeName* ATTR_ADDITIVE;
402   static nsHtml5AttributeName* ATTR_BEGIN;
403   static nsHtml5AttributeName* ATTR_DOMINANT_BASELINE;
404   static nsHtml5AttributeName* ATTR_DIVISOR;
405   static nsHtml5AttributeName* ATTR_DEFINITIONURL;
406   static nsHtml5AttributeName* ATTR_LIMITINGCONEANGLE;
407   static nsHtml5AttributeName* ATTR_MEDIA;
408   static nsHtml5AttributeName* ATTR_MANIFEST;
409   static nsHtml5AttributeName* ATTR_ONFINISH;
410   static nsHtml5AttributeName* ATTR_OPTIMUM;
411   static nsHtml5AttributeName* ATTR_RADIOGROUP;
412   static nsHtml5AttributeName* ATTR_RADIUS;
413   static nsHtml5AttributeName* ATTR_SCRIPTLEVEL;
414   static nsHtml5AttributeName* ATTR_SCRIPTSIZEMULTIPLIER;
415   static nsHtml5AttributeName* ATTR_SCRIPTMINSIZE;
416   static nsHtml5AttributeName* ATTR_TABINDEX;
417   static nsHtml5AttributeName* ATTR_VALIGN;
418   static nsHtml5AttributeName* ATTR_VISIBILITY;
419   static nsHtml5AttributeName* ATTR_BACKGROUND;
420   static nsHtml5AttributeName* ATTR_LINK;
421   static nsHtml5AttributeName* ATTR_MARKER_MID;
422   static nsHtml5AttributeName* ATTR_MARKERHEIGHT;
423   static nsHtml5AttributeName* ATTR_MARKER_END;
424   static nsHtml5AttributeName* ATTR_MASK;
425   static nsHtml5AttributeName* ATTR_MARKER_START;
426   static nsHtml5AttributeName* ATTR_MARKERWIDTH;
427   static nsHtml5AttributeName* ATTR_MASKUNITS;
428   static nsHtml5AttributeName* ATTR_MARKERUNITS;
429   static nsHtml5AttributeName* ATTR_MASKCONTENTUNITS;
430   static nsHtml5AttributeName* ATTR_AMPLITUDE;
431   static nsHtml5AttributeName* ATTR_CELLSPACING;
432   static nsHtml5AttributeName* ATTR_CELLPADDING;
433   static nsHtml5AttributeName* ATTR_DECLARE;
434   static nsHtml5AttributeName* ATTR_FILL_RULE;
435   static nsHtml5AttributeName* ATTR_FILL;
436   static nsHtml5AttributeName* ATTR_FILL_OPACITY;
437   static nsHtml5AttributeName* ATTR_MAXLENGTH;
438   static nsHtml5AttributeName* ATTR_ONCLICK;
439   static nsHtml5AttributeName* ATTR_ONBLUR;
440   static nsHtml5AttributeName* ATTR_REPLACE;
441   static nsHtml5AttributeName* ATTR_ROWLINES;
442   static nsHtml5AttributeName* ATTR_SCALE;
443   static nsHtml5AttributeName* ATTR_STYLE;
444   static nsHtml5AttributeName* ATTR_TABLEVALUES;
445   static nsHtml5AttributeName* ATTR_TITLE;
446   static nsHtml5AttributeName* ATTR_AZIMUTH;
447   static nsHtml5AttributeName* ATTR_FORMAT;
448   static nsHtml5AttributeName* ATTR_FRAMEBORDER;
449   static nsHtml5AttributeName* ATTR_FRAME;
450   static nsHtml5AttributeName* ATTR_FRAMESPACING;
451   static nsHtml5AttributeName* ATTR_FROM;
452   static nsHtml5AttributeName* ATTR_FORM;
453   static nsHtml5AttributeName* ATTR_PROMPT;
454   static nsHtml5AttributeName* ATTR_PRIMITIVEUNITS;
455   static nsHtml5AttributeName* ATTR_SYMMETRIC;
456   static nsHtml5AttributeName* ATTR_SUMMARY;
457   static nsHtml5AttributeName* ATTR_USEMAP;
458   static nsHtml5AttributeName* ATTR_ZOOMANDPAN;
459   static nsHtml5AttributeName* ATTR_ASYNC;
460   static nsHtml5AttributeName* ATTR_ALINK;
461   static nsHtml5AttributeName* ATTR_IN;
462   static nsHtml5AttributeName* ATTR_ICON;
463   static nsHtml5AttributeName* ATTR_KERNELMATRIX;
464   static nsHtml5AttributeName* ATTR_KERNING;
465   static nsHtml5AttributeName* ATTR_KERNELUNITLENGTH;
466   static nsHtml5AttributeName* ATTR_ONUNLOAD;
467   static nsHtml5AttributeName* ATTR_OPEN;
468   static nsHtml5AttributeName* ATTR_ONINVALID;
469   static nsHtml5AttributeName* ATTR_ONEND;
470   static nsHtml5AttributeName* ATTR_ONINPUT;
471   static nsHtml5AttributeName* ATTR_POINTER_EVENTS;
472   static nsHtml5AttributeName* ATTR_POINTS;
473   static nsHtml5AttributeName* ATTR_POINTSATX;
474   static nsHtml5AttributeName* ATTR_POINTSATY;
475   static nsHtml5AttributeName* ATTR_POINTSATZ;
476   static nsHtml5AttributeName* ATTR_SPAN;
477   static nsHtml5AttributeName* ATTR_STANDBY;
478   static nsHtml5AttributeName* ATTR_TRANSFORM_ORIGIN;
479   static nsHtml5AttributeName* ATTR_TRANSFORM;
480   static nsHtml5AttributeName* ATTR_VLINK;
481   static nsHtml5AttributeName* ATTR_WHEN;
482   static nsHtml5AttributeName* ATTR_XLINK_HREF;
483   static nsHtml5AttributeName* ATTR_XLINK_TITLE;
484   static nsHtml5AttributeName* ATTR_XLINK_ROLE;
485   static nsHtml5AttributeName* ATTR_XLINK_ARCROLE;
486   static nsHtml5AttributeName* ATTR_XMLNS_XLINK;
487   static nsHtml5AttributeName* ATTR_XMLNS;
488   static nsHtml5AttributeName* ATTR_XLINK_TYPE;
489   static nsHtml5AttributeName* ATTR_XLINK_SHOW;
490   static nsHtml5AttributeName* ATTR_XLINK_ACTUATE;
491   static nsHtml5AttributeName* ATTR_AUTOPLAY;
492   static nsHtml5AttributeName* ATTR_AUTOCOMPLETE;
493   static nsHtml5AttributeName* ATTR_AUTOFOCUS;
494   static nsHtml5AttributeName* ATTR_AUTOCAPITALIZE;
495   static nsHtml5AttributeName* ATTR_BGCOLOR;
496   static nsHtml5AttributeName* ATTR_COLOR_PROFILE;
497   static nsHtml5AttributeName* ATTR_COLOR_RENDERING;
498   static nsHtml5AttributeName* ATTR_COLOR_INTERPOLATION;
499   static nsHtml5AttributeName* ATTR_COLOR;
500   static nsHtml5AttributeName* ATTR_COLOR_INTERPOLATION_FILTERS;
501   static nsHtml5AttributeName* ATTR_ENCODING;
502   static nsHtml5AttributeName* ATTR_EXPONENT;
503   static nsHtml5AttributeName* ATTR_FLOOD_COLOR;
504   static nsHtml5AttributeName* ATTR_FLOOD_OPACITY;
505   static nsHtml5AttributeName* ATTR_LQUOTE;
506   static nsHtml5AttributeName* ATTR_NUMOCTAVES;
507   static nsHtml5AttributeName* ATTR_NOMODULE;
508   static nsHtml5AttributeName* ATTR_ONLOAD;
509   static nsHtml5AttributeName* ATTR_ONMOUSEWHEEL;
510   static nsHtml5AttributeName* ATTR_ONMOUSEENTER;
511   static nsHtml5AttributeName* ATTR_ONMOUSEOVER;
512   static nsHtml5AttributeName* ATTR_ONFOCUSIN;
513   static nsHtml5AttributeName* ATTR_ONCONTEXTMENU;
514   static nsHtml5AttributeName* ATTR_ONZOOM;
515   static nsHtml5AttributeName* ATTR_ONCOPY;
516   static nsHtml5AttributeName* ATTR_ONMOUSELEAVE;
517   static nsHtml5AttributeName* ATTR_ONMOUSEMOVE;
518   static nsHtml5AttributeName* ATTR_ONMOUSEUP;
519   static nsHtml5AttributeName* ATTR_ONFOCUS;
520   static nsHtml5AttributeName* ATTR_ONMOUSEOUT;
521   static nsHtml5AttributeName* ATTR_ONFOCUSOUT;
522   static nsHtml5AttributeName* ATTR_ONMOUSEDOWN;
523   static nsHtml5AttributeName* ATTR_TO;
524   static nsHtml5AttributeName* ATTR_RQUOTE;
525   static nsHtml5AttributeName* ATTR_STROKE_LINECAP;
526   static nsHtml5AttributeName* ATTR_STROKE_DASHARRAY;
527   static nsHtml5AttributeName* ATTR_STROKE_DASHOFFSET;
528   static nsHtml5AttributeName* ATTR_STROKE_LINEJOIN;
529   static nsHtml5AttributeName* ATTR_STROKE_MITERLIMIT;
530   static nsHtml5AttributeName* ATTR_STROKE;
531   static nsHtml5AttributeName* ATTR_SCROLLING;
532   static nsHtml5AttributeName* ATTR_STROKE_WIDTH;
533   static nsHtml5AttributeName* ATTR_STROKE_OPACITY;
534   static nsHtml5AttributeName* ATTR_COMPACT;
535   static nsHtml5AttributeName* ATTR_CLIP;
536   static nsHtml5AttributeName* ATTR_CLIP_RULE;
537   static nsHtml5AttributeName* ATTR_CLIP_PATH;
538   static nsHtml5AttributeName* ATTR_CLIPPATHUNITS;
539   static nsHtml5AttributeName* ATTR_DISPLAY;
540   static nsHtml5AttributeName* ATTR_DISPLAYSTYLE;
541   static nsHtml5AttributeName* ATTR_GLYPH_ORIENTATION_VERTICAL;
542   static nsHtml5AttributeName* ATTR_GLYPH_ORIENTATION_HORIZONTAL;
543   static nsHtml5AttributeName* ATTR_GLYPHREF;
544   static nsHtml5AttributeName* ATTR_HTTP_EQUIV;
545   static nsHtml5AttributeName* ATTR_KEYPOINTS;
546   static nsHtml5AttributeName* ATTR_LOOP;
547   static nsHtml5AttributeName* ATTR_PROPERTY;
548   static nsHtml5AttributeName* ATTR_SCOPED;
549   static nsHtml5AttributeName* ATTR_STEP;
550   static nsHtml5AttributeName* ATTR_SHAPE_RENDERING;
551   static nsHtml5AttributeName* ATTR_SCOPE;
552   static nsHtml5AttributeName* ATTR_SHAPE;
553   static nsHtml5AttributeName* ATTR_SLOPE;
554   static nsHtml5AttributeName* ATTR_STOP_COLOR;
555   static nsHtml5AttributeName* ATTR_STOP_OPACITY;
556   static nsHtml5AttributeName* ATTR_TEMPLATE;
557   static nsHtml5AttributeName* ATTR_WRAP;
558   static nsHtml5AttributeName* ATTR_ABBR;
559   static nsHtml5AttributeName* ATTR_ATTRIBUTENAME;
560   static nsHtml5AttributeName* ATTR_ATTRIBUTETYPE;
561   static nsHtml5AttributeName* ATTR_CHAR;
562   static nsHtml5AttributeName* ATTR_COORDS;
563   static nsHtml5AttributeName* ATTR_CHAROFF;
564   static nsHtml5AttributeName* ATTR_CHARSET;
565   static nsHtml5AttributeName* ATTR_NOWRAP;
566   static nsHtml5AttributeName* ATTR_NOHREF;
567   static nsHtml5AttributeName* ATTR_ONDRAG;
568   static nsHtml5AttributeName* ATTR_ONDRAGENTER;
569   static nsHtml5AttributeName* ATTR_ONDRAGOVER;
570   static nsHtml5AttributeName* ATTR_ONDRAGEND;
571   static nsHtml5AttributeName* ATTR_ONDROP;
572   static nsHtml5AttributeName* ATTR_ONDRAGDROP;
573   static nsHtml5AttributeName* ATTR_ONERROR;
574   static nsHtml5AttributeName* ATTR_OPERATOR;
575   static nsHtml5AttributeName* ATTR_OVERFLOW;
576   static nsHtml5AttributeName* ATTR_ONDRAGSTART;
577   static nsHtml5AttributeName* ATTR_ONDRAGLEAVE;
578   static nsHtml5AttributeName* ATTR_STARTOFFSET;
579   static nsHtml5AttributeName* ATTR_START;
580   static nsHtml5AttributeName* ATTR_AS;
581   static nsHtml5AttributeName* ATTR_AXIS;
582   static nsHtml5AttributeName* ATTR_BIAS;
583   static nsHtml5AttributeName* ATTR_COLSPAN;
584   static nsHtml5AttributeName* ATTR_CLASSID;
585   static nsHtml5AttributeName* ATTR_CROSSORIGIN;
586   static nsHtml5AttributeName* ATTR_COLS;
587   static nsHtml5AttributeName* ATTR_CURSOR;
588   static nsHtml5AttributeName* ATTR_CLOSURE;
589   static nsHtml5AttributeName* ATTR_CLOSE;
590   static nsHtml5AttributeName* ATTR_CLASS;
591   static nsHtml5AttributeName* ATTR_IS;
592   static nsHtml5AttributeName* ATTR_KEYSYSTEM;
593   static nsHtml5AttributeName* ATTR_KEYSPLINES;
594   static nsHtml5AttributeName* ATTR_LOWSRC;
595   static nsHtml5AttributeName* ATTR_MAXSIZE;
596   static nsHtml5AttributeName* ATTR_MINSIZE;
597   static nsHtml5AttributeName* ATTR_OFFSET;
598   static nsHtml5AttributeName* ATTR_PRESERVEALPHA;
599   static nsHtml5AttributeName* ATTR_PRESERVEASPECTRATIO;
600   static nsHtml5AttributeName* ATTR_ROWSPAN;
601   static nsHtml5AttributeName* ATTR_ROWSPACING;
602   static nsHtml5AttributeName* ATTR_ROWS;
603   static nsHtml5AttributeName* ATTR_SRCSET;
604   static nsHtml5AttributeName* ATTR_SUBSCRIPTSHIFT;
605   static nsHtml5AttributeName* ATTR_VERSION;
606   static nsHtml5AttributeName* ATTR_ALTTEXT;
607   static nsHtml5AttributeName* ATTR_CONTENTEDITABLE;
608   static nsHtml5AttributeName* ATTR_CONTROLS;
609   static nsHtml5AttributeName* ATTR_CONTENT;
610   static nsHtml5AttributeName* ATTR_CONTEXTMENU;
611   static nsHtml5AttributeName* ATTR_DEPTH;
612   static nsHtml5AttributeName* ATTR_ENCTYPE;
613   static nsHtml5AttributeName* ATTR_FONT_STRETCH;
614   static nsHtml5AttributeName* ATTR_FILTER;
615   static nsHtml5AttributeName* ATTR_FONTWEIGHT;
616   static nsHtml5AttributeName* ATTR_FONT_WEIGHT;
617   static nsHtml5AttributeName* ATTR_FONTSTYLE;
618   static nsHtml5AttributeName* ATTR_FONT_STYLE;
619   static nsHtml5AttributeName* ATTR_FONTFAMILY;
620   static nsHtml5AttributeName* ATTR_FONT_FAMILY;
621   static nsHtml5AttributeName* ATTR_FONT_VARIANT;
622   static nsHtml5AttributeName* ATTR_FONT_SIZE_ADJUST;
623   static nsHtml5AttributeName* ATTR_FILTERUNITS;
624   static nsHtml5AttributeName* ATTR_FONTSIZE;
625   static nsHtml5AttributeName* ATTR_FONT_SIZE;
626   static nsHtml5AttributeName* ATTR_KEYTIMES;
627   static nsHtml5AttributeName* ATTR_LETTER_SPACING;
628   static nsHtml5AttributeName* ATTR_LIST;
629   static nsHtml5AttributeName* ATTR_MULTIPLE;
630   static nsHtml5AttributeName* ATTR_RT;
631   static nsHtml5AttributeName* ATTR_ONSTOP;
632   static nsHtml5AttributeName* ATTR_ONSTART;
633   static nsHtml5AttributeName* ATTR_POSTER;
634   static nsHtml5AttributeName* ATTR_PATTERNTRANSFORM;
635   static nsHtml5AttributeName* ATTR_PATTERN;
636   static nsHtml5AttributeName* ATTR_PATTERNUNITS;
637   static nsHtml5AttributeName* ATTR_PATTERNCONTENTUNITS;
638   static nsHtml5AttributeName* ATTR_RESTART;
639   static nsHtml5AttributeName* ATTR_STITCHTILES;
640   static nsHtml5AttributeName* ATTR_SYSTEMLANGUAGE;
641   static nsHtml5AttributeName* ATTR_TEXT_RENDERING;
642   static nsHtml5AttributeName* ATTR_TEXT_DECORATION;
643   static nsHtml5AttributeName* ATTR_TEXT_ANCHOR;
644   static nsHtml5AttributeName* ATTR_TEXTLENGTH;
645   static nsHtml5AttributeName* ATTR_TEXT;
646   static nsHtml5AttributeName* ATTR_WRITING_MODE;
647   static nsHtml5AttributeName* ATTR_WIDTH;
648   static nsHtml5AttributeName* ATTR_ACCUMULATE;
649   static nsHtml5AttributeName* ATTR_COLUMNSPAN;
650   static nsHtml5AttributeName* ATTR_COLUMNLINES;
651   static nsHtml5AttributeName* ATTR_COLUMNALIGN;
652   static nsHtml5AttributeName* ATTR_COLUMNSPACING;
653   static nsHtml5AttributeName* ATTR_COLUMNWIDTH;
654   static nsHtml5AttributeName* ATTR_GROUPALIGN;
655   static nsHtml5AttributeName* ATTR_INPUTMODE;
656   static nsHtml5AttributeName* ATTR_ONSUBMIT;
657   static nsHtml5AttributeName* ATTR_ONCUT;
658   static nsHtml5AttributeName* ATTR_REQUIRED;
659   static nsHtml5AttributeName* ATTR_REQUIREDFEATURES;
660   static nsHtml5AttributeName* ATTR_RESULT;
661   static nsHtml5AttributeName* ATTR_REQUIREDEXTENSIONS;
662   static nsHtml5AttributeName* ATTR_VALUES;
663   static nsHtml5AttributeName* ATTR_VALUETYPE;
664   static nsHtml5AttributeName* ATTR_VALUE;
665   static nsHtml5AttributeName* ATTR_ELEVATION;
666   static nsHtml5AttributeName* ATTR_VIEWTARGET;
667   static nsHtml5AttributeName* ATTR_VIEWBOX;
668   static nsHtml5AttributeName* ATTR_CX;
669   static nsHtml5AttributeName* ATTR_DX;
670   static nsHtml5AttributeName* ATTR_FX;
671   static nsHtml5AttributeName* ATTR_RX;
672   static nsHtml5AttributeName* ATTR_REFX;
673   static nsHtml5AttributeName* ATTR_BY;
674   static nsHtml5AttributeName* ATTR_CY;
675   static nsHtml5AttributeName* ATTR_DY;
676   static nsHtml5AttributeName* ATTR_FY;
677   static nsHtml5AttributeName* ATTR_RY;
678   static nsHtml5AttributeName* ATTR_REFY;
679 
680  private:
681   static nsHtml5AttributeName** ATTRIBUTE_NAMES;
682   static staticJArray<int32_t, int32_t> ATTRIBUTE_HASHES;
683 
684  public:
685   static void initializeStatics();
686   static void releaseStatics();
687 };
688 
689 #endif
690