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

Unified Diff: cc/input/main_thread_scrolling_reason.h

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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/input/main_thread_scrolling_reason.h
diff --git a/cc/input/main_thread_scrolling_reason.h b/cc/input/main_thread_scrolling_reason.h
index 522909afb1eaed1b959ee19f6abce3a53d13f053..9ae15b3b7768677e876e72527569a7b6b9068f26 100644
--- a/cc/input/main_thread_scrolling_reason.h
+++ b/cc/input/main_thread_scrolling_reason.h
@@ -5,6 +5,10 @@
#ifndef CC_INPUT_MAIN_THREAD_SCROLLING_REASON_H_
#define CC_INPUT_MAIN_THREAD_SCROLLING_REASON_H_
+#include <sstream>
+#include <string>
+#include <vector>
+
namespace cc {
// Ensure this stays in sync with MainThreadScrollingReason in histograms.xml.
@@ -55,6 +59,66 @@ struct MainThreadScrollingReason {
kNonInvertibleTransform | kPageBasedScrolling;
return (reasons & reasons_set_by_compositor) == reasons;
}
+
+ static std::string mainThreadScrollingReasonsAsText(uint32_t reasons) {
+ std::stringstream ss;
+ std::vector<std::string> result_as_array =
+ mainThreadScrollingReasonsAsStringArray(reasons);
+ size_t array_length = result_as_array.size();
+
+ for (size_t i = 0; i < array_length - 1; ++i) {
+ ss << result_as_array[i] << ", ";
+ }
+ if (array_length) {
+ ss << result_as_array[array_length - 1];
+ return ss.str();
+ }
+
+ return "";
+ }
+
+ static std::vector<std::string> mainThreadScrollingReasonsAsStringArray(
+ uint32_t reasons) {
Ian Vollick 2016/07/12 15:12:13 Perhaps this could convert to a TracedValue direct
sahel 2016/07/12 17:20:59 The format of the text that stringCoordinator need
sahel 2016/07/12 20:35:24 Done.
+ std::vector<std::string> result;
+ if (reasons &
+ MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects)
+ result.push_back("Has background-attachment:fixed");
+ if (reasons &
+ MainThreadScrollingReason::kHasNonLayerViewportConstrainedObjects)
+ result.push_back("Has non-layer viewport-constrained objects");
+ if (reasons & MainThreadScrollingReason::kThreadedScrollingDisabled)
+ result.push_back("Threaded scrolling is disabled");
+ if (reasons & MainThreadScrollingReason::kScrollbarScrolling)
+ result.push_back("Scrollbar scrolling");
+ if (reasons & MainThreadScrollingReason::kPageOverlay)
+ result.push_back("Page overlay");
+ if (reasons & MainThreadScrollingReason::kAnimatingScrollOnMainThread)
+ result.push_back("Animating scroll on main thread");
+ if (reasons & MainThreadScrollingReason::kHasStickyPositionObjects)
+ result.push_back("Has sticky position objects");
+ if (reasons & MainThreadScrollingReason::kCustomScrollbarScrolling)
+ result.push_back("Custom scrollbar scrolling");
+
+ // Transient scrolling reasons.
+ if (reasons & MainThreadScrollingReason::kNonFastScrollableRegion)
+ result.push_back("Non fast scrollable region");
+ if (reasons & MainThreadScrollingReason::kEventHandlers)
+ result.push_back("Event handlers");
+ if (reasons & MainThreadScrollingReason::kFailedHitTest)
+ result.push_back("Failed hit test");
+ if (reasons & MainThreadScrollingReason::kNoScrollingLayer)
+ result.push_back("No scrolling layer");
+ if (reasons & MainThreadScrollingReason::kNotScrollable)
+ result.push_back("Not scrollable");
+ if (reasons & MainThreadScrollingReason::kContinuingMainThreadScroll)
+ result.push_back("Continuing main thread scroll");
+ if (reasons & MainThreadScrollingReason::kNonInvertibleTransform)
+ result.push_back("Non-invertible transform");
+ if (reasons & MainThreadScrollingReason::kPageBasedScrolling)
+ result.push_back("Page-based scrolling");
+
+ return result;
+ }
};
} // namespace cc
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698