: Etherpad users! We are developing an extension that will allow you to create pages from etherpads quickly and easily. Please visit our sandbox and help us test it.


From MozillaWiki
Jump to: navigation, search

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


2.0 b1 TODO


  • 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?


  • 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
    • (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


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.


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.