Move hasAuthorShadowRoot to Element
https://bugs.webkit.org/show_bug.cgi?id=108071

Reviewed by Dimitri Glazkov.

Move hasAuthorShadowRoot to Element and get rid of unneccesary booleans
in HTMLProgressElement and HTMLMeterElement. Also get rid of
ShadowRoot::isAccessible since it obfuscates what's actually happening
inside of Element::shadowRoot().

No new tests, just refactoring.

* dom/Element.cpp:
(WebCore::Element::shadowRoot):
(WebCore::Element::hasAuthorShadowRoot):
* dom/Element.h:
(Element):
* dom/ShadowRoot.h:
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::HTMLMeterElement):
* html/HTMLMeterElement.h:
(HTMLMeterElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::HTMLProgressElement):
* html/HTMLProgressElement.h:
(HTMLProgressElement):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 07d9f4c..ef689bd 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,5 +1,34 @@
 2013-01-28  Elliott Sprehn  <esprehn@chromium.org>
 
+        Move hasAuthorShadowRoot to Element
+        https://bugs.webkit.org/show_bug.cgi?id=108071
+
+        Reviewed by Dimitri Glazkov.
+
+        Move hasAuthorShadowRoot to Element and get rid of unneccesary booleans
+        in HTMLProgressElement and HTMLMeterElement. Also get rid of
+        ShadowRoot::isAccessible since it obfuscates what's actually happening
+        inside of Element::shadowRoot().
+
+        No new tests, just refactoring.
+
+        * dom/Element.cpp:
+        (WebCore::Element::shadowRoot):
+        (WebCore::Element::hasAuthorShadowRoot):
+        * dom/Element.h:
+        (Element):
+        * dom/ShadowRoot.h:
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::HTMLMeterElement):
+        * html/HTMLMeterElement.h:
+        (HTMLMeterElement):
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::HTMLProgressElement):
+        * html/HTMLProgressElement.h:
+        (HTMLProgressElement):
+
+2013-01-28  Elliott Sprehn  <esprehn@chromium.org>
+
         Move ensureUserAgentShadowRoot to Element
         https://bugs.webkit.org/show_bug.cgi?id=108070
 
diff --git a/Source/WebCore/dom/Element.cpp b/Source/WebCore/dom/Element.cpp
index 204b707..72f602c 100644
--- a/Source/WebCore/dom/Element.cpp
+++ b/Source/WebCore/dom/Element.cpp
@@ -1471,9 +1471,9 @@
     if (!elementShadow)
         return 0;
     ShadowRoot* shadowRoot = elementShadow->youngestShadowRoot();
-    if (!shadowRoot->isAccessible())
-        return 0;
-    return shadowRoot;
+    if (shadowRoot->type() == ShadowRoot::AuthorShadowRoot)
+        return shadowRoot;
+    return 0;
 }
 
 ShadowRoot* Element::userAgentShadowRoot() const
diff --git a/Source/WebCore/dom/Element.h b/Source/WebCore/dom/Element.h
index e953d27..e071222 100644
--- a/Source/WebCore/dom/Element.h
+++ b/Source/WebCore/dom/Element.h
@@ -293,6 +293,7 @@
     PassRefPtr<ShadowRoot> createShadowRoot(ExceptionCode&);
     ShadowRoot* shadowRoot() const;
 
+    bool hasAuthorShadowRoot() const { return shadowRoot(); }
     virtual void willAddAuthorShadowRoot() { }
     virtual bool areAuthorShadowsAllowed() const { return true; }
 
diff --git a/Source/WebCore/dom/ShadowRoot.h b/Source/WebCore/dom/ShadowRoot.h
index 1526938..83e9bf3 100644
--- a/Source/WebCore/dom/ShadowRoot.h
+++ b/Source/WebCore/dom/ShadowRoot.h
@@ -93,7 +93,6 @@
     ScopeContentDistribution* ensureScopeDistribution();
 
     ShadowRootType type() const { return m_isAuthorShadowRoot ? AuthorShadowRoot : UserAgentShadowRoot; }
-    bool isAccessible() const { return type() == AuthorShadowRoot; }
 
     PassRefPtr<Node> cloneNode(bool, ExceptionCode&);
 
diff --git a/Source/WebCore/html/HTMLMeterElement.cpp b/Source/WebCore/html/HTMLMeterElement.cpp
index f59d79e..465d0ff 100644
--- a/Source/WebCore/html/HTMLMeterElement.cpp
+++ b/Source/WebCore/html/HTMLMeterElement.cpp
@@ -43,7 +43,6 @@
 
 HTMLMeterElement::HTMLMeterElement(const QualifiedName& tagName, Document* document)
     : LabelableElement(tagName, document)
-    , m_hasAuthorShadowRoot(false)
 {
     ASSERT(hasTagName(meterTag));
 }
@@ -225,11 +224,6 @@
         render->updateFromElement();
 }
 
-void HTMLMeterElement::willAddAuthorShadowRoot()
-{
-    m_hasAuthorShadowRoot = true;
-}
-
 RenderMeter* HTMLMeterElement::renderMeter() const
 {
     if (renderer() && renderer()->isMeter())
diff --git a/Source/WebCore/html/HTMLMeterElement.h b/Source/WebCore/html/HTMLMeterElement.h
index d1107a4..f58e351 100644
--- a/Source/WebCore/html/HTMLMeterElement.h
+++ b/Source/WebCore/html/HTMLMeterElement.h
@@ -39,8 +39,6 @@
         GaugeRegionEvenLessGood
     };
 
-    bool hasAuthorShadowRoot() const { return m_hasAuthorShadowRoot; }
-
     double min() const;
     void setMin(double, ExceptionCode&);
 
@@ -68,7 +66,6 @@
     HTMLMeterElement(const QualifiedName&, Document*);
     virtual ~HTMLMeterElement();
 
-    virtual void willAddAuthorShadowRoot() OVERRIDE;
     virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; }
     RenderMeter* renderMeter() const;
 
@@ -85,7 +82,6 @@
     void createShadowSubtree();
 
     RefPtr<MeterValueElement> m_value;
-    bool m_hasAuthorShadowRoot;
 };
 
 inline bool isHTMLMeterElement(Node* node)
diff --git a/Source/WebCore/html/HTMLProgressElement.cpp b/Source/WebCore/html/HTMLProgressElement.cpp
index 6ae809f..84b2e89 100644
--- a/Source/WebCore/html/HTMLProgressElement.cpp
+++ b/Source/WebCore/html/HTMLProgressElement.cpp
@@ -44,7 +44,6 @@
 HTMLProgressElement::HTMLProgressElement(const QualifiedName& tagName, Document* document)
     : LabelableElement(tagName, document)
     , m_value(0)
-    , m_hasAuthorShadowRoot(false)
 {
     ASSERT(hasTagName(progressTag));
 }
@@ -83,11 +82,6 @@
     return static_cast<RenderProgress*>(renderObject);
 }
 
-void HTMLProgressElement::willAddAuthorShadowRoot()
-{
-    m_hasAuthorShadowRoot = true;
-}
-
 bool HTMLProgressElement::supportsFocus() const
 {
     return HTMLElement::supportsFocus() && !disabled();
diff --git a/Source/WebCore/html/HTMLProgressElement.h b/Source/WebCore/html/HTMLProgressElement.h
index c39e8dd..33c96143 100644
--- a/Source/WebCore/html/HTMLProgressElement.h
+++ b/Source/WebCore/html/HTMLProgressElement.h
@@ -36,8 +36,6 @@
 
     static PassRefPtr<HTMLProgressElement> create(const QualifiedName&, Document*);
 
-    bool hasAuthorShadowRoot() const { return m_hasAuthorShadowRoot; }
-
     double value() const;
     void setValue(double, ExceptionCode&);
 
@@ -54,7 +52,6 @@
     HTMLProgressElement(const QualifiedName&, Document*);
     virtual ~HTMLProgressElement();
 
-    virtual void willAddAuthorShadowRoot() OVERRIDE;
     virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; }
 
     virtual bool supportLabels() const OVERRIDE { return true; }
@@ -73,7 +70,6 @@
     void createShadowSubtree();
 
     ProgressValueElement* m_value;
-    bool m_hasAuthorShadowRoot;
 };
 
 inline bool isHTMLProgressElement(Node* node)