diff options
author | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-13 16:09:46 +0000 |
---|---|---|
committer | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-13 16:11:17 +0000 |
commit | dab0a42b0b1e7792aff680a5d2d1d5de15ccfed7 (patch) | |
tree | 5a8b5b80564333e5d94fc58e9095b980034d0ec7 /cc/trees/layer_tree_host_common.h | |
parent | b61f3fb983c8200e1ad26c18639a215becbed745 (diff) | |
download | chromium_src-dab0a42b0b1e7792aff680a5d2d1d5de15ccfed7.zip chromium_src-dab0a42b0b1e7792aff680a5d2d1d5de15ccfed7.tar.gz chromium_src-dab0a42b0b1e7792aff680a5d2d1d5de15ccfed7.tar.bz2 |
Implement scroll handler latency tracking
Since scroll handlers do not block composited scrolling, the existing
input latency metric will only report the response time for the
compositor when scrolling a page with a handler. This is not accurate
for pages that implement scroll-synchronized effects, because the
scroll handler needs to be invoked so that the page contents are
updated with the new scroll offset.
This patch fixes the problem by forwarding latency information from the
impl to the main thread when we are scrolling a layer that has an active
scroll event handler.
In the case the scroll handler is no-op, the latency information will be
terminated as a failed commit.
Sample trace:
https://drive.google.com/file/d/0ByyxMXB38gLDRE40bkU5TVd0U00/edit?usp=sharing
BUG=347366
Review URL: https://codereview.chromium.org/365463003
Cr-Commit-Position: refs/heads/master@{#289307}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289307 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/trees/layer_tree_host_common.h')
-rw-r--r-- | cc/trees/layer_tree_host_common.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/cc/trees/layer_tree_host_common.h b/cc/trees/layer_tree_host_common.h index 0e13947..c86c4aa 100644 --- a/cc/trees/layer_tree_host_common.h +++ b/cc/trees/layer_tree_host_common.h @@ -21,6 +21,7 @@ namespace cc { class LayerImpl; class Layer; +class SwapPromise; class CC_EXPORT LayerTreeHostCommon { public: @@ -139,6 +140,7 @@ struct CC_EXPORT ScrollAndScaleSet { std::vector<LayerTreeHostCommon::ScrollUpdateInfo> scrolls; float page_scale_delta; + ScopedPtrVector<SwapPromise> swap_promises; }; template <typename LayerType> |