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

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: 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 | cc/layers/layer.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..0a1c1da4ce0b8ac509a7fd0736c32fe14f79e680 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 <string>
+
+#include "base/trace_event/trace_event_argument.h"
+
namespace cc {
// Ensure this stays in sync with MainThreadScrollingReason in histograms.xml.
@@ -55,6 +59,60 @@ struct MainThreadScrollingReason {
kNonInvertibleTransform | kPageBasedScrolling;
return (reasons & reasons_set_by_compositor) == reasons;
}
+
+ static std::string mainThreadScrollingReasonsAsText(uint32_t reasons) {
+ base::trace_event::TracedValue tracedValue;
+ mainThreadScrollingReasonsAsTracedValue(reasons, &tracedValue);
+ std::string result_in_array_foramt = tracedValue.ToString();
+ // Remove '{main_thread_scrolling_reasons:[', ']}', and any '"' chars.
+ std::string result =
+ result_in_array_foramt.substr(34, result_in_array_foramt.length() - 36);
+ result.erase(std::remove(result.begin(), result.end(), '\"'), result.end());
+ return result;
+ }
+
+ static void mainThreadScrollingReasonsAsTracedValue(
+ uint32_t reasons,
+ base::trace_event::TracedValue* tracedValue) {
+ tracedValue->BeginArray("main_thread_scrolling_reasons");
+ if (reasons &
+ MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects)
+ tracedValue->AppendString("Has background-attachment:fixed");
+ if (reasons &
+ MainThreadScrollingReason::kHasNonLayerViewportConstrainedObjects)
+ tracedValue->AppendString("Has non-layer viewport-constrained objects");
+ if (reasons & MainThreadScrollingReason::kThreadedScrollingDisabled)
+ tracedValue->AppendString("Threaded scrolling is disabled");
+ if (reasons & MainThreadScrollingReason::kScrollbarScrolling)
+ tracedValue->AppendString("Scrollbar scrolling");
+ if (reasons & MainThreadScrollingReason::kPageOverlay)
+ tracedValue->AppendString("Page overlay");
+ if (reasons & MainThreadScrollingReason::kAnimatingScrollOnMainThread)
+ tracedValue->AppendString("Animating scroll on main thread");
+ if (reasons & MainThreadScrollingReason::kHasStickyPositionObjects)
+ tracedValue->AppendString("Has sticky position objects");
+ if (reasons & MainThreadScrollingReason::kCustomScrollbarScrolling)
+ tracedValue->AppendString("Custom scrollbar scrolling");
+
+ // Transient scrolling reasons.
+ if (reasons & MainThreadScrollingReason::kNonFastScrollableRegion)
+ tracedValue->AppendString("Non fast scrollable region");
+ if (reasons & MainThreadScrollingReason::kEventHandlers)
+ tracedValue->AppendString("Event handlers");
+ if (reasons & MainThreadScrollingReason::kFailedHitTest)
+ tracedValue->AppendString("Failed hit test");
+ if (reasons & MainThreadScrollingReason::kNoScrollingLayer)
+ tracedValue->AppendString("No scrolling layer");
+ if (reasons & MainThreadScrollingReason::kNotScrollable)
+ tracedValue->AppendString("Not scrollable");
+ if (reasons & MainThreadScrollingReason::kContinuingMainThreadScroll)
+ tracedValue->AppendString("Continuing main thread scroll");
+ if (reasons & MainThreadScrollingReason::kNonInvertibleTransform)
+ tracedValue->AppendString("Non-invertible transform");
+ if (reasons & MainThreadScrollingReason::kPageBasedScrolling)
+ tracedValue->AppendString("Page-based scrolling");
+ tracedValue->EndArray();
+ }
};
} // namespace cc
« no previous file with comments | « no previous file | cc/layers/layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698