| Index: cc/layers/video_layer.cc
|
| diff --git a/cc/layers/video_layer.cc b/cc/layers/video_layer.cc
|
| index 4ddfdae69a64f9f4514b7d18be20d1083ba7a1fe..13bdc0ab4336008b0818174be1090d0e0a5879b4 100644
|
| --- a/cc/layers/video_layer.cc
|
| +++ b/cc/layers/video_layer.cc
|
| @@ -36,4 +36,41 @@ bool VideoLayer::Update(ResourceUpdateQueue* queue,
|
| return updated;
|
| }
|
|
|
| +void VideoLayer::PushPropertiesTo(LayerImpl* impl) {
|
| + Layer::PushPropertiesTo(impl);
|
| + gfx::Transform transform = impl->transform();
|
| + bool transform_is_invertible = impl->transform_is_invertible();
|
| + gfx::Size content_bounds = impl->content_bounds();
|
| + gfx::Size bounds = impl->bounds();
|
| +
|
| + // As blink is provided the bounds of the video layer post rotation
|
| + // for laying out the page, video layer impl's bounds must be transposed
|
| + // for 90 or 270 degree rotations.
|
| + switch (video_rotation_) {
|
| + case media::VIDEO_ROTATION_90:
|
| + transform.Rotate(90.0);
|
| + transform.Translate(0.0, -content_bounds.width());
|
| + content_bounds =
|
| + gfx::Size(content_bounds.height(), content_bounds.width());
|
| + bounds = gfx::Size(bounds.height(), bounds.width());
|
| + break;
|
| + case media::VIDEO_ROTATION_180:
|
| + transform.Rotate(180.0);
|
| + transform.Translate(-content_bounds.width(), -content_bounds.height());
|
| + break;
|
| + case media::VIDEO_ROTATION_270:
|
| + transform.Rotate(270.0);
|
| + transform.Translate(-content_bounds.height(), 0);
|
| + content_bounds =
|
| + gfx::Size(content_bounds.height(), content_bounds.width());
|
| + bounds = gfx::Size(bounds.height(), bounds.width());
|
| + case media::VIDEO_ROTATION_0:
|
| + break;
|
| + }
|
| +
|
| + impl->SetBounds(bounds);
|
| + impl->draw_properties().content_bounds = content_bounds;
|
| + impl->SetTransformAndInvertibility(transform, transform_is_invertible);
|
| +}
|
| +
|
| } // namespace cc
|
|
|