| Index: ui/compositor/layer.cc
|
| diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc
|
| index 2a88db500fe5b74141d8dddd174b02b8638ba6b6..4af153c6260dbb0de9500c630caebbc8b96fe003 100644
|
| --- a/ui/compositor/layer.cc
|
| +++ b/ui/compositor/layer.cc
|
| @@ -63,6 +63,10 @@ Layer::Layer()
|
| layer_inverted_(false),
|
| layer_mask_(NULL),
|
| layer_mask_back_link_(NULL),
|
| + zoom_x_offset_(0),
|
| + zoom_y_offset_(0),
|
| + zoom_(1),
|
| + zoom_inset_(0),
|
| delegate_(NULL),
|
| web_layer_(NULL),
|
| scale_content_(true),
|
| @@ -86,6 +90,10 @@ Layer::Layer(LayerType type)
|
| layer_inverted_(false),
|
| layer_mask_(NULL),
|
| layer_mask_back_link_(NULL),
|
| + zoom_x_offset_(0),
|
| + zoom_y_offset_(0),
|
| + zoom_(1),
|
| + zoom_inset_(0),
|
| delegate_(NULL),
|
| scale_content_(true),
|
| device_scale_factor_(1.0f) {
|
| @@ -235,12 +243,7 @@ float Layer::GetCombinedOpacity() const {
|
| void Layer::SetBackgroundBlur(int blur_radius) {
|
| background_blur_radius_ = blur_radius;
|
|
|
| - WebKit::WebFilterOperations filters;
|
| - if (background_blur_radius_) {
|
| - filters.append(WebKit::WebFilterOperation::createBlurFilter(
|
| - background_blur_radius_));
|
| - }
|
| - web_layer_->setBackgroundFilters(filters);
|
| + SetLayerBackgroundFilters();
|
| }
|
|
|
| void Layer::SetLayerSaturation(float saturation) {
|
| @@ -299,6 +302,18 @@ void Layer::SetMaskLayer(Layer* layer_mask) {
|
| layer_mask->layer_mask_back_link_ = this;
|
| }
|
|
|
| +void Layer::SetBackgroundZoom(float x_offset,
|
| + float y_offset,
|
| + float zoom,
|
| + int inset) {
|
| + zoom_x_offset_ = x_offset;
|
| + zoom_y_offset_ = y_offset;
|
| + zoom_ = zoom;
|
| + zoom_inset_ = inset;
|
| +
|
| + SetLayerBackgroundFilters();
|
| +}
|
| +
|
| void Layer::SetLayerFilters() {
|
| WebKit::WebFilterOperations filters;
|
| if (layer_saturation_) {
|
| @@ -322,6 +337,24 @@ void Layer::SetLayerFilters() {
|
| web_layer_->setFilters(filters);
|
| }
|
|
|
| +void Layer::SetLayerBackgroundFilters() {
|
| + WebKit::WebFilterOperations filters;
|
| + if (zoom_ != 1) {
|
| + filters.append(WebKit::WebFilterOperation::createZoomFilter(
|
| + WebKit::WebRect(zoom_x_offset_, zoom_y_offset_,
|
| + (GetTargetBounds().width() / zoom_),
|
| + (GetTargetBounds().height() / zoom_)),
|
| + zoom_inset_));
|
| + }
|
| +
|
| + if (background_blur_radius_) {
|
| + filters.append(WebKit::WebFilterOperation::createBlurFilter(
|
| + background_blur_radius_));
|
| + }
|
| +
|
| + web_layer_->setBackgroundFilters(filters);
|
| +}
|
| +
|
| float Layer::GetTargetOpacity() const {
|
| if (animator_.get() && animator_->IsAnimatingProperty(
|
| LayerAnimationElement::OPACITY))
|
|
|