Closed Bug 1154432 Opened 9 years ago Closed 9 years ago

Flame: Pinch method in python marionette no longer works

Categories

(Remote Protocol :: Marionette, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(firefox45 fixed)

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: njpark, Assigned: ato)

References

Details

(Keywords: pi-marionette-server)

Attachments

(2 files)

+++ 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.
Here's the new bug about pinch method not working.  Let me know what additional info I can provide.
Flags: needinfo?(ato)
Can you provide me with the Gecko log/gecko.log/logcat?
Flags: needinfo?(ato) → needinfo?(npark)
Attached file 1154432.log
This log was captured right before the pinch method was applied.
Flags: needinfo?(npark)
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.
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)
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
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.
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
Above error was produced when pinch() action is called.
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)
(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.
Hi Andreas, any update on the status of this bug?
Flags: needinfo?(ato)
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)
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
Attachment #8693594 - Flags: review?(dburns)
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/
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: nobody → ato
Status: NEW → ASSIGNED
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.
Blocks: 1229163
See Also: → 1229163
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+
Just for record, also double checked that without this fix, the pinch() call does not work.
https://hg.mozilla.org/mozilla-central/rev/1ced6fa5afed
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: