Mobile/AsyncSubframePanning: Difference between revisions

No edit summary
 
(46 intermediate revisions by 4 users not shown)
Line 8: Line 8:
* seamed scrolling
* seamed scrolling


=== Phase 2 ===
=== Phase 2a ===
* seamless scrolling (needed for B2G dynamic toolbar)
 
=== Phase 2b ===
* Fennec subframe scrolling
* Fennec subframe scrolling
* seamless scrolling


=== Not doing ===
=== Not doing ===
Line 56: Line 58:
[[File:ApzcDesignPage1.png]]
[[File:ApzcDesignPage1.png]]
[[File:9-.png]]
[[File:9-.png]]
[[File:b2g-input-flow.png]]


==Bugs==
==Bugs==
Line 119: Line 122:
** This will be based off C++ code which B2G uses, and there may be remaining issues in there for a desktop platform.  We have to make sure this is tested as soon as it starts working so that we can flush out any remaining bugs.
** This will be based off C++ code which B2G uses, and there may be remaining issues in there for a desktop platform.  We have to make sure this is tested as soon as it starts working so that we can flush out any remaining bugs.
* The work that Kats, BenWa, AJones are doing should then just click in place and give us subframe APZC on Metro as well.
* The work that Kats, BenWa, AJones are doing should then just click in place and give us subframe APZC on Metro as well.
===2013-06-18===
* Kats:
**There is another coordinate system that we have to worry about, and B2G seems to be very broken on high dpi devices.  This is what the code looks like as well.
** We don't need high dpi for 1.1, so we probably don't need to uplift this.  Need to test these changes, and then we should be OK.
* Benoit:
** On hit testing during the last week.  More complicated test cases, with transforms, etc.
* Multiple display ports support in the layout, but it probably already supports it.  We just need to use those assumptions and proceed.
===2013-06-25===
* BenWa:
** Pushed the hit testing on try, failed, sorting it out now.
** will finish hit testing, need to sort out gtest
* Kats:
** Sorted out regressions.  Tests for bad transformation equations.
** Ran into CSS transforms problem (rotated iFrame, vertical moves end up being diagonal).
*** http://people.mozilla.com/~kgupta/tmp/rotated.html
*** This is not blocking shipping, Kats will spend no more that another day to fix it
** Blog post of current coordinate system: https://staktrace.com/spout/entry.php?id=800
** will be finishing up the tests
** then move on to managing display ports
===2013-07-02===
;done
* BenWa hit testing
** layout assumed that root frames were container frames, which isn't correct
* kats fixed high dpi event delivery
** two code paths (with root APZC and w/o APZC)
** seems like enforcing that there is always a root APZC would be the best route
;next
* BenWa will finish hit testing before going on PTO
** when he gets back from PTO, hook up hit testing
* Kats will make sure that there is no code assumeing that there is only one APZC
** will require making APZC owned by layer tree not compositor parent, compositor parent will hold a reference to layer tree
* Kats will defer continuing to work on input event transformation
===2013-07-09===
;done
* Kats
** We can have multiple PZCs now
** How do we (uniquely) identify scrollable layers?  Need to use the layer ID and the scroll/frame ID, and presshell ID to guard against page navigation changes.
** Threading problem is under control by creating a separate tree of APZC instances that shadows the layer tree that is walkable on the UI thread
** This will tie in with dzbarsky's work
* BenWa
** Creating the scroll info layers is done, will be landed today
** Not much else to do at this point, blocked on kats
===2013-07-16===
;Need to discuss
* Requirements for dynamic toolbar that roc/Cwiiis planned out - this requires controlling which nested frame gets the scroll events
** roc/Cwiiis claim they depend on the APZC work.  Unclear if they're blocked, and on which part.
** Controlling which nested frame gets scroll events seems to be the item that is blocking the above work.  This is what we called "Phase 2, seamless scrolling".  Looks like this should be the first thing in the second phase.
* What about Metro?
** In good shape, mostly working
** Scrolling properly
** Waiting for us to finish
** Brian was looking at axis locking
* What's next?
** Dynamic scrollbar
** Seamless scrolling
** B2G E-mail app (two frames)
; Kats
* Tree manager issues, timing of APZC being created.  Even if message gets dropped, we seem to get the right information later, and will process it there.
* Still not clean, as we're dropping messages, so we may be looking for a better solution in the future.
* Porting hit testing patches from before, in progress.  This is next.  Hoping the input events aren't going to complicate things and that it should be as we had it before.  The focus model needs to be sorted out as well.
; BenWa
* Transform shadow tree test, then sidetracked by a mobile bug.  Will focus on the tests today.
===2013-07-23===
;status
* kats
** has patch for APZC per layer
** patch was expecting a layer tree, was actually getting indicator layers
** plan is to on-demand convert layers to scrollable layers
** currently working on making code in RenderFrameParent/TabParent/TabChild do the right thing in terms of scrolling the subframes when APZC asks it to
* BenWa is at SIGRAPH
* Botond
** patch to make APZC not break progressive tile painting
** on inbound for Android
;next steps
* Kats
** wrap up patch
** write more tests
* Botond
** making b2g APZC work with progressive tiles
;notes
* aiming to land everything next week. It'll be tight
===2013-07-30===
;status
* kats
** got review from BenWa, waiting for mattwoodrow
** landed a few follow up bugs
*** most important is focus
** overscroll DIVs are broken, they're not being made scrollable layers
** {{bug|890290}} function to convert widget space in input events needs to be modified to take async into account
* BenWa
** away at sigraph
** did reviews
;next
* get multi APZC landed
* figure out focus model
* figure out overscroll DIVs
===2013-08-06===
;status
* kats
** landed multiple APZC patch
*** regression {{bug|900742}} - input events don't always end up at the right place
*** regression {{bug|899810}} - on B2G and Metro where the screen goes blank
;next
* BenWa: {{bug|898443}}
* kats: {{bug|890280}} & {{bug|901339}}
===2013-08-13===
;status
* kats
** input event targeting
** discussed a central gesture detector
** setting resolution on top level pres shell
* benwa
** (unrelated) b2g leo blocker
* botond
* metro apzc
;next steps
* kats
** several patches up for review, need to get them landed
*** some should have some more testing before landing
** continue working on input events
* benwa
** finish leo+ blockers
** do reviews
===2013-08-20===
;status
* kats
** landed a bunch of stuff for event targeting ({{bug|890280}}, {{bug|906109}})
** filed a bug for disabling pinch zooming on subframes {{bug|906427}}
** have patches up for review for more event targeting {{bug|898443}}
* benwa
** camera crash bugs
*** has his head around the crashes, should have patches soon
* botond
** getting feedback on gaia patch
** looking at seemless panning transition
;next
* kats
** turn on async panning for all apps on b2g
** investigate overflow div panning
;need to look at
* display port tuning
* input events go through gecko thread
** would be better if input events didn't
===2013-08-27===
;status
* kats
** landed some focus model stuff (bug 898443, bug 906427, 907977)
** have a patch for bug 907754 (incorrect scaling in subframes) which needs cleanup. Also landed bug 885023 which this fix required
** looked at what things are like when APZC is turned on for all of gaia. Some weird issues but I will work through the big ones one at a time to see if they are hiding any other issues underneath
;next
* kats
** going to work on tracking down the overflow:scroll div problem
** work through the gaia issues I found (mostly using the contacts app as a test)
===2013-09-03===
;status
* kats
** landed 907754 (zoom, overflow documents issues)
** landing 910322 today after addressing some comments
** overflow scroll sub-documents problems - probably bug in flattening code, waiting for mwoodrow and tn
* BenWa
** not working on this last week
* botond
** handing overscroll to the parent layer; have the first implementation going
** will be looking at display port bugs
** composition bounds of iframes, same as what jmathies was running at - have an r+ from tn
;next steps
* kats
** may run out of stuff to look at - one bug to file, hit testing a bit off
** blocked on waiting for info and reviews
;notes
* kats - issues with tiling on fennec? wrong resolution, wrong sizes?
* benwa - you see progressive tile painting in the cases where you should not (e.g, updating existing content)
===2013-09-10===
;status
* kats
** implementing parent APZC
** talked to tn about overflow scroll problem
*** frames construction isn't correct (there's a nested scroll frame)
*** tn will think about it
*** milan will follow up with tn tomorrow
* botond
** patch for scroll hand off posted
*** issue with zoomed subframes
** moving on to annotating the browser iframe
* BenWa did nothing of relevance
;next
* botond to annotate the browser iframe
===2013-09-24===
;status
* kats
** last week was mostly mobile work week
** continued working on bug 912657. input events are currently not being sent to the APZC in the root process so that will need fixing. currently they are delivered from gonk/nsWindow.cpp directly to gecko, gecko does some hit testing, and if they are in the area of the content process, *then* they go to the APZC. instead nsWindow should send it directly to the APZC first. i will work on this, building off the work jimm has done in bug 915213.
* botond
** at a C++ standardization conference this week
** last week he worked on bug 912666 and made good progress on special handling for the toolbar. the individual pieces seem to work but it depends on bug 912657 to tie it all together.
Confirmed users
336

edits