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/animation/element_id.h" | 17 #include "cc/animation/element_id.h" |
18 #include "cc/base/region.h" | 18 #include "cc/base/region.h" |
19 #include "cc/base/switches.h" | 19 #include "cc/base/switches.h" |
20 #include "cc/blink/web_blend_mode.h" | 20 #include "cc/blink/web_blend_mode.h" |
21 #include "cc/layers/layer.h" | 21 #include "cc/layers/layer.h" |
22 #include "cc/layers/layer_position_constraint.h" | 22 #include "cc/layers/layer_position_constraint.h" |
23 #include "cc/trees/layer_tree_host.h" | 23 #include "cc/trees/layer_tree_host.h" |
24 #include "third_party/WebKit/public/platform/WebFloatPoint.h" | 24 #include "third_party/WebKit/public/platform/WebFloatPoint.h" |
25 #include "third_party/WebKit/public/platform/WebFloatRect.h" | 25 #include "third_party/WebKit/public/platform/WebFloatRect.h" |
26 #include "third_party/WebKit/public/platform/WebLayerPositionConstraint.h" | 26 #include "third_party/WebKit/public/platform/WebLayerPositionConstraint.h" |
27 #include "third_party/WebKit/public/platform/WebLayerScrollClient.h" | 27 #include "third_party/WebKit/public/platform/WebLayerScrollClient.h" |
| 28 #include "third_party/WebKit/public/platform/WebLayerStickyPositionConstraint.h" |
28 #include "third_party/WebKit/public/platform/WebSize.h" | 29 #include "third_party/WebKit/public/platform/WebSize.h" |
29 #include "third_party/skia/include/core/SkMatrix44.h" | 30 #include "third_party/skia/include/core/SkMatrix44.h" |
30 #include "ui/gfx/geometry/rect_conversions.h" | 31 #include "ui/gfx/geometry/rect_conversions.h" |
31 #include "ui/gfx/geometry/vector2d_conversions.h" | 32 #include "ui/gfx/geometry/vector2d_conversions.h" |
32 | 33 |
33 using cc::Layer; | 34 using cc::Layer; |
34 using blink::WebLayer; | 35 using blink::WebLayer; |
35 using blink::WebFloatPoint; | 36 using blink::WebFloatPoint; |
36 using blink::WebVector; | 37 using blink::WebVector; |
37 using blink::WebRect; | 38 using blink::WebRect; |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 | 357 |
357 void WebLayerImpl::setPositionConstraint( | 358 void WebLayerImpl::setPositionConstraint( |
358 const blink::WebLayerPositionConstraint& constraint) { | 359 const blink::WebLayerPositionConstraint& constraint) { |
359 layer_->SetPositionConstraint(ToLayerPositionConstraint(constraint)); | 360 layer_->SetPositionConstraint(ToLayerPositionConstraint(constraint)); |
360 } | 361 } |
361 | 362 |
362 blink::WebLayerPositionConstraint WebLayerImpl::positionConstraint() const { | 363 blink::WebLayerPositionConstraint WebLayerImpl::positionConstraint() const { |
363 return ToWebLayerPositionConstraint(layer_->position_constraint()); | 364 return ToWebLayerPositionConstraint(layer_->position_constraint()); |
364 } | 365 } |
365 | 366 |
| 367 static blink::WebLayerStickyPositionConstraint |
| 368 ToWebLayerStickyPositionConstraint( |
| 369 const cc::LayerStickyPositionConstraint& constraint) { |
| 370 blink::WebLayerStickyPositionConstraint web_constraint; |
| 371 web_constraint.isSticky = constraint.is_sticky; |
| 372 web_constraint.isAnchoredLeft = constraint.is_anchored_left; |
| 373 web_constraint.isAnchoredRight = constraint.is_anchored_right; |
| 374 web_constraint.isAnchoredTop = constraint.is_anchored_top; |
| 375 web_constraint.isAnchoredBottom = constraint.is_anchored_bottom; |
| 376 web_constraint.leftOffset = constraint.left_offset; |
| 377 web_constraint.rightOffset = constraint.right_offset; |
| 378 web_constraint.topOffset = constraint.top_offset; |
| 379 web_constraint.bottomOffset = constraint.bottom_offset; |
| 380 web_constraint.scrollContainerRelativeStickyBoxRect = |
| 381 constraint.scroll_container_relative_sticky_box_rect; |
| 382 web_constraint.scrollContainerRelativeContainingBlockRect = |
| 383 constraint.scroll_container_relative_containing_block_rect; |
| 384 return web_constraint; |
| 385 } |
| 386 static cc::LayerStickyPositionConstraint ToStickyPositionConstraint( |
| 387 const blink::WebLayerStickyPositionConstraint& web_constraint) { |
| 388 cc::LayerStickyPositionConstraint constraint; |
| 389 constraint.is_sticky = web_constraint.isSticky; |
| 390 constraint.is_anchored_left = web_constraint.isAnchoredLeft; |
| 391 constraint.is_anchored_right = web_constraint.isAnchoredRight; |
| 392 constraint.is_anchored_top = web_constraint.isAnchoredTop; |
| 393 constraint.is_anchored_bottom = web_constraint.isAnchoredBottom; |
| 394 constraint.left_offset = web_constraint.leftOffset; |
| 395 constraint.right_offset = web_constraint.rightOffset; |
| 396 constraint.top_offset = web_constraint.topOffset; |
| 397 constraint.bottom_offset = web_constraint.bottomOffset; |
| 398 constraint.scroll_container_relative_sticky_box_rect = |
| 399 web_constraint.scrollContainerRelativeStickyBoxRect; |
| 400 constraint.scroll_container_relative_containing_block_rect = |
| 401 web_constraint.scrollContainerRelativeContainingBlockRect; |
| 402 return constraint; |
| 403 } |
| 404 void WebLayerImpl::setStickyPositionConstraint( |
| 405 const blink::WebLayerStickyPositionConstraint& constraint) { |
| 406 layer_->SetStickyPositionConstraint(ToStickyPositionConstraint(constraint)); |
| 407 } |
| 408 blink::WebLayerStickyPositionConstraint WebLayerImpl::stickyPositionConstraint() |
| 409 const { |
| 410 return ToWebLayerStickyPositionConstraint( |
| 411 layer_->sticky_position_constraint()); |
| 412 } |
| 413 |
366 void WebLayerImpl::setScrollClient(blink::WebLayerScrollClient* scroll_client) { | 414 void WebLayerImpl::setScrollClient(blink::WebLayerScrollClient* scroll_client) { |
367 if (scroll_client) { | 415 if (scroll_client) { |
368 layer_->set_did_scroll_callback( | 416 layer_->set_did_scroll_callback( |
369 base::Bind(&blink::WebLayerScrollClient::didScroll, | 417 base::Bind(&blink::WebLayerScrollClient::didScroll, |
370 base::Unretained(scroll_client))); | 418 base::Unretained(scroll_client))); |
371 } else { | 419 } else { |
372 layer_->set_did_scroll_callback(base::Closure()); | 420 layer_->set_did_scroll_callback(base::Closure()); |
373 } | 421 } |
374 } | 422 } |
375 | 423 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 | 469 |
422 void WebLayerImpl::SetContentsOpaqueIsFixed(bool fixed) { | 470 void WebLayerImpl::SetContentsOpaqueIsFixed(bool fixed) { |
423 contents_opaque_is_fixed_ = fixed; | 471 contents_opaque_is_fixed_ = fixed; |
424 } | 472 } |
425 | 473 |
426 void WebLayerImpl::setHasWillChangeTransformHint(bool has_will_change) { | 474 void WebLayerImpl::setHasWillChangeTransformHint(bool has_will_change) { |
427 layer_->SetHasWillChangeTransformHint(has_will_change); | 475 layer_->SetHasWillChangeTransformHint(has_will_change); |
428 } | 476 } |
429 | 477 |
430 } // namespace cc_blink | 478 } // namespace cc_blink |
OLD | NEW |