Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(641)

Unified Diff: Source/core/rendering/RenderLayerBacking.cpp

Issue 22900008: Make vw/vh units to work in css transforms. Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderLayerBacking.cpp
diff --git a/Source/core/rendering/RenderLayerBacking.cpp b/Source/core/rendering/RenderLayerBacking.cpp
index c8991f2d9336feb4445947209752fb0aaca135c8..6967365b0bd7d7ee329fbe8b8d46b669bf5fb7ae 100644
--- a/Source/core/rendering/RenderLayerBacking.cpp
+++ b/Source/core/rendering/RenderLayerBacking.cpp
@@ -248,7 +248,7 @@ void RenderLayerBacking::updateTransform(const RenderStyle* style)
// baked into it, and we don't want that.
TransformationMatrix t;
if (m_owningLayer->hasTransform()) {
- style->applyTransform(t, toRenderBox(renderer())->pixelSnappedBorderBoxRect().size(), RenderStyle::ExcludeTransformOrigin);
+ style->applyTransform(t, toRenderBox(renderer())->pixelSnappedBorderBoxRect().size(), RenderStyle::ExcludeTransformOrigin, renderer()->view());
makeMatrixRenderable(t, compositor()->canRender3DTransforms());
}
@@ -1728,14 +1728,15 @@ bool RenderLayerBacking::startAnimation(double timeOffset, const CSSAnimationDat
}
bool didAnimate = false;
+ RenderView* view = m_owningLayer->renderer()->view();
- if (hasTransform && m_graphicsLayer->addAnimation(transformVector, toRenderBox(renderer())->pixelSnappedBorderBoxRect().size(), anim, keyframes.animationName(), timeOffset))
+ if (hasTransform && m_graphicsLayer->addAnimation(transformVector, toRenderBox(renderer())->pixelSnappedBorderBoxRect().size(), anim, keyframes.animationName(), timeOffset, view))
didAnimate = true;
- if (hasOpacity && m_graphicsLayer->addAnimation(opacityVector, IntSize(), anim, keyframes.animationName(), timeOffset))
+ if (hasOpacity && m_graphicsLayer->addAnimation(opacityVector, IntSize(), anim, keyframes.animationName(), timeOffset, view))
didAnimate = true;
- if (hasFilter && m_graphicsLayer->addAnimation(filterVector, IntSize(), anim, keyframes.animationName(), timeOffset))
+ if (hasFilter && m_graphicsLayer->addAnimation(filterVector, IntSize(), anim, keyframes.animationName(), timeOffset, view))
didAnimate = true;
return didAnimate;
@@ -1754,6 +1755,7 @@ void RenderLayerBacking::animationFinished(const String& animationName)
bool RenderLayerBacking::startTransition(double timeOffset, CSSPropertyID property, const RenderStyle* fromStyle, const RenderStyle* toStyle)
{
bool didAnimate = false;
+ RenderView* view = m_owningLayer->renderer()->view();
ASSERT(property != CSSPropertyInvalid);
@@ -1764,7 +1766,7 @@ bool RenderLayerBacking::startTransition(double timeOffset, CSSPropertyID proper
opacityVector.insert(adoptPtr(new FloatAnimationValue(0, compositingOpacity(fromStyle->opacity()))));
opacityVector.insert(adoptPtr(new FloatAnimationValue(1, compositingOpacity(toStyle->opacity()))));
// The boxSize param is only used for transform animations (which can only run on RenderBoxes), so we pass an empty size here.
- if (m_graphicsLayer->addAnimation(opacityVector, IntSize(), opacityAnim, GraphicsLayer::animationNameForTransition(AnimatedPropertyOpacity), timeOffset)) {
+ if (m_graphicsLayer->addAnimation(opacityVector, IntSize(), opacityAnim, GraphicsLayer::animationNameForTransition(AnimatedPropertyOpacity), timeOffset, view)) {
// To ensure that the correct opacity is visible when the animation ends, also set the final opacity.
updateOpacity(toStyle);
didAnimate = true;
@@ -1778,7 +1780,7 @@ bool RenderLayerBacking::startTransition(double timeOffset, CSSPropertyID proper
KeyframeValueList transformVector(AnimatedPropertyWebkitTransform);
transformVector.insert(adoptPtr(new TransformAnimationValue(0, &fromStyle->transform())));
transformVector.insert(adoptPtr(new TransformAnimationValue(1, &toStyle->transform())));
- if (m_graphicsLayer->addAnimation(transformVector, toRenderBox(renderer())->pixelSnappedBorderBoxRect().size(), transformAnim, GraphicsLayer::animationNameForTransition(AnimatedPropertyWebkitTransform), timeOffset)) {
+ if (m_graphicsLayer->addAnimation(transformVector, toRenderBox(renderer())->pixelSnappedBorderBoxRect().size(), transformAnim, GraphicsLayer::animationNameForTransition(AnimatedPropertyWebkitTransform), timeOffset, view)) {
// To ensure that the correct transform is visible when the animation ends, also set the final transform.
updateTransform(toStyle);
didAnimate = true;
@@ -1792,7 +1794,7 @@ bool RenderLayerBacking::startTransition(double timeOffset, CSSPropertyID proper
KeyframeValueList filterVector(AnimatedPropertyWebkitFilter);
filterVector.insert(adoptPtr(new FilterAnimationValue(0, &fromStyle->filter())));
filterVector.insert(adoptPtr(new FilterAnimationValue(1, &toStyle->filter())));
- if (m_graphicsLayer->addAnimation(filterVector, IntSize(), filterAnim, GraphicsLayer::animationNameForTransition(AnimatedPropertyWebkitFilter), timeOffset)) {
+ if (m_graphicsLayer->addAnimation(filterVector, IntSize(), filterAnim, GraphicsLayer::animationNameForTransition(AnimatedPropertyWebkitFilter), timeOffset, view)) {
// To ensure that the correct filter is visible when the animation ends, also set the final filter.
updateFilters(toStyle);
didAnimate = true;

Powered by Google App Engine
This is Rietveld 408576698