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

Unified Diff: cc/trees/layer_tree_host.cc

Issue 365463003: Implement scroll handler latency tracking (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review comments. Created 6 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 | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host.cc
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
index 48f4864ef4a14e903aba2665fa85a989f725ea8a..0b7644618c5c24a75ddb629865e3aed5976c07b1 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -18,6 +18,7 @@
#include "base/strings/string_number_conversions.h"
#include "cc/animation/animation_registrar.h"
#include "cc/animation/layer_animation_controller.h"
+#include "cc/base/latency_info_swap_promise.h"
#include "cc/base/math_util.h"
#include "cc/debug/devtools_instrumentation.h"
#include "cc/debug/rendering_stats_instrumentation.h"
@@ -1017,31 +1018,43 @@ void LayerTreeHost::PaintLayerContents(
in_paint_layer_contents_ = false;
}
-void LayerTreeHost::ApplyScrollAndScale(const ScrollAndScaleSet& info) {
+void LayerTreeHost::ApplyScrollAndScale(ScrollAndScaleSet* info) {
if (!root_layer_.get())
return;
+ ScopedPtrVector<LatencyInfoSwapPromise>::iterator it =
+ info->swap_promises.begin();
+ for (; it != info->swap_promises.end(); ++it) {
+ scoped_ptr<LatencyInfoSwapPromise> swap_promise(
+ info->swap_promises.take(it));
+ TRACE_EVENT_FLOW_STEP0(
+ "input",
+ "LatencyInfo.Flow",
+ TRACE_ID_DONT_MANGLE(swap_promise->latency_info().trace_id),
danakj 2014/07/09 15:50:35 LGTM but if you were to put a TraceId() accessor o
+ "Main thread scroll update");
+ QueueSwapPromise(swap_promise.PassAs<SwapPromise>());
+ }
+
gfx::Vector2d inner_viewport_scroll_delta;
gfx::Vector2d outer_viewport_scroll_delta;
- for (size_t i = 0; i < info.scrolls.size(); ++i) {
- Layer* layer =
- LayerTreeHostCommon::FindLayerInSubtree(root_layer_.get(),
- info.scrolls[i].layer_id);
+ for (size_t i = 0; i < info->scrolls.size(); ++i) {
+ Layer* layer = LayerTreeHostCommon::FindLayerInSubtree(
+ root_layer_.get(), info->scrolls[i].layer_id);
if (!layer)
continue;
if (layer == outer_viewport_scroll_layer_.get()) {
- outer_viewport_scroll_delta += info.scrolls[i].scroll_delta;
+ outer_viewport_scroll_delta += info->scrolls[i].scroll_delta;
} else if (layer == inner_viewport_scroll_layer_.get()) {
- inner_viewport_scroll_delta += info.scrolls[i].scroll_delta;
+ inner_viewport_scroll_delta += info->scrolls[i].scroll_delta;
} else {
layer->SetScrollOffsetFromImplSide(layer->scroll_offset() +
- info.scrolls[i].scroll_delta);
+ info->scrolls[i].scroll_delta);
}
}
if (!inner_viewport_scroll_delta.IsZero() ||
- !outer_viewport_scroll_delta.IsZero() || info.page_scale_delta != 1.f) {
+ !outer_viewport_scroll_delta.IsZero() || info->page_scale_delta != 1.f) {
// SetScrollOffsetFromImplSide above could have destroyed the tree,
// so re-get this layer before doing anything to it.
@@ -1058,11 +1071,11 @@ void LayerTreeHost::ApplyScrollAndScale(const ScrollAndScaleSet& info) {
outer_viewport_scroll_layer_->scroll_offset() +
outer_viewport_scroll_delta);
}
- ApplyPageScaleDeltaFromImplSide(info.page_scale_delta);
+ ApplyPageScaleDeltaFromImplSide(info->page_scale_delta);
client_->ApplyScrollAndScale(
inner_viewport_scroll_delta + outer_viewport_scroll_delta,
- info.page_scale_delta);
+ info->page_scale_delta);
}
}
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698