Title: [155301] trunk/Source/WebCore
Revision
155301
Author
[email protected]
Date
2013-09-08 04:01:01 -0700 (Sun, 08 Sep 2013)

Log Message

Move "using software CSS filters" optimization flag to RenderView.
<https://webkit.org/b/120999>

Reviewed by Antti Koivisto.

This flag is used to avoid an extra tree walk when there are no software CSS filters in use.
Move it from FrameView to RenderView where it belongs.

* page/FrameView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::containerForRepaint):
* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
* rendering/RenderView.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (155300 => 155301)


--- trunk/Source/WebCore/ChangeLog	2013-09-08 10:54:53 UTC (rev 155300)
+++ trunk/Source/WebCore/ChangeLog	2013-09-08 11:01:01 UTC (rev 155301)
@@ -1,5 +1,24 @@
 2013-09-08  Andreas Kling  <[email protected]>
 
+        Move "using software CSS filters" optimization flag to RenderView.
+        <https://webkit.org/b/120999>
+
+        Reviewed by Antti Koivisto.
+
+        This flag is used to avoid an extra tree walk when there are no software CSS filters in use.
+        Move it from FrameView to RenderView where it belongs.
+
+        * page/FrameView.h:
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::containerForRepaint):
+        * rendering/RenderView.cpp:
+        (WebCore::RenderView::RenderView):
+        * rendering/RenderView.h:
+
+2013-09-08  Andreas Kling  <[email protected]>
+
         FrameLoader::icon() should return a reference.
         <https://webkit.org/b/120993>
 

Modified: trunk/Source/WebCore/page/FrameView.cpp (155300 => 155301)


--- trunk/Source/WebCore/page/FrameView.cpp	2013-09-08 10:54:53 UTC (rev 155300)
+++ trunk/Source/WebCore/page/FrameView.cpp	2013-09-08 11:01:01 UTC (rev 155301)
@@ -200,9 +200,6 @@
     , m_headerHeight(0)
     , m_footerHeight(0)
     , m_milestonesPendingPaint(0)
-#if ENABLE(CSS_FILTERS)
-    , m_hasSoftwareFilters(false)
-#endif
     , m_visualUpdatesAllowedByClient(true)
     , m_scrollPinningBehavior(DoNotPin)
 {

Modified: trunk/Source/WebCore/page/FrameView.h (155300 => 155301)


--- trunk/Source/WebCore/page/FrameView.h	2013-09-08 10:54:53 UTC (rev 155300)
+++ trunk/Source/WebCore/page/FrameView.h	2013-09-08 11:01:01 UTC (rev 155301)
@@ -402,10 +402,6 @@
     bool inProgrammaticScroll() const { return m_inProgrammaticScroll; }
     void setInProgrammaticScroll(bool programmaticScroll) { m_inProgrammaticScroll = programmaticScroll; }
 
-#if ENABLE(CSS_FILTERS)
-    void setHasSoftwareFilters(bool hasSoftwareFilters) { m_hasSoftwareFilters = hasSoftwareFilters; }
-    bool hasSoftwareFilters() const { return m_hasSoftwareFilters; }
-#endif
 #if ENABLE(CSS_DEVICE_ADAPTATION)
     IntSize initialViewportSize() const { return m_initialViewportSize; }
     void setInitialViewportSize(const IntSize& size) { m_initialViewportSize = size; }
@@ -665,9 +661,6 @@
     static const unsigned visualCharacterThreshold = 200;
     static const unsigned visualPixelThreshold = 32 * 32;
 
-#if ENABLE(CSS_FILTERS)
-    bool m_hasSoftwareFilters;
-#endif
 #if ENABLE(CSS_DEVICE_ADAPTATION)
     // Size of viewport before any UA or author styles have overridden
     // the viewport given by the window or viewing area of the UA.

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (155300 => 155301)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-09-08 10:54:53 UTC (rev 155300)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-09-08 11:01:01 UTC (rev 155301)
@@ -6469,7 +6469,7 @@
         filterInfo.setRenderer(filterRenderer.release());
         
         // We can optimize away code paths in other places if we know that there are no software filters.
-        renderer().view().frameView().setHasSoftwareFilters(true);
+        renderer().view().setHasSoftwareFilters(true);
     }
 
     // If the filter fails to build, remove it from the layer. It will still attempt to

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (155300 => 155301)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2013-09-08 10:54:53 UTC (rev 155300)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2013-09-08 11:01:01 UTC (rev 155301)
@@ -1311,7 +1311,7 @@
 #endif
     
 #if ENABLE(CSS_FILTERS)
-    if (document().view()->hasSoftwareFilters()) {
+    if (view().hasSoftwareFilters()) {
         if (RenderLayer* parentLayer = enclosingLayer()) {
             RenderLayer* enclosingFilterLayer = parentLayer->enclosingFilterLayer();
             if (enclosingFilterLayer)

Modified: trunk/Source/WebCore/rendering/RenderView.cpp (155300 => 155301)


--- trunk/Source/WebCore/rendering/RenderView.cpp	2013-09-08 10:54:53 UTC (rev 155300)
+++ trunk/Source/WebCore/rendering/RenderView.cpp	2013-09-08 11:01:01 UTC (rev 155301)
@@ -71,6 +71,9 @@
     , m_renderQuoteHead(0)
     , m_renderCounterCount(0)
     , m_selectionWasCaret(false)
+#if ENABLE(CSS_FILTERS)
+    , m_hasSoftwareFilters(false)
+#endif
 {
     // FIXME: We should find a way to enforce this at compile time.
     ASSERT(document->view());

Modified: trunk/Source/WebCore/rendering/RenderView.h (155300 => 155301)


--- trunk/Source/WebCore/rendering/RenderView.h	2013-09-08 10:54:53 UTC (rev 155300)
+++ trunk/Source/WebCore/rendering/RenderView.h	2013-09-08 11:01:01 UTC (rev 155301)
@@ -234,6 +234,11 @@
 
     ImageQualityController& imageQualityController();
 
+#if ENABLE(CSS_FILTERS)
+    void setHasSoftwareFilters(bool hasSoftwareFilters) { m_hasSoftwareFilters = hasSoftwareFilters; }
+    bool hasSoftwareFilters() const { return m_hasSoftwareFilters; }
+#endif
+
 protected:
     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const OVERRIDE;
     virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE;
@@ -350,6 +355,9 @@
     unsigned m_renderCounterCount;
 
     bool m_selectionWasCaret;
+#if ENABLE(CSS_FILTERS)
+    bool m_hasSoftwareFilters;
+#endif
 };
 
 inline RenderView& toRenderView(RenderObject& object)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to