Title: [97157] trunk/Source/WebCore
Revision
97157
Author
[email protected]
Date
2011-10-11 09:48:52 -0700 (Tue, 11 Oct 2011)

Log Message

Need more efficient ways to set inline CSS styles
https://bugs.webkit.org/show_bug.cgi?id=58157

Patch by Arun Patole <[email protected]> on 2011-10-11
Reviewed by Dimitri Glazkov.

No new tests added as this is just a code optimization.

Code optimization:
  -Used CSSPropertyNames, CSSValues and CSSPrimitiveValues instead of Strings.
  -Removed displayString(), webkitTransitionString(), opacityString() functions as they will no longer be needed after this change.
  -Moved makeOpaque and makeTransparent functionality to MediaControlPanelElement from MediaControlRootElement.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerRateChanged):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::show):
(WebCore::MediaControlElement::hide):
(WebCore::MediaControlPanelElement::MediaControlPanelElement):
(WebCore::MediaControlPanelElement::makeOpaque):
(WebCore::MediaControlPanelElement::makeTransparent):
(WebCore::MediaControlInputElement::show):
(WebCore::MediaControlInputElement::hide):
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::makeOpaque):
(WebCore::MediaControlRootElement::makeTransparent):
* html/shadow/MediaControlRootElement.h:
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::makeOpaque):
(WebCore::MediaControlRootElementChromium::makeTransparent):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (97156 => 97157)


--- trunk/Source/WebCore/ChangeLog	2011-10-11 16:43:54 UTC (rev 97156)
+++ trunk/Source/WebCore/ChangeLog	2011-10-11 16:48:52 UTC (rev 97157)
@@ -1,3 +1,37 @@
+2011-10-11  Arun Patole  <[email protected]>
+
+        Need more efficient ways to set inline CSS styles
+        https://bugs.webkit.org/show_bug.cgi?id=58157
+
+        Reviewed by Dimitri Glazkov.
+
+        No new tests added as this is just a code optimization.
+
+        Code optimization:
+          -Used CSSPropertyNames, CSSValues and CSSPrimitiveValues instead of Strings.
+          -Removed displayString(), webkitTransitionString(), opacityString() functions as they will no longer be needed after this change.
+          -Moved makeOpaque and makeTransparent functionality to MediaControlPanelElement from MediaControlRootElement.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlElement::show):
+        (WebCore::MediaControlElement::hide):
+        (WebCore::MediaControlPanelElement::MediaControlPanelElement):
+        (WebCore::MediaControlPanelElement::makeOpaque):
+        (WebCore::MediaControlPanelElement::makeTransparent):
+        (WebCore::MediaControlInputElement::show):
+        (WebCore::MediaControlInputElement::hide):
+        * html/shadow/MediaControlElements.h:
+        * html/shadow/MediaControlRootElement.cpp:
+        (WebCore::MediaControlRootElement::MediaControlRootElement):
+        (WebCore::MediaControlRootElement::makeOpaque):
+        (WebCore::MediaControlRootElement::makeTransparent):
+        * html/shadow/MediaControlRootElement.h:
+        * html/shadow/MediaControlRootElementChromium.cpp:
+        (WebCore::MediaControlRootElementChromium::makeOpaque):
+        (WebCore::MediaControlRootElementChromium::makeTransparent):
+
 2011-10-11  Pavel Feldman  <[email protected]>
 
         Web Inspector: make Extensions component compile.

Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (97156 => 97157)


--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp	2011-10-11 16:43:54 UTC (rev 97156)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp	2011-10-11 16:48:52 UTC (rev 97157)
@@ -77,25 +77,14 @@
 {
 }
 
-static const String& displayString()
-{
-    DEFINE_STATIC_LOCAL(String, s, ("display"));
-    return s;
-}
-
 void MediaControlElement::show()
 {
-    ExceptionCode ec;
-    // FIXME: Make more efficient <http://webkit.org/b/58157>
-    style()->removeProperty(displayString(), ec);
+    getInlineStyleDecl()->removeProperty(CSSPropertyDisplay);
 }
 
 void MediaControlElement::hide()
 {
-    ExceptionCode ec;
-    // FIXME: Make more efficient <http://webkit.org/b/58157>
-    DEFINE_STATIC_LOCAL(String, none, ("none"));
-    style()->setProperty(displayString(), none, ec);
+    getInlineStyleDecl()->setProperty(CSSPropertyDisplay, CSSValueNone);
 }
 
 // ----------------------------
@@ -104,6 +93,7 @@
     : MediaControlElement(mediaElement)
     , m_canBeDragged(false)
     , m_isBeingDragged(false)
+    , m_opaque(true)
 {
 }
 
@@ -195,6 +185,32 @@
     style->removeProperty(CSSPropertyMarginTop);
 }
 
+void MediaControlPanelElement::makeOpaque()
+{
+    if (m_opaque)
+        return;
+    
+    CSSMutableStyleDeclaration* style = getInlineStyleDecl();
+    style->setProperty(CSSPropertyWebkitTransitionProperty, CSSPropertyOpacity);
+    style->setProperty(CSSPropertyWebkitTransitionDuration, document()->page()->theme()->mediaControlsFadeInDuration(), CSSPrimitiveValue::CSS_S);
+    style->setProperty(CSSPropertyOpacity, 1.0, CSSPrimitiveValue::CSS_NUMBER);
+
+    m_opaque = true;
+}
+
+void MediaControlPanelElement::makeTransparent()
+{
+    if (!m_opaque)
+        return;
+
+    CSSMutableStyleDeclaration* style = getInlineStyleDecl();
+    style->setProperty(CSSPropertyWebkitTransitionProperty, CSSPropertyOpacity);
+    style->setProperty(CSSPropertyWebkitTransitionDuration, document()->page()->theme()->mediaControlsFadeOutDuration(), CSSPrimitiveValue::CSS_S);
+    style->setProperty(CSSPropertyOpacity, 0.0, CSSPrimitiveValue::CSS_NUMBER);
+
+    m_opaque = false;
+}
+
 void MediaControlPanelElement::defaultEventHandler(Event* event)
 {
     MediaControlElement::defaultEventHandler(event);
@@ -397,15 +413,12 @@
 
 void MediaControlInputElement::show()
 {
-    ExceptionCode ec;
-    style()->removeProperty(displayString(), ec);
+    getInlineStyleDecl()->removeProperty(CSSPropertyDisplay);
 }
 
 void MediaControlInputElement::hide()
 {
-    ExceptionCode ec;
-    DEFINE_STATIC_LOCAL(String, none, ("none"));
-    style()->setProperty(displayString(), none, ec);
+    getInlineStyleDecl()->setProperty(CSSPropertyDisplay, CSSValueNone);
 }
 
 

Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.h (97156 => 97157)


--- trunk/Source/WebCore/html/shadow/MediaControlElements.h	2011-10-11 16:43:54 UTC (rev 97156)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.h	2011-10-11 16:48:52 UTC (rev 97157)
@@ -101,6 +101,8 @@
 
     void setCanBeDragged(bool);
     void resetPosition();
+    void makeOpaque();
+    void makeTransparent();
 
 private:
     MediaControlPanelElement(HTMLMediaElement*);
@@ -116,6 +118,7 @@
 
     bool m_canBeDragged;
     bool m_isBeingDragged;
+    bool m_opaque;
     LayoutPoint m_dragStartPosition;
     LayoutPoint m_dragStartEventLocation;
 };

Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp (97156 => 97157)


--- trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp	2011-10-11 16:43:54 UTC (rev 97156)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElement.cpp	2011-10-11 16:48:52 UTC (rev 97157)
@@ -64,7 +64,6 @@
     , m_fullScreenVolumeSlider(0)
     , m_fullScreenMaxVolumeButton(0)
     , m_panel(0)
-    , m_opaque(true)
     , m_isMouseOverControls(false)
     , m_hideFullscreenControlsTimer(this, &MediaControlRootElement::hideFullscreenControlsTimerFired)
 {
@@ -228,50 +227,14 @@
     m_panel->hide();
 }
 
-static const String& webkitTransitionString()
-{
-    DEFINE_STATIC_LOCAL(String, s, ("-webkit-transition"));
-    return s;
-}
-
-static const String& opacityString()
-{
-    DEFINE_STATIC_LOCAL(String, s, ("opacity"));
-    return s;
-}
-
 void MediaControlRootElement::makeOpaque()
 {
-    if (m_opaque)
-        return;
-
-    DEFINE_STATIC_LOCAL(String, transitionValue, ());
-    if (transitionValue.isNull())
-        transitionValue = String::format("opacity %.1gs", document()->page()->theme()->mediaControlsFadeInDuration());
-    DEFINE_STATIC_LOCAL(String, opacityValue, ("1"));
-
-    ExceptionCode ec;
-    // FIXME: Make more efficient <http://webkit.org/b/58157>
-    m_panel->style()->setProperty(webkitTransitionString(), transitionValue, ec);
-    m_panel->style()->setProperty(opacityString(), opacityValue, ec);
-    m_opaque = true;
+    m_panel->makeOpaque();
 }
 
 void MediaControlRootElement::makeTransparent()
 {
-    if (!m_opaque)
-        return;
-
-    DEFINE_STATIC_LOCAL(String, transitionValue, ());
-    if (transitionValue.isNull())
-        transitionValue = String::format("opacity %.1gs", document()->page()->theme()->mediaControlsFadeOutDuration());
-    DEFINE_STATIC_LOCAL(String, opacityValue, ("0"));
-
-    ExceptionCode ec;
-    // FIXME: Make more efficient <http://webkit.org/b/58157>
-    m_panel->style()->setProperty(webkitTransitionString(), transitionValue, ec);
-    m_panel->style()->setProperty(opacityString(), opacityValue, ec);
-    m_opaque = false;
+    m_panel->makeTransparent();
 }
 
 void MediaControlRootElement::reset()

Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElement.h (97156 => 97157)


--- trunk/Source/WebCore/html/shadow/MediaControlRootElement.h	2011-10-11 16:43:54 UTC (rev 97156)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElement.h	2011-10-11 16:48:52 UTC (rev 97157)
@@ -132,7 +132,6 @@
     MediaControlFullscreenVolumeSliderElement* m_fullScreenVolumeSlider;
     MediaControlFullscreenVolumeMaxButtonElement* m_fullScreenMaxVolumeButton;
     MediaControlPanelElement* m_panel;
-    bool m_opaque;
     bool m_isMouseOverControls;
     Timer<MediaControlRootElement> m_hideFullscreenControlsTimer;
 };

Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp (97156 => 97157)


--- trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp	2011-10-11 16:43:54 UTC (rev 97156)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp	2011-10-11 16:48:52 UTC (rev 97157)
@@ -132,50 +132,14 @@
     m_panel->hide();
 }
 
-static const String& webkitTransitionString()
-{
-    DEFINE_STATIC_LOCAL(String, s, ("-webkit-transition"));
-    return s;
-}
-
-static const String& opacityString()
-{
-    DEFINE_STATIC_LOCAL(String, s, ("opacity"));
-    return s;
-}
-
 void MediaControlRootElementChromium::makeOpaque()
 {
-    if (m_opaque)
-        return;
-
-    DEFINE_STATIC_LOCAL(String, transitionValue, ());
-    if (transitionValue.isNull())
-        transitionValue = String::format("opacity %.1gs", document()->page()->theme()->mediaControlsFadeInDuration());
-    DEFINE_STATIC_LOCAL(String, opacityValue, ("1"));
-
-    ExceptionCode ec;
-    // FIXME: Make more efficient <http://webkit.org/b/58157>
-    m_panel->style()->setProperty(webkitTransitionString(), transitionValue, ec);
-    m_panel->style()->setProperty(opacityString(), opacityValue, ec);
-    m_opaque = true;
+    m_panel->makeOpaque();
 }
 
 void MediaControlRootElementChromium::makeTransparent()
 {
-    if (!m_opaque)
-        return;
-
-    DEFINE_STATIC_LOCAL(String, transitionValue, ());
-    if (transitionValue.isNull())
-        transitionValue = String::format("opacity %.1gs", document()->page()->theme()->mediaControlsFadeOutDuration());
-    DEFINE_STATIC_LOCAL(String, opacityValue, ("0"));
-
-    ExceptionCode ec;
-    // FIXME: Make more efficient <http://webkit.org/b/58157>
-    m_panel->style()->setProperty(webkitTransitionString(), transitionValue, ec);
-    m_panel->style()->setProperty(opacityString(), opacityValue, ec);
-    m_opaque = false;
+    m_panel->makeTransparent();
 }
 
 void MediaControlRootElementChromium::reset()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to