Fennec/NativeUI/PanZoom: Difference between revisions

Update page with current issues
(Created page with "Remaining blocking issues: * Zoom behavior (will wait for Chris's work and then will see how much remains) * Pan/zoom event throttling * Remove logging * Redraw after buffer swa...")
 
(Update page with current issues)
Line 1: Line 1:
Remaining blocking issues:
Patch queue is here: http://hg.mozilla.org/users/pwalton_mozilla.com/birch-pan-zoom/


* Zoom behavior (will wait for Chris's work and then will see how much remains)
Known issues:
* Pan/zoom event throttling
* Some pages like TechCrunch have bad checkerboarding. Cause unknown, possibly due to the Like buttons.
* Remove logging
* When zoomed in, scrolling down too far results in checkerboards that don't go away. This is the result of an incorrectly-defined scissor rect in the renderer.
* Redraw after buffer swap/when loading Gecko
* Sometimes the page size doesn't get picked up by Java and it ends up all wrong, especially when using back and forward. This is due to the hacky method used to query the page size.
* event retargeting clicking
* Page size is set by monkey patching content CSS. This is not only ugly but may fail if the page overrides it. The correct solution to this is non-e10s SetDisplayPort, coupled with SetCSSViewport (the latter of which works now, but is useless without a display port because it clips at the viewport).
* too many pan/zoom throttling
* Sometimes the scale gesture detection gets confused and the page ends up very tiny or very big. Cause unknown, possibly due to incorrect interaction between the scale gesture detector and the panning code.
* redraw on demand (right now we do 60fps)
* When zoomed in far, the physics doesn't feel smooth. This is due to integer truncation happening too early.
* remove logging
* Pages like Fennec Start and Google are smaller than the screen.
* redraw after buffer swap
* We don't start zoomed out to the width of the device.
* page size not communicated to java (resize listener in js. tell java)
* Occasional OOM crashes on complex pages like TechCrunch. We may be allocating too much in the rendering loop -- GC statistics seem to suggest this.
* Occasional display corruption when dropping frames. This is probably due to not unioning dirty rectangles.
* Zooming is broken; the page never rerenders. This is due to the lack of non-e10s SetResolution. It may be possible to work around this with CSS transforms, but they will create redraw lag.
* Flicker when Gecko loads.
* The saved screenshot doesn't always appear in the right part of the page. Page size is not saved. This is because we only save a screenshot, while we actually need to save some more info (page size, etc.) in order to pan and zoom during load.
* Chews through battery because it's trying to consistently render at 60 fps regardless of whether work needs to be done.
* Physics are wrong when overscrolling, particularly diagonally (too long of a delay before bouncing back).
17

edits