| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/blink/web_layer_impl.h" | 5 #include "cc/blink/web_layer_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <utility> | 10 #include <utility> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/bind.h" | 13 #include "base/bind.h" |
| 14 #include "base/strings/string_util.h" | 14 #include "base/strings/string_util.h" |
| 15 #include "base/threading/thread_checker.h" | 15 #include "base/threading/thread_checker.h" |
| 16 #include "base/trace_event/trace_event_impl.h" | 16 #include "base/trace_event/trace_event_impl.h" |
| 17 #include "cc/base/region.h" | 17 #include "cc/base/region.h" |
| 18 #include "cc/base/switches.h" | 18 #include "cc/base/switches.h" |
| 19 #include "cc/blink/web_blend_mode.h" | 19 #include "cc/blink/web_blend_mode.h" |
| 20 #include "cc/layers/layer.h" | 20 #include "cc/layers/layer.h" |
| 21 #include "cc/layers/layer_position_constraint.h" | 21 #include "cc/layers/layer_position_constraint.h" |
| 22 #include "cc/layers/snap_point_list.h" |
| 22 #include "cc/trees/element_id.h" | 23 #include "cc/trees/element_id.h" |
| 23 #include "cc/trees/layer_tree_host.h" | 24 #include "cc/trees/layer_tree_host.h" |
| 24 #include "third_party/WebKit/public/platform/WebFloatPoint.h" | 25 #include "third_party/WebKit/public/platform/WebFloatPoint.h" |
| 25 #include "third_party/WebKit/public/platform/WebFloatRect.h" | 26 #include "third_party/WebKit/public/platform/WebFloatRect.h" |
| 26 #include "third_party/WebKit/public/platform/WebLayerPositionConstraint.h" | 27 #include "third_party/WebKit/public/platform/WebLayerPositionConstraint.h" |
| 27 #include "third_party/WebKit/public/platform/WebLayerScrollClient.h" | 28 #include "third_party/WebKit/public/platform/WebLayerScrollClient.h" |
| 28 #include "third_party/WebKit/public/platform/WebLayerStickyPositionConstraint.h" | 29 #include "third_party/WebKit/public/platform/WebLayerStickyPositionConstraint.h" |
| 29 #include "third_party/WebKit/public/platform/WebSize.h" | 30 #include "third_party/WebKit/public/platform/WebSize.h" |
| 31 #include "third_party/WebKit/public/platform/WebSnapPointList.h" |
| 30 #include "third_party/skia/include/core/SkMatrix44.h" | 32 #include "third_party/skia/include/core/SkMatrix44.h" |
| 31 #include "ui/gfx/geometry/rect_conversions.h" | 33 #include "ui/gfx/geometry/rect_conversions.h" |
| 32 #include "ui/gfx/geometry/vector2d_conversions.h" | 34 #include "ui/gfx/geometry/vector2d_conversions.h" |
| 33 | 35 |
| 34 using cc::Layer; | 36 using cc::Layer; |
| 35 using blink::WebLayer; | 37 using blink::WebLayer; |
| 36 using blink::WebFloatPoint; | 38 using blink::WebFloatPoint; |
| 37 using blink::WebVector; | 39 using blink::WebVector; |
| 38 using blink::WebRect; | 40 using blink::WebRect; |
| 39 using blink::WebSize; | 41 using blink::WebSize; |
| (...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 constraint.scroll_container_relative_sticky_box_rect = | 406 constraint.scroll_container_relative_sticky_box_rect = |
| 405 web_constraint.scroll_container_relative_sticky_box_rect; | 407 web_constraint.scroll_container_relative_sticky_box_rect; |
| 406 constraint.scroll_container_relative_containing_block_rect = | 408 constraint.scroll_container_relative_containing_block_rect = |
| 407 web_constraint.scroll_container_relative_containing_block_rect; | 409 web_constraint.scroll_container_relative_containing_block_rect; |
| 408 constraint.nearest_layer_shifting_sticky_box = | 410 constraint.nearest_layer_shifting_sticky_box = |
| 409 web_constraint.nearest_layer_shifting_sticky_box; | 411 web_constraint.nearest_layer_shifting_sticky_box; |
| 410 constraint.nearest_layer_shifting_containing_block = | 412 constraint.nearest_layer_shifting_containing_block = |
| 411 web_constraint.nearest_layer_shifting_containing_block; | 413 web_constraint.nearest_layer_shifting_containing_block; |
| 412 return constraint; | 414 return constraint; |
| 413 } | 415 } |
| 416 static cc::SnapPointList ToSnapPointList( |
| 417 const blink::WebSnapPointList& web_list) { |
| 418 cc::SnapPointList list; |
| 419 for (blink::WebSnapPoint point : web_list.HorizontalOffsets()) { |
| 420 /*LOG(ERROR) << point.offset << " " << point.must_snap << " " |
| 421 << point.is_start << " " << point.is_end;*/ |
| 422 list.horizontal.push_back(cc::SnapPoint(point.offset, point.must_snap, |
| 423 point.is_start, point.is_end)); |
| 424 } |
| 425 for (blink::WebSnapPoint point : web_list.VerticalOffsets()) { |
| 426 list.vertical.push_back(cc::SnapPoint(point.offset, point.must_snap, |
| 427 point.is_start, point.is_end)); |
| 428 } |
| 429 return list; |
| 430 } |
| 414 void WebLayerImpl::SetStickyPositionConstraint( | 431 void WebLayerImpl::SetStickyPositionConstraint( |
| 415 const blink::WebLayerStickyPositionConstraint& constraint) { | 432 const blink::WebLayerStickyPositionConstraint& constraint) { |
| 416 layer_->SetStickyPositionConstraint(ToStickyPositionConstraint(constraint)); | 433 layer_->SetStickyPositionConstraint(ToStickyPositionConstraint(constraint)); |
| 417 } | 434 } |
| 418 blink::WebLayerStickyPositionConstraint WebLayerImpl::StickyPositionConstraint() | 435 blink::WebLayerStickyPositionConstraint WebLayerImpl::StickyPositionConstraint() |
| 419 const { | 436 const { |
| 420 return ToWebLayerStickyPositionConstraint( | 437 return ToWebLayerStickyPositionConstraint( |
| 421 layer_->sticky_position_constraint()); | 438 layer_->sticky_position_constraint()); |
| 422 } | 439 } |
| 423 | 440 |
| 424 void WebLayerImpl::SetScrollClient(blink::WebLayerScrollClient* scroll_client) { | 441 void WebLayerImpl::SetScrollClient(blink::WebLayerScrollClient* scroll_client) { |
| 425 if (scroll_client) { | 442 if (scroll_client) { |
| 426 layer_->set_did_scroll_callback( | 443 layer_->set_did_scroll_callback( |
| 427 base::Bind(&blink::WebLayerScrollClient::DidScroll, | 444 base::Bind(&blink::WebLayerScrollClient::DidScroll, |
| 428 base::Unretained(scroll_client))); | 445 base::Unretained(scroll_client))); |
| 429 } else { | 446 } else { |
| 430 layer_->set_did_scroll_callback( | 447 layer_->set_did_scroll_callback( |
| 431 base::Callback<void(const gfx::ScrollOffset&)>()); | 448 base::Callback<void(const gfx::ScrollOffset&)>()); |
| 432 } | 449 } |
| 433 } | 450 } |
| 434 | 451 |
| 452 void WebLayerImpl::SetScrollSnapOffsets( |
| 453 const blink::WebSnapPointList& offsets) { |
| 454 layer_->SetScrollSnapOffsets(ToSnapPointList(offsets)); |
| 455 } |
| 456 |
| 435 void WebLayerImpl::SetLayerClient(cc::LayerClient* client) { | 457 void WebLayerImpl::SetLayerClient(cc::LayerClient* client) { |
| 436 layer_->SetLayerClient(client); | 458 layer_->SetLayerClient(client); |
| 437 } | 459 } |
| 438 | 460 |
| 439 const cc::Layer* WebLayerImpl::CcLayer() const { | 461 const cc::Layer* WebLayerImpl::CcLayer() const { |
| 440 return layer_.get(); | 462 return layer_.get(); |
| 441 } | 463 } |
| 442 | 464 |
| 443 cc::Layer* WebLayerImpl::CcLayer() { | 465 cc::Layer* WebLayerImpl::CcLayer() { |
| 444 return layer_.get(); | 466 return layer_.get(); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 | 506 |
| 485 void WebLayerImpl::SetHasWillChangeTransformHint(bool has_will_change) { | 507 void WebLayerImpl::SetHasWillChangeTransformHint(bool has_will_change) { |
| 486 layer_->SetHasWillChangeTransformHint(has_will_change); | 508 layer_->SetHasWillChangeTransformHint(has_will_change); |
| 487 } | 509 } |
| 488 | 510 |
| 489 void WebLayerImpl::ShowScrollbars() { | 511 void WebLayerImpl::ShowScrollbars() { |
| 490 layer_->ShowScrollbars(); | 512 layer_->ShowScrollbars(); |
| 491 } | 513 } |
| 492 | 514 |
| 493 } // namespace cc_blink | 515 } // namespace cc_blink |
| OLD | NEW |