- 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;