Fennec/NativeUI/PanZoom: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Update page with current issues)
(add some more UI issues)
Line 17: Line 17:
* Chews through battery because it's trying to consistently render at 60 fps regardless of whether work needs to be done.
* 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).
* Physics are wrong when overscrolling, particularly diagonally (too long of a delay before bouncing back).
* Touch event handling is incorrect in some cases (Kats working on this)
** Under some conditions when two fingers are on the page, removing one will cause the page to snap-pan
** Touch down on a link, pan the page, and then touch up will trigger that link

Revision as of 15:52, 7 November 2011

Patch queue is here: http://hg.mozilla.org/users/pwalton_mozilla.com/birch-pan-zoom/

Known issues:

  • Some pages like TechCrunch have bad checkerboarding. Cause unknown, possibly due to the Like buttons.
  • 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.
  • 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.
  • 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).
  • 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.
  • When zoomed in far, the physics doesn't feel smooth. This is due to integer truncation happening too early.
  • Pages like Fennec Start and Google are smaller than the screen.
  • We don't start zoomed out to the width of the device.
  • 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).
  • Touch event handling is incorrect in some cases (Kats working on this)
    • Under some conditions when two fingers are on the page, removing one will cause the page to snap-pan
    • Touch down on a link, pan the page, and then touch up will trigger that link