From 6a65e094c8932e539c583875c7c383ad0c27303e Mon Sep 17 00:00:00 2001 From: tdresser Date: Wed, 27 Jan 2016 11:37:59 -0800 Subject: Fix broken MainThreadScrollingReason DCHECK. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1640373002 Cr-Commit-Position: refs/heads/master@{#371843} --- cc/blink/web_layer_impl.cc | 2 +- cc/input/main_thread_scrolling_reason.h | 4 +++- cc/trees/layer_tree_host_impl.cc | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cc/blink/web_layer_impl.cc b/cc/blink/web_layer_impl.cc index ce26503..cd10338 100644 --- a/cc/blink/web_layer_impl.cc +++ b/cc/blink/web_layer_impl.cc @@ -344,7 +344,7 @@ void WebLayerImpl::addMainThreadScrollingReasons( // TODO(tdresser): This is comparing less than a bit flag but that's not valid // if there is more than one reason given in |main_thread_scrolling_reasons|. DCHECK_LE(main_thread_scrolling_reasons, - cc::MainThreadScrollingReason::kMaxNonTransientScrollingReason); + cc::MainThreadScrollingReason::kMaxNonTransientScrollingReasons); layer_->AddMainThreadScrollingReasons(main_thread_scrolling_reasons); } diff --git a/cc/input/main_thread_scrolling_reason.h b/cc/input/main_thread_scrolling_reason.h index 4de70f7..50514e6 100644 --- a/cc/input/main_thread_scrolling_reason.h +++ b/cc/input/main_thread_scrolling_reason.h @@ -16,7 +16,9 @@ struct MainThreadScrollingReason { enum : uint32_t { kThreadedScrollingDisabled = 1 << 2 }; enum : uint32_t { kScrollbarScrolling = 1 << 3 }; enum : uint32_t { kPageOverlay = 1 << 4 }; - enum : uint32_t { kMaxNonTransientScrollingReason = kPageOverlay }; + // The maximum value reachable as a combination of the non-transient scrolling + // reasons. + enum : uint32_t { kMaxNonTransientScrollingReasons = (1 << 5) - 1 }; // Transient scrolling reasons. These are computed for each scroll begin. enum : uint32_t { kNonFastScrollableRegion = 1 << 5 }; diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 52be560..3ebc475 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc @@ -2500,10 +2500,10 @@ LayerImpl* LayerTreeHostImpl::FindScrollLayerForDeviceViewportPoint( if (status.thread == SCROLL_ON_MAIN_THREAD) { if (layer_impl->should_scroll_on_main_thread()) { DCHECK_LE(status.main_thread_scrolling_reasons, - MainThreadScrollingReason::kMaxNonTransientScrollingReason); + MainThreadScrollingReason::kMaxNonTransientScrollingReasons); } else { DCHECK_GT(status.main_thread_scrolling_reasons, - MainThreadScrollingReason::kMaxNonTransientScrollingReason); + MainThreadScrollingReason::kMaxNonTransientScrollingReasons); } *scroll_on_main_thread = true; @@ -2522,10 +2522,10 @@ LayerImpl* LayerTreeHostImpl::FindScrollLayerForDeviceViewportPoint( if (status.thread == SCROLL_ON_MAIN_THREAD) { if (layer_impl->should_scroll_on_main_thread()) { DCHECK_LE(status.main_thread_scrolling_reasons, - MainThreadScrollingReason::kMaxNonTransientScrollingReason); + MainThreadScrollingReason::kMaxNonTransientScrollingReasons); } else { DCHECK_GT(status.main_thread_scrolling_reasons, - MainThreadScrollingReason::kMaxNonTransientScrollingReason); + MainThreadScrollingReason::kMaxNonTransientScrollingReasons); } *scroll_on_main_thread = true; -- cgit v1.1