Flame: Pinch method in python marionette no longer works

RESOLVED FIXED in Firefox 45

Status

Testing
Marionette
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: njpark, Assigned: ato)

Tracking

({ateam-marionette-server})

unspecified
mozilla45
ARM
Gonk (Firefox OS)
ateam-marionette-server
Points:
---

Firefox Tracking Flags

(firefox45 fixed)

Details

MozReview Requests

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(2 attachments)

(Reporter)

Description

3 years ago
+++ This bug was initially created as a clone of Bug #1153240 +++

After fix for Bug 1153240, the pinch method does not generate js error, but it seems that pinch method does not cause any UI action, regardless of the parameter.  The script that used to work is: https://github.com/npark-mozilla/gaia/blob/master/tests/python/gaia-ui-tests/gaiatest/tests/graphics/orientation_zoom_base.py#L57

This could be either caused by unrelated gecko change as well.
(Reporter)

Comment 1

3 years ago
Here's the new bug about pinch method not working.  Let me know what additional info I can provide.
Flags: needinfo?(ato)
(Assignee)

Comment 2

3 years ago
Can you provide me with the Gecko log/gecko.log/logcat?
Flags: needinfo?(ato) → needinfo?(npark)
(Reporter)

Comment 3

3 years ago
Created attachment 8592810 [details]
1154432.log

This log was captured right before the pinch method was applied.
Flags: needinfo?(npark)
(Reporter)

Comment 4

3 years ago
I am guessing following section of the gecko log happens when I call pinch method: 
I/Gecko   ( 3755): 1429105401173	Marionette	DEBUG	conn2 -> ({"to":"0","sessionId":"{e0ae40dc-4d6c-478f-9552-74cdcee608fa}","name":"actionChain","parameters":{"nextId":null,"chain":[["press","{fda45237-5863-49e2-9479-6e5ef45621b4}",null,null],["moveByOffset",-100,0],["wait",0.05],["moveByOffset",-100,0],["wait",0.05],["moveByOffset",-100,0],["wait",0.05],["moveByOffset",-100,0],["wait",0.05],["release"]]}})
I/Gecko   ( 4445): 1429105401201 Marionette: emitting Touch event of type touchstart to element with id:  and tag name: DIV at coordinates (284, 160) relative to the viewport
I/Gecko   ( 4445): 1429105401225 Marionette: emitting Touch event of type touchmove to element with id:  and tag name: DIV at coordinates (184, 160) relative to the viewport

It's sort of odd to see that y value doesn't seem to change, unless I'm mistaken.
(Reporter)

Comment 5

3 years ago
Hi Andreas, any update with this bug?  let me know if the priority for this bug is low, then I'll mark my tests accordingly.  thanks!
Flags: needinfo?(ato)
(Assignee)

Comment 6

3 years ago
It's not at the top of my priority list, but I expect to get around to it late this week or possibly next week.
Flags: needinfo?(ato)
Blocks: 1161441
(Reporter)

Comment 7

3 years ago
Hi Andreas, it looks like https://bugzilla.mozilla.org/show_bug.cgi?id=1161441 might be related to this issue as well?
Flags: needinfo?(ato)
(In reply to No-Jun Park [:njpark] from comment #7)
> Hi Andreas, it looks like
> https://bugzilla.mozilla.org/show_bug.cgi?id=1161441 might be related to
> this issue as well?

I think it's not, because it has a different regression range (much later) and also is related to the transitionend event, it seems. I've filed bug 1163143 for it now.
(Reporter)

Comment 9

3 years ago
I saw this log output in jenkins today, which is odd because this should have been fixed before, and subsequent runs did not reproduce this error. Perhaps it's occuring intermittently.

http://jenkins1.qa.scl3.mozilla.com/view/Graphics/job/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/28/testReport/junit/%28root%29/test_orientation_zoom_py%20TestGfxSmokeTestOZ_test_orientation_zoom/test_orientation_zoom_py_TestGfxSmokeTestOZ_test_orientation_zoom/


12:09:03  2:20.95 TEST_START: MainThread test_combo_effects_orientation_zoom.py TestGfxSmokeTestOZComboEffects.test_combo_effects_orientation_zoom
12:11:08  4:25.63 TEST_END: MainThread ERROR, expected PASS
12:11:08 Traceback (most recent call last):
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/.env/lib/python2.7/site-packages/marionette_client-0.12-py2.7.egg/marionette/marionette_test.py", line 296, in run
12:11:08     testMethod()
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/tests/python/gaia-ui-tests/gaiatest/tests/graphics/test_combo_effects_orientation_zoom.py", line 16, in test_combo_effects_orientation_zoom
12:11:08     self.orientation_zoom_check()
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/tests/python/gaia-ui-tests/gaiatest/tests/graphics/orientation_zoom_base.py", line 57, in orientation_zoom_check
12:11:08     self.pinch(image._current_frame_locator, 'in', 20)
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/tests/python/gaia-ui-tests/gaiatest/gaia_graphics_test.py", line 197, in pinch
12:11:08     -disp_x, -disp_y, disp_x, disp_y, duration)
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/.env/lib/python2.7/site-packages/marionette_driver-0.5-py2.7.egg/marionette_driver/gestures.py", line 71, in pinch
12:11:08     multiAction.add(action1).add(action2).perform()
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/.env/lib/python2.7/site-packages/marionette_driver-0.5-py2.7.egg/marionette_driver/marionette.py", line 502, in perform
12:11:08     return self.marionette._send_message('multiAction', 'ok', value=self.multi_actions, max_length=self.max_length)
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/.env/lib/python2.7/site-packages/marionette_driver-0.5-py2.7.egg/marionette_driver/decorators.py", line 36, in _
12:11:08     return func(*args, **kwargs)
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/.env/lib/python2.7/site-packages/marionette_driver-0.5-py2.7.egg/marionette_driver/marionette.py", line 716, in _send_message
12:11:08     self._handle_error(response)
12:11:08   File "/var/lib/jenkins/jobs/flame-kk-319.mozilla-central.nightly.ui.graphics.reference.bitbar/workspace/.env/lib/python2.7/site-packages/marionette_driver-0.5-py2.7.egg/marionette_driver/marionette.py", line 752, in _handle_error
12:11:08     raise errors.lookup(status)(message, stacktrace=stacktrace)
12:11:08 MarionetteException: MarionetteException: assignment to undeclared variable value
12:11:08 stacktrace:
12:11:08 	GeckoDriver.prototype.multiAction@chrome://marionette/content/driver.js:1927:1
12:11:08 	TaskImpl_run@resource://gre/modules/Task.jsm:330:41
12:11:08 	TaskImpl@resource://gre/modules/Task.jsm:275:3
12:11:08 	createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14
12:11:08 	Task_spawn@resource://gre/modules/Task.jsm:164:12
12:11:08 	TaskImpl_handleResultValue@resource://gre/modules/Task.jsm:381:1
12:11:08 	TaskImpl_run@resource://gre/modules/Task.jsm:322:13
12:11:08 	TaskImpl@resource://gre/modules/Task.jsm:275:3
12:11:08 	createAsyncFunction/asyncFunction@resource://gre/modules/Task.jsm:249:14
12:11:08 	Task_spawn@resource://gre/modules/Task.jsm:164:12
12:11:08 	CommandProcessor.prototype.execute@chrome://marionette/content/command.js:158:13
12:11:08 	Dispatcher.prototype.onPacket@chrome://marionette/content/dispatcher.js:75:5
12:11:08 	DebuggerTransport.prototype._onJSONObjectReady/<@chrome://marionette/content/server.js -> resource://gre/modules/devtools/transport/transport.js:471:9
12:11:08 	makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14
12:11:08 	makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:82:14
12:11:08 
12:11:08 
12:11:08
(Reporter)

Comment 10

3 years ago
Above error was produced when pinch() action is called.
(Assignee)

Comment 11

3 years ago
Do you know what revision Gecko was built from?  It appears that this is quite old compared to tip on central.

Also I agree with mwargers that this doesn’t look related to bug 1161441.
Flags: needinfo?(ato)
(Reporter)

Comment 12

3 years ago
(In reply to Andreas Tolfsen (:ato) from comment #11)
> Do you know what revision Gecko was built from?  It appears that this is
> quite old compared to tip on central.
> 
> Also I agree with mwargers that this doesn’t look related to bug 1161441.

According to the log, it downloaded from th https://pvtbuilds.mozilla.org/pvt/mozilla.org/b2gotoro/nightly/mozilla-central-flame-kk-eng/latest/flame-kk.zip in May 8th, so it's the latest gecko.  But sometimes jenkins does not refresh properly, so there is an off chance that it was running the stale build.  I haven't seen this reproduce yet, and I'll check whether this occurs again in the future.
(Reporter)

Comment 13

3 years ago
Hi Andreas, any update on the status of this bug?
Flags: needinfo?(ato)
(Assignee)

Comment 14

3 years ago
By the looks of it, the Python client is sending a command parameter "max_length" which signifies the length of the longest action chain, but the server is looking for "max_len".  This could be the cause of the bug.
Flags: needinfo?(ato)
(Assignee)

Comment 15

3 years ago
Created attachment 8693594 [details]
MozReview Request: Bug 1154432: Fix max_length parameter to multiAction command

Bug 1154432: Fix max_length parameter to multiAction command

The Python client sends a `max_length' command parameter to multiAction,
but the Marionette server looks for `max_len'.  This likely a regression
from a refactor.

r=dburns
(Assignee)

Updated

3 years ago
Attachment #8693594 - Flags: review?(dburns)
(Assignee)

Comment 16

3 years ago
Comment on attachment 8693594 [details]
MozReview Request: Bug 1154432: Fix max_length parameter to multiAction command

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/26495/diff/1-2/
(Assignee)

Comment 17

3 years ago
This change can be tested locally using a hotfix by changing self.max_length to self.max_len at https://dxr.mozilla.org/mozilla-central/source/testing/marionette/driver/marionette_driver/marionette.py?from=marionette_driver%2Fmarionette.py#492 in your local installation of the marionette-driver package.
(Assignee)

Updated

3 years ago
Assignee: nobody → ato
Status: NEW → ASSIGNED
(Reporter)

Comment 18

3 years ago
I have checked that the hotfix mentioned in Comment 17 works fine.  I have found that there is another issue of freezing screen issue after smooth_scroll() call, will raise a separate issue.
(Reporter)

Updated

3 years ago
Blocks: 1229163
(Reporter)

Updated

3 years ago
See Also: → bug 1229163
(Reporter)

Updated

3 years ago
No longer blocks: 1229163, 1161441
Comment on attachment 8693594 [details]
MozReview Request: Bug 1154432: Fix max_length parameter to multiAction command

https://reviewboard.mozilla.org/r/26495/#review24149
Attachment #8693594 - Flags: review?(dburns) → review+
(Reporter)

Comment 21

3 years ago
Just for record, also double checked that without this fix, the pinch() call does not work.

Comment 22

3 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/1ced6fa5afed
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox45: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
You need to log in before you can comment on or make changes to this bug.