Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Unified Diff: third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp

Issue 2015433004: Add main thread scrolling reasons to GraphicsLayer::layerTreeAsJSON. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: main thread scrlling reasons added to GraphicsLayerDebugInfo. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
index 4b444f9b9237fa328f1dcbec4003f9b4d6c1f077..c93735f9e4985b25b10b7f9e9c0e8d67b8d11e2b 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp
@@ -347,12 +347,14 @@ void ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange(ScrollableArea*
if (scrollbar.isCustomScrollbar()) {
detachScrollbarLayer(scrollbarGraphicsLayer);
scrollbarGraphicsLayer->platformLayer()->addMainThreadScrollingReasons(MainThreadScrollingReason::kCustomScrollbarScrolling);
+ scrollbarGraphicsLayer->debugInfo().setMainThreadScrollingReasons(scrollbarGraphicsLayer->platformLayer()->mainThreadScrollingReasons());
return;
}
// Invalidate custom scrollbar scrolling reason in case a custom
// scrollbar becomes a non-custom one.
scrollbarGraphicsLayer->platformLayer()->clearMainThreadScrollingReasons(MainThreadScrollingReason::kCustomScrollbarScrolling);
+ scrollbarGraphicsLayer->debugInfo().setMainThreadScrollingReasons(scrollbarGraphicsLayer->platformLayer()->mainThreadScrollingReasons());
WebScrollbarLayer* scrollbarLayer = getWebScrollbarLayer(scrollableArea, orientation);
if (!scrollbarLayer) {
Settings* settings = m_page->mainFrame()->settings();
@@ -680,12 +682,14 @@ void ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread(MainTh
scrollAnimator->takeOverCompositorAnimation();
}
scrollLayer->addMainThreadScrollingReasons(mainThreadScrollingReasons);
+ layer->debugInfo().setMainThreadScrollingReasons(scrollLayer->mainThreadScrollingReasons());
} else {
// Clear all main thread scrolling reasons except the one that's set
// if there is a running scroll animation.
uint32_t mainThreadScrollingReasonsToClear = ~0u;
mainThreadScrollingReasonsToClear &= ~MainThreadScrollingReason::kAnimatingScrollOnMainThread;
scrollLayer->clearMainThreadScrollingReasons(mainThreadScrollingReasonsToClear);
+ layer->debugInfo().setMainThreadScrollingReasons(scrollLayer->mainThreadScrollingReasons());
}
}
}
@@ -1043,33 +1047,16 @@ MainThreadScrollingReasons ScrollingCoordinator::mainThreadScrollingReasons() co
return reasons;
}
-String ScrollingCoordinator::mainThreadScrollingReasonsAsText(MainThreadScrollingReasons reasons)
-{
- StringBuilder stringBuilder;
-
- if (reasons & MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects)
- stringBuilder.append("Has background-attachment:fixed, ");
- if (reasons & MainThreadScrollingReason::kHasNonLayerViewportConstrainedObjects)
- stringBuilder.append("Has non-layer viewport-constrained objects, ");
- if (reasons & MainThreadScrollingReason::kHasStickyPositionObjects)
- stringBuilder.append("Has sticky position objects, ");
- if (reasons & MainThreadScrollingReason::kThreadedScrollingDisabled)
- stringBuilder.append("Threaded scrolling is disabled, ");
- if (reasons & MainThreadScrollingReason::kAnimatingScrollOnMainThread)
- stringBuilder.append("Animating scroll on main thread, ");
-
- if (stringBuilder.length())
- stringBuilder.resize(stringBuilder.length() - 2);
- return stringBuilder.toString();
-}
-
String ScrollingCoordinator::mainThreadScrollingReasonsAsText() const
{
ASSERT(m_page->deprecatedLocalMainFrame()->document()->lifecycle().state() >= DocumentLifecycle::CompositingClean);
- if (WebLayer* scrollLayer = toWebLayer(m_page->deprecatedLocalMainFrame()->view()->layerForScrolling()))
- return mainThreadScrollingReasonsAsText(scrollLayer->mainThreadScrollingReasons());
+ if (WebLayer* scrollLayer = toWebLayer(m_page->deprecatedLocalMainFrame()->view()->layerForScrolling())) {
+ String result(MainThreadScrollingReason::mainThreadScrollingReasonsAsText(scrollLayer->mainThreadScrollingReasons()).c_str());
+ return result;
+ }
- return mainThreadScrollingReasonsAsText(m_lastMainThreadScrollingReasons);
+ String result(MainThreadScrollingReason::mainThreadScrollingReasonsAsText(m_lastMainThreadScrollingReasons).c_str());
+ return result;
}
bool ScrollingCoordinator::frameViewIsDirty() const

Powered by Google App Engine
This is Rietveld 408576698