From c96e6f724337f64f0428edbef126ab396643b1b7 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Wed, 30 Sep 2015 18:29:34 +0800 Subject: [PATCH] Bug 1209841 - Improve move_caret_by_offset() in selection.py. r=automatedtester * Incorporate the for-loop in python into javascript so that we only need to call execute_script() once. * Add documentation for parameters. --- .../driver/marionette_driver/selection.py | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/testing/marionette/driver/marionette_driver/selection.py b/testing/marionette/driver/marionette_driver/selection.py index 967de2a5fbf..fe71fd640ee 100644 --- a/testing/marionette/driver/marionette_driver/selection.py +++ b/testing/marionette/driver/marionette_driver/selection.py @@ -42,15 +42,21 @@ class SelectionManager(object): return '''var sel = window.getSelection();''' def move_caret_by_offset(self, offset, backward=False): - '''Move caret in the element by character offset.''' - cmd = self.js_selection_cmd() +\ - '''sel.modify("move", arguments[1], "character");''' - direction = 'backward' if backward else 'forward' + '''Move caret in the element by character offset. - for i in range(offset): - self.element.marionette.execute_script( - cmd, script_args=[self.element, direction], - sandbox='system') + :param offset: Move the caret to the direction by offset characters. + :param backward: Optional, True to move backward; Default to False to + move forward. + + ''' + cmd = self.js_selection_cmd() + ''' + for (let i = 0; i < %d; ++i) { + sel.modify("move", "%s", "character"); + } + ''' % (offset, 'backward' if backward else 'forward') + + self.element.marionette.execute_script( + cmd, script_args=[self.element], sandbox='system') def move_caret_to_front(self): '''Move caret in the element to the front of the content.''' @@ -104,7 +110,7 @@ class SelectionManager(object): considered. ''' - range_count = self.range_count(); + range_count = self.range_count() first_rect_list = self.selection_rect_list(0) last_rect_list = self.selection_rect_list(range_count - 1) last_list_length = last_rect_list['length']