summaryrefslogtreecommitdiffstats
path: root/cc/trees/layer_tree_host_common.h
diff options
context:
space:
mode:
authorskyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-13 16:09:46 +0000
committerskyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-13 16:11:17 +0000
commitdab0a42b0b1e7792aff680a5d2d1d5de15ccfed7 (patch)
tree5a8b5b80564333e5d94fc58e9095b980034d0ec7 /cc/trees/layer_tree_host_common.h
parentb61f3fb983c8200e1ad26c18639a215becbed745 (diff)
downloadchromium_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.h2
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>