Mobile/Layers: Difference between revisions
< Mobile
Jump to navigation
Jump to search
(→2.0 b1 TODO: multi-touch zoom) |
|||
| (23 intermediate revisions by 3 users not shown) | |||
| Line 6: | Line 6: | ||
== Fennec-specific work == | == Fennec-specific work == | ||
=== cedar/mobile2 --> m-c/m-b merge blockers === | |||
cedar merged to m-c, but we can't make meaningful further progress without | |||
platform | |||
* {{bug|591047}} IME for tileless fennec | |||
=== 2.0 b1 TODO === | === 2.0 b1 TODO === | ||
* | frontend | ||
* {{bug| | * {{Bug|595403}} can't scroll up after resize/orientation change | ||
* | * double clicking many times on desktop gives strange results | ||
* shadow | * sometimes url bar comes up on double clicking a lot | ||
* (no bug) repeated taps on the scroll wheel (desktop) or volume rocker (maemo) cause incorrect zooming - a problem when a new event happens during an in-progress animation? | |||
platform | |||
* {{bug|591555}} crashy in shadow layers | |||
* {{bug|593243}} invalidation of content outside the CSS viewport but inside the displayport is ignored | |||
* (no bug) fix seaming, at least for simple cases (v. google.com @ 2.0 or 0.5 scale-zoom) | |||
* shadow layers perf work | |||
** PROFILE MEASURE PROFILE | ** PROFILE MEASURE PROFILE | ||
** (no bug) smarter allocation of ThebesLayer backing buffers | ** (no bug) smarter allocation of ThebesLayer backing buffers | ||
** retained-content-only layer transactions | ** retained-content-only layer transactions | ||
* {{bug| | * (possibly) {{bug|594847}} handle content-process crashes more gracefully | ||
=== 2.0 b1 nice-to-have === | === 2.0 b1 nice-to-have === | ||
| Line 31: | Line 36: | ||
* (no bug) make CanvasLayer paint directly into shareable surfaces, remove third buffer | * (no bug) make CanvasLayer paint directly into shareable surfaces, remove third buffer | ||
* don't draw the caret in the content process | * don't draw the caret in the content process | ||
* panning XUL documents (e.g. about:config) - might be covered by the subframe scrolling path | |||
* {{bug|597081}} - zooming in non-remote tabs | |||
=== 2.0 musts === | === 2.0 musts === | ||
| Line 62: | Line 69: | ||
From there, a normal opt or debug build will work. | From there, a normal opt or debug build will work. | ||
== Profiling == | |||
To get function timer data from a function-timer enabled build on android | |||
adb shell am start -a org.mozilla.fennec -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 MOZ_FT=/data/data/org.mozilla.fennec/log.txt | |||
adb shell cat /data/data/org.mozilla.fennec/log.txt | |||
<code>adb pull [log]</code> should work as well. | |||
Latest revision as of 21:13, 16 September 2010
See also Gecko:CrossProcessLayers.
Pre-Fennec work
- "shadow" layer trees (parent's reference to a child's tree) hooked into frame or widget code; currently they're only hooked into testing code. We need to associate TabChilds' shadow layer trees with their frames/widgets in the browser process.
- BasicThebesLayer pixel data shared efficiently with its BasicShadowThebesLayer (needed for realistic performance testing)
Fennec-specific work
cedar/mobile2 --> m-c/m-b merge blockers
cedar merged to m-c, but we can't make meaningful further progress without
platform
- bug 591047 IME for tileless fennec
2.0 b1 TODO
frontend
- bug 595403 can't scroll up after resize/orientation change
- double clicking many times on desktop gives strange results
- sometimes url bar comes up on double clicking a lot
- (no bug) repeated taps on the scroll wheel (desktop) or volume rocker (maemo) cause incorrect zooming - a problem when a new event happens during an in-progress animation?
platform
- bug 591555 crashy in shadow layers
- bug 593243 invalidation of content outside the CSS viewport but inside the displayport is ignored
- (no bug) fix seaming, at least for simple cases (v. google.com @ 2.0 or 0.5 scale-zoom)
- shadow layers perf work
- PROFILE MEASURE PROFILE
- (no bug) smarter allocation of ThebesLayer backing buffers
- retained-content-only layer transactions
- (possibly) bug 594847 handle content-process crashes more gracefully
2.0 b1 nice-to-have
- hacky slow fallback path for scrolling subframes (e.g. mobile gmail), only on pages with scrollable subframes
- bug 593310 draw a "checkerboard" or other indicator over waiting-to-be-filled regions
- (no bug) make CanvasLayer paint directly into shareable surfaces, remove third buffer
- don't draw the caret in the content process
- panning XUL documents (e.g. about:config) - might be covered by the subframe scrolling path
- bug 597081 - zooming in non-remote tabs
2.0 musts
- compositing Basic*Layer tree published by content, using GL/EGL in the browser process
- HW-accelerated video that bypasses content-process main thread
- fast scrolling of subframes
- better support for position:fixed elements
- WebGL? proxied?
- fast plugin drawing? that bypasses content-process main thread?
Questions that come with using browser element
- Where does panning and kinetic panning live?
- Ben: hopefully as javascript in browser binding
- Where will handling of zoom metadata live?
- Where will the tap => element code live (including better link clicking and transforming coordinates for zoom level)?
- Where does double-tap to zoom live?
- Where does double-click simulation live? Nokia devices didn't support a native double click event. Maybe we still need to do some form of event re-dispatching to browser elements.
- Where does tap highlighting live? I think webkit has a tap-highlight-color CSS property.
Other questions
- What is the proper behavior for position: fixed elements when there is an additional displayport on top of the CSS viewport?
- what do other browsers with displayport-type things do?
- MicroB fixes wrt displaport, hides on pan, shows when pan finishes
- mobilesafari appears to basically ignore position:fixed wrt displayport
- what do other browsers with displayport-type things do?
Building
hg clone http://hg.mozilla.org/projects/cedar cd cedar hg clone http://hg.mozilla.org/users/bstover_mozilla.com/mobile2 mobile
From there, a normal opt or debug build will work.
Profiling
To get function timer data from a function-timer enabled build on android
adb shell am start -a org.mozilla.fennec -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 MOZ_FT=/data/data/org.mozilla.fennec/log.txt adb shell cat /data/data/org.mozilla.fennec/log.txt
adb pull [log] should work as well.