Diff
Modified: trunk/Source/WebCore/ChangeLog (230954 => 230955)
--- trunk/Source/WebCore/ChangeLog 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/ChangeLog 2018-04-24 15:27:46 UTC (rev 230955)
@@ -1,5 +1,47 @@
2018-04-24 Zan Dobersek <[email protected]>
+ [CoordGraphics] Remove dead fixed layer code
+ https://bugs.webkit.org/show_bug.cgi?id=184912
+
+ Reviewed by Michael Catanzaro.
+
+ Remove CoordinatedGraphicsLayer::setFixedToViewport() and the
+ corresponding attribute on the CoordinatedGraphicsLayerState struct.
+ The method is not called anywhere since r230952.
+
+ CoordinatedGraphicsState struct also loses the scrollPosition attribute
+ that also isn't used anymore.
+
+ Changes to GraphicsLayerTextureMapper class mirror those made to
+ CoordinatedGraphicsLayer, removing support for the fixed-to-viewport
+ attribute. This too was not called from anywhere.
+
+ All that enables us removing fixed-to-viewport handling in the
+ TextureMapperLayer class. Along with related changes in the
+ CoordinatedGraphicsScene class, we're able to remove a bunch of methods
+ and member variables that are not used or needed anymore.
+
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
+ (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
+ (WebCore::GraphicsLayerTextureMapper::setFixedToViewport): Deleted.
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ * platform/graphics/texmap/TextureMapperLayer.cpp:
+ (WebCore::TextureMapperLayer::computeTransformsRecursive):
+ (WebCore::TextureMapperLayer::setFixedToViewport): Deleted.
+ (WebCore::TextureMapperLayer::isAncestorFixedToViewport const): Deleted.
+ (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded): Deleted.
+ * platform/graphics/texmap/TextureMapperLayer.h:
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
+ (WebCore::CoordinatedGraphicsLayer::syncLayerState):
+ (WebCore::CoordinatedGraphicsLayer::setFixedToViewport): Deleted.
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
+ (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
+
+2018-04-24 Zan Dobersek <[email protected]>
+
[CoordGraphics] Remove unused fixed layout functionality
https://bugs.webkit.org/show_bug.cgi?id=184908
Modified: trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp (230954 => 230955)
--- trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp 2018-04-24 15:27:46 UTC (rev 230955)
@@ -42,7 +42,6 @@
, m_compositedNativeImagePtr(0)
, m_changeMask(NoChanges)
, m_needsDisplay(false)
- , m_fixedToViewport(false)
, m_debugBorderWidth(0)
, m_contentsLayer(0)
{
@@ -464,9 +463,6 @@
if (m_changeMask & AnimationStarted)
client().notifyAnimationStarted(this, "", m_animationStartTime);
- if (m_changeMask & FixedToViewporChange)
- m_layer.setFixedToViewport(fixedToViewport());
-
m_changeMask = NoChanges;
}
@@ -611,15 +607,6 @@
return canCompositeFilters;
}
-void GraphicsLayerTextureMapper::setFixedToViewport(bool fixed)
-{
- if (m_fixedToViewport == fixed)
- return;
-
- m_fixedToViewport = fixed;
- notifyChange(FixedToViewporChange);
-}
-
void GraphicsLayerTextureMapper::setRepaintCount(int repaintCount)
{
m_repaintCount = repaintCount;
Modified: trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h (230954 => 230955)
--- trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h 2018-04-24 15:27:46 UTC (rev 230955)
@@ -88,9 +88,6 @@
TextureMapperLayer& layer() { return m_layer; }
- void setFixedToViewport(bool);
- bool fixedToViewport() const { return m_fixedToViewport; }
-
Color debugBorderColor() const { return m_debugBorderColor; }
float debugBorderWidth() const { return m_debugBorderWidth; }
void setRepaintCount(int);
@@ -148,8 +145,7 @@
DebugVisualsChange = (1L << 24),
RepaintCountChange = (1L << 25),
- FixedToViewporChange = (1L << 26),
- AnimationStarted = (1L << 27),
+ AnimationStarted = (1L << 26),
};
void notifyChange(ChangeMask);
@@ -160,7 +156,6 @@
int m_changeMask;
bool m_needsDisplay;
- bool m_fixedToViewport;
Color m_solidColor;
Color m_debugBorderColor;
Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp (230954 => 230955)
--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp 2018-04-24 15:27:46 UTC (rev 230955)
@@ -72,11 +72,10 @@
const float originX = m_state.anchorPoint.x() * m_state.size.width();
const float originY = m_state.anchorPoint.y() * m_state.size.height();
- auto position = adjustedPosition();
m_layerTransforms.combined = parentTransform;
m_layerTransforms.combined
- .translate3d(originX + position.x(), originY + position.y(), m_state.anchorPoint.z())
+ .translate3d(originX + m_state.pos.x(), originY + m_state.pos.y(), m_state.anchorPoint.z())
.multiply(m_layerTransforms.localTransform);
m_layerTransforms.combinedForChildren = m_layerTransforms.combined;
@@ -622,11 +621,6 @@
m_animations = animations;
}
-void TextureMapperLayer::setFixedToViewport(bool fixedToViewport)
-{
- m_fixedToViewport = fixedToViewport;
-}
-
void TextureMapperLayer::setBackingStore(TextureMapperBackingStore* backingStore)
{
m_backingStore = backingStore;
@@ -663,26 +657,4 @@
return applicationResults.hasRunningAnimations;
}
-bool TextureMapperLayer::isAncestorFixedToViewport() const
-{
- for (TextureMapperLayer* parent = m_parent; parent; parent = parent->m_parent) {
- if (parent->m_fixedToViewport)
- return true;
- }
-
- return false;
}
-
-void TextureMapperLayer::setScrollPositionDeltaIfNeeded(const FloatSize& delta)
-{
- // delta is the difference between the scroll offset in the ui process and the scroll offset
- // in the web process. We add this delta to the position of fixed layers, to make
- // sure that they do not move while scrolling. We need to reset this delta to fixed layers
- // that have an ancestor which is also a fixed layer, because the delta will be added to the ancestor.
- if (isAncestorFixedToViewport())
- m_scrollPositionDelta = FloatSize();
- else
- m_scrollPositionDelta = delta;
-}
-
-}
Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h (230954 => 230955)
--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h 2018-04-24 15:27:46 UTC (rev 230955)
@@ -88,8 +88,6 @@
void setContentsLayer(TextureMapperPlatformLayer*);
void setAnimations(const TextureMapperAnimations&);
const TextureMapperAnimations& animations() const { return m_animations; }
- void setFixedToViewport(bool);
- bool fixedToViewport() const { return m_fixedToViewport; }
void setBackingStore(TextureMapperBackingStore*);
bool applyAnimationsRecursively(MonotonicTime);
@@ -98,8 +96,6 @@
void paint();
- void setScrollPositionDeltaIfNeeded(const FloatSize&);
-
void addChild(TextureMapperLayer*);
private:
@@ -115,8 +111,6 @@
static void sortByZOrder(Vector<TextureMapperLayer* >& array);
- FloatPoint adjustedPosition() const { return m_state.pos + m_scrollPositionDelta; }
- bool isAncestorFixedToViewport() const;
TransformationMatrix replicaTransform();
void removeFromParent();
void removeAllChildren();
@@ -204,8 +198,6 @@
State m_state;
TextureMapper* m_textureMapper { nullptr };
TextureMapperAnimations m_animations;
- FloatSize m_scrollPositionDelta;
- bool m_fixedToViewport { false };
uint32_t m_id { 0 };
struct {
Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp (230954 => 230955)
--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp 2018-04-24 15:27:46 UTC (rev 230955)
@@ -129,7 +129,6 @@
, m_shouldSyncFilters(true)
, m_shouldSyncImageBacking(true)
, m_shouldSyncAnimations(true)
- , m_fixedToViewport(false)
, m_movingVisibleRect(false)
, m_pendingContentsScaleAdjustment(false)
, m_pendingVisibleRectAdjustment(false)
@@ -578,18 +577,6 @@
addRepaintRect(rect);
}
-void CoordinatedGraphicsLayer::setFixedToViewport(bool isFixed)
-{
- if (m_fixedToViewport == isFixed)
- return;
-
- m_fixedToViewport = isFixed;
- m_layerState.fixedToViewport = isFixed;
- m_layerState.flagsChanged = true;
-
- didChangeLayerState();
-}
-
void CoordinatedGraphicsLayer::flushCompositingState(const FloatRect& rect)
{
if (CoordinatedGraphicsLayer* mask = downcast<CoordinatedGraphicsLayer>(maskLayer()))
@@ -675,7 +662,6 @@
m_layerState.backfaceVisible = backfaceVisibility();
m_layerState.masksToBounds = masksToBounds();
m_layerState.preserves3D = preserves3D();
- m_layerState.fixedToViewport = fixedToViewport();
}
if (m_layerState.debugVisualsChanged) {
Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h (230954 => 230955)
--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h 2018-04-24 15:27:46 UTC (rev 230955)
@@ -118,8 +118,6 @@
CoordinatedLayerID id() const { return m_id; }
- void setFixedToViewport(bool isFixed);
-
IntRect transformedVisibleRect();
// TiledBackingStoreClient
@@ -141,8 +139,6 @@
void setDebugBorder(const Color&, float width) override;
- bool fixedToViewport() const { return m_fixedToViewport; }
-
void didChangeLayerState();
void didChangeAnimations();
void didChangeGeometry();
@@ -197,7 +193,6 @@
bool m_shouldSyncFilters: 1;
bool m_shouldSyncImageBacking: 1;
bool m_shouldSyncAnimations: 1;
- bool m_fixedToViewport : 1;
bool m_movingVisibleRect : 1;
bool m_pendingContentsScaleAdjustment : 1;
bool m_pendingVisibleRectAdjustment : 1;
Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h (230954 => 230955)
--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h 2018-04-24 15:27:46 UTC (rev 230955)
@@ -115,7 +115,6 @@
bool backfaceVisible : 1;
bool masksToBounds : 1;
bool preserves3D : 1;
- bool fixedToViewport : 1;
bool isScrollable: 1;
};
unsigned flags;
@@ -129,7 +128,6 @@
, backfaceVisible(true)
, masksToBounds(false)
, preserves3D(false)
- , fixedToViewport(false)
, isScrollable(false)
, opacity(0)
, replica(InvalidCoordinatedLayerID)
@@ -177,7 +175,6 @@
struct CoordinatedGraphicsState {
uint32_t rootCompositingLayer;
- FloatPoint scrollPosition;
Vector<CoordinatedLayerID> layersToCreate;
Vector<std::pair<CoordinatedLayerID, CoordinatedGraphicsLayerState>> layersToUpdate;
Modified: trunk/Source/WebKit/ChangeLog (230954 => 230955)
--- trunk/Source/WebKit/ChangeLog 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebKit/ChangeLog 2018-04-24 15:27:46 UTC (rev 230955)
@@ -1,5 +1,35 @@
2018-04-24 Zan Dobersek <[email protected]>
+ [CoordGraphics] Remove dead fixed layer code
+ https://bugs.webkit.org/show_bug.cgi?id=184912
+
+ Reviewed by Michael Catanzaro.
+
+ Drop the unused fixed layer handling code in CoordinatedGraphicsScene.
+ The m_fixedLayers container can be removed, along with the
+ adjustPositionForFixedLayers() method that operated on that container.
+
+ This was the only method that operated with the m_scrollPosition member
+ variable and the contentsPosition argument that's passed to the
+ CoordinatedGraphicsScene::paintToCurrentGLContext() method. Both of
+ these are removed, along with the scrollPosition attribute on the
+ CoordinatedGraphicsState struct.
+
+ * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
+ (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
+ (WebKit::CoordinatedGraphicsScene::setLayerState):
+ (WebKit::CoordinatedGraphicsScene::deleteLayer):
+ (WebKit::CoordinatedGraphicsScene::commitSceneState):
+ (WebKit::CoordinatedGraphicsScene::purgeGLResources):
+ (WebKit::CoordinatedGraphicsScene::adjustPositionForFixedLayers): Deleted.
+ * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
+ * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
+ (WebKit::ThreadedCompositor::renderLayerTree):
+ * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
+ (WebKit::CompositingCoordinator::flushPendingLayerChanges):
+
+2018-04-24 Zan Dobersek <[email protected]>
+
REGRESSION(r230950): Faulty commit sequencing in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=184917
Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp (230954 => 230955)
--- trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp 2018-04-24 15:27:46 UTC (rev 230955)
@@ -61,9 +61,8 @@
commitSceneState(state);
}
-void CoordinatedGraphicsScene::paintToCurrentGLContext(const TransformationMatrix& matrix, float opacity, const FloatRect& clipRect, const Color& backgroundColor, bool drawsBackground, const FloatPoint& contentPosition, TextureMapper::PaintFlags PaintFlags)
+void CoordinatedGraphicsScene::paintToCurrentGLContext(const TransformationMatrix& matrix, float opacity, const FloatRect& clipRect, const Color& backgroundColor, bool drawsBackground, TextureMapper::PaintFlags PaintFlags)
{
- adjustPositionForFixedLayers(contentPosition);
TextureMapperLayer* currentRootLayer = rootLayer();
if (!currentRootLayer)
return;
@@ -106,20 +105,6 @@
m_client->updateViewport();
}
-void CoordinatedGraphicsScene::adjustPositionForFixedLayers(const FloatPoint& contentPosition)
-{
- if (m_fixedLayers.isEmpty())
- return;
-
- // Fixed layer positions are updated by the web process when we update the visible contents rect / scroll position.
- // If we want those layers to follow accurately the viewport when we move between the web process updates, we have to offset
- // them by the delta between the current position and the position of the viewport used for the last layout.
- FloatSize delta = contentPosition - m_scrollPosition;
-
- for (auto& fixedLayer : m_fixedLayers.values())
- fixedLayer->setScrollPositionDeltaIfNeeded(delta);
-}
-
void CoordinatedGraphicsScene::syncPlatformLayerIfNeeded(TextureMapperLayer* layer, const CoordinatedGraphicsLayerState& state)
{
#if USE(COORDINATED_GRAPHICS_THREADED)
@@ -228,15 +213,6 @@
// Never clip the root layer.
layer->setMasksToBounds(id == m_rootLayerID ? false : layerState.masksToBounds);
layer->setPreserves3D(layerState.preserves3D);
-
- bool fixedToViewportChanged = layer->fixedToViewport() != layerState.fixedToViewport;
- layer->setFixedToViewport(layerState.fixedToViewport);
- if (fixedToViewportChanged) {
- if (layerState.fixedToViewport)
- m_fixedLayers.add(id, layer);
- else
- m_fixedLayers.remove(id);
- }
}
// Apply Operations.
@@ -281,7 +257,6 @@
ASSERT(layer);
m_backingStores.remove(layer.get());
- m_fixedLayers.remove(layerID);
#if USE(COORDINATED_GRAPHICS_THREADED)
if (auto platformLayerProxy = m_platformLayerProxies.take(layer.get()))
platformLayerProxy->invalidate();
@@ -459,8 +434,6 @@
CommitScope commitScope;
- m_scrollPosition = state.scrollPosition;
-
createLayers(state.layersToCreate);
deleteLayers(state.layersToRemove);
@@ -507,7 +480,6 @@
m_rootLayer = nullptr;
m_rootLayerID = InvalidCoordinatedLayerID;
m_layers.clear();
- m_fixedLayers.clear();
m_textureMapper = nullptr;
m_backingStores.clear();
}
Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h (230954 => 230955)
--- trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h 2018-04-24 15:27:46 UTC (rev 230955)
@@ -72,7 +72,7 @@
virtual ~CoordinatedGraphicsScene();
void applyStateChanges(const Vector<WebCore::CoordinatedGraphicsState>&);
- void paintToCurrentGLContext(const WebCore::TransformationMatrix&, float, const WebCore::FloatRect&, const WebCore::Color& backgroundColor, bool drawsBackground, const WebCore::FloatPoint&, WebCore::TextureMapper::PaintFlags = 0);
+ void paintToCurrentGLContext(const WebCore::TransformationMatrix&, float, const WebCore::FloatRect&, const WebCore::Color& backgroundColor, bool drawsBackground, WebCore::TextureMapper::PaintFlags = 0);
void detach();
// The painting thread must lock the main thread to use below two methods, because two methods access members that the main thread manages. See m_client.
@@ -125,8 +125,6 @@
WebCore::TextureMapperLayer* getLayerByIDIfExists(WebCore::CoordinatedLayerID);
WebCore::TextureMapperLayer* rootLayer() { return m_rootLayer.get(); }
- void adjustPositionForFixedLayers(const WebCore::FloatPoint& contentPosition);
-
void updateViewport();
void createLayer(WebCore::CoordinatedLayerID);
@@ -160,9 +158,7 @@
std::unique_ptr<WebCore::TextureMapperLayer> m_rootLayer;
HashMap<WebCore::CoordinatedLayerID, std::unique_ptr<WebCore::TextureMapperLayer>> m_layers;
- HashMap<WebCore::CoordinatedLayerID, WebCore::TextureMapperLayer*> m_fixedLayers;
WebCore::CoordinatedLayerID m_rootLayerID { WebCore::InvalidCoordinatedLayerID };
- WebCore::FloatPoint m_scrollPosition;
WebCore::Color m_viewBackgroundColor { WebCore::Color::white };
WebCore::TextureMapperFPSCounter m_fpsCounter;
Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp (230954 => 230955)
--- trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp 2018-04-24 15:27:46 UTC (rev 230955)
@@ -240,7 +240,7 @@
m_scene->applyStateChanges(states);
m_scene->paintToCurrentGLContext(viewportTransform, 1, FloatRect { FloatPoint { }, viewportSize },
- Color::transparent, !drawsBackground, scrollPosition, m_paintFlags);
+ Color::transparent, !drawsBackground, m_paintFlags);
m_context->swapBuffers();
Modified: trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp (230954 => 230955)
--- trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp 2018-04-24 15:26:42 UTC (rev 230954)
+++ trunk/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp 2018-04-24 15:27:46 UTC (rev 230955)
@@ -125,8 +125,6 @@
if (m_shouldSyncFrame) {
didSync = true;
- m_state.scrollPosition = m_visibleContentsRect.location();
-
m_client.commitSceneState(m_state);
clearPendingStateChanges();