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()