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)