Closed
Bug 939186
Opened 11 years ago
Closed 10 years ago
assert.noReflow
Categories
(Firefox OS Graveyard :: Gaia::TestAgent, defect, P2)
Tracking
(Not tracked)
RESOLVED
FIXED
1.4 S2 (28feb)
People
(Reporter: etienne, Assigned: etienne)
References
()
Details
(Keywords: perf, Whiteboard: [c=automation p= s= u=])
Attachments
(1 file)
In some parts for gaia, mainly during transitions, it's important for us *not* to cause any reflow. And, especially in the system app, it's pretty easy to regress on this front. Ideally we'd want a way to assert that no reflow occurred between point A and B in time during marionette tests. Not sure what the api should be but it could be something like: ``` client.startTrackingReflows(); // Do stuff assert.isTrue(client.reflowCount == 0); client.stopTrackingReflows(); ``` A great playground for this would the fast app switching gestures which is already covered by a JS marionette test [1] and a python marionette test [2]. And as of today, the assertion is true, there are no reflows during the app-to-app transition. [1] https://github.com/mozilla-b2g/gaia/blob/master/apps/system/test/marionette/edges_gesture_test.js [2] https://github.com/mozilla-b2g/gaia/blob/master/tests/python/gaia-ui-tests/gaiatest/tests/functional/system/test_edge_gestures.py
Assignee | ||
Updated•11 years ago
|
Comment 1•11 years ago
|
||
This call will have to be implemented by the test runner/client sinc Marionette (the server living in gecko) is responsible for driving user actions and getting current state information, and should not have any logic for performance or other kind of data gathering. So the api call for 'startTrackingReflows' should be defined by the test runner to set up the reflow listener. How do you retrieve the reflow log information from Gecko?
Comment 2•11 years ago
|
||
(In reply to Malini Das [:mdas] from comment #1) s/How do you retrieve the reflow log information from Gecko?/How do you get notified of reflows?
Comment 3•11 years ago
|
||
Per my conversation with Etienne he was going to write some marionette plugin for this for our marionettte-js tests in gaia. (basically a wrapper around some executeScript calls).
Assignee | ||
Comment 4•10 years ago
|
||
Moving component since we confirmed that this shouldn't need any marionette specific stuffs.
Component: Marionette → Gaia::TestAgent
Product: Testing → Firefox OS
Assignee | ||
Comment 5•10 years ago
|
||
Actively working on it, so assigning myself for now. Not sure I will succeed yet, will reset the assignee if I stall :)
Assignee: nobody → etienne
Updated•10 years ago
|
Whiteboard: [c=automation p= s= u=]
Assignee | ||
Comment 6•10 years ago
|
||
Got it working. Currentlty waiting to see if travis likes it: https://github.com/mozilla-b2g/gaia/pull/16303
Updated•10 years ago
|
Status: NEW → ASSIGNED
Priority: -- → P2
Assignee | ||
Comment 7•10 years ago
|
||
Looking good, looking green: https://travis-ci.org/mozilla-b2g/gaia/builds/18894239
Assignee | ||
Comment 8•10 years ago
|
||
Gareth, would you do me the honor of reviewing the marionette part? And Rik for the dialer part.
Attachment #8376737 -
Flags: review?(gaye)
Attachment #8376737 -
Flags: review?(anthony)
Comment 9•10 years ago
|
||
Comment on attachment 8376737 [details] [review] Pointer to gaia PR This is awesome news \o/ When testing with |APP=dialer make test-integration|, I'm seeing the tests run twice. And if I change the reflow number, only the first iteration fails. cf output below. Dialer > Keypad 1) Entering a 3 digits number with the keypad ✓ Using the special extention key (1316ms) ✓ Deleting a digit (508ms) ✓ Clearing the number by long pressing the delete key (1537ms) Dialer > Navigation ✓ Call Log (138ms) ✓ Contacts (182ms) Dialer > Keypad ✓ Entering a 3 digits number with the keypad (386ms) ✓ Using the special extention key (1238ms) ✓ Deleting a digit (476ms) ✓ Clearing the number by long pressing the delete key (1511ms) Dialer > Navigation ✓ Call Log (143ms) ✓ Contacts (180ms)
Attachment #8376737 -
Flags: review?(anthony) → review+
Assignee | ||
Comment 10•10 years ago
|
||
Ping Gareth now that the tree nightmare is over ;p
Flags: needinfo?(gaye)
Assignee | ||
Comment 11•10 years ago
|
||
Comment on attachment 8376737 [details] [review] Pointer to gaia PR Adding James to see if we can get this moving this week :)
Attachment #8376737 -
Flags: review?(jlal)
Comment 12•10 years ago
|
||
Thanks for doing this etienne! I think it could use a tiny bit of massaging, but it's very cool :)
Flags: needinfo?(gaye)
Assignee | ||
Comment 13•10 years ago
|
||
Comment on attachment 8376737 [details] [review] Pointer to gaia PR Patch updated! All comments addressed but one, not sure how to make the reflow helper more easily accessible. Do we need to make it a marionette js plugin?
Attachment #8376737 -
Flags: review?(jlal)
Comment 14•10 years ago
|
||
Comment on attachment 8376737 [details] [review] Pointer to gaia PR A few stylistic nits but mostly LGTM. Thanks etienne! This is really cool :)
Attachment #8376737 -
Flags: review?(gaye) → review+
Comment 15•10 years ago
|
||
If we want to fix the path issue it might make sense to turn this into a marionette plugin or perhaps just add it to marionette-helper. Up to you!
Assignee | ||
Comment 16•10 years ago
|
||
(In reply to Gareth Aye [:gaye] from comment #15) > If we want to fix the path issue it might make sense to turn this into a > marionette plugin or perhaps just add it to marionette-helper. Up to you! Filed bug 977614 for this.
Assignee | ||
Comment 17•10 years ago
|
||
https://github.com/mozilla-b2g/gaia/commit/157e05190dd6d048109535cc3d77f361fe38f563 \o/
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Updated•10 years ago
|
Target Milestone: --- → 1.4 S2 (28feb)
You need to log in
before you can comment on or make changes to this bug.
Description
•