Title: [141292] trunk/Source/WebCore
Revision
141292
Author
espr...@chromium.org
Date
2013-01-30 11:41:07 -0800 (Wed, 30 Jan 2013)

Log Message

Remove willAddAuthorShadowRoot and replace with alwaysCreateUserAgentShadowRoot
https://bugs.webkit.org/show_bug.cgi?id=108248

Reviewed by Dimitri Glazkov.

The only reason willAddAuthorShadowRoot exists is so that a handful of
other elements can create the user agent shadow root right before the
author shadow root is created. Instead of providing this generic hook
just expose a virtual method on Element that requests this behavior.

No new tests, just refactoring.

* dom/Element.cpp:
(WebCore::Element::createShadowRoot):
* dom/Element.h:
(Element):
(WebCore::Element::alwaysCreateUserAgentShadowRoot): Added.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot): Remove willAddAuthorShadowRoot notification.
* html/HTMLButtonElement.cpp:
* html/HTMLButtonElement.h:
* html/HTMLFormControlElement.cpp:
* html/HTMLFormControlElement.h:
* html/HTMLMediaElement.cpp:
* html/HTMLMediaElement.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (141291 => 141292)


--- trunk/Source/WebCore/ChangeLog	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/ChangeLog	2013-01-30 19:41:07 UTC (rev 141292)
@@ -1,3 +1,31 @@
+2013-01-30  Elliott Sprehn  <espr...@chromium.org>
+
+        Remove willAddAuthorShadowRoot and replace with alwaysCreateUserAgentShadowRoot
+        https://bugs.webkit.org/show_bug.cgi?id=108248
+
+        Reviewed by Dimitri Glazkov.
+
+        The only reason willAddAuthorShadowRoot exists is so that a handful of
+        other elements can create the user agent shadow root right before the
+        author shadow root is created. Instead of providing this generic hook
+        just expose a virtual method on Element that requests this behavior.
+
+        No new tests, just refactoring.
+
+        * dom/Element.cpp:
+        (WebCore::Element::createShadowRoot):
+        * dom/Element.h:
+        (Element):
+        (WebCore::Element::alwaysCreateUserAgentShadowRoot): Added.
+        * dom/ElementShadow.cpp:
+        (WebCore::ElementShadow::addShadowRoot): Remove willAddAuthorShadowRoot notification.
+        * html/HTMLButtonElement.cpp:
+        * html/HTMLButtonElement.h:
+        * html/HTMLFormControlElement.cpp:
+        * html/HTMLFormControlElement.h:
+        * html/HTMLMediaElement.cpp:
+        * html/HTMLMediaElement.h:
+
 2013-01-30  Dominik Röttsches  <dominik.rottsc...@intel.com>
 
         [HarfBuzz] Naming fixes after removing old HarfBuzz code

Modified: trunk/Source/WebCore/dom/Element.cpp (141291 => 141292)


--- trunk/Source/WebCore/dom/Element.cpp	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/dom/Element.cpp	2013-01-30 19:41:07 UTC (rev 141292)
@@ -1450,6 +1450,9 @@
 
 PassRefPtr<ShadowRoot> Element::createShadowRoot(ExceptionCode& ec)
 {
+    if (alwaysCreateUserAgentShadowRoot())
+        ensureUserAgentShadowRoot();
+
 #if ENABLE(SHADOW_DOM)
     if (RuntimeEnabledFeatures::authorShadowDOMForAnyElementEnabled())
         return ensureShadow()->addShadowRoot(this, ShadowRoot::AuthorShadowRoot);

Modified: trunk/Source/WebCore/dom/Element.h (141291 => 141292)


--- trunk/Source/WebCore/dom/Element.h	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/dom/Element.h	2013-01-30 19:41:07 UTC (rev 141292)
@@ -533,6 +533,7 @@
 
     virtual bool areAuthorShadowsAllowed() const { return true; }
     virtual void didAddUserAgentShadowRoot(ShadowRoot*) { }
+    virtual bool alwaysCreateUserAgentShadowRoot() const { return false; }
 
     // FIXME: Remove the need for Attr to call willModifyAttribute/didModifyAttribute.
     friend class Attr;

Modified: trunk/Source/WebCore/dom/ElementShadow.cpp (141291 => 141292)


--- trunk/Source/WebCore/dom/ElementShadow.cpp	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/dom/ElementShadow.cpp	2013-01-30 19:41:07 UTC (rev 141292)
@@ -36,9 +36,6 @@
 {
     RefPtr<ShadowRoot> shadowRoot = ShadowRoot::create(shadowHost->document(), type);
 
-    if (type == ShadowRoot::AuthorShadowRoot)
-        shadowHost->willAddAuthorShadowRoot();
-
     shadowRoot->setHost(shadowHost);
     m_shadowRoots.push(shadowRoot.get());
     m_distributor.didShadowBoundaryChange(shadowHost);

Modified: trunk/Source/WebCore/html/HTMLButtonElement.cpp (141291 => 141292)


--- trunk/Source/WebCore/html/HTMLButtonElement.cpp	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/html/HTMLButtonElement.cpp	2013-01-30 19:41:07 UTC (rev 141292)
@@ -63,10 +63,6 @@
     return new (arena) RenderButton(this);
 }
 
-void HTMLButtonElement::willAddAuthorShadowRoot()
-{
-}
-
 const AtomicString& HTMLButtonElement::formControlType() const
 {
     switch (m_type) {

Modified: trunk/Source/WebCore/html/HTMLButtonElement.h (141291 => 141292)


--- trunk/Source/WebCore/html/HTMLButtonElement.h	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/html/HTMLButtonElement.h	2013-01-30 19:41:07 UTC (rev 141292)
@@ -44,10 +44,11 @@
     enum Type { SUBMIT, RESET, BUTTON };
 
     virtual const AtomicString& formControlType() const;
-        
+
     virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
 
-    virtual void willAddAuthorShadowRoot() OVERRIDE;
+    // HTMLFormControlElement always creates one, but buttons don't need it.
+    virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE { return false; }
 
     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE;

Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (141291 => 141292)


--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp	2013-01-30 19:41:07 UTC (rev 141292)
@@ -70,11 +70,6 @@
 {
 }
 
-void HTMLFormControlElement::willAddAuthorShadowRoot()
-{
-    ensureUserAgentShadowRoot();
-}
-
 String HTMLFormControlElement::formEnctype() const
 {
     return FormSubmission::Attributes::parseEncodingType(fastGetAttribute(formenctypeAttr));

Modified: trunk/Source/WebCore/html/HTMLFormControlElement.h (141291 => 141292)


--- trunk/Source/WebCore/html/HTMLFormControlElement.h	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.h	2013-01-30 19:41:07 UTC (rev 141292)
@@ -45,8 +45,6 @@
 
     HTMLFormElement* form() const { return FormAssociatedElement::form(); }
 
-    void willAddAuthorShadowRoot() OVERRIDE;
-
     String formEnctype() const;
     void setFormEnctype(const String&);
     String formMethod() const;
@@ -139,6 +137,7 @@
     virtual void derefFormAssociatedElement() { deref(); }
 
     virtual bool isFormControlElement() const { return true; }
+    virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE { return true; }
 
     virtual short tabIndex() const;
 

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (141291 => 141292)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2013-01-30 19:41:07 UTC (rev 141292)
@@ -1981,12 +1981,6 @@
     }
 }
 
-void HTMLMediaElement::willAddAuthorShadowRoot()
-{
-    if (!userAgentShadowRoot())
-        ensureUserAgentShadowRoot();
-}
-
 void HTMLMediaElement::rewind(float timeDelta)
 {
     LOG(Media, "HTMLMediaElement::rewind(%f)", timeDelta);

Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (141291 => 141292)


--- trunk/Source/WebCore/html/HTMLMediaElement.h	2013-01-30 19:39:35 UTC (rev 141291)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h	2013-01-30 19:41:07 UTC (rev 141292)
@@ -88,8 +88,6 @@
 public:
     MediaPlayer* player() const { return m_player.get(); }
 
-    virtual void willAddAuthorShadowRoot() OVERRIDE;
-
     virtual bool isVideo() const = 0;
     virtual bool hasVideo() const { return false; }
     virtual bool hasAudio() const;
@@ -382,6 +380,7 @@
 private:
     void createMediaPlayer();
 
+    virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE { return true; }
     virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; }
 
     virtual bool hasCustomFocusLogic() const OVERRIDE;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to