1 /*
2 * Copyright (C) 2005 Apple Computer, Inc. All rights reserved.
3 * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
4 * Copyright (C) 2008 Martin Soto <soto@freedesktop.org>
5 * Copyright (C) 2010 Igalia S.L.
6 *
7 * This file is derived by hand from an automatically generated file.
8 * Keeping it up-to-date could potentially be done by adding
9 * a make_names.pl generator, or by writing a separate
10 * generater which takes JSHTMLElementWrapperFactory.h as input.
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
22 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
25 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
29 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34 #include "config.h"
35 #include "WebKitHTMLElementWrapperFactory.h"
36
37 #include "HTMLAnchorElement.h"
38 #include "HTMLAppletElement.h"
39 #include "HTMLAreaElement.h"
40 #include "HTMLAudioElement.h"
41 #include "HTMLBRElement.h"
42 #include "HTMLBaseElement.h"
43 #include "HTMLBaseFontElement.h"
44 #include "HTMLBlockquoteElement.h"
45 #include "HTMLBodyElement.h"
46 #include "HTMLButtonElement.h"
47 #include "HTMLCanvasElement.h"
48 #include "HTMLDListElement.h"
49 #include "HTMLDirectoryElement.h"
50 #include "HTMLDivElement.h"
51 #include "HTMLEmbedElement.h"
52 #include "HTMLFieldSetElement.h"
53 #include "HTMLFontElement.h"
54 #include "HTMLFormElement.h"
55 #include "HTMLFrameElement.h"
56 #include "HTMLFrameSetElement.h"
57 #include "HTMLHRElement.h"
58 #include "HTMLHeadElement.h"
59 #include "HTMLHeadingElement.h"
60 #include "HTMLHtmlElement.h"
61 #include "HTMLIFrameElement.h"
62 #include "HTMLImageElement.h"
63 #include "HTMLInputElement.h"
64 #include "HTMLIsIndexElement.h"
65 #include "HTMLKeygenElement.h"
66 #include "HTMLLIElement.h"
67 #include "HTMLLabelElement.h"
68 #include "HTMLLegendElement.h"
69 #include "HTMLLinkElement.h"
70 #include "HTMLMapElement.h"
71 #include "HTMLMarqueeElement.h"
72 #include "HTMLMenuElement.h"
73 #include "HTMLMetaElement.h"
74 #include "HTMLModElement.h"
75 #include "HTMLNames.h"
76 #include "HTMLOListElement.h"
77 #include "HTMLObjectElement.h"
78 #include "HTMLOptGroupElement.h"
79 #include "HTMLOptionElement.h"
80 #include "HTMLParagraphElement.h"
81 #include "HTMLParamElement.h"
82 #include "HTMLPreElement.h"
83 #include "HTMLQuoteElement.h"
84 #include "HTMLScriptElement.h"
85 #include "HTMLSelectElement.h"
86 #include "HTMLStyleElement.h"
87 #include "HTMLTableCaptionElement.h"
88 #include "HTMLTableCellElement.h"
89 #include "HTMLTableColElement.h"
90 #include "HTMLTableElement.h"
91 #include "HTMLTableRowElement.h"
92 #include "HTMLTableSectionElement.h"
93 #include "HTMLTextAreaElement.h"
94 #include "HTMLTitleElement.h"
95 #include "HTMLUListElement.h"
96 #include "HTMLVideoElement.h"
97
98 #include "webkit/WebKitDOMHTMLAnchorElementPrivate.h"
99 #include "webkit/WebKitDOMHTMLAppletElementPrivate.h"
100 #include "webkit/WebKitDOMHTMLAreaElementPrivate.h"
101 #include "webkit/WebKitDOMHTMLBRElementPrivate.h"
102 #include "webkit/WebKitDOMHTMLBaseElementPrivate.h"
103 #include "webkit/WebKitDOMHTMLBaseFontElementPrivate.h"
104 #include "webkit/WebKitDOMHTMLBlockquoteElementPrivate.h"
105 #include "webkit/WebKitDOMHTMLBodyElementPrivate.h"
106 #include "webkit/WebKitDOMHTMLButtonElementPrivate.h"
107 #include "webkit/WebKitDOMHTMLCanvasElementPrivate.h"
108 #include "webkit/WebKitDOMHTMLDListElementPrivate.h"
109 #include "webkit/WebKitDOMHTMLDirectoryElementPrivate.h"
110 #include "webkit/WebKitDOMHTMLDivElementPrivate.h"
111 #include "webkit/WebKitDOMHTMLElementPrivate.h"
112 #include "webkit/WebKitDOMHTMLEmbedElementPrivate.h"
113 #include "webkit/WebKitDOMHTMLFieldSetElementPrivate.h"
114 #include "webkit/WebKitDOMHTMLFontElementPrivate.h"
115 #include "webkit/WebKitDOMHTMLFormElementPrivate.h"
116 #include "webkit/WebKitDOMHTMLFrameElementPrivate.h"
117 #include "webkit/WebKitDOMHTMLFrameSetElementPrivate.h"
118 #include "webkit/WebKitDOMHTMLHRElementPrivate.h"
119 #include "webkit/WebKitDOMHTMLHeadElementPrivate.h"
120 #include "webkit/WebKitDOMHTMLHeadingElementPrivate.h"
121 #include "webkit/WebKitDOMHTMLHtmlElementPrivate.h"
122 #include "webkit/WebKitDOMHTMLIFrameElementPrivate.h"
123 #include "webkit/WebKitDOMHTMLImageElementPrivate.h"
124 #include "webkit/WebKitDOMHTMLInputElementPrivate.h"
125 #include "webkit/WebKitDOMHTMLIsIndexElementPrivate.h"
126 #include "webkit/WebKitDOMHTMLKeygenElementPrivate.h"
127 #include "webkit/WebKitDOMHTMLLIElementPrivate.h"
128 #include "webkit/WebKitDOMHTMLLabelElementPrivate.h"
129 #include "webkit/WebKitDOMHTMLLegendElementPrivate.h"
130 #include "webkit/WebKitDOMHTMLLinkElementPrivate.h"
131 #include "webkit/WebKitDOMHTMLMapElementPrivate.h"
132 #include "webkit/WebKitDOMHTMLMarqueeElementPrivate.h"
133 #include "webkit/WebKitDOMHTMLMenuElementPrivate.h"
134 #include "webkit/WebKitDOMHTMLMetaElementPrivate.h"
135 #include "webkit/WebKitDOMHTMLModElementPrivate.h"
136 #include "webkit/WebKitDOMHTMLOListElementPrivate.h"
137 #include "webkit/WebKitDOMHTMLObjectElementPrivate.h"
138 #include "webkit/WebKitDOMHTMLOptGroupElementPrivate.h"
139 #include "webkit/WebKitDOMHTMLOptionElementPrivate.h"
140 #include "webkit/WebKitDOMHTMLParagraphElementPrivate.h"
141 #include "webkit/WebKitDOMHTMLParamElementPrivate.h"
142 #include "webkit/WebKitDOMHTMLPreElementPrivate.h"
143 #include "webkit/WebKitDOMHTMLQuoteElementPrivate.h"
144 #include "webkit/WebKitDOMHTMLScriptElementPrivate.h"
145 #include "webkit/WebKitDOMHTMLSelectElementPrivate.h"
146 #include "webkit/WebKitDOMHTMLStyleElementPrivate.h"
147 #include "webkit/WebKitDOMHTMLTableCaptionElementPrivate.h"
148 #include "webkit/WebKitDOMHTMLTableCellElementPrivate.h"
149 #include "webkit/WebKitDOMHTMLTableColElementPrivate.h"
150 #include "webkit/WebKitDOMHTMLTableElementPrivate.h"
151 #include "webkit/WebKitDOMHTMLTableRowElementPrivate.h"
152 #include "webkit/WebKitDOMHTMLTableSectionElementPrivate.h"
153 #include "webkit/WebKitDOMHTMLTextAreaElementPrivate.h"
154 #include "webkit/WebKitDOMHTMLTitleElementPrivate.h"
155 #include "webkit/WebKitDOMHTMLUListElementPrivate.h"
156 #include "webkit/webkitdom.h"
157
158 #if ENABLE(VIDEO)
159 #include "webkit/WebKitDOMHTMLAudioElementPrivate.h"
160 #include "webkit/WebKitDOMHTMLVideoElementPrivate.h"
161 #endif
162
163 #include <wtf/text/CString.h>
164
165 namespace WebKit {
166
167 using namespace WebCore;
168 using namespace WebCore::HTMLNames;
169
170 typedef gpointer (*CreateHTMLElementWrapperFunction)(PassRefPtr<HTMLElement>);
171
createAnchorWrapper(PassRefPtr<HTMLElement> element)172 static gpointer createAnchorWrapper(PassRefPtr<HTMLElement> element)
173 {
174 return wrapHTMLAnchorElement(static_cast<HTMLAnchorElement*>(element.get()));
175 }
176
createAppletWrapper(PassRefPtr<HTMLElement> element)177 static gpointer createAppletWrapper(PassRefPtr<HTMLElement> element)
178 {
179 return wrapHTMLAppletElement(static_cast<HTMLAppletElement*>(element.get()));
180 }
181
createAreaWrapper(PassRefPtr<HTMLElement> element)182 static gpointer createAreaWrapper(PassRefPtr<HTMLElement> element)
183 {
184 return wrapHTMLAreaElement(static_cast<HTMLAreaElement*>(element.get()));
185 }
186
187 #if ENABLE(VIDEO)
createAudioWrapper(PassRefPtr<HTMLElement> element)188 static gpointer createAudioWrapper(PassRefPtr<HTMLElement> element)
189 {
190 return wrapHTMLAudioElement(static_cast<HTMLAudioElement*>(element.get()));
191 }
192
createVideoWrapper(PassRefPtr<HTMLElement> element)193 static gpointer createVideoWrapper(PassRefPtr<HTMLElement> element)
194 {
195 return wrapHTMLVideoElement(static_cast<HTMLVideoElement*>(element.get()));
196 }
197 #endif
198
createBaseWrapper(PassRefPtr<HTMLElement> element)199 static gpointer createBaseWrapper(PassRefPtr<HTMLElement> element)
200 {
201 return wrapHTMLBaseElement(static_cast<HTMLBaseElement*>(element.get()));
202 }
203
createBaseFontWrapper(PassRefPtr<HTMLElement> element)204 static gpointer createBaseFontWrapper(PassRefPtr<HTMLElement> element)
205 {
206 return wrapHTMLBaseFontElement(static_cast<HTMLBaseFontElement*>(element.get()));
207 }
208
createBlockquoteWrapper(PassRefPtr<HTMLElement> element)209 static gpointer createBlockquoteWrapper(PassRefPtr<HTMLElement> element)
210 {
211 return wrapHTMLBlockquoteElement(static_cast<HTMLBlockquoteElement*>(element.get()));
212 }
213
createBodyWrapper(PassRefPtr<HTMLElement> element)214 static gpointer createBodyWrapper(PassRefPtr<HTMLElement> element)
215 {
216 return wrapHTMLBodyElement(static_cast<HTMLBodyElement*>(element.get()));
217 }
218
createBRWrapper(PassRefPtr<HTMLElement> element)219 static gpointer createBRWrapper(PassRefPtr<HTMLElement> element)
220 {
221 return wrapHTMLBRElement(static_cast<HTMLBRElement*>(element.get()));
222 }
223
createButtonWrapper(PassRefPtr<HTMLElement> element)224 static gpointer createButtonWrapper(PassRefPtr<HTMLElement> element)
225 {
226 return wrapHTMLButtonElement(static_cast<HTMLButtonElement*>(element.get()));
227 }
228
createCanvasWrapper(PassRefPtr<HTMLElement> element)229 static gpointer createCanvasWrapper(PassRefPtr<HTMLElement> element)
230 {
231 return wrapHTMLCanvasElement(static_cast<HTMLCanvasElement*>(element.get()));
232 }
233
createTableCaptionWrapper(PassRefPtr<HTMLElement> element)234 static gpointer createTableCaptionWrapper(PassRefPtr<HTMLElement> element)
235 {
236 return wrapHTMLTableCaptionElement(static_cast<HTMLTableCaptionElement*>(element.get()));
237 }
238
createTableColWrapper(PassRefPtr<HTMLElement> element)239 static gpointer createTableColWrapper(PassRefPtr<HTMLElement> element)
240 {
241 return wrapHTMLTableColElement(static_cast<HTMLTableColElement*>(element.get()));
242 }
243
createModWrapper(PassRefPtr<HTMLElement> element)244 static gpointer createModWrapper(PassRefPtr<HTMLElement> element)
245 {
246 return wrapHTMLModElement(static_cast<HTMLModElement*>(element.get()));
247 }
248
createDirectoryWrapper(PassRefPtr<HTMLElement> element)249 static gpointer createDirectoryWrapper(PassRefPtr<HTMLElement> element)
250 {
251 return wrapHTMLDirectoryElement(static_cast<HTMLDirectoryElement*>(element.get()));
252 }
253
createDivWrapper(PassRefPtr<HTMLElement> element)254 static gpointer createDivWrapper(PassRefPtr<HTMLElement> element)
255 {
256 return wrapHTMLDivElement(static_cast<HTMLDivElement*>(element.get()));
257 }
258
createDListWrapper(PassRefPtr<HTMLElement> element)259 static gpointer createDListWrapper(PassRefPtr<HTMLElement> element)
260 {
261 return wrapHTMLDListElement(static_cast<HTMLDListElement*>(element.get()));
262 }
263
createEmbedWrapper(PassRefPtr<HTMLElement> element)264 static gpointer createEmbedWrapper(PassRefPtr<HTMLElement> element)
265 {
266 return wrapHTMLEmbedElement(static_cast<HTMLEmbedElement*>(element.get()));
267 }
268
createFieldSetWrapper(PassRefPtr<HTMLElement> element)269 static gpointer createFieldSetWrapper(PassRefPtr<HTMLElement> element)
270 {
271 return wrapHTMLFieldSetElement(static_cast<HTMLFieldSetElement*>(element.get()));
272 }
273
createFontWrapper(PassRefPtr<HTMLElement> element)274 static gpointer createFontWrapper(PassRefPtr<HTMLElement> element)
275 {
276 return wrapHTMLFontElement(static_cast<HTMLFontElement*>(element.get()));
277 }
278
createFormWrapper(PassRefPtr<HTMLElement> element)279 static gpointer createFormWrapper(PassRefPtr<HTMLElement> element)
280 {
281 return wrapHTMLFormElement(static_cast<HTMLFormElement*>(element.get()));
282 }
283
createFrameWrapper(PassRefPtr<HTMLElement> element)284 static gpointer createFrameWrapper(PassRefPtr<HTMLElement> element)
285 {
286 return wrapHTMLFrameElement(static_cast<HTMLFrameElement*>(element.get()));
287 }
288
createFrameSetWrapper(PassRefPtr<HTMLElement> element)289 static gpointer createFrameSetWrapper(PassRefPtr<HTMLElement> element)
290 {
291 return wrapHTMLFrameSetElement(static_cast<HTMLFrameSetElement*>(element.get()));
292 }
293
createHeadingWrapper(PassRefPtr<HTMLElement> element)294 static gpointer createHeadingWrapper(PassRefPtr<HTMLElement> element)
295 {
296 return wrapHTMLHeadingElement(static_cast<HTMLHeadingElement*>(element.get()));
297 }
298
createHeadWrapper(PassRefPtr<HTMLElement> element)299 static gpointer createHeadWrapper(PassRefPtr<HTMLElement> element)
300 {
301 return wrapHTMLHeadElement(static_cast<HTMLHeadElement*>(element.get()));
302 }
303
createHRWrapper(PassRefPtr<HTMLElement> element)304 static gpointer createHRWrapper(PassRefPtr<HTMLElement> element)
305 {
306 return wrapHTMLHRElement(static_cast<HTMLHRElement*>(element.get()));
307 }
308
createHtmlWrapper(PassRefPtr<HTMLElement> element)309 static gpointer createHtmlWrapper(PassRefPtr<HTMLElement> element)
310 {
311 return wrapHTMLHtmlElement(static_cast<HTMLHtmlElement*>(element.get()));
312 }
313
createIFrameWrapper(PassRefPtr<HTMLElement> element)314 static gpointer createIFrameWrapper(PassRefPtr<HTMLElement> element)
315 {
316 return wrapHTMLIFrameElement(static_cast<HTMLIFrameElement*>(element.get()));
317 }
318
createImageWrapper(PassRefPtr<HTMLElement> element)319 static gpointer createImageWrapper(PassRefPtr<HTMLElement> element)
320 {
321 return wrapHTMLImageElement(static_cast<HTMLImageElement*>(element.get()));
322 }
323
createInputWrapper(PassRefPtr<HTMLElement> element)324 static gpointer createInputWrapper(PassRefPtr<HTMLElement> element)
325 {
326 return wrapHTMLInputElement(static_cast<HTMLInputElement*>(element.get()));
327 }
328
createIsIndexWrapper(PassRefPtr<HTMLElement> element)329 static gpointer createIsIndexWrapper(PassRefPtr<HTMLElement> element)
330 {
331 return wrapHTMLIsIndexElement(static_cast<HTMLIsIndexElement*>(element.get()));
332 }
333
createKeygenWrapper(PassRefPtr<HTMLElement> element)334 static gpointer createKeygenWrapper(PassRefPtr<HTMLElement> element)
335 {
336 return wrapHTMLKeygenElement(static_cast<HTMLKeygenElement*>(element.get()));
337 }
338
createLabelWrapper(PassRefPtr<HTMLElement> element)339 static gpointer createLabelWrapper(PassRefPtr<HTMLElement> element)
340 {
341 return wrapHTMLLabelElement(static_cast<HTMLLabelElement*>(element.get()));
342 }
343
createLegendWrapper(PassRefPtr<HTMLElement> element)344 static gpointer createLegendWrapper(PassRefPtr<HTMLElement> element)
345 {
346 return wrapHTMLLegendElement(static_cast<HTMLLegendElement*>(element.get()));
347 }
348
createLIWrapper(PassRefPtr<HTMLElement> element)349 static gpointer createLIWrapper(PassRefPtr<HTMLElement> element)
350 {
351 return wrapHTMLLIElement(static_cast<HTMLLIElement*>(element.get()));
352 }
353
createLinkWrapper(PassRefPtr<HTMLElement> element)354 static gpointer createLinkWrapper(PassRefPtr<HTMLElement> element)
355 {
356 return wrapHTMLLinkElement(static_cast<HTMLLinkElement*>(element.get()));
357 }
358
createMapWrapper(PassRefPtr<HTMLElement> element)359 static gpointer createMapWrapper(PassRefPtr<HTMLElement> element)
360 {
361 return wrapHTMLMapElement(static_cast<HTMLMapElement*>(element.get()));
362 }
363
createMarqueeWrapper(PassRefPtr<HTMLElement> element)364 static gpointer createMarqueeWrapper(PassRefPtr<HTMLElement> element)
365 {
366 return wrapHTMLMarqueeElement(static_cast<HTMLMarqueeElement*>(element.get()));
367 }
368
createMenuWrapper(PassRefPtr<HTMLElement> element)369 static gpointer createMenuWrapper(PassRefPtr<HTMLElement> element)
370 {
371 return wrapHTMLMenuElement(static_cast<HTMLMenuElement*>(element.get()));
372 }
373
createMetaWrapper(PassRefPtr<HTMLElement> element)374 static gpointer createMetaWrapper(PassRefPtr<HTMLElement> element)
375 {
376 return wrapHTMLMetaElement(static_cast<HTMLMetaElement*>(element.get()));
377 }
378
createObjectWrapper(PassRefPtr<HTMLElement> element)379 static gpointer createObjectWrapper(PassRefPtr<HTMLElement> element)
380 {
381 return wrapHTMLObjectElement(static_cast<HTMLObjectElement*>(element.get()));
382 }
383
createOListWrapper(PassRefPtr<HTMLElement> element)384 static gpointer createOListWrapper(PassRefPtr<HTMLElement> element)
385 {
386 return wrapHTMLOListElement(static_cast<HTMLOListElement*>(element.get()));
387 }
388
createOptGroupWrapper(PassRefPtr<HTMLElement> element)389 static gpointer createOptGroupWrapper(PassRefPtr<HTMLElement> element)
390 {
391 return wrapHTMLOptGroupElement(static_cast<HTMLOptGroupElement*>(element.get()));
392 }
393
createOptionWrapper(PassRefPtr<HTMLElement> element)394 static gpointer createOptionWrapper(PassRefPtr<HTMLElement> element)
395 {
396 return wrapHTMLOptionElement(static_cast<HTMLOptionElement*>(element.get()));
397 }
398
createParagraphWrapper(PassRefPtr<HTMLElement> element)399 static gpointer createParagraphWrapper(PassRefPtr<HTMLElement> element)
400 {
401 return wrapHTMLParagraphElement(static_cast<HTMLParagraphElement*>(element.get()));
402 }
403
createParamWrapper(PassRefPtr<HTMLElement> element)404 static gpointer createParamWrapper(PassRefPtr<HTMLElement> element)
405 {
406 return wrapHTMLParamElement(static_cast<HTMLParamElement*>(element.get()));
407 }
408
createPreWrapper(PassRefPtr<HTMLElement> element)409 static gpointer createPreWrapper(PassRefPtr<HTMLElement> element)
410 {
411 return wrapHTMLPreElement(static_cast<HTMLPreElement*>(element.get()));
412 }
413
createQuoteWrapper(PassRefPtr<HTMLElement> element)414 static gpointer createQuoteWrapper(PassRefPtr<HTMLElement> element)
415 {
416 return wrapHTMLQuoteElement(static_cast<HTMLQuoteElement*>(element.get()));
417 }
418
createScriptWrapper(PassRefPtr<HTMLElement> element)419 static gpointer createScriptWrapper(PassRefPtr<HTMLElement> element)
420 {
421 return wrapHTMLScriptElement(static_cast<HTMLScriptElement*>(element.get()));
422 }
423
createSelectWrapper(PassRefPtr<HTMLElement> element)424 static gpointer createSelectWrapper(PassRefPtr<HTMLElement> element)
425 {
426 return wrapHTMLSelectElement(static_cast<HTMLSelectElement*>(element.get()));
427 }
428
createStyleWrapper(PassRefPtr<HTMLElement> element)429 static gpointer createStyleWrapper(PassRefPtr<HTMLElement> element)
430 {
431 return wrapHTMLStyleElement(static_cast<HTMLStyleElement*>(element.get()));
432 }
433
createTableWrapper(PassRefPtr<HTMLElement> element)434 static gpointer createTableWrapper(PassRefPtr<HTMLElement> element)
435 {
436 return wrapHTMLTableElement(static_cast<HTMLTableElement*>(element.get()));
437 }
438
createTableSectionWrapper(PassRefPtr<HTMLElement> element)439 static gpointer createTableSectionWrapper(PassRefPtr<HTMLElement> element)
440 {
441 return wrapHTMLTableSectionElement(static_cast<HTMLTableSectionElement*>(element.get()));
442 }
443
createTableCellWrapper(PassRefPtr<HTMLElement> element)444 static gpointer createTableCellWrapper(PassRefPtr<HTMLElement> element)
445 {
446 return wrapHTMLTableCellElement(static_cast<HTMLTableCellElement*>(element.get()));
447 }
448
createTextAreaWrapper(PassRefPtr<HTMLElement> element)449 static gpointer createTextAreaWrapper(PassRefPtr<HTMLElement> element)
450 {
451 return wrapHTMLTextAreaElement(static_cast<HTMLTextAreaElement*>(element.get()));
452 }
453
createTitleWrapper(PassRefPtr<HTMLElement> element)454 static gpointer createTitleWrapper(PassRefPtr<HTMLElement> element)
455 {
456 return wrapHTMLTitleElement(static_cast<HTMLTitleElement*>(element.get()));
457 }
458
createTableRowWrapper(PassRefPtr<HTMLElement> element)459 static gpointer createTableRowWrapper(PassRefPtr<HTMLElement> element)
460 {
461 return wrapHTMLTableRowElement(static_cast<HTMLTableRowElement*>(element.get()));
462 }
463
createUListWrapper(PassRefPtr<HTMLElement> element)464 static gpointer createUListWrapper(PassRefPtr<HTMLElement> element)
465 {
466 return wrapHTMLUListElement(static_cast<HTMLUListElement*>(element.get()));
467 }
468
createHTMLElementWrapper(PassRefPtr<WebCore::HTMLElement> element)469 gpointer createHTMLElementWrapper(PassRefPtr<WebCore::HTMLElement> element)
470 {
471 static HashMap<WTF::AtomicStringImpl*, CreateHTMLElementWrapperFunction> map;
472 if (map.isEmpty()) {
473 map.set(aTag.localName().impl(), createAnchorWrapper);
474 map.set(appletTag.localName().impl(), createAppletWrapper);
475 #if ENABLE(VIDEO)
476 map.set(audioTag.localName().impl(), createAudioWrapper);
477 map.set(videoTag.localName().impl(), createVideoWrapper);
478 #endif
479 map.set(areaTag.localName().impl(), createAreaWrapper);
480 map.set(baseTag.localName().impl(), createBaseWrapper);
481 map.set(basefontTag.localName().impl(), createBaseFontWrapper);
482 map.set(blockquoteTag.localName().impl(), createBlockquoteWrapper);
483 map.set(bodyTag.localName().impl(), createBodyWrapper);
484 map.set(brTag.localName().impl(), createBRWrapper);
485 map.set(buttonTag.localName().impl(), createButtonWrapper);
486 map.set(canvasTag.localName().impl(), createCanvasWrapper);
487 map.set(captionTag.localName().impl(), createTableCaptionWrapper);
488 map.set(colTag.localName().impl(), createTableColWrapper);
489 map.set(delTag.localName().impl(), createModWrapper);
490 map.set(dirTag.localName().impl(), createDirectoryWrapper);
491 map.set(divTag.localName().impl(), createDivWrapper);
492 map.set(dlTag.localName().impl(), createDListWrapper);
493 map.set(embedTag.localName().impl(), createEmbedWrapper);
494 map.set(fieldsetTag.localName().impl(), createFieldSetWrapper);
495 map.set(fontTag.localName().impl(), createFontWrapper);
496 map.set(formTag.localName().impl(), createFormWrapper);
497 map.set(frameTag.localName().impl(), createFrameWrapper);
498 map.set(framesetTag.localName().impl(), createFrameSetWrapper);
499 map.set(h1Tag.localName().impl(), createHeadingWrapper);
500 map.set(headTag.localName().impl(), createHeadWrapper);
501 map.set(hrTag.localName().impl(), createHRWrapper);
502 map.set(htmlTag.localName().impl(), createHtmlWrapper);
503 map.set(iframeTag.localName().impl(), createIFrameWrapper);
504 map.set(imgTag.localName().impl(), createImageWrapper);
505 map.set(inputTag.localName().impl(), createInputWrapper);
506 map.set(isindexTag.localName().impl(), createIsIndexWrapper);
507 map.set(labelTag.localName().impl(), createLabelWrapper);
508 map.set(legendTag.localName().impl(), createLegendWrapper);
509 map.set(liTag.localName().impl(), createLIWrapper);
510 map.set(linkTag.localName().impl(), createLinkWrapper);
511 map.set(mapTag.localName().impl(), createMapWrapper);
512 map.set(marqueeTag.localName().impl(), createMarqueeWrapper);
513 map.set(menuTag.localName().impl(), createMenuWrapper);
514 map.set(metaTag.localName().impl(), createMetaWrapper);
515 map.set(objectTag.localName().impl(), createObjectWrapper);
516 map.set(olTag.localName().impl(), createOListWrapper);
517 map.set(optgroupTag.localName().impl(), createOptGroupWrapper);
518 map.set(optionTag.localName().impl(), createOptionWrapper);
519 map.set(pTag.localName().impl(), createParagraphWrapper);
520 map.set(paramTag.localName().impl(), createParamWrapper);
521 map.set(preTag.localName().impl(), createPreWrapper);
522 map.set(qTag.localName().impl(), createQuoteWrapper);
523 map.set(scriptTag.localName().impl(), createScriptWrapper);
524 map.set(selectTag.localName().impl(), createSelectWrapper);
525 map.set(styleTag.localName().impl(), createStyleWrapper);
526 map.set(tableTag.localName().impl(), createTableWrapper);
527 map.set(tbodyTag.localName().impl(), createTableSectionWrapper);
528 map.set(tdTag.localName().impl(), createTableCellWrapper);
529 map.set(textareaTag.localName().impl(), createTextAreaWrapper);
530 map.set(titleTag.localName().impl(), createTitleWrapper);
531 map.set(trTag.localName().impl(), createTableRowWrapper);
532 map.set(ulTag.localName().impl(), createUListWrapper);
533 map.set(colgroupTag.localName().impl(), createTableColWrapper);
534 map.set(h2Tag.localName().impl(), createHeadingWrapper);
535 map.set(h3Tag.localName().impl(), createHeadingWrapper);
536 map.set(h4Tag.localName().impl(), createHeadingWrapper);
537 map.set(h5Tag.localName().impl(), createHeadingWrapper);
538 map.set(h6Tag.localName().impl(), createHeadingWrapper);
539 map.set(imageTag.localName().impl(), createImageWrapper);
540 map.set(insTag.localName().impl(), createModWrapper);
541 map.set(keygenTag.localName().impl(), createKeygenWrapper);
542 map.set(listingTag.localName().impl(), createPreWrapper);
543 map.set(tfootTag.localName().impl(), createTableSectionWrapper);
544 map.set(thTag.localName().impl(), createTableCellWrapper);
545 map.set(theadTag.localName().impl(), createTableSectionWrapper);
546 map.set(xmpTag.localName().impl(), createPreWrapper);
547 }
548
549 CreateHTMLElementWrapperFunction createWrapperFunction =
550 map.get(element->localName().impl());
551 if (createWrapperFunction)
552 return createWrapperFunction(element);
553 return wrapHTMLElement(element.get());
554 }
555
556 }
557