Index: tools/telemetry/telemetry/internal/actions/scroll.js |
diff --git a/tools/telemetry/telemetry/internal/actions/scroll.js b/tools/telemetry/telemetry/internal/actions/scroll.js |
deleted file mode 100644 |
index 1a295d05fca083781984c7d27193d27d3a6bc368..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/internal/actions/scroll.js |
+++ /dev/null |
@@ -1,147 +0,0 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// This file provides the ScrollAction object, which scrolls a page |
-// to the bottom or for a specified distance: |
-// 1. var action = new __ScrollAction(callback, opt_distance_func) |
-// 2. action.start(scroll_options) |
-'use strict'; |
- |
-(function() { |
- var MAX_SCROLL_LENGTH_TIME_MS = 6250; |
- |
- function ScrollGestureOptions(opt_options) { |
- if (opt_options) { |
- this.element_ = opt_options.element; |
- this.left_start_ratio_ = opt_options.left_start_ratio; |
- this.top_start_ratio_ = opt_options.top_start_ratio; |
- this.direction_ = opt_options.direction; |
- this.speed_ = opt_options.speed; |
- this.gesture_source_type_ = opt_options.gesture_source_type; |
- } else { |
- this.element_ = document.scrollingElement || document.body; |
- this.left_start_ratio_ = 0.5; |
- this.top_start_ratio_ = 0.5; |
- this.direction_ = 'down'; |
- this.speed_ = 800; |
- this.gesture_source_type_ = chrome.gpuBenchmarking.DEFAULT_INPUT; |
- } |
- } |
- |
- function supportedByBrowser() { |
- return !!(window.chrome && |
- chrome.gpuBenchmarking && |
- chrome.gpuBenchmarking.smoothScrollBy); |
- } |
- |
- // This class scrolls a page from the top to the bottom once. |
- // |
- // The page is scrolled down by a single scroll gesture. |
- function ScrollAction(opt_callback, opt_distance_func) { |
- var self = this; |
- |
- this.beginMeasuringHook = function() {}; |
- this.endMeasuringHook = function() {}; |
- |
- this.callback_ = opt_callback; |
- this.distance_func_ = opt_distance_func; |
- } |
- |
- ScrollAction.prototype.getScrollDistanceDown_ = function() { |
- var clientHeight; |
- // clientHeight is "special" for the body element. |
- if (this.element_ == document.body) |
- clientHeight = window.innerHeight; |
- else |
- clientHeight = this.element_.clientHeight; |
- |
- return this.element_.scrollHeight - |
- this.element_.scrollTop - |
- clientHeight; |
- }; |
- |
- ScrollAction.prototype.getScrollDistanceUp_ = function() { |
- return this.element_.scrollTop; |
- }; |
- |
- ScrollAction.prototype.getScrollDistanceRight_ = function() { |
- var clientWidth; |
- // clientWidth is "special" for the body element. |
- if (this.element_ == document.body) |
- clientWidth = window.innerWidth; |
- else |
- clientWidth = this.element_.clientWidth; |
- |
- return this.element_.scrollWidth - this.element_.scrollLeft - clientWidth; |
- }; |
- |
- ScrollAction.prototype.getScrollDistanceLeft_ = function() { |
- return this.element_.scrollLeft; |
- }; |
- |
- ScrollAction.prototype.getScrollDistance_ = function() { |
- if (this.distance_func_) |
- return this.distance_func_(); |
- |
- if (this.options_.direction_ == 'down') { |
- return this.getScrollDistanceDown_(); |
- } else if (this.options_.direction_ == 'up') { |
- return this.getScrollDistanceUp_(); |
- } else if (this.options_.direction_ == 'right') { |
- return this.getScrollDistanceRight_(); |
- } else if (this.options_.direction_ == 'left') { |
- return this.getScrollDistanceLeft_(); |
- } else if (this.options_.direction_ == 'upleft') { |
- return Math.min(this.getScrollDistanceUp_(), |
- this.getScrollDistanceLeft_()); |
- } else if (this.options_.direction_ == 'upright') { |
- return Math.min(this.getScrollDistanceUp_(), |
- this.getScrollDistanceRight_()); |
- } else if (this.options_.direction_ == 'downleft') { |
- return Math.min(this.getScrollDistanceDown_(), |
- this.getScrollDistanceLeft_()); |
- } else if (this.options_.direction_ == 'downright') { |
- return Math.min(this.getScrollDistanceDown_(), |
- this.getScrollDistanceRight_()); |
- } |
- }; |
- |
- ScrollAction.prototype.start = function(opt_options) { |
- this.options_ = new ScrollGestureOptions(opt_options); |
- // Assign this.element_ here instead of constructor, because the constructor |
- // ensures this method will be called after the document is loaded. |
- this.element_ = this.options_.element_; |
- requestAnimationFrame(this.startGesture_.bind(this)); |
- }; |
- |
- ScrollAction.prototype.startGesture_ = function() { |
- this.beginMeasuringHook(); |
- |
- var max_scroll_length_pixels = (MAX_SCROLL_LENGTH_TIME_MS / 1000) * |
- this.options_.speed_; |
- var distance = Math.min(max_scroll_length_pixels, |
- this.getScrollDistance_()); |
- |
- var rect = __GestureCommon_GetBoundingVisibleRect(this.options_.element_); |
- var start_left = |
- rect.left + rect.width * this.options_.left_start_ratio_; |
- var start_top = |
- rect.top + rect.height * this.options_.top_start_ratio_; |
- chrome.gpuBenchmarking.smoothScrollBy( |
- distance, this.onGestureComplete_.bind(this), start_left, start_top, |
- this.options_.gesture_source_type_, this.options_.direction_, |
- this.options_.speed_); |
- }; |
- |
- ScrollAction.prototype.onGestureComplete_ = function() { |
- this.endMeasuringHook(); |
- |
- // We're done. |
- if (this.callback_) |
- this.callback_(); |
- }; |
- |
- window.__ScrollAction = ScrollAction; |
- window.__ScrollAction_SupportedByBrowser = supportedByBrowser; |
-})(); |