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

Unified Diff: telemetry/telemetry/internal/actions/scroll_to_element.py

Issue 2559503002: [Telemetry] Fix JavaScript interpolation in telemetry actions (Closed)
Patch Set: inline js literals Created 4 years 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 | « telemetry/telemetry/internal/actions/scroll_bounce.py ('k') | telemetry/telemetry/internal/actions/seek.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: telemetry/telemetry/internal/actions/scroll_to_element.py
diff --git a/telemetry/telemetry/internal/actions/scroll_to_element.py b/telemetry/telemetry/internal/actions/scroll_to_element.py
index 53b4f8015330240069e86d1d5132be484b68c01f..2154e096bd3d5914e3a16d2edef9619626f4a5a2 100644
--- a/telemetry/telemetry/internal/actions/scroll_to_element.py
+++ b/telemetry/telemetry/internal/actions/scroll_to_element.py
@@ -4,6 +4,7 @@
from telemetry.internal.actions import page_action
from telemetry.internal.actions.scroll import ScrollAction
+from telemetry.util import js_template
class ScrollToElementAction(page_action.PageAction):
@@ -29,13 +30,13 @@ class ScrollToElementAction(page_action.PageAction):
def WillRunAction(self, tab):
if self._selector:
- # TODO(catapult:#3028): Fix interpolation of JavaScript values.
- element = 'document.querySelector("%s")' % self._selector
+ element = js_template.Render(
+ 'document.querySelector({{ selector }})', selector=self._selector)
else:
element = self._element_function
- # TODO(catapult:#3028): Fix interpolation of JavaScript values.
- get_distance_js = '''
+ # TODO(catapult:#3028): Render in JavaScript method when supported by API.
+ get_distance_js = js_template.Render('''
(function(elem){
var rect = elem.getBoundingClientRect();
if (rect.bottom < 0) {
@@ -50,8 +51,8 @@ class ScrollToElementAction(page_action.PageAction):
return rect.top - (window.innerHeight / 2);
}
return 0;
- })(%s);
- ''' % element
+ })({{ @element }});
+ ''', element=element)
self._distance = tab.EvaluateJavaScript(get_distance_js)
self._direction = 'down' if self._distance > 0 else 'up'
« no previous file with comments | « telemetry/telemetry/internal/actions/scroll_bounce.py ('k') | telemetry/telemetry/internal/actions/seek.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698