OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 'use strict'; | 5 'use strict'; |
6 | 6 |
7 (function() { | 7 (function() { |
8 function SwipeGestureOptions(opt_options) { | 8 function SwipeGestureOptions(opt_options) { |
9 if (opt_options) { | 9 if (opt_options) { |
10 this.element_ = opt_options.element; | 10 this.element_ = opt_options.element; |
11 this.left_start_ratio_ = opt_options.left_start_ratio; | 11 this.left_start_ratio_ = opt_options.left_start_ratio; |
12 this.top_start_ratio_ = opt_options.top_start_ratio; | 12 this.top_start_ratio_ = opt_options.top_start_ratio; |
13 this.direction_ = opt_options.direction; | 13 this.direction_ = opt_options.direction; |
14 this.distance_ = opt_options.distance; | 14 this.distance_ = opt_options.distance; |
15 this.speed_ = opt_options.speed; | 15 this.speed_ = opt_options.speed; |
16 } else { | 16 } else { |
17 this.element_ = document.body; | 17 this.element_ = document.body; |
18 this.left_start_ratio_ = 0.5; | 18 this.left_start_ratio_ = 0.5; |
19 this.top_start_ratio_ = 0.5; | 19 this.top_start_ratio_ = 0.5; |
20 this.direction_ = 'left'; | 20 this.direction_ = 'left'; |
21 this.distance_ = 0; | 21 this.distance_ = 0; |
22 this.speed_ = 800; | 22 this.speed_ = 800; |
23 } | 23 } |
24 } | 24 } |
25 | 25 |
26 function supportedByBrowser() { | 26 function supportedByBrowser() { |
27 return !!(window.chrome && | 27 return !!(window.chrome && |
28 chrome.gpuBenchmarking && | 28 chrome.gpuBenchmarking && |
29 chrome.gpuBenchmarking.swipe); | 29 chrome.gpuBenchmarking.swipe && |
| 30 chrome.gpuBenchmarking.visualViewportHeight && |
| 31 chrome.gpuBenchmarking.visualViewportWidth); |
30 } | 32 } |
31 | 33 |
32 // This class swipes a page for a specified distance. | 34 // This class swipes a page for a specified distance. |
33 function SwipeAction(opt_callback) { | 35 function SwipeAction(opt_callback) { |
34 var self = this; | 36 var self = this; |
35 | 37 |
36 this.beginMeasuringHook = function() {} | 38 this.beginMeasuringHook = function() {}; |
37 this.endMeasuringHook = function() {} | 39 this.endMeasuringHook = function() {}; |
38 | 40 |
39 this.callback_ = opt_callback; | 41 this.callback_ = opt_callback; |
40 } | 42 } |
41 | 43 |
42 SwipeAction.prototype.start = function(opt_options) { | 44 SwipeAction.prototype.start = function(opt_options) { |
43 this.options_ = new SwipeGestureOptions(opt_options); | 45 this.options_ = new SwipeGestureOptions(opt_options); |
44 // Assign this.element_ here instead of constructor, because the constructor | 46 // Assign this.element_ here instead of constructor, because the constructor |
45 // ensures this method will be called after the document is loaded. | 47 // ensures this method will be called after the document is loaded. |
46 this.element_ = this.options_.element_; | 48 this.element_ = this.options_.element_; |
47 requestAnimationFrame(this.startGesture_.bind(this)); | 49 requestAnimationFrame(this.startGesture_.bind(this)); |
(...skipping 18 matching lines...) Expand all Loading... |
66 this.endMeasuringHook(); | 68 this.endMeasuringHook(); |
67 | 69 |
68 // We're done. | 70 // We're done. |
69 if (this.callback_) | 71 if (this.callback_) |
70 this.callback_(); | 72 this.callback_(); |
71 }; | 73 }; |
72 | 74 |
73 window.__SwipeAction = SwipeAction; | 75 window.__SwipeAction = SwipeAction; |
74 window.__SwipeAction_SupportedByBrowser = supportedByBrowser; | 76 window.__SwipeAction_SupportedByBrowser = supportedByBrowser; |
75 })(); | 77 })(); |
OLD | NEW |