[Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
https://bugs.webkit.org/show_bug.cgi?id=101906

Reviewed by Dimitri Glazkov.

Source/WebCore:

We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
setPseudo()/pseudo() instead.

No new tests, covered by existing tests.

* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
it anywhere, we have to set it into pseudo attribute here.
(WebCore::HTMLMeterElement::createShadowSubtree): ditto.
* html/shadow/MeterShadowElement.cpp:
(WebCore::MeterInnerElement::MeterInnerElement):
(WebCore::MeterValueElement::valuePseudoId):
* html/shadow/MeterShadowElement.h:
(MeterInnerElement):
(WebCore::MeterBarElement::MeterBarElement):
(MeterBarElement):
(WebCore::MeterValueElement::MeterValueElement):
(WebCore::MeterValueElement::updatePseudo):
(MeterValueElement):

LayoutTests:

* fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134420 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 8812a30..60e9af1 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,12 @@
+2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
+
+        [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
+        https://bugs.webkit.org/show_bug.cgi?id=101906
+
+        Reviewed by Dimitri Glazkov.
+
+        * fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:
+
 2012-11-13  Stephen Chenney  <schenney@chromium.org>
 
         Expectations update for fast/regions/webkit-flow-inlines-dynamic.html
diff --git a/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt b/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt
index d68eaa8..04a9026 100644
--- a/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt
+++ b/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt
@@ -7,10 +7,13 @@
 |   value="70"
 |   <shadow:root>
 |     <div>
+|       pseudo="-webkit-meter-inner-element"
 |       shadow:pseudoId="-webkit-meter-inner-element"
 |       <div>
+|         pseudo="-webkit-meter-bar"
 |         shadow:pseudoId="-webkit-meter-bar"
 |         <div>
+|           pseudo="-webkit-meter-optimum-value"
 |           style="width: 70%;"
 |           shadow:pseudoId="-webkit-meter-optimum-value"
 | "
@@ -24,10 +27,13 @@
 |   value="10"
 |   <shadow:root>
 |     <div>
+|       pseudo="-webkit-meter-inner-element"
 |       shadow:pseudoId="-webkit-meter-inner-element"
 |       <div>
+|         pseudo="-webkit-meter-bar"
 |         shadow:pseudoId="-webkit-meter-bar"
 |         <div>
+|           pseudo="-webkit-meter-suboptimum-value"
 |           style="width: 100%;"
 |           shadow:pseudoId="-webkit-meter-suboptimum-value"
 | "
@@ -41,10 +47,13 @@
 |   value="10"
 |   <shadow:root>
 |     <div>
+|       pseudo="-webkit-meter-inner-element"
 |       shadow:pseudoId="-webkit-meter-inner-element"
 |       <div>
+|         pseudo="-webkit-meter-bar"
 |         shadow:pseudoId="-webkit-meter-bar"
 |         <div>
+|           pseudo="-webkit-meter-even-less-good-value"
 |           style="width: 100%;"
 |           shadow:pseudoId="-webkit-meter-even-less-good-value"
 | "
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 89e8f81..d2ce263 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,5 +1,32 @@
 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
 
+        [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
+        https://bugs.webkit.org/show_bug.cgi?id=101906
+
+        Reviewed by Dimitri Glazkov.
+
+        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
+        setPseudo()/pseudo() instead.
+
+        No new tests, covered by existing tests.
+
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
+        it anywhere, we have to set it into pseudo attribute here.
+        (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
+        * html/shadow/MeterShadowElement.cpp:
+        (WebCore::MeterInnerElement::MeterInnerElement):
+        (WebCore::MeterValueElement::valuePseudoId):
+        * html/shadow/MeterShadowElement.h:
+        (MeterInnerElement):
+        (WebCore::MeterBarElement::MeterBarElement):
+        (MeterBarElement):
+        (WebCore::MeterValueElement::MeterValueElement):
+        (WebCore::MeterValueElement::updatePseudo):
+        (MeterValueElement):
+
+2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
+
         Changing pseudoClass (:indeterminate) should cause distribution
         https://bugs.webkit.org/show_bug.cgi?id=101903
 
diff --git a/Source/WebCore/html/HTMLMeterElement.cpp b/Source/WebCore/html/HTMLMeterElement.cpp
index 54b7e40..a7c6698 100644
--- a/Source/WebCore/html/HTMLMeterElement.cpp
+++ b/Source/WebCore/html/HTMLMeterElement.cpp
@@ -220,6 +220,7 @@
 void HTMLMeterElement::didElementStateChange()
 {
     m_value->setWidthPercentage(valueRatio()*100);
+    m_value->updatePseudo();
     if (RenderMeter* render = renderMeter())
         render->updateFromElement();
 }
@@ -251,6 +252,7 @@
     RefPtr<MeterBarElement> bar = MeterBarElement::create(document());
     m_value = MeterValueElement::create(document());
     m_value->setWidthPercentage(0);
+    m_value->updatePseudo();
     bar->appendChild(m_value, ASSERT_NO_EXCEPTION);
 
     inner->appendChild(bar, ASSERT_NO_EXCEPTION);
diff --git a/Source/WebCore/html/shadow/MeterShadowElement.cpp b/Source/WebCore/html/shadow/MeterShadowElement.cpp
index 3c48b5f..fa2a24e 100644
--- a/Source/WebCore/html/shadow/MeterShadowElement.cpp
+++ b/Source/WebCore/html/shadow/MeterShadowElement.cpp
@@ -63,6 +63,8 @@
 MeterInnerElement::MeterInnerElement(Document* document)
     : MeterShadowElement(document)
 {
+    DEFINE_STATIC_LOCAL(AtomicString, pseudoId, ("-webkit-meter-inner-element", AtomicString::ConstructFromLiteral));
+    setPseudo(pseudoId);
 }
 
 bool MeterInnerElement::rendererIsNeeded(const NodeRenderingContext& context)
@@ -79,38 +81,26 @@
     return new (arena) RenderMeter(this);
 }
 
-const AtomicString& MeterInnerElement::shadowPseudoId() const
+const AtomicString& MeterValueElement::valuePseudoId() const
 {
-    DEFINE_STATIC_LOCAL(AtomicString, pseudId, ("-webkit-meter-inner-element", AtomicString::ConstructFromLiteral));
-    return pseudId;
-}
-
-const AtomicString& MeterBarElement::shadowPseudoId() const
-{
-    DEFINE_STATIC_LOCAL(AtomicString, pseudId, ("-webkit-meter-bar", AtomicString::ConstructFromLiteral));
-    return pseudId;
-}
-
-const AtomicString& MeterValueElement::shadowPseudoId() const
-{
-    DEFINE_STATIC_LOCAL(AtomicString, optimumPseudId, ("-webkit-meter-optimum-value", AtomicString::ConstructFromLiteral));
-    DEFINE_STATIC_LOCAL(AtomicString, suboptimumPseudId, ("-webkit-meter-suboptimum-value", AtomicString::ConstructFromLiteral));
-    DEFINE_STATIC_LOCAL(AtomicString, evenLessGoodPseudId, ("-webkit-meter-even-less-good-value", AtomicString::ConstructFromLiteral));
+    DEFINE_STATIC_LOCAL(AtomicString, optimumPseudoId, ("-webkit-meter-optimum-value", AtomicString::ConstructFromLiteral));
+    DEFINE_STATIC_LOCAL(AtomicString, suboptimumPseudoId, ("-webkit-meter-suboptimum-value", AtomicString::ConstructFromLiteral));
+    DEFINE_STATIC_LOCAL(AtomicString, evenLessGoodPseudoId, ("-webkit-meter-even-less-good-value", AtomicString::ConstructFromLiteral));
 
     HTMLMeterElement* meter = meterElement();
     if (!meter)
-        return optimumPseudId;
+        return optimumPseudoId;
 
     switch (meter->gaugeRegion()) {
     case HTMLMeterElement::GaugeRegionOptimum:
-        return optimumPseudId;
+        return optimumPseudoId;
     case HTMLMeterElement::GaugeRegionSuboptimal:
-        return suboptimumPseudId;
+        return suboptimumPseudoId;
     case HTMLMeterElement::GaugeRegionEvenLessGood:
-        return evenLessGoodPseudId;
+        return evenLessGoodPseudoId;
     default:
         ASSERT_NOT_REACHED();
-        return optimumPseudId;
+        return optimumPseudoId;
     }
 }
 
@@ -119,7 +109,6 @@
     setInlineStyleProperty(CSSPropertyWidth, width, CSSPrimitiveValue::CSS_PERCENTAGE);
 }
 
-
 }
 
 #endif
diff --git a/Source/WebCore/html/shadow/MeterShadowElement.h b/Source/WebCore/html/shadow/MeterShadowElement.h
index b67e0c1..fcf962b 100644
--- a/Source/WebCore/html/shadow/MeterShadowElement.h
+++ b/Source/WebCore/html/shadow/MeterShadowElement.h
@@ -57,7 +57,6 @@
 private:
     virtual bool rendererIsNeeded(const NodeRenderingContext&) OVERRIDE;
     virtual RenderObject* createRenderer(RenderArena*, RenderStyle*) OVERRIDE;
-    virtual const AtomicString& shadowPseudoId() const OVERRIDE;
 };
 
 inline PassRefPtr<MeterInnerElement> MeterInnerElement::create(Document* document)
@@ -70,10 +69,11 @@
     MeterBarElement(Document* document) 
         : MeterShadowElement(document)
     {
+        DEFINE_STATIC_LOCAL(AtomicString, pseudoId, ("-webkit-meter-bar", AtomicString::ConstructFromLiteral));
+        setPseudo(pseudoId);
     }
 
     static PassRefPtr<MeterBarElement> create(Document*);
-    virtual const AtomicString& shadowPseudoId() const;
 };
 
 inline PassRefPtr<MeterBarElement> MeterBarElement::create(Document* document)
@@ -86,11 +86,15 @@
     MeterValueElement(Document* document) 
         : MeterShadowElement(document)
     {
+        updatePseudo();
     }
 
-    virtual const AtomicString& shadowPseudoId() const;
     static PassRefPtr<MeterValueElement> create(Document*);
     void setWidthPercentage(double);
+    void updatePseudo() { setPseudo(valuePseudoId()); }
+
+private:
+    const AtomicString& valuePseudoId() const;
 };
 
 inline PassRefPtr<MeterValueElement> MeterValueElement::create(Document* document)