| Index: cc/layers/layer.cc
|
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
|
| index a453f4f46059d52a4738ca5a86ca33d84fe39bd3..e7053a818eb0e98ff55d4d820298846a488fb5b3 100644
|
| --- a/cc/layers/layer.cc
|
| +++ b/cc/layers/layer.cc
|
| @@ -966,18 +966,23 @@ void Layer::AddMainThreadScrollingReasons(
|
| uint32_t main_thread_scrolling_reasons) {
|
| DCHECK(IsPropertyChangeAllowed());
|
| DCHECK(main_thread_scrolling_reasons);
|
| - if (main_thread_scrolling_reasons_ == main_thread_scrolling_reasons)
|
| + uint32_t new_reasons =
|
| + main_thread_scrolling_reasons_ | main_thread_scrolling_reasons;
|
| + if (main_thread_scrolling_reasons_ == new_reasons)
|
| return;
|
| - main_thread_scrolling_reasons_ |= main_thread_scrolling_reasons;
|
| + main_thread_scrolling_reasons_ = new_reasons;
|
| SetNeedsCommit();
|
| }
|
|
|
| -void Layer::ClearMainThreadScrollingReasons() {
|
| +void Layer::ClearMainThreadScrollingReasons(
|
| + uint32_t main_thread_scrolling_reasons_to_clear) {
|
| DCHECK(IsPropertyChangeAllowed());
|
| - if (!main_thread_scrolling_reasons_)
|
| + DCHECK(main_thread_scrolling_reasons_to_clear);
|
| + uint32_t new_reasons =
|
| + ~main_thread_scrolling_reasons_to_clear & main_thread_scrolling_reasons_;
|
| + if (new_reasons == main_thread_scrolling_reasons_)
|
| return;
|
| - main_thread_scrolling_reasons_ =
|
| - MainThreadScrollingReason::kNotScrollingOnMain;
|
| + main_thread_scrolling_reasons_ = new_reasons;
|
| SetNeedsCommit();
|
| }
|
|
|
|
|