Platform/2011-Q4-Goals

From MozillaWiki
Jump to: navigation, search

General Goals

GFX

  • [DONE] Fennec layers acceleration
    • Use OpenGL ES on at least a subset of Android hardware
  • [AT RISK] CSS 3 Font Spec Implementation
  • [DROPPED] Electrolysis Accelerated Layers
    • Evaluate current status
    • Finish Direct3D 10/Direct2D, Direct3D 9, Mac OS X OpenGL layers implementation
    • For non-sandboxed processes only
  • [DONE] Thebes wrapper for Azure
    • Land on mozilla-central
  • [DONE] Skia backend for Azure
    • Landed and able to be turned on for canvas
    • Demoable for general content (not just canvas) - not necessarily demoable from mozilla-central
  • [DROPPED] Texture sharing for WebGL
    • On OSes where it's supported, enable cross-process WebGL by sharing textures between content and chrome processes
  • Other important Q4 work
    • [DROPPED] Finish cross-process Linux OpenGL layers implementation (on desktop)
    • Azure - Cairo backend
      • Possibly only on graphics branch
    • Continue using telemetry
    • Imagelib work on memory usage and efficiency
    • Windows 7 font rendering survey via Test Pilot
    • [DONE] Multiple GPU support on Mac OS X
    • WebGL improvements
      • [DONE] Anti-aliasing
      • [DONE] ARB_robustness / EGL_LOST_CONTEXT
      • Auditing remaining failing conformance tests


Layout

  • [DONE] Complete Mobile Readability project (Phase 1 landed.)
  • [MISSED] Diagnostic tools for text and font memory usage in about:memory
  • [DONE] Graphite Font Layout system implemented and landed pref'd off
  • [ON TRACK] Multi-column Compliance (de-prefixing)
    • Implementation of column-fill property needs to be finished and landed.
    • De-prefixing of all current column implementation, except column-span, needs to be finished and landed.
    • Implementation of column-span property has been moved to Q1 2012.
  • [MISSED] Complete SVG migration to DisplayList (Performance)
    • We de-prioritized SVG work in Q4 to fix other bugs
  • [MISSED] Implement CSS spec for flexbox
    • CSS flexbox spec is still in working draft & undergoing significant changes. New ETA for this feature: Q1 2012
  • [DONE] Selection bit - Move from Layout to Content - Mutation events update DOM (619273)
  • [DONE] View class removal from Decks/XUL done. (bug 655263)
  • [DROPPED] Page Break Support
    • We de-prioritized Page Break in Q4 to work on other specs
  • [DROPPED] CSS Ruby on mozilla-central
    • not currently assigned


Video

  • [MISSED] MediaStream infrastructure landed on mozilla-central with Worker-based processing enabled and some media element integration
  • [MISSED] libcubeb sound library replacing libsydneyaudio on mozilla-central
  • [DONE] fullscreen API enabled on mozilla-central
  • [MISSED] direct pushing of video frames to compositor thread for e10s
  • [MISSED] eliminate unnecessary copy with video decoder API changes


DOM

  • [MISSED] Close the gap between what can be expressed in WebIDL and what our IDL tooling supports
    • Good progress made here, but we missed this goal for two reasons:
      • The spec changed last minute
      • This turned into a bigger task than originally believed
  • [DONE] Make cycles involving weak maps and the DOM not leak
  • [MISSED] JS Compartment per global (carryover from last quarter, this may not be hittable due to timing of blocking bugs)
    • Missed due to timing of blocking bugs
  • [MISSED] Have a real plan for what the new DOM bindings will look like
    • Missed due to resource availability.
  • [DONE] Review and land View Source rewrite
  • [MISSED] Add support for the new mutation observer proposal (to replace DOM Mutation Event support eventually)
    • Missed due to cycle collection time fixing was deemed more important (snappy)
  • [DONE] Add support for (callable) event constructors


WebAPI

  • [MISSED] Camera support landed (and maybe turned on)
    • Missed due to WebAPPs work being prioritized over this, and also due to lack of windows build system at the time this work was being done
  • [MISSED] Basic camera in-page UI implemented. Not CSS configurable yet
    • Missed due to WebAPPs work being prioritized over this, and also due to lack of windows build system at the time this work was being done
  • [MISSED] SMS landed. Might not have security model in place. Turned on for B2G
    • Patch ready and reviewed, but the native mobile frontend threw a wrench in the wheel for landing this in time
  • [DONE] DOM-side of telephony done. Nothing turned on as we'll be missing radio part
  • [DONE] IndexedDB fully up to spec (including version API change, delete database, and arrays as keys, the last of which might be a stretch)
  • [DONE] File support in IndexedDB
  • [MISSED] Have spec for how capability management in apps will work
    • Missed in favor of finishing up the IndexedDB stretch goal
  • [DONE] Battery API on android and one other platform
  • [DONE] Network API on android and one other platform -- Not landed yet, but all the work is done (1 review pending for linux)
  • [DONE] Implement App-cache to current spec
  • [MISSED] Contacts API spec (spec proposal only, no implementation) -- about 50% there, but not done yet.
    • Missed in favor of finishing up the IndexedDB stretch goal


JS

  • [MISSED] Land incremental GC.
  • [MISSED] Land Harmony modules.
  • [MISSED] Land support for JS profiler.
  • [DONE] Shrink JSObject to ~5 words.

Accessibility

  • [DONE] Mobile: Accessibility enabled on FF android builds
  • [DROPPED] E10S: phase 2. All gecko-side a11y engine work done for parity with single process.
  • [MISSED] Canvas accessibility: build accessible subtree.
  • [MISSED] Improve accessible tree updating [bug 690417]
  • Other activities: Additional Telemetry, B2G test framework collab.

Multi-Process

  • [DROPPED] Continue regular tracking and resolution of short-term goals
  • [DROPPED] Remove the need for the --enable-e10s-compat build flag, so users can simply set a pref in Firefox to get multi-process tabs. Note that some or many features still may not work this quarter.
  • [DROPPED] Get windowless and windowed plugins working on all platforms.
  • [DONE] Identify which addons must continue to work to get 80% of users multi-process tabs
  • [DROPPED] Develop a plan for addon compatibility with content processes. (This may involve a combination of Firefox compatibility shims, porting addons to the Jetpack SDK, manual rewriting, or automatic rewriting).
  • [DROPPED] Measure the memory usage of multiple content processes and identify wasted space and a plan to correct any issues.
  • [DROPPED] Identify remaining issues which need input from the UX team for mobile and desktop, including panning responsiveness/checkerboarding tradeoffs (primarily mobile) and misbehaving/crashing content UI (desktop)

Perf

  • [DROPPED] Valgrind developer ROM for pandaboard or Nexus S
  • [DROPPED] linux "perf"-counters in zippity(depends on above ROM to have perf support in kernel)
  • [MISSED] Bug 662444: exit(0) "immediate" shutdown prototype and a plan to land it
  • [MISSED] Bug 686805: Incremental decompression for libxul on Android
  • [DROPPED] Startup-ordered binary on Windows
  • deprioritized: 0 fennec sqlite fsyncs on first startup

Networking

  • [DONE] Improve SSL performance and responsiveness by fixing bug 511393. This is also important for SPDY.
  • [DONE] Add support for high-resolution timers on Windows, bug 676349. - PGO builds broken with the current patch
  • [DONE] Improve dual-stack IPv6 experience by implementing an effective form of "happy eyeballs" IPv6 auto-detection at TCP open. This means resolving bug 684893.
  • [DONE] Have full implementation of final WebSockets spec implemented and in the tree in a shippable state.
  • [MISSED] Land pipelining improvements from Patrick McManus.
    • 75% completed.
  • [DONE] Land SPDY implementation, bug 528288. OK if it remains pref'd off.
  • [DONE] Work towards an effective mobile disk cache implementation.
    • Create a specific set of questions that need answering in order to make a plan.
    • Create system with which to measure cache performance locally.
      • Some microbenchmarks have been set up; WIP to analyze and understand results. See Necko/MobileCache/MicroBenchmarks for status
      • WIP for a test-driver to fetch whole pagesets (much like Talos, but necko-only)
    • Create a plan for a mobile disk cache based gathered data.
  • [DONE] Improve App Cache support by resolving bug 538595 and bug 538588.
  • [MISSED] Resolve all networking security bugs that received a designation of sg:moderate or higher more than six weeks ago. This will become a permanent goal for the group.
    • 50% completed. This was our first quarter with this goal so we dealt with a large backlog.


Mobile

  • NPAPI/Flash on Honeycomb integration and support
  • Native front end prototype
  • Automated Unit & Talos tests should be less than 5% unreliable (Matching desktop reliability)
  • Achieve consensus on and create a reliable process for mobile responsiveness testing and evaluation (matrix, methods, analysis).
  • Land on baseline numbers based on the above and create measurable perf targets through March 2012.
  • Re-energize efforts to resolve mobile startup shrink issues
  • Make more progress on Keyboard and IME bugs

B2G

  • Gingerbread ROM with symbols for Galaxy S2 for Android Firefox debugging
  • B2G ROM that can be used to build a basic phone (phone, contacts, vibrator, wifi, lock screen, etc).
  • Basic Phone UI (Gaia) for B2G that can be used as primary phone for Mozilla developers

Research

  • Rust: Release version 0.1
  • Servo: Make DOM.js complete enough to run jQuery
  • TC39: Implement modules in SpiderMonkey
  • GPU Research: Investigate WebGL Video decoding