[Title] Initialize fixedToViewport flags to false when synchronizing the compositing layers.
[Issue#] N_SE-51581, N_SE-52068
[Problem] A element has fixed location after exiting fullscreen.
[Cause] After exiting fullscreen, the position:fixed property of element was removed,
but the GraphicsLayer still has fixedToViewport flag.
[Solution] Initialize fixedToViewport flags to false when synchronizing the compositing layers.
Change-Id: Ie1a4100932fc90c9fb2eb7701e67fdee29402002
return false;
#endif
}
+#if ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
+ virtual void syncFixedLayers() { }
+#endif
protected:
// Should be called from derived class destructors. Should call willBeDestroyed() on super.
if (GraphicsLayer* rootLayer = rootGraphicsLayer()) {
FrameView* frameView = m_renderView ? m_renderView->frameView() : 0;
if (frameView) {
+#if ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
+ rootLayer->syncFixedLayers();
+#endif
// FIXME: Passing frameRect() is correct only when RenderLayerCompositor uses a ScrollLayer (as in WebKit2)
// otherwise, the passed clip rect needs to take scrolling into account
rootLayer->syncCompositingState(frameView->frameRect());
if (!backing)
return;
+#if ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
+ WebGraphicsLayer* graphicsLayer = toWebGraphicsLayer(backing->graphicsLayer());
+ graphicsLayer->setFixedToViewport(false);
+#endif
+
RenderStyle* style = renderLayer->renderer()->style();
if (!style)
return;
if (!renderLayer->isStackingContext())
return;
+#if !ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
WebGraphicsLayer* graphicsLayer = toWebGraphicsLayer(backing->graphicsLayer());
+#endif
graphicsLayer->setFixedToViewport(true);
}
if (!m_webPage->corePage()->settings() || !m_webPage->corePage()->settings()->acceleratedCompositingForFixedPositionEnabled())
return;
+#if !ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
if (!m_webPage->mainFrame()->view()->hasFixedObjects())
return;
+#endif
RenderLayer* rootRenderLayer = m_webPage->mainFrame()->contentRenderer()->compositor()->rootRenderLayer();
ASSERT(rootRenderLayer);
if (WebGraphicsLayer* replica = toWebGraphicsLayer(replicaLayer()))
replica->syncCompositingStateForThisLayerOnly();
+#if !ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
m_webGraphicsLayerClient->syncFixedLayers();
+#endif
syncCompositingStateForThisLayerOnly();
return drawTileInfo;
}
#endif
+
+#if ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
+void WebGraphicsLayer::syncFixedLayers()
+{
+ if (m_webGraphicsLayerClient)
+ m_webGraphicsLayerClient->syncFixedLayers();
+}
+#endif
}
#endif
FloatRect clippingBounds();
#endif
+#if ENABLE(TIZEN_CSS_FIXED_ACCELERATION)
+ virtual void syncFixedLayers();
+#endif
private:
virtual void willBeDestroyed();
WebKit::WebLayerID m_id;