<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[47688] trunk/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/47688">47688</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2009-08-22 23:55:57 -0700 (Sat, 22 Aug 2009)</dd>
</dl>

<h3>Log Message</h3>
<pre>Make DOM classes start with a reference count of 1, like all other RefCounted
        
Patch by Darin Adler &lt;darin@apple.com&gt; on 2009-08-22
Reviewed by Oliver Hunt.

Next step: Element, HTMLElement, HTMLAnchorElement, HTMLAppletElement,
HTMLAreaElement, HTMLEmbedElement, HTMLFrameElement, HTMLIFrameElement,
HTMLObjectElement, HTMLPlugInElement, HTMLPlugInImageElement.

* DerivedSources.make: Fix error seen every time we build by escaping the $
in the build rule, since you have to use $$ for that in make.

* WebCore.base.exp: Updated.

* bindings/objc/DOM.mm:
Added now-needed include of SVGNames.h.

* dom/Document.cpp: Added now-needed include of SVGNames.h.
(WebCore::Document::createElement): Use create instead of new.

* dom/Element.cpp:
(WebCore::Element::Element): Added ConstructionType argument so the caller
can determine whether this starts with a reference count of either 0 or 1.
Later we will remove this again once they are all 1.
(WebCore::Element::create): Added.

* dom/Element.h: Added create and made constructor protected.

* dom/StyledElement.cpp:
(WebCore::StyledElement::StyledElement): Added ConstructionType argument.
* dom/StyledElement.h: Made many functions protected or private, including
the constructor.

* dom/make_names.pl: Use create to create the base elements HTMLElement,
SVGElement, and WMLElement.

* editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply): Use create instead of new.
* editing/UnlinkCommand.cpp:
(WebCore::UnlinkCommand::doApply): Ditto.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::create): Added.
* html/HTMLAnchorElement.h: Made constructor protected and added create.
Also made m_rootEditableElementForSelectionOnMouseDown a RefPtr.

* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::create): Added.
* html/HTMLAppletElement.h: Made constructor private and added create.

* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::create): Added.
* html/HTMLAreaElement.h: Made constructor private and added create.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::create): Added.
* html/HTMLElement.h: Made constructor protected and added create.
Made other functions protected and private. Also added inline
definition of constructor.

* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::create): Added.
* html/HTMLEmbedElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLFrameElement.cpp:
(WebCore::HTMLFrameElement::create): Added.
(WebCore::HTMLFrameElement::parseMappedAttribute):
* html/HTMLFrameElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLFrameElementBase.h: Made functions protected and private.

* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): Pass
CreateElement so reference count starts at 1.

* html/HTMLFrameOwnerElement.h: Made functions protected and private.

* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::create): Added.
* html/HTMLIFrameElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::create): Added.
(WebCore::HTMLObjectElement::containsJavaApplet): Changed while loop
into a for loop and tweaked formatting.

* html/HTMLObjectElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLPlugInElement.h: Made constructor protected.
Made other functions protected and private.

* html/HTMLPlugInImageElement.h: Made constructor and another function
protected.

* html/HTMLTagNames.in: Removed createWithNew from all classes that
now have create functions. Moved conditional noscript to a separate
paragraph.

* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::addSpanWithClassName): Use create.
(WebCore::HTMLViewSourceDocument::addLink): Ditto.
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData): Ditto.

* svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement): Pass CreateElementZeroRefCount
so reference count still starts at 0. Will change this class later.
(WebCore::SVGElement::create): Added.
* svg/SVGElement.h: Added create, made constructor protected, and
made other functions protected and private. Removed unneeded
SVGNames.h include.

* svg/SVGExternalResourcesRequired.h: Added now-needed SVGNames.h
include.

* svg/SVGStopElement.h: Added now-needed SVGNames.h include.
Made functions private.

* wml/WMLElement.cpp:
(WebCore::WMLElement::WMLElement): Pass CreateElementZeroRefCount
so reference count still starts at 0. Will change this class later.
(WebCore::WMLElement::create): Added.
* wml/WMLElement.h: Added create and made constructor protected.

* wml/WMLTagNames.in: Removed createWithNew from WMLElement.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCoreDerivedSourcesmake">trunk/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkWebCoreWebCorebaseexp">trunk/WebCore/WebCore.base.exp</a></li>
<li><a href="#trunkWebCorebindingsobjcDOMmm">trunk/WebCore/bindings/objc/DOM.mm</a></li>
<li><a href="#trunkWebCoredomDocumentcpp">trunk/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkWebCoredomElementcpp">trunk/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkWebCoredomElementh">trunk/WebCore/dom/Element.h</a></li>
<li><a href="#trunkWebCoredomStyledElementcpp">trunk/WebCore/dom/StyledElement.cpp</a></li>
<li><a href="#trunkWebCoredomStyledElementh">trunk/WebCore/dom/StyledElement.h</a></li>
<li><a href="#trunkWebCoredommake_namespl">trunk/WebCore/dom/make_names.pl</a></li>
<li><a href="#trunkWebCoreeditingCreateLinkCommandcpp">trunk/WebCore/editing/CreateLinkCommand.cpp</a></li>
<li><a href="#trunkWebCoreeditingUnlinkCommandcpp">trunk/WebCore/editing/UnlinkCommand.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLAnchorElementcpp">trunk/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLAnchorElementh">trunk/WebCore/html/HTMLAnchorElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLAppletElementcpp">trunk/WebCore/html/HTMLAppletElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLAppletElementh">trunk/WebCore/html/HTMLAppletElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLAreaElementcpp">trunk/WebCore/html/HTMLAreaElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLAreaElementh">trunk/WebCore/html/HTMLAreaElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLElementcpp">trunk/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLElementh">trunk/WebCore/html/HTMLElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLEmbedElementcpp">trunk/WebCore/html/HTMLEmbedElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLEmbedElementh">trunk/WebCore/html/HTMLEmbedElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLFrameElementcpp">trunk/WebCore/html/HTMLFrameElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLFrameElementh">trunk/WebCore/html/HTMLFrameElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLFrameElementBaseh">trunk/WebCore/html/HTMLFrameElementBase.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLFrameOwnerElementcpp">trunk/WebCore/html/HTMLFrameOwnerElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLFrameOwnerElementh">trunk/WebCore/html/HTMLFrameOwnerElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLIFrameElementcpp">trunk/WebCore/html/HTMLIFrameElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLIFrameElementh">trunk/WebCore/html/HTMLIFrameElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLObjectElementcpp">trunk/WebCore/html/HTMLObjectElement.cpp</a></li>
<li><a href="#trunkWebCorehtmlHTMLObjectElementh">trunk/WebCore/html/HTMLObjectElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLPlugInElementh">trunk/WebCore/html/HTMLPlugInElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLPlugInImageElementh">trunk/WebCore/html/HTMLPlugInImageElement.h</a></li>
<li><a href="#trunkWebCorehtmlHTMLTagNamesin">trunk/WebCore/html/HTMLTagNames.in</a></li>
<li><a href="#trunkWebCorehtmlHTMLViewSourceDocumentcpp">trunk/WebCore/html/HTMLViewSourceDocument.cpp</a></li>
<li><a href="#trunkWebCorepageDragControllercpp">trunk/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkWebCoresvgSVGElementcpp">trunk/WebCore/svg/SVGElement.cpp</a></li>
<li><a href="#trunkWebCoresvgSVGElementh">trunk/WebCore/svg/SVGElement.h</a></li>
<li><a href="#trunkWebCoresvgSVGExternalResourcesRequiredh">trunk/WebCore/svg/SVGExternalResourcesRequired.h</a></li>
<li><a href="#trunkWebCoresvgSVGStopElementh">trunk/WebCore/svg/SVGStopElement.h</a></li>
<li><a href="#trunkWebCorewmlWMLElementcpp">trunk/WebCore/wml/WMLElement.cpp</a></li>
<li><a href="#trunkWebCorewmlWMLElementh">trunk/WebCore/wml/WMLElement.h</a></li>
<li><a href="#trunkWebCorewmlWMLTagNamesin">trunk/WebCore/wml/WMLTagNames.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/ChangeLog        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,3 +1,134 @@
</span><ins>+2009-08-22  Darin Adler  &lt;darin@apple.com&gt;
+
+        Reviewed by Oliver Hunt.
+
+        Make DOM classes start with a reference count of 1, like all other RefCounted
+        
+        Next step: Element, HTMLElement, HTMLAnchorElement, HTMLAppletElement,
+        HTMLAreaElement, HTMLEmbedElement, HTMLFrameElement, HTMLIFrameElement,
+        HTMLObjectElement, HTMLPlugInElement, HTMLPlugInImageElement.
+
+        * DerivedSources.make: Fix error seen every time we build by escaping the $
+        in the build rule, since you have to use $$ for that in make.
+
+        * WebCore.base.exp: Updated.
+
+        * bindings/objc/DOM.mm:
+        Added now-needed include of SVGNames.h.
+
+        * dom/Document.cpp: Added now-needed include of SVGNames.h.
+        (WebCore::Document::createElement): Use create instead of new.
+
+        * dom/Element.cpp:
+        (WebCore::Element::Element): Added ConstructionType argument so the caller
+        can determine whether this starts with a reference count of either 0 or 1.
+        Later we will remove this again once they are all 1.
+        (WebCore::Element::create): Added.
+
+        * dom/Element.h: Added create and made constructor protected.
+
+        * dom/StyledElement.cpp:
+        (WebCore::StyledElement::StyledElement): Added ConstructionType argument.
+        * dom/StyledElement.h: Made many functions protected or private, including
+        the constructor.
+
+        * dom/make_names.pl: Use create to create the base elements HTMLElement,
+        SVGElement, and WMLElement.
+
+        * editing/CreateLinkCommand.cpp:
+        (WebCore::CreateLinkCommand::doApply): Use create instead of new.
+        * editing/UnlinkCommand.cpp:
+        (WebCore::UnlinkCommand::doApply): Ditto.
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::create): Added.
+        * html/HTMLAnchorElement.h: Made constructor protected and added create.
+        Also made m_rootEditableElementForSelectionOnMouseDown a RefPtr.
+
+        * html/HTMLAppletElement.cpp:
+        (WebCore::HTMLAppletElement::create): Added.
+        * html/HTMLAppletElement.h: Made constructor private and added create.
+
+        * html/HTMLAreaElement.cpp:
+        (WebCore::HTMLAreaElement::create): Added.
+        * html/HTMLAreaElement.h: Made constructor private and added create.
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::create): Added.
+        * html/HTMLElement.h: Made constructor protected and added create.
+        Made other functions protected and private. Also added inline
+        definition of constructor.
+
+        * html/HTMLEmbedElement.cpp:
+        (WebCore::HTMLEmbedElement::create): Added.
+        * html/HTMLEmbedElement.h: Made constructor private and added create.
+        Made other functions private.
+
+        * html/HTMLFrameElement.cpp:
+        (WebCore::HTMLFrameElement::create): Added.
+        (WebCore::HTMLFrameElement::parseMappedAttribute):
+        * html/HTMLFrameElement.h: Made constructor private and added create.
+        Made other functions private.
+
+        * html/HTMLFrameElementBase.h: Made functions protected and private.
+
+        * html/HTMLFrameOwnerElement.cpp:
+        (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): Pass
+        CreateElement so reference count starts at 1.
+
+        * html/HTMLFrameOwnerElement.h: Made functions protected and private.
+
+        * html/HTMLIFrameElement.cpp:
+        (WebCore::HTMLIFrameElement::create): Added.
+        * html/HTMLIFrameElement.h: Made constructor private and added create.
+        Made other functions private.
+
+        * html/HTMLObjectElement.cpp:
+        (WebCore::HTMLObjectElement::create): Added.
+        (WebCore::HTMLObjectElement::containsJavaApplet): Changed while loop
+        into a for loop and tweaked formatting.
+
+        * html/HTMLObjectElement.h: Made constructor private and added create.
+        Made other functions private.
+
+        * html/HTMLPlugInElement.h: Made constructor protected.
+        Made other functions protected and private.
+
+        * html/HTMLPlugInImageElement.h: Made constructor and another function
+        protected.
+
+        * html/HTMLTagNames.in: Removed createWithNew from all classes that
+        now have create functions. Moved conditional noscript to a separate
+        paragraph.
+
+        * html/HTMLViewSourceDocument.cpp:
+        (WebCore::HTMLViewSourceDocument::addSpanWithClassName): Use create.
+        (WebCore::HTMLViewSourceDocument::addLink): Ditto.
+        * page/DragController.cpp:
+        (WebCore::documentFragmentFromDragData): Ditto.
+
+        * svg/SVGElement.cpp:
+        (WebCore::SVGElement::SVGElement): Pass CreateElementZeroRefCount
+        so reference count still starts at 0. Will change this class later.
+        (WebCore::SVGElement::create): Added.
+        * svg/SVGElement.h: Added create, made constructor protected, and
+        made other functions protected and private. Removed unneeded
+        SVGNames.h include.
+
+        * svg/SVGExternalResourcesRequired.h: Added now-needed SVGNames.h
+        include.
+
+        * svg/SVGStopElement.h: Added now-needed SVGNames.h include.
+        Made functions private.
+
+        * wml/WMLElement.cpp:
+        (WebCore::WMLElement::WMLElement): Pass CreateElementZeroRefCount
+        so reference count still starts at 0. Will change this class later.
+        (WebCore::WMLElement::create): Added.
+        * wml/WMLElement.h: Added create and made constructor protected.
+
+        * wml/WMLTagNames.in: Removed createWithNew from WMLElement.
+
</ins><span class="cx"> 2009-08-22  Adele Peterson  &lt;adele@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Anders Carlsson.
</span></span></pre></div>
<a id="trunkWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/DerivedSources.make (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/DerivedSources.make        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/DerivedSources.make        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -463,14 +463,14 @@
</span><span class="cx"> # 2. Lines containing only whitespace
</span><span class="cx"> # These two types of lines will be ignored by make{prop,values}.pl.
</span><span class="cx"> CSSPropertyNames.h : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl
</span><del>-        if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$)'; then echo 'Duplicate value!'; exit 1; fi
</del><ins>+        if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
</ins><span class="cx">         cat $(WEBCORE_CSS_PROPERTY_NAMES) &gt; CSSPropertyNames.in
</span><span class="cx">         perl &quot;$(WebCore)/css/makeprop.pl&quot;
</span><span class="cx"> 
</span><span class="cx"> CSSValueKeywords.h : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl
</span><span class="cx">         # Lower case all the values, as CSS values are case-insensitive
</span><span class="cx">         perl -ne 'print lc' $(WEBCORE_CSS_VALUE_KEYWORDS) &gt; CSSValueKeywords.in
</span><del>-        if sort CSSValueKeywords.in | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$)'; then echo 'Duplicate value!'; exit 1; fi
</del><ins>+        if sort CSSValueKeywords.in | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
</ins><span class="cx">         perl &quot;$(WebCore)/css/makevalues.pl&quot;
</span><span class="cx"> 
</span><span class="cx"> # --------
</span></span></pre></div>
<a id="trunkWebCoreWebCorebaseexp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.base.exp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.base.exp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/WebCore.base.exp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -399,6 +399,7 @@
</span><span class="cx"> __ZN7WebCore16threadGlobalDataEv
</span><span class="cx"> __ZN7WebCore17DOMImplementation14isTextMIMETypeERKNS_6StringE
</span><span class="cx"> __ZN7WebCore17GlyphPageTreeNode18treeGlyphPageCountEv
</span><ins>+__ZN7WebCore17HTMLPlugInElement11getNPObjectEv
</ins><span class="cx"> __ZN7WebCore17equalIgnoringCaseEPNS_10StringImplES1_
</span><span class="cx"> __ZN7WebCore18deprecatedParseURLERKNS_6StringE
</span><span class="cx"> __ZN7WebCore18isStartOfParagraphERKNS_15VisiblePositionE
</span></span></pre></div>
<a id="trunkWebCorebindingsobjcDOMmm"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/bindings/objc/DOM.mm (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/bindings/objc/DOM.mm        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/bindings/objc/DOM.mm        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> #if ENABLE(SVG_DOM_OBJC_BINDINGS)
</span><span class="cx"> #import &quot;DOMSVG.h&quot;
</span><span class="cx"> #import &quot;SVGElementInstance.h&quot;
</span><ins>+#import &quot;SVGNames.h&quot;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span></span></pre></div>
<a id="trunkWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/dom/Document.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/dom/Document.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/dom/Document.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -101,6 +101,7 @@
</span><span class="cx"> #include &quot;RenderTextControl.h&quot;
</span><span class="cx"> #include &quot;RenderView.h&quot;
</span><span class="cx"> #include &quot;RenderWidget.h&quot;
</span><ins>+#include &quot;SVGNames.h&quot;
</ins><span class="cx"> #include &quot;ScriptController.h&quot;
</span><span class="cx"> #include &quot;ScriptElement.h&quot;
</span><span class="cx"> #include &quot;ScriptEventListener.h&quot;
</span><span class="lines">@@ -795,7 +796,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     
</span><span class="cx">     if (!e)
</span><del>-        e = new Element(qName, document());
</del><ins>+        e = Element::create(qName, document());
</ins><span class="cx"> 
</span><span class="cx">     // &lt;image&gt; uses imgTag so we need a special rule.
</span><span class="cx"> #if ENABLE(WML)
</span></span></pre></div>
<a id="trunkWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/dom/Element.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/dom/Element.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/dom/Element.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -57,12 +57,17 @@
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> using namespace XMLNames;
</span><span class="cx">     
</span><del>-Element::Element(const QualifiedName&amp; tagName, Document* document)
-    : ContainerNode(document, CreateElementZeroRefCount)
</del><ins>+Element::Element(const QualifiedName&amp; tagName, Document* document, ConstructionType type)
+    : ContainerNode(document, type)
</ins><span class="cx">     , m_tagName(tagName)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;Element&gt; Element::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return adoptRef(new Element(tagName, document, CreateElement));
+}
+
</ins><span class="cx"> Element::~Element()
</span><span class="cx"> {
</span><span class="cx">     if (namedAttrMap)
</span></span></pre></div>
<a id="trunkWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/dom/Element.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/dom/Element.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/dom/Element.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> class Element : public ContainerNode {
</span><span class="cx"> public:
</span><del>-    Element(const QualifiedName&amp;, Document*);
</del><ins>+    static PassRefPtr&lt;Element&gt; create(const QualifiedName&amp;, Document*);
</ins><span class="cx">     virtual ~Element();
</span><span class="cx"> 
</span><span class="cx">     const AtomicString&amp; getIDAttribute() const;
</span><span class="lines">@@ -208,6 +208,8 @@
</span><span class="cx">     virtual void dispatchFormControlChangeEvent() { }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><ins>+    Element(const QualifiedName&amp;, Document*, ConstructionType);
+
</ins><span class="cx">     virtual void insertedIntoDocument();
</span><span class="cx">     virtual void removedFromDocument();
</span><span class="cx">     virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
</span></span></pre></div>
<a id="trunkWebCoredomStyledElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/dom/StyledElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/dom/StyledElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/dom/StyledElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -111,8 +111,8 @@
</span><span class="cx">     m_synchronizingStyleAttribute = false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-StyledElement::StyledElement(const QualifiedName&amp; name, Document *doc)
-    : Element(name, doc)
</del><ins>+StyledElement::StyledElement(const QualifiedName&amp; name, Document* document, ConstructionType type)
+    : Element(name, document, type)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoredomStyledElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/dom/StyledElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/dom/StyledElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/dom/StyledElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2001 Peter Kelly (pmk@post.com)
</span><span class="cx">  *           (C) 2001 Dirk Mueller (mueller@kde.org)
</span><del>- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -38,13 +38,11 @@
</span><span class="cx"> 
</span><span class="cx"> class StyledElement : public Element {
</span><span class="cx"> public:
</span><del>-    StyledElement(const QualifiedName&amp;, Document*);
</del><span class="cx">     virtual ~StyledElement();
</span><span class="cx"> 
</span><del>-    virtual bool isStyledElement() const { return true; }
-
</del><span class="cx">     NamedMappedAttrMap* mappedAttributes() { return static_cast&lt;NamedMappedAttrMap*&gt;(namedAttrMap.get()); }
</span><span class="cx">     const NamedMappedAttrMap* mappedAttributes() const { return static_cast&lt;NamedMappedAttrMap*&gt;(namedAttrMap.get()); }
</span><ins>+
</ins><span class="cx">     bool hasMappedAttributes() const { return namedAttrMap &amp;&amp; mappedAttributes()-&gt;hasMappedAttributes(); }
</span><span class="cx">     bool isMappedAttribute(const QualifiedName&amp; name) const { MappedAttributeEntry res = eNone; mapToEntry(name, res); return res != eNone; }
</span><span class="cx"> 
</span><span class="lines">@@ -53,38 +51,36 @@
</span><span class="cx">     void addCSSProperty(MappedAttribute*, int id, int value);
</span><span class="cx">     void addCSSImageProperty(MappedAttribute*, int propertyID, const String&amp; url);
</span><span class="cx">     void addCSSColor(MappedAttribute*, int id, const String&amp; color);
</span><del>-    void createMappedDecl(MappedAttribute*);
-    
</del><ins>+
</ins><span class="cx">     static CSSMappedAttributeDeclaration* getMappedAttributeDecl(MappedAttributeEntry, const QualifiedName&amp; name, const AtomicString&amp; value);
</span><span class="cx">     static void setMappedAttributeDecl(MappedAttributeEntry, const QualifiedName&amp; name, const AtomicString&amp; value, CSSMappedAttributeDeclaration*);
</span><span class="cx">     static void removeMappedAttributeDecl(MappedAttributeEntry, const QualifiedName&amp; name, const AtomicString&amp; value);
</span><span class="cx"> 
</span><span class="cx">     static CSSMappedAttributeDeclaration* getMappedAttributeDecl(MappedAttributeEntry, Attribute*);
</span><span class="cx">     static void setMappedAttributeDecl(MappedAttributeEntry, Attribute*, CSSMappedAttributeDeclaration*);
</span><del>-    
</del><ins>+
</ins><span class="cx">     CSSMutableStyleDeclaration* inlineStyleDecl() const { return m_inlineStyleDecl.get(); }
</span><span class="cx">     virtual bool canHaveAdditionalAttributeStyleDecls() const { return false; }
</span><span class="cx">     virtual void additionalAttributeStyleDecls(Vector&lt;CSSMutableStyleDeclaration*&gt;&amp;) {};
</span><span class="cx">     CSSMutableStyleDeclaration* getInlineStyleDecl();
</span><span class="cx">     CSSStyleDeclaration* style();
</span><del>-    void createInlineStyleDecl();
-    void destroyInlineStyleDecl();
</del><span class="cx">     void invalidateStyleAttribute();
</span><del>-    virtual void updateStyleAttribute() const;
-    
</del><ins>+
</ins><span class="cx">     const ClassNames&amp; classNames() const { ASSERT(hasClass()); ASSERT(mappedAttributes()); return mappedAttributes()-&gt;classNames(); }
</span><span class="cx"> 
</span><del>-    virtual void attributeChanged(Attribute*, bool preserveDecls = false);
-    virtual void parseMappedAttribute(MappedAttribute*);
</del><span class="cx">     virtual bool mapToEntry(const QualifiedName&amp; attrName, MappedAttributeEntry&amp; result) const;
</span><del>-    virtual void createAttributeMap() const;
</del><ins>+
</ins><span class="cx">     virtual PassRefPtr&lt;Attribute&gt; createAttribute(const QualifiedName&amp;, const AtomicString&amp; value);
</span><span class="cx"> 
</span><ins>+protected:
+    StyledElement(const QualifiedName&amp;, Document*, ConstructionType);
+
+    virtual void attributeChanged(Attribute*, bool preserveDecls = false);
+    virtual void parseMappedAttribute(MappedAttribute*);
</ins><span class="cx">     virtual void copyNonAttributeProperties(const Element*);
</span><span class="cx"> 
</span><span class="cx">     virtual void addSubresourceAttributeURLs(ListHashSet&lt;KURL&gt;&amp;) const;
</span><span class="cx"> 
</span><del>-protected:
</del><span class="cx">     // classAttributeChanged() exists to share code between
</span><span class="cx">     // parseMappedAttribute (called via setAttribute()) and
</span><span class="cx">     // svgAttributeChanged (called when element.className.baseValue is set)
</span><span class="lines">@@ -92,6 +88,17 @@
</span><span class="cx">     
</span><span class="cx">     virtual void didMoveToNewOwnerDocument();
</span><span class="cx"> 
</span><ins>+private:
+    virtual bool isStyledElement() const { return true; }
+
+    void createMappedDecl(MappedAttribute*);
+
+    void createInlineStyleDecl();
+    void destroyInlineStyleDecl();
+    virtual void updateStyleAttribute() const;
+
+    virtual void createAttributeMap() const;
+
</ins><span class="cx">     RefPtr&lt;CSSMutableStyleDeclaration&gt; m_inlineStyleDecl;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoredommake_namespl"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/dom/make_names.pl (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/dom/make_names.pl        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/dom/make_names.pl        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -282,7 +282,7 @@
</span><span class="cx">     if ($tags{$tagName}{wrapperOnlyIfMediaIsAvailable}) {
</span><span class="cx">         print F &lt;&lt;END
</span><span class="cx">     if (!MediaPlayer::isAvailable())
</span><del>-        return new HTMLElement($constructorTagName, document);
</del><ins>+        return HTMLElement::create($constructorTagName, document);
</ins><span class="cx"> END
</span><span class="cx"> ;
</span><span class="cx">     }
</span><span class="lines">@@ -756,7 +756,7 @@
</span><span class="cx">     print F &quot;        return function(qName, document, createdByParser);\n&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-print F &quot;    return new $parameters{namespace}Element(qName, document);\n&quot;;
</del><ins>+print F &quot;    return $parameters{namespace}Element::create(qName, document);\n&quot;;
</ins><span class="cx"> 
</span><span class="cx"> if ($parameters{guardFactoryWith}) {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreeditingCreateLinkCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/editing/CreateLinkCommand.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/editing/CreateLinkCommand.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/editing/CreateLinkCommand.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">     if (endingSelection().isNone())
</span><span class="cx">         return;
</span><span class="cx">         
</span><del>-    RefPtr&lt;HTMLAnchorElement&gt; anchorElement = new HTMLAnchorElement(document());
</del><ins>+    RefPtr&lt;HTMLAnchorElement&gt; anchorElement = HTMLAnchorElement::create(document());
</ins><span class="cx">     anchorElement-&gt;setHref(m_url);
</span><span class="cx">     
</span><span class="cx">     if (endingSelection().isRange()) {
</span></span></pre></div>
<a id="trunkWebCoreeditingUnlinkCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/editing/UnlinkCommand.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/editing/UnlinkCommand.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/editing/UnlinkCommand.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -37,14 +37,13 @@
</span><span class="cx"> 
</span><span class="cx"> void UnlinkCommand::doApply()
</span><span class="cx"> {
</span><del>-    // FIXME: If a caret is inside a link, remove it.
</del><ins>+    // FIXME: If a caret is inside a link, we should remove it, but currently we don't.
</ins><span class="cx">     if (!endingSelection().isRange())
</span><span class="cx">         return;
</span><span class="cx">         
</span><span class="cx">     pushPartiallySelectedAnchorElementsDown();
</span><span class="cx"> 
</span><del>-    HTMLAnchorElement* anchorElement = new HTMLAnchorElement(document());
-    removeStyledElement(anchorElement);
</del><ins>+    removeStyledElement(HTMLAnchorElement::create(document()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLAnchorElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLAnchorElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLAnchorElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -40,20 +40,22 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-HTMLAnchorElement::HTMLAnchorElement(Document* document)
-    : HTMLElement(aTag, document)
-    , m_rootEditableElementForSelectionOnMouseDown(0)
</del><ins>+HTMLAnchorElement::HTMLAnchorElement(const QualifiedName&amp; tagName, Document* document)
+    : HTMLElement(tagName, document, CreateElement)
</ins><span class="cx">     , m_wasShiftKeyDownOnMouseDown(false)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-HTMLAnchorElement::HTMLAnchorElement(const QualifiedName&amp; tagName, Document* document)
-    : HTMLElement(tagName, document)
-    , m_rootEditableElementForSelectionOnMouseDown(0)
-    , m_wasShiftKeyDownOnMouseDown(false)
</del><ins>+PassRefPtr&lt;HTMLAnchorElement&gt; HTMLAnchorElement::create(Document* document)
</ins><span class="cx"> {
</span><ins>+    return adoptRef(new HTMLAnchorElement(aTag, document));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;HTMLAnchorElement&gt; HTMLAnchorElement::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return adoptRef(new HTMLAnchorElement(tagName, document));
+}
+
</ins><span class="cx"> bool HTMLAnchorElement::supportsFocus() const
</span><span class="cx"> {
</span><span class="cx">     if (isContentEditable())
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLAnchorElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLAnchorElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLAnchorElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLAnchorElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -30,8 +30,8 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLAnchorElement : public HTMLElement {
</span><span class="cx"> public:
</span><del>-    HTMLAnchorElement(Document*);
-    HTMLAnchorElement(const QualifiedName&amp;, Document*);
</del><ins>+    static PassRefPtr&lt;HTMLAnchorElement&gt; create(Document*);
+    static PassRefPtr&lt;HTMLAnchorElement&gt; create(const QualifiedName&amp;, Document*);
</ins><span class="cx"> 
</span><span class="cx">     KURL href() const;
</span><span class="cx">     void setHref(const AtomicString&amp;);
</span><span class="lines">@@ -52,6 +52,8 @@
</span><span class="cx">     bool isLiveLink() const;
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><ins>+    HTMLAnchorElement(const QualifiedName&amp;, Document*);
+
</ins><span class="cx">     virtual void parseMappedAttribute(MappedAttribute*);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -70,7 +72,7 @@
</span><span class="cx">     virtual short tabIndex() const;
</span><span class="cx">     virtual bool draggable() const;
</span><span class="cx"> 
</span><del>-    Element* m_rootEditableElementForSelectionOnMouseDown;
</del><ins>+    RefPtr&lt;Element&gt; m_rootEditableElementForSelectionOnMouseDown;
</ins><span class="cx">     bool m_wasShiftKeyDownOnMouseDown;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLAppletElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLAppletElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLAppletElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLAppletElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -34,12 +34,17 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-HTMLAppletElement::HTMLAppletElement(const QualifiedName&amp; tagName, Document* doc)
-    : HTMLPlugInElement(tagName, doc)
</del><ins>+inline HTMLAppletElement::HTMLAppletElement(const QualifiedName&amp; tagName, Document* document)
+    : HTMLPlugInElement(tagName, document)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(hasTagName(appletTag));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;HTMLAppletElement&gt; HTMLAppletElement::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return adoptRef(new HTMLAppletElement(tagName, document));
+}
+
</ins><span class="cx"> void HTMLAppletElement::parseMappedAttribute(MappedAttribute* attr)
</span><span class="cx"> {
</span><span class="cx">     if (attr-&gt;name() == altAttr ||
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLAppletElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLAppletElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLAppletElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLAppletElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLAppletElement : public HTMLPlugInElement {
</span><span class="cx"> public:
</span><del>-    HTMLAppletElement(const QualifiedName&amp;, Document*);
</del><ins>+    static PassRefPtr&lt;HTMLAppletElement&gt; create(const QualifiedName&amp;, Document*);
</ins><span class="cx"> 
</span><span class="cx">     String hspace() const;
</span><span class="cx">     void setHspace(const String&amp;);
</span><span class="lines">@@ -38,6 +38,8 @@
</span><span class="cx">     void setVspace(const String&amp;);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><ins>+    HTMLAppletElement(const QualifiedName&amp;, Document*);
+
</ins><span class="cx">     virtual int tagPriority() const { return 1; }
</span><span class="cx"> 
</span><span class="cx">     virtual void parseMappedAttribute(MappedAttribute*);
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLAreaElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLAreaElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLAreaElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-HTMLAreaElement::HTMLAreaElement(const QualifiedName&amp; tagName, Document* document)
</del><ins>+inline HTMLAreaElement::HTMLAreaElement(const QualifiedName&amp; tagName, Document* document)
</ins><span class="cx">     : HTMLAnchorElement(tagName, document)
</span><span class="cx">     , m_coordsLen(0)
</span><span class="cx">     , m_lastSize(-1, -1)
</span><span class="lines">@@ -43,8 +43,9 @@
</span><span class="cx">     ASSERT(hasTagName(areaTag));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-HTMLAreaElement::~HTMLAreaElement()
</del><ins>+PassRefPtr&lt;HTMLAreaElement&gt; HTMLAreaElement::create(const QualifiedName&amp; tagName, Document* document)
</ins><span class="cx"> {
</span><ins>+    return adoptRef(new HTMLAreaElement(tagName, document));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLAreaElement::parseMappedAttribute(MappedAttribute* attr)
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLAreaElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLAreaElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLAreaElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLAreaElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -34,8 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLAreaElement : public HTMLAnchorElement {
</span><span class="cx"> public:
</span><del>-    HTMLAreaElement(const QualifiedName&amp;, Document*);
-    virtual ~HTMLAreaElement();
</del><ins>+    static PassRefPtr&lt;HTMLAreaElement&gt; create(const QualifiedName&amp;, Document*);
</ins><span class="cx"> 
</span><span class="cx">     bool isDefault() const { return m_shape == Default; }
</span><span class="cx"> 
</span><span class="lines">@@ -49,6 +48,8 @@
</span><span class="cx">     void setNoHref(bool);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><ins>+    HTMLAreaElement(const QualifiedName&amp;, Document*);
+
</ins><span class="cx">     virtual HTMLTagStatus endTagRequirement() const { return TagStatusForbidden; }
</span><span class="cx">     virtual int tagPriority() const { return 0; }
</span><span class="cx">     virtual void parseMappedAttribute(MappedAttribute*);
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -56,15 +56,11 @@
</span><span class="cx"> using std::min;
</span><span class="cx"> using std::max;
</span><span class="cx"> 
</span><del>-HTMLElement::HTMLElement(const QualifiedName&amp; tagName, Document *doc)
-    : StyledElement(tagName, doc)
</del><ins>+PassRefPtr&lt;HTMLElement&gt; HTMLElement::create(const QualifiedName&amp; tagName, Document* document)
</ins><span class="cx"> {
</span><ins>+    return adoptRef(new HTMLElement(tagName, document, CreateElement));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-HTMLElement::~HTMLElement()
-{
-}
-
</del><span class="cx"> String HTMLElement::nodeName() const
</span><span class="cx"> {
</span><span class="cx">     // FIXME: Would be nice to have an atomicstring lookup based off uppercase chars that does not have to copy
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2005, 2006, 2007, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -35,19 +35,12 @@
</span><span class="cx">                        
</span><span class="cx"> class HTMLElement : public StyledElement {
</span><span class="cx"> public:
</span><del>-    HTMLElement(const QualifiedName&amp; tagName, Document*);
-    virtual ~HTMLElement();
</del><ins>+    static PassRefPtr&lt;HTMLElement&gt; create(const QualifiedName&amp; tagName, Document*);
</ins><span class="cx"> 
</span><del>-    virtual bool isHTMLElement() const { return true; }
-
-    virtual String nodeName() const;
-
-    virtual bool mapToEntry(const QualifiedName&amp; attrName, MappedAttributeEntry&amp; result) const;
-    virtual void parseMappedAttribute(MappedAttribute*);
-
</del><span class="cx">     PassRefPtr&lt;HTMLCollection&gt; children();
</span><span class="cx">     
</span><span class="cx">     virtual String title() const;
</span><ins>+
</ins><span class="cx">     virtual short tabIndex() const;
</span><span class="cx">     void setTabIndex(int);
</span><span class="cx"> 
</span><span class="lines">@@ -63,13 +56,12 @@
</span><span class="cx">     void insertAdjacentHTML(const String&amp; where, const String&amp; html, ExceptionCode&amp;);
</span><span class="cx">     void insertAdjacentText(const String&amp; where, const String&amp; text, ExceptionCode&amp;);
</span><span class="cx"> 
</span><del>-    virtual bool isFocusable() const;
</del><span class="cx">     virtual bool isContentEditable() const;
</span><span class="cx">     virtual bool isContentRichlyEditable() const;
</span><del>-    virtual String contentEditable() const;
-    virtual void setContentEditable(MappedAttribute*);
-    virtual void setContentEditable(const String&amp;);
</del><span class="cx"> 
</span><ins>+    String contentEditable() const;
+    void setContentEditable(const String&amp;);
+
</ins><span class="cx">     virtual bool draggable() const;
</span><span class="cx">     void setDraggable(bool);
</span><span class="cx"> 
</span><span class="lines">@@ -79,31 +71,53 @@
</span><span class="cx"> 
</span><span class="cx">     virtual HTMLTagStatus endTagRequirement() const;
</span><span class="cx">     virtual int tagPriority() const;
</span><ins>+
+    virtual bool rendererIsNeeded(RenderStyle*);
+    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
+
+    HTMLFormElement* form() const { return virtualForm(); }
+
+    static void addHTMLAlignmentToStyledElement(StyledElement*, MappedAttribute*);
+
+protected:
+    HTMLElement(const QualifiedName&amp; tagName, Document*, ConstructionType = CreateElementZeroRefCount);
+
+    void addHTMLAlignment(MappedAttribute*);
+
+    virtual bool mapToEntry(const QualifiedName&amp; attrName, MappedAttributeEntry&amp; result) const;
+    virtual void parseMappedAttribute(MappedAttribute*);
+
+    virtual bool isFocusable() const;
+
</ins><span class="cx">     virtual bool childAllowed(Node* newChild); // Error-checking during parsing that checks the DTD
</span><span class="cx"> 
</span><span class="cx">     // Helper function to check the DTD for a given child node.
</span><span class="cx">     virtual bool checkDTD(const Node*);
</span><ins>+
</ins><span class="cx">     static bool inEitherTagList(const Node*);
</span><span class="cx">     static bool inInlineTagList(const Node*);
</span><span class="cx">     static bool inBlockTagList(const Node*);
</span><span class="cx">     static bool isRecognizedTagName(const QualifiedName&amp;);
</span><span class="cx"> 
</span><del>-    virtual bool rendererIsNeeded(RenderStyle*);
-    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
-
-    HTMLFormElement* form() const { return virtualForm(); }
</del><span class="cx">     HTMLFormElement* findFormAncestor() const;
</span><span class="cx"> 
</span><del>-    static void addHTMLAlignmentToStyledElement(StyledElement*, MappedAttribute*);
</del><ins>+private:
+    virtual bool isHTMLElement() const { return true; }
</ins><span class="cx"> 
</span><del>-protected:
-    void addHTMLAlignment(MappedAttribute*);
</del><ins>+    virtual String nodeName() const;
</ins><span class="cx"> 
</span><del>-private:
</del><ins>+    void setContentEditable(MappedAttribute*);
+
</ins><span class="cx">     virtual HTMLFormElement* virtualForm() const;
</span><ins>+
</ins><span class="cx">     Node* insertAdjacent(const String&amp; where, Node* newChild, ExceptionCode&amp;);
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+inline HTMLElement::HTMLElement(const QualifiedName&amp; tagName, Document* document, ConstructionType type)
+    : StyledElement(tagName, document, type)
+{
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // HTMLElement_h
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLEmbedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLEmbedElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLEmbedElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLEmbedElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Stefan Schimanski (1Stein@gmx.de)
</span><del>- * Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2005, 2006, 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -42,13 +42,18 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-HTMLEmbedElement::HTMLEmbedElement(const QualifiedName&amp; tagName, Document* doc)
-    : HTMLPlugInImageElement(tagName, doc)
</del><ins>+inline HTMLEmbedElement::HTMLEmbedElement(const QualifiedName&amp; tagName, Document* document)
+    : HTMLPlugInImageElement(tagName, document)
</ins><span class="cx">     , m_needWidgetUpdate(false)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(hasTagName(embedTag));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;HTMLEmbedElement&gt; HTMLEmbedElement::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return adoptRef(new HTMLEmbedElement(tagName, document));
+}
+
</ins><span class="cx"> static inline RenderWidget* findWidgetRenderer(const Node* n) 
</span><span class="cx"> {
</span><span class="cx">     if (!n-&gt;renderer())
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLEmbedElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLEmbedElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLEmbedElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLEmbedElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2006, 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -29,6 +29,11 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLEmbedElement : public HTMLPlugInImageElement {
</span><span class="cx"> public:
</span><ins>+    static PassRefPtr&lt;HTMLEmbedElement&gt; create(const QualifiedName&amp;, Document*);
+
+    void setNeedWidgetUpdate(bool needWidgetUpdate) { m_needWidgetUpdate = needWidgetUpdate; }
+
+private:
</ins><span class="cx">     HTMLEmbedElement(const QualifiedName&amp;, Document*);
</span><span class="cx"> 
</span><span class="cx">     virtual HTMLTagStatus endTagRequirement() const { return TagStatusForbidden; }
</span><span class="lines">@@ -49,13 +54,11 @@
</span><span class="cx">     virtual const QualifiedName&amp; imageSourceAttributeName() const;
</span><span class="cx"> 
</span><span class="cx">     virtual void updateWidget();
</span><del>-    void setNeedWidgetUpdate(bool needWidgetUpdate) { m_needWidgetUpdate = needWidgetUpdate; }
</del><span class="cx"> 
</span><span class="cx">     virtual RenderWidget* renderWidgetForJSBindings() const;
</span><span class="cx"> 
</span><span class="cx">     virtual void addSubresourceAttributeURLs(ListHashSet&lt;KURL&gt;&amp;) const;
</span><span class="cx"> 
</span><del>-private:
</del><span class="cx">     bool m_needWidgetUpdate;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLFrameElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLFrameElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLFrameElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLFrameElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-HTMLFrameElement::HTMLFrameElement(const QualifiedName&amp; tagName, Document* document)
</del><ins>+inline HTMLFrameElement::HTMLFrameElement(const QualifiedName&amp; tagName, Document* document)
</ins><span class="cx">     : HTMLFrameElementBase(tagName, document)
</span><span class="cx">     , m_frameBorder(true)
</span><span class="cx">     , m_frameBorderSet(false)
</span><span class="lines">@@ -43,6 +43,11 @@
</span><span class="cx">     ASSERT(hasTagName(frameTag));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;HTMLFrameElement&gt; HTMLFrameElement::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return adoptRef(new HTMLFrameElement(tagName, document));
+}
+
</ins><span class="cx"> bool HTMLFrameElement::rendererIsNeeded(RenderStyle*)
</span><span class="cx"> {
</span><span class="cx">     // For compatibility, frames render even when display: none is set.
</span><span class="lines">@@ -56,9 +61,10 @@
</span><span class="cx"> 
</span><span class="cx"> static inline HTMLFrameSetElement* containingFrameSetElement(Node* node)
</span><span class="cx"> {
</span><del>-    while ((node = node-&gt;parentNode()))
</del><ins>+    while ((node = node-&gt;parentNode())) {
</ins><span class="cx">         if (node-&gt;hasTagName(framesetTag))
</span><span class="cx">             return static_cast&lt;HTMLFrameSetElement*&gt;(node);
</span><ins>+    }
</ins><span class="cx">     return 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -74,7 +80,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void HTMLFrameElement::parseMappedAttribute(MappedAttribute *attr)
</del><ins>+void HTMLFrameElement::parseMappedAttribute(MappedAttribute* attr)
</ins><span class="cx"> {
</span><span class="cx">     if (attr-&gt;name() == frameborderAttr) {
</span><span class="cx">         m_frameBorder = attr-&gt;value().toInt();
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLFrameElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLFrameElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLFrameElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLFrameElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -30,6 +30,14 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLFrameElement : public HTMLFrameElementBase {
</span><span class="cx"> public:
</span><ins>+    static PassRefPtr&lt;HTMLFrameElement&gt; create(const QualifiedName&amp;, Document*);
+
+    bool hasFrameBorder() const { return m_frameBorder; }
+
+    bool noResize() const { return m_noResize; }
+    void setNoResize(bool);
+
+private:
</ins><span class="cx">     HTMLFrameElement(const QualifiedName&amp;, Document*);
</span><span class="cx"> 
</span><span class="cx">     virtual HTMLTagStatus endTagRequirement() const { return TagStatusForbidden; }
</span><span class="lines">@@ -42,12 +50,6 @@
</span><span class="cx">     
</span><span class="cx">     virtual void parseMappedAttribute(MappedAttribute*);
</span><span class="cx"> 
</span><del>-    bool hasFrameBorder() const { return m_frameBorder; }
-
-    bool noResize() const { return m_noResize; }
-    void setNoResize(bool);
-
-private:
</del><span class="cx">     bool m_frameBorder;
</span><span class="cx">     bool m_frameBorderSet;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLFrameElementBaseh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLFrameElementBase.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLFrameElementBase.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLFrameElementBase.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -31,36 +31,39 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLFrameElementBase : public HTMLFrameOwnerElement {
</span><span class="cx"> public:
</span><ins>+    KURL location() const;
+    void setLocation(const String&amp;);
+
+    virtual ScrollbarMode scrollingMode() const { return m_scrolling; }
+    
+    int getMarginWidth() const { return m_marginWidth; }
+    int getMarginHeight() const { return m_marginHeight; }
+
+    int width() const;
+    int height() const;
+
+protected:
+    HTMLFrameElementBase(const QualifiedName&amp;, Document*);
+
+    bool isURLAllowed() const;
+
</ins><span class="cx">     virtual void parseMappedAttribute(MappedAttribute*);
</span><span class="cx"> 
</span><span class="cx">     virtual void insertedIntoDocument();
</span><span class="cx">     virtual void removedFromDocument();
</span><span class="cx"> 
</span><span class="cx">     virtual void attach();
</span><ins>+
+private:
</ins><span class="cx">     virtual bool canLazyAttach() { return false; }
</span><span class="cx"> 
</span><del>-    KURL location() const;
-    void setLocation(const String&amp;);
-
</del><span class="cx">     virtual bool isFocusable() const;
</span><span class="cx">     virtual void setFocus(bool);
</span><span class="cx">     
</span><span class="cx">     virtual bool isURLAttribute(Attribute*) const;
</span><span class="cx"> 
</span><del>-    virtual ScrollbarMode scrollingMode() const { return m_scrolling; }
-    
-    int getMarginWidth() const { return m_marginWidth; }
-    int getMarginHeight() const { return m_marginHeight; }
-
-    int width() const;
-    int height() const;
-
</del><span class="cx">     bool viewSourceMode() const { return m_viewSource; }
</span><span class="cx"> 
</span><del>-protected:
-    HTMLFrameElementBase(const QualifiedName&amp;, Document*);
-
-    bool isURLAllowed() const;
</del><span class="cx">     void setNameAndOpenURL();
</span><span class="cx">     void openURL();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLFrameOwnerElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLFrameOwnerElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLFrameOwnerElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLFrameOwnerElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> HTMLFrameOwnerElement::HTMLFrameOwnerElement(const QualifiedName&amp; tagName, Document* document)
</span><del>-    : HTMLElement(tagName, document)
</del><ins>+    : HTMLElement(tagName, document, CreateElement)
</ins><span class="cx">     , m_contentFrame(0)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLFrameOwnerElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLFrameOwnerElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLFrameOwnerElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLFrameOwnerElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -27,36 +27,36 @@
</span><span class="cx"> 
</span><span class="cx"> class DOMWindow;
</span><span class="cx"> class Frame;
</span><del>-class KeyboardEvent;
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(SVG)
</span><span class="cx"> class SVGDocument;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> class HTMLFrameOwnerElement : public HTMLElement {
</span><del>-protected:
-    HTMLFrameOwnerElement(const QualifiedName&amp; tagName, Document*);
-
</del><span class="cx"> public:
</span><span class="cx">     virtual ~HTMLFrameOwnerElement();
</span><span class="cx"> 
</span><del>-    virtual void willRemove();
-
</del><span class="cx">     Frame* contentFrame() const { return m_contentFrame; }
</span><span class="cx">     DOMWindow* contentWindow() const;
</span><span class="cx">     Document* contentDocument() const;
</span><span class="cx"> 
</span><del>-    virtual bool isFrameOwnerElement() const { return true; }
-    virtual bool isKeyboardFocusable(KeyboardEvent*) const { return m_contentFrame; }
-    
-    virtual ScrollbarMode scrollingMode() const { return ScrollbarAuto; }
-
</del><span class="cx"> #if ENABLE(SVG)
</span><span class="cx">     SVGDocument* getSVGDocument(ExceptionCode&amp;) const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    virtual ScrollbarMode scrollingMode() const { return ScrollbarAuto; }
+
+protected:
+    HTMLFrameOwnerElement(const QualifiedName&amp; tagName, Document*);
+
</ins><span class="cx"> private:
</span><span class="cx">     friend class Frame;
</span><ins>+
+    virtual bool isFrameOwnerElement() const { return true; }
+    virtual bool isKeyboardFocusable(KeyboardEvent*) const { return m_contentFrame; }
+    
+    virtual void willRemove();
+
</ins><span class="cx">     Frame* m_contentFrame;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLIFrameElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLIFrameElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLIFrameElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLIFrameElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -35,12 +35,17 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-HTMLIFrameElement::HTMLIFrameElement(const QualifiedName&amp; tagName, Document* document)
</del><ins>+inline HTMLIFrameElement::HTMLIFrameElement(const QualifiedName&amp; tagName, Document* document)
</ins><span class="cx">     : HTMLFrameElementBase(tagName, document)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(hasTagName(iframeTag));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;HTMLIFrameElement&gt; HTMLIFrameElement::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return adoptRef(new HTMLIFrameElement(tagName, document));
+}
+
</ins><span class="cx"> bool HTMLIFrameElement::mapToEntry(const QualifiedName&amp; attrName, MappedAttributeEntry&amp; result) const
</span><span class="cx"> {
</span><span class="cx">     if (attrName == widthAttr || attrName == heightAttr) {
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLIFrameElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLIFrameElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLIFrameElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLIFrameElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Simon Hausmann &lt;hausmann@kde.org&gt;
</span><del>- * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2006, 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -30,6 +30,9 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLIFrameElement : public HTMLFrameElementBase {
</span><span class="cx"> public:
</span><ins>+    static PassRefPtr&lt;HTMLIFrameElement&gt; create(const QualifiedName&amp;, Document*);
+
+private:
</ins><span class="cx">     HTMLIFrameElement(const QualifiedName&amp;, Document*);
</span><span class="cx"> 
</span><span class="cx">     virtual HTMLTagStatus endTagRequirement() const { return TagStatusRequired; }
</span><span class="lines">@@ -48,7 +51,6 @@
</span><span class="cx">     
</span><span class="cx">     virtual bool isURLAttribute(Attribute*) const;
</span><span class="cx"> 
</span><del>-private:
</del><span class="cx">     AtomicString m_name;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLObjectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLObjectElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLObjectElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLObjectElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><span class="cx">  *           (C) 2000 Stefan Schimanski (1Stein@gmx.de)
</span><del>- * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
</span><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="lines">@@ -45,8 +45,8 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-HTMLObjectElement::HTMLObjectElement(const QualifiedName&amp; tagName, Document* doc, bool createdByParser) 
-    : HTMLPlugInImageElement(tagName, doc)
</del><ins>+inline HTMLObjectElement::HTMLObjectElement(const QualifiedName&amp; tagName, Document* document, bool createdByParser) 
+    : HTMLPlugInImageElement(tagName, document)
</ins><span class="cx">     , m_docNamedItem(true)
</span><span class="cx">     , m_needWidgetUpdate(!createdByParser)
</span><span class="cx">     , m_useFallbackContent(false)
</span><span class="lines">@@ -54,6 +54,11 @@
</span><span class="cx">     ASSERT(hasTagName(objectTag));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;HTMLObjectElement&gt; HTMLObjectElement::create(const QualifiedName&amp; tagName, Document* document, bool createdByParser)
+{
+    return adoptRef(new HTMLObjectElement(tagName, document, createdByParser));
+}
+
</ins><span class="cx"> RenderWidget* HTMLObjectElement::renderWidgetForJSBindings() const
</span><span class="cx"> {
</span><span class="cx">     RenderWidget* renderWidget = (renderer() &amp;&amp; renderer()-&gt;isWidget()) ? toRenderWidget(renderer()) : 0;
</span><span class="lines">@@ -328,18 +333,16 @@
</span><span class="cx">     if (MIMETypeRegistry::isJavaAppletMIMEType(getAttribute(typeAttr)))
</span><span class="cx">         return true;
</span><span class="cx">         
</span><del>-    Node* child = firstChild();
-    while (child) {
-        if (child-&gt;isElementNode()) {
-            Element* e = static_cast&lt;Element*&gt;(child);
-            if (e-&gt;hasTagName(paramTag) &amp;&amp; equalIgnoringCase(e-&gt;getAttribute(nameAttr), &quot;type&quot;) &amp;&amp; MIMETypeRegistry::isJavaAppletMIMEType(e-&gt;getAttribute(valueAttr).string()))
-                return true;
-            else if (e-&gt;hasTagName(objectTag) &amp;&amp; static_cast&lt;HTMLObjectElement*&gt;(e)-&gt;containsJavaApplet())
-                return true;
-            else if (e-&gt;hasTagName(appletTag))
-                return true;
-        }
-        child = child-&gt;nextSibling();
</del><ins>+    for (Element* child = firstElementChild(); child; child = child-&gt;nextElementSibling()) {
+        if (child-&gt;hasTagName(paramTag)
+                &amp;&amp; equalIgnoringCase(child-&gt;getAttribute(nameAttr), &quot;type&quot;)
+                &amp;&amp; MIMETypeRegistry::isJavaAppletMIMEType(child-&gt;getAttribute(valueAttr).string()))
+            return true;
+        if (child-&gt;hasTagName(objectTag)
+                &amp;&amp; static_cast&lt;HTMLObjectElement*&gt;(child)-&gt;containsJavaApplet())
+            return true;
+        if (child-&gt;hasTagName(appletTag))
+            return true;
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     return false;
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLObjectElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLObjectElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLObjectElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLObjectElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -27,10 +27,30 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class KURL;
-
</del><span class="cx"> class HTMLObjectElement : public HTMLPlugInImageElement {
</span><span class="cx"> public:
</span><ins>+    static PassRefPtr&lt;HTMLObjectElement&gt; create(const QualifiedName&amp;, Document*, bool createdByParser);
+
+    void setNeedWidgetUpdate(bool needWidgetUpdate) { m_needWidgetUpdate = needWidgetUpdate; }
+
+    void renderFallbackContent();
+
+    bool declare() const;
+    void setDeclare(bool);
+
+    int hspace() const;
+    void setHspace(int);
+
+    int vspace() const;
+    void setVspace(int);
+
+    bool isDocNamedItem() const { return m_docNamedItem; }
+
+    const String&amp; classId() const { return m_classId; }
+
+    bool containsJavaApplet() const;
+
+private:
</ins><span class="cx">     HTMLObjectElement(const QualifiedName&amp;, Document*, bool createdByParser);
</span><span class="cx"> 
</span><span class="cx">     virtual int tagPriority() const { return 5; }
</span><span class="lines">@@ -53,30 +73,11 @@
</span><span class="cx">     virtual const QualifiedName&amp; imageSourceAttributeName() const;
</span><span class="cx"> 
</span><span class="cx">     virtual void updateWidget();
</span><del>-    void setNeedWidgetUpdate(bool needWidgetUpdate) { m_needWidgetUpdate = needWidgetUpdate; }
</del><span class="cx"> 
</span><del>-    void renderFallbackContent();
-
</del><span class="cx">     virtual RenderWidget* renderWidgetForJSBindings() const;
</span><span class="cx"> 
</span><del>-    bool declare() const;
-    void setDeclare(bool);
-
-    int hspace() const;
-    void setHspace(int);
-
-    int vspace() const;
-    void setVspace(int);
-
-    bool isDocNamedItem() const { return m_docNamedItem; }
-
-    const String&amp; classId() const { return m_classId; }
-
-    bool containsJavaApplet() const;
-
</del><span class="cx">     virtual void addSubresourceAttributeURLs(ListHashSet&lt;KURL&gt;&amp;) const;
</span><span class="cx"> 
</span><del>-private:
</del><span class="cx">     void updateDocNamedItem();
</span><span class="cx"> 
</span><span class="cx">     AtomicString m_id;
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLPlugInElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLPlugInElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLPlugInElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLPlugInElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
</span><span class="cx">  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
</span><del>- * Copyright (C) 2004, 2006, 2007, 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2004, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -36,37 +36,44 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLPlugInElement : public HTMLFrameOwnerElement {
</span><span class="cx"> public:
</span><del>-    HTMLPlugInElement(const QualifiedName&amp; tagName, Document*);
</del><span class="cx">     virtual ~HTMLPlugInElement();
</span><span class="cx"> 
</span><del>-    virtual bool mapToEntry(const QualifiedName&amp; attrName, MappedAttributeEntry&amp; result) const;
-    virtual void parseMappedAttribute(MappedAttribute*);
-
-    virtual HTMLTagStatus endTagRequirement() const { return TagStatusRequired; }
-    virtual bool checkDTD(const Node* newChild);
-
-    virtual void updateWidget() { }
-
</del><span class="cx">     String height() const;
</span><span class="cx">     void setHeight(const String&amp;);
</span><span class="cx">     
</span><span class="cx">     String width() const;
</span><span class="cx">     void setWidth(const String&amp;);
</span><span class="cx"> 
</span><del>-    virtual void defaultEventHandler(Event*);
-
-    virtual RenderWidget* renderWidgetForJSBindings() const = 0;
-    virtual void detach();
</del><span class="cx">     PassScriptInstance getInstance() const;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><del>-    virtual NPObject* getNPObject();
</del><ins>+    NPObject* getNPObject();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><ins>+    HTMLPlugInElement(const QualifiedName&amp; tagName, Document*);
+
+    virtual void detach();
+
</ins><span class="cx">     static void updateWidgetCallback(Node*);
</span><span class="cx"> 
</span><ins>+    virtual bool mapToEntry(const QualifiedName&amp; attrName, MappedAttributeEntry&amp; result) const;
+    virtual void parseMappedAttribute(MappedAttribute*);
+
+private:
+    virtual void defaultEventHandler(Event*);
+
+    virtual RenderWidget* renderWidgetForJSBindings() const = 0;
+
+    virtual HTMLTagStatus endTagRequirement() const { return TagStatusRequired; }
+    virtual bool checkDTD(const Node* newChild);
+
+    virtual void updateWidget() { }
+
+protected:
</ins><span class="cx">     AtomicString m_name;
</span><ins>+
+private:
</ins><span class="cx">     mutable ScriptInstance m_instance;
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">     NPObject* m_NPObject;
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLPlugInImageElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLPlugInImageElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLPlugInImageElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLPlugInImageElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2008 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * This library is free software; you can redistribute it and/or
</span><span class="cx">  * modify it under the terms of the GNU Library General Public
</span><span class="lines">@@ -30,15 +30,16 @@
</span><span class="cx"> 
</span><span class="cx"> class HTMLPlugInImageElement : public HTMLPlugInElement {
</span><span class="cx"> public:
</span><del>-    HTMLPlugInImageElement(const QualifiedName&amp; tagName, Document*);
</del><span class="cx">     virtual ~HTMLPlugInImageElement();
</span><span class="cx"> 
</span><del>-    bool isImageType();
-
</del><span class="cx">     const String&amp; serviceType() const { return m_serviceType; }
</span><span class="cx">     const String&amp; url() const { return m_url; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><ins>+    HTMLPlugInImageElement(const QualifiedName&amp; tagName, Document*);
+
+    bool isImageType();
+
</ins><span class="cx">     OwnPtr&lt;HTMLImageLoader&gt; m_imageLoader;
</span><span class="cx">     String m_serviceType;
</span><span class="cx">     String m_url;
</span></span></pre></div>
<a id="trunkWebCorehtmlHTMLTagNamesin"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLTagNames.in (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLTagNames.in        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLTagNames.in        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -2,27 +2,27 @@
</span><span class="cx"> namespacePrefix=&quot;xhtml&quot;
</span><span class="cx"> namespaceURI=&quot;http://www.w3.org/1999/xhtml&quot;
</span><span class="cx"> 
</span><del>-a interfaceName=HTMLAnchorElement, createWithNew
-abbr interfaceName=HTMLElement, createWithNew
-acronym interfaceName=HTMLElement, createWithNew
-address interfaceName=HTMLElement, createWithNew
-applet createWithNew
-area createWithNew
</del><ins>+a interfaceName=HTMLAnchorElement
+abbr interfaceName=HTMLElement
+acronym interfaceName=HTMLElement
+address interfaceName=HTMLElement
+applet
+area
</ins><span class="cx"> audio wrapperOnlyIfMediaIsAvailable, conditional=VIDEO, createWithNew
</span><del>-b interfaceName=HTMLElement, createWithNew
</del><ins>+b interfaceName=HTMLElement
</ins><span class="cx"> base createWithNew
</span><span class="cx"> basefont interfaceName=HTMLBaseFontElement, createWithNew
</span><del>-bdo interfaceName=HTMLElement, createWithNew
-big interfaceName=HTMLElement, createWithNew
</del><ins>+bdo interfaceName=HTMLElement
+big interfaceName=HTMLElement
</ins><span class="cx"> blockquote createWithNew
</span><span class="cx"> body createWithNew
</span><span class="cx"> br interfaceName=HTMLBRElement, createWithNew
</span><span class="cx"> button constructorNeedsFormElement, createWithNew
</span><span class="cx"> canvas createWithNew
</span><span class="cx"> caption interfaceName=HTMLTableCaptionElement, createWithNew
</span><del>-center interfaceName=HTMLElement, createWithNew
-cite interfaceName=HTMLElement, createWithNew
-code interfaceName=HTMLElement, createWithNew
</del><ins>+center interfaceName=HTMLElement
+cite interfaceName=HTMLElement
+code interfaceName=HTMLElement
</ins><span class="cx"> col interfaceName=HTMLTableColElement, createWithNew
</span><span class="cx"> colgroup interfaceName=HTMLTableColElement, createWithNew
</span><span class="cx"> datagrid interfaceName=HTMLDataGridElement, conditional=DATAGRID, createWithNew
</span><span class="lines">@@ -30,40 +30,40 @@
</span><span class="cx"> dcell interfaceName=HTMLDataGridCellElement, conditional=DATAGRID, createWithNew
</span><span class="cx"> dcol interfaceName=HTMLDataGridColElement, conditional=DATAGRID, createWithNew
</span><span class="cx"> drow interfaceName=HTMLDataGridRowElement, conditional=DATAGRID, createWithNew
</span><del>-dd interfaceName=HTMLElement, createWithNew
</del><ins>+dd interfaceName=HTMLElement
</ins><span class="cx"> del interfaceName=HTMLModElement, createWithNew
</span><del>-dfn interfaceName=HTMLElement, createWithNew
</del><ins>+dfn interfaceName=HTMLElement
</ins><span class="cx"> dir interfaceName=HTMLDirectoryElement, createWithNew
</span><span class="cx"> div createWithNew
</span><del>-dl interfaceName=HTMLDListElement, createWithNew
-dt interfaceName=HTMLElement, createWithNew
-em interfaceName=HTMLElement, createWithNew
-embed createWithNew
</del><ins>+dl interfaceName=HTMLDListElement, createWithNew, createWithNew
+dt interfaceName=HTMLElement
+em interfaceName=HTMLElement
+embed
</ins><span class="cx"> fieldset interfaceName=HTMLFieldSetElement, constructorNeedsFormElement, createWithNew
</span><span class="cx"> font createWithNew
</span><span class="cx"> form createWithNew
</span><del>-frame createWithNew
</del><ins>+frame
</ins><span class="cx"> frameset interfaceName=HTMLFrameSetElement, createWithNew
</span><del>-head createWithNew
</del><span class="cx"> h1 interfaceName=HTMLHeadingElement, createWithNew
</span><span class="cx"> h2 interfaceName=HTMLHeadingElement, createWithNew
</span><span class="cx"> h3 interfaceName=HTMLHeadingElement, createWithNew
</span><span class="cx"> h4 interfaceName=HTMLHeadingElement, createWithNew
</span><span class="cx"> h5 interfaceName=HTMLHeadingElement, createWithNew
</span><span class="cx"> h6 interfaceName=HTMLHeadingElement, createWithNew
</span><ins>+head createWithNew
</ins><span class="cx"> hr interfaceName=HTMLHRElement, createWithNew
</span><span class="cx"> html createWithNew
</span><del>-i interfaceName=HTMLElement, createWithNew
-iframe interfaceName=HTMLIFrameElement, createWithNew
</del><ins>+i interfaceName=HTMLElement
+iframe interfaceName=HTMLIFrameElement
</ins><span class="cx"> image mapToTagName=img, createWithNew
</span><span class="cx"> img interfaceName=HTMLImageElement, constructorNeedsFormElement, createWithNew
</span><span class="cx"> input constructorNeedsFormElement, createWithNew
</span><span class="cx"> ins interfaceName=HTMLModElement, createWithNew
</span><span class="cx"> isindex interfaceName=HTMLIsIndexElement, constructorNeedsFormElement, createWithNew
</span><del>-kbd interfaceName=HTMLElement, createWithNew
</del><ins>+kbd interfaceName=HTMLElement
</ins><span class="cx"> keygen JSInterfaceName=HTMLSelectElement, constructorNeedsFormElement, createWithNew
</span><span class="cx"> label createWithNew
</span><del>-layer interfaceName=HTMLElement, createWithNew
</del><ins>+layer interfaceName=HTMLElement
</ins><span class="cx"> legend constructorNeedsFormElement, createWithNew
</span><span class="cx"> li interfaceName=HTMLLIElement, createWithNew
</span><span class="cx"> link constructorNeedsCreatedByParser, createWithNew
</span><span class="lines">@@ -72,40 +72,35 @@
</span><span class="cx"> marquee createWithNew
</span><span class="cx"> menu createWithNew
</span><span class="cx"> meta createWithNew
</span><del>-nav interfaceName=HTMLElement, createWithNew
-nobr interfaceName=HTMLElement, createWithNew
-noembed interfaceName=HTMLElement, createWithNew
-noframes interfaceName=HTMLElement, createWithNew
-nolayer interfaceName=HTMLElement, createWithNew
-#if ENABLE_XHTMLMP
-noscript interfaceName=HTMLNoScriptElement, createWithNew
-#else
-noscript interfaceName=HTMLElement, createWithNew
-#endif
-object constructorNeedsCreatedByParser, createWithNew
</del><ins>+nav interfaceName=HTMLElement
+nobr interfaceName=HTMLElement
+noembed interfaceName=HTMLElement
+noframes interfaceName=HTMLElement
+nolayer interfaceName=HTMLElement
+object constructorNeedsCreatedByParser
</ins><span class="cx"> ol interfaceName=HTMLOListElement, createWithNew
</span><span class="cx"> optgroup interfaceName=HTMLOptGroupElement, constructorNeedsFormElement, createWithNew
</span><span class="cx"> option constructorNeedsFormElement, createWithNew
</span><span class="cx"> p interfaceName=HTMLParagraphElement, createWithNew
</span><span class="cx"> param createWithNew
</span><del>-plaintext interfaceName=HTMLElement, createWithNew
</del><ins>+plaintext interfaceName=HTMLElement
</ins><span class="cx"> pre createWithNew
</span><span class="cx"> q interfaceName=HTMLQuoteElement, createWithNew
</span><del>-rp interfaceName=HTMLElement, createWithNew
-rt interfaceName=HTMLElement, createWithNew
-ruby interfaceName=HTMLElement, createWithNew
-s interfaceName=HTMLElement, createWithNew
-samp interfaceName=HTMLElement, createWithNew
</del><ins>+rp interfaceName=HTMLElement
+rt interfaceName=HTMLElement
+ruby interfaceName=HTMLElement
+s interfaceName=HTMLElement
+samp interfaceName=HTMLElement
</ins><span class="cx"> script constructorNeedsCreatedByParser, createWithNew
</span><span class="cx"> select constructorNeedsFormElement, createWithNew
</span><del>-small interfaceName=HTMLElement, createWithNew
</del><ins>+small interfaceName=HTMLElement
</ins><span class="cx"> source wrapperOnlyIfMediaIsAvailable, conditional=VIDEO, createWithNew
</span><del>-span interfaceName=HTMLElement, createWithNew
-strike interfaceName=HTMLElement, createWithNew
-strong interfaceName=HTMLElement, createWithNew
</del><ins>+span interfaceName=HTMLElement
+strike interfaceName=HTMLElement
+strong interfaceName=HTMLElement
</ins><span class="cx"> style constructorNeedsCreatedByParser, createWithNew
</span><del>-sub interfaceName=HTMLElement, createWithNew
-sup interfaceName=HTMLElement, createWithNew
</del><ins>+sub interfaceName=HTMLElement
+sup interfaceName=HTMLElement
</ins><span class="cx"> table createWithNew
</span><span class="cx"> tbody interfaceName=HTMLTableSectionElement, createWithNew
</span><span class="cx"> td interfaceName=HTMLTableCellElement, createWithNew
</span><span class="lines">@@ -115,10 +110,16 @@
</span><span class="cx"> thead interfaceName=HTMLTableSectionElement, createWithNew
</span><span class="cx"> title createWithNew
</span><span class="cx"> tr interfaceName=HTMLTableRowElement, createWithNew
</span><del>-tt interfaceName=HTMLElement, createWithNew
-u interfaceName=HTMLElement, createWithNew
</del><ins>+tt interfaceName=HTMLElement
+u interfaceName=HTMLElement
</ins><span class="cx"> ul interfaceName=HTMLUListElement, createWithNew
</span><del>-var interfaceName=HTMLElement, createWithNew
</del><ins>+var interfaceName=HTMLElement
</ins><span class="cx"> video wrapperOnlyIfMediaIsAvailable, conditional=VIDEO, createWithNew
</span><del>-wbr interfaceName=HTMLElement, createWithNew
</del><ins>+wbr interfaceName=HTMLElement
</ins><span class="cx"> xmp interfaceName=HTMLPreElement, createWithNew
</span><ins>+
+#if ENABLE_XHTMLMP
+noscript interfaceName=HTMLNoScriptElement, createWithNew
+#else
+noscript interfaceName=HTMLElement
+#endif
</ins></span></pre></div>
<a id="trunkWebCorehtmlHTMLViewSourceDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/HTMLViewSourceDocument.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/HTMLViewSourceDocument.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/html/HTMLViewSourceDocument.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -209,7 +209,7 @@
</span><span class="cx">         return m_current;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;HTMLElement&gt; span = new HTMLElement(spanTag, this);
</del><ins>+    RefPtr&lt;HTMLElement&gt; span = HTMLElement::create(spanTag, this);
</ins><span class="cx">     RefPtr&lt;NamedMappedAttrMap&gt; attrs = NamedMappedAttrMap::create();
</span><span class="cx">     attrs-&gt;addAttribute(MappedAttribute::create(classAttr, className));
</span><span class="cx">     span-&gt;setAttributeMap(attrs.release());
</span><span class="lines">@@ -292,7 +292,7 @@
</span><span class="cx">         addLine(&quot;webkit-html-tag&quot;);
</span><span class="cx">     
</span><span class="cx">     // Now create a link for the attribute value instead of a span.
</span><del>-    RefPtr&lt;HTMLAnchorElement&gt; anchor = new HTMLAnchorElement(this);
</del><ins>+    RefPtr&lt;HTMLAnchorElement&gt; anchor = HTMLAnchorElement::create(this);
</ins><span class="cx">     RefPtr&lt;NamedMappedAttrMap&gt; attrs = NamedMappedAttrMap::create();
</span><span class="cx">     const char* classValue;
</span><span class="cx">     if (isAnchor)
</span></span></pre></div>
<a id="trunkWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/page/DragController.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/page/DragController.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/page/DragController.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx">             String title;
</span><span class="cx">             String url = dragData-&gt;asURL(&amp;title);
</span><span class="cx">             if (!url.isEmpty()) {
</span><del>-                RefPtr&lt;HTMLAnchorElement&gt; anchor = new HTMLAnchorElement(document);
</del><ins>+                RefPtr&lt;HTMLAnchorElement&gt; anchor = HTMLAnchorElement::create(document);
</ins><span class="cx">                 anchor-&gt;setHref(url);
</span><span class="cx">                 ExceptionCode ec;
</span><span class="cx">                 RefPtr&lt;Node&gt; anchorText = document-&gt;createTextNode(title);
</span></span></pre></div>
<a id="trunkWebCoresvgSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/svg/SVGElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/svg/SVGElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/svg/SVGElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -51,14 +51,19 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-SVGElement::SVGElement(const QualifiedName&amp; tagName, Document* doc)
-    : StyledElement(tagName, doc)
</del><ins>+SVGElement::SVGElement(const QualifiedName&amp; tagName, Document* document)
+    : StyledElement(tagName, document, CreateElementZeroRefCount)
</ins><span class="cx">     , m_shadowParent(0)
</span><span class="cx">     , m_cursorElement(0)
</span><span class="cx">     , m_cursorImageValue(0)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;SVGElement&gt; SVGElement::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return new SVGElement(tagName, document);
+}
+
</ins><span class="cx"> SVGElement::~SVGElement()
</span><span class="cx"> {
</span><span class="cx">     if (m_cursorElement)
</span></span></pre></div>
<a id="trunkWebCoresvgSVGElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/svg/SVGElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/svg/SVGElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/svg/SVGElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -1,9 +1,8 @@
</span><span class="cx"> /*
</span><span class="cx">     Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann &lt;zimmermann@kde.org&gt;
</span><span class="cx">                   2004, 2005, 2006 Rob Buis &lt;buis@kde.org&gt;
</span><ins>+    Copyright (C) 2009 Apple Inc. All rights reserved.
</ins><span class="cx"> 
</span><del>-    This file is part of the KDE project
-
</del><span class="cx">     This library is free software; you can redistribute it and/or
</span><span class="cx">     modify it under the terms of the GNU Library General Public
</span><span class="cx">     License as published by the Free Software Foundation; either
</span><span class="lines">@@ -26,25 +25,22 @@
</span><span class="cx"> #if ENABLE(SVG)
</span><span class="cx"> #include &quot;StyledElement.h&quot;
</span><span class="cx"> #include &quot;SVGAnimatedProperty.h&quot;
</span><del>-#include &quot;SVGNames.h&quot;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-    class TransformationMatrix;
</del><span class="cx">     class CSSCursorImageValue;
</span><span class="cx">     class Document;
</span><span class="cx">     class SVGCursorElement;
</span><span class="cx">     class SVGDocumentExtensions;
</span><span class="cx">     class SVGElementInstance;
</span><span class="cx">     class SVGSVGElement;
</span><ins>+    class TransformationMatrix;
</ins><span class="cx"> 
</span><span class="cx">     class SVGElement : public StyledElement {
</span><span class="cx">     public:
</span><del>-        SVGElement(const QualifiedName&amp;, Document*);
</del><ins>+        static PassRefPtr&lt;SVGElement&gt; create(const QualifiedName&amp;, Document*);
</ins><span class="cx">         virtual ~SVGElement();
</span><del>-        virtual bool isSVGElement() const { return true; }
-        virtual bool isSupported(StringImpl* feature, StringImpl* version) const;
-        
</del><ins>+
</ins><span class="cx">         String id() const;
</span><span class="cx">         void setId(const String&amp;, ExceptionCode&amp;);
</span><span class="cx">         String xmlbase() const;
</span><span class="lines">@@ -52,6 +48,7 @@
</span><span class="cx"> 
</span><span class="cx">         SVGSVGElement* ownerSVGElement() const;
</span><span class="cx">         SVGElement* viewportElement() const;
</span><ins>+
</ins><span class="cx">         SVGDocumentExtensions* accessDocumentSVGExtensions() const;
</span><span class="cx"> 
</span><span class="cx">         virtual void parseMappedAttribute(MappedAttribute*);
</span><span class="lines">@@ -64,33 +61,53 @@
</span><span class="cx">         virtual bool isGradientStop() const { return false; }
</span><span class="cx">         virtual bool isTextContent() const { return false; }
</span><span class="cx"> 
</span><del>-        virtual bool isShadowNode() const { return m_shadowParent; }
-        virtual Node* shadowParentNode() { return m_shadowParent; }
</del><span class="cx">         void setShadowParentNode(ContainerNode* node) { m_shadowParent = node; }
</span><del>-        virtual ContainerNode* eventParentNode();
</del><span class="cx"> 
</span><span class="cx">         // For SVGTests
</span><span class="cx">         virtual bool isValid() const { return true; }
</span><del>-  
-        virtual void finishParsingChildren();
</del><ins>+
</ins><span class="cx">         virtual bool rendererIsNeeded(RenderStyle*) { return false; }
</span><span class="cx">         virtual bool childShouldCreateRenderer(Node*) const;
</span><span class="cx"> 
</span><del>-        virtual void insertedIntoDocument();
-        virtual void buildPendingResource() { }
-
</del><span class="cx">         virtual void svgAttributeChanged(const QualifiedName&amp;) { }
</span><del>-        virtual void attributeChanged(Attribute*, bool preserveDecls = false);
</del><span class="cx"> 
</span><span class="cx">         void sendSVGLoadEventIfPossible(bool sendParentLoadEvents = false);
</span><span class="cx">         
</span><span class="cx">         virtual TransformationMatrix* supplementalTransform() { return 0; }
</span><span class="cx"> 
</span><del>-        virtual void updateAnimatedSVGAttribute(const String&amp;) const;
</del><span class="cx">         virtual void setSynchronizedSVGAttributes(bool) const;
</span><span class="cx"> 
</span><span class="cx">         HashSet&lt;SVGElementInstance*&gt; instancesForElement() const;
</span><del>- 
</del><ins>+
+        void addSVGPropertySynchronizer(const QualifiedName&amp; attrName, const SVGAnimatedPropertyBase&amp; base) const
+        {
+            m_svgPropertyMap.set(attrName.localName(), &amp;base);
+        }
+
+        void setCursorElement(SVGCursorElement* cursorElement) { m_cursorElement = cursorElement; }
+        void setCursorImageValue(CSSCursorImageValue* cursorImageValue) { m_cursorImageValue = cursorImageValue; }
+
+    protected:
+        SVGElement(const QualifiedName&amp;, Document*);
+
+        virtual void finishParsingChildren();
+        virtual void insertedIntoDocument();
+        virtual void attributeChanged(Attribute*, bool preserveDecls = false);
+        virtual void updateAnimatedSVGAttribute(const String&amp;) const;
+
+    private:
+        friend class SVGElementInstance;
+
+        virtual bool isSVGElement() const { return true; }
+
+        virtual bool isSupported(StringImpl* feature, StringImpl* version) const;
+        
+        virtual bool isShadowNode() const { return m_shadowParent; }
+        virtual Node* shadowParentNode() { return m_shadowParent; }
+        virtual ContainerNode* eventParentNode();
+
+        virtual void buildPendingResource() { }
+
</ins><span class="cx">         // Inlined methods handling SVG property synchronization
</span><span class="cx">         void invokeSVGPropertySynchronizer(const String&amp; name) const
</span><span class="cx">         {
</span><span class="lines">@@ -114,17 +131,6 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        void addSVGPropertySynchronizer(const QualifiedName&amp; attrName, const SVGAnimatedPropertyBase&amp; base) const
-        {
-            m_svgPropertyMap.set(attrName.localName(), &amp;base);
-        }
-
-        void setCursorElement(SVGCursorElement* cursorElement) { m_cursorElement = cursorElement; }
-        void setCursorImageValue(CSSCursorImageValue* cursorImageValue) { m_cursorImageValue = cursorImageValue; }
-
-    private:
-        friend class SVGElementInstance;
-
</del><span class="cx">         void mapInstanceToElement(SVGElementInstance*);
</span><span class="cx">         void removeInstanceMapping(SVGElementInstance*);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoresvgSVGExternalResourcesRequiredh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/svg/SVGExternalResourcesRequired.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/svg/SVGExternalResourcesRequired.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/svg/SVGExternalResourcesRequired.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -25,6 +25,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SVG)
</span><span class="cx"> #include &quot;SVGElement.h&quot;
</span><ins>+#include &quot;SVGNames.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoresvgSVGStopElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/svg/SVGStopElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/svg/SVGStopElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/svg/SVGStopElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -2,8 +2,6 @@
</span><span class="cx">     Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann &lt;zimmermann@kde.org&gt;
</span><span class="cx">                   2004, 2005, 2006 Rob Buis &lt;buis@kde.org&gt;
</span><span class="cx"> 
</span><del>-    This file is part of the KDE project
-
</del><span class="cx">     This library is free software; you can redistribute it and/or
</span><span class="cx">     modify it under the terms of the GNU Library General Public
</span><span class="cx">     License as published by the Free Software Foundation; either
</span><span class="lines">@@ -24,6 +22,7 @@
</span><span class="cx"> #define SVGStopElement_h
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SVG)
</span><ins>+#include &quot;SVGNames.h&quot;
</ins><span class="cx"> #include &quot;SVGStyledElement.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -33,13 +32,13 @@
</span><span class="cx">         SVGStopElement(const QualifiedName&amp;, Document*);
</span><span class="cx">         virtual ~SVGStopElement();
</span><span class="cx"> 
</span><ins>+    private:
</ins><span class="cx">         virtual bool isGradientStop() const { return true; }
</span><span class="cx"> 
</span><span class="cx">         virtual void parseMappedAttribute(MappedAttribute*);
</span><span class="cx"> 
</span><span class="cx">         virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
</span><span class="cx"> 
</span><del>-    private:
</del><span class="cx">         ANIMATED_PROPERTY_DECLARATIONS(SVGStopElement, SVGNames::stopTagString, SVGNames::offsetAttrString, float, Offset, offset)
</span><span class="cx">     };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCorewmlWMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/wml/WMLElement.cpp (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/wml/WMLElement.cpp        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/wml/WMLElement.cpp        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -38,11 +38,16 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace WMLNames;
</span><span class="cx"> 
</span><del>-WMLElement::WMLElement(const QualifiedName&amp; tagName, Document* doc)
-    : StyledElement(tagName, doc)
</del><ins>+WMLElement::WMLElement(const QualifiedName&amp; tagName, Document* document)
+    : StyledElement(tagName, document, CreateElementZeroRefCount)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static PassRefPtr&lt;WMLElement&gt; WMLElement::create(const QualifiedName&amp; tagName, Document* document)
+{
+    return new WMLElement(tagName, document);
+}
+
</ins><span class="cx"> bool WMLElement::mapToEntry(const QualifiedName&amp; attrName, MappedAttributeEntry&amp; result) const
</span><span class="cx"> {
</span><span class="cx">     if (attrName == HTMLNames::alignAttr) {
</span></span></pre></div>
<a id="trunkWebCorewmlWMLElementh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/wml/WMLElement.h (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/wml/WMLElement.h        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/wml/WMLElement.h        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> class WMLElement : public StyledElement {
</span><span class="cx"> public:
</span><del>-    WMLElement(const QualifiedName&amp; tagName, Document*);
</del><ins>+    static PassRefPtr&lt;WMLElement&gt; create(const QualifiedName&amp; tagName, Document*);
</ins><span class="cx"> 
</span><span class="cx">     virtual bool isWMLElement() const { return true; }
</span><span class="cx">     virtual bool isWMLTaskElement() const { return false; }
</span><span class="lines">@@ -43,6 +43,8 @@
</span><span class="cx">     virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><ins>+    WMLElement(const QualifiedName&amp; tagName, Document*);
+
</ins><span class="cx">     // Helper function for derived classes
</span><span class="cx">     String parseValueSubstitutingVariableReferences(const AtomicString&amp;, WMLErrorCode defaultErrorCode = WMLErrorInvalidVariableReference) const;
</span><span class="cx">     String parseValueForbiddingVariableReferences(const AtomicString&amp;) const;
</span></span></pre></div>
<a id="trunkWebCorewmlWMLTagNamesin"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/wml/WMLTagNames.in (47687 => 47688)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/wml/WMLTagNames.in        2009-08-23 06:36:34 UTC (rev 47687)
+++ trunk/WebCore/wml/WMLTagNames.in        2009-08-23 06:55:57 UTC (rev 47688)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> do createWithNew
</span><span class="cx"> fieldset interfaceName=WMLFieldSetElement, createWithNew
</span><span class="cx"> go createWithNew
</span><del>-head interfaceName=WMLElement, createWithNew
</del><ins>+head interfaceName=WMLElement
</ins><span class="cx"> img interfaceName=WMLImageElement, createWithNew
</span><span class="cx"> input createWithNew
</span><span class="cx"> #if 0
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> select createWithNew
</span><span class="cx"> setvar createWithNew
</span><span class="cx"> table createWithNew
</span><del>-td interfaceName=WMLElement, createWithNew
</del><ins>+td interfaceName=WMLElement
</ins><span class="cx"> template createWithNew
</span><span class="cx"> timer createWithNew
</span><del>-tr interfaceName=WMLElement, createWithNew
</del><ins>+tr interfaceName=WMLElement
</ins></span></pre>
</div>
</div>

</body>
</html>