Platform/2011-Q4-Goals
< Platform
General Goals
Firefox
GFX
- [ON TRACK] Fennec layers acceleration
- Use OpenGL ES on at least a subset of Android hardware
- [ON TRACK] CSS 3 Font Spec Implementation
- Complete bug 651693
- [ON TRACK] Azure - Cairo backend, used for Canvas
- Land on mozilla-central preffed on
- [ON TRACK] Thebes wrapper for Azure
- Land on mozilla-central preffed on for Direct2D
- [ON TRACK] 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
- [ON TRACK] 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
- Electrolysis Accelerated Layers
- Evaluate current status
- Finish Direct3D 10 and Mac OS X OpenGL layers implementation
- For non-sandboxed processes only
- Continue using telemetry
- Imagelib work on memory usage and efficiency
- Windows 7 font rendering survey via Test Pilot
- Multiple GPU support on Mac OS X
- WebGL improvements
- Anti-aliasing
- ARB_robustness / EGL_LOST_CONTEXT
- Auditing remaining failing conformance tests
- Electrolysis Accelerated Layers
Layout
- [ON TRACK] Complete Mobile Readability project (Phase 1 & make decision on Phase 2)
- some things now working but multiple issues to still work through.
- [ON TRACK] Diagnostic tools for text and font memory usage in about:memory
- [ON TRACK] Graphite Font Layout system
- [ON TRACK] Multi-column Compliance (de-prefixing)
- [ON TRACK] Complete SVG migration to DisplayList (Performance)
- [ON TRACK] Implement CSS spec for flex-box
- [ON TRACK] Selection bit - Move from Layout to Content - Mutation events update DOM (619273)
- [ON TRACK] Complete View class removal (bug 337801)
- [AT RISK] CSS Ruby on mozilla-central
- not currently assigned
Video
- [ON TRACK] MediaStream infrastructure landed on mozilla-central with Worker-based processing enabled and some media element integration
- [ON TRACK] libcubeb sound library replacing libsydneyaudio on mozilla-central
- [ON TRACK] fullscreen API enabled on mozilla-central
- [ON TRACK] direct pushing of video frames to compositor thread for e10s
- [ON TRACK] eliminate unnecessary copy with video decoder API changes
DOM
JS
- [ON TRACK] Land incremental GC.
- [ON TRACK] Land Harmony modules.
- [ON TRACK] Land support for JS profiler.
- [ON TRACK] Shrink JSObject to ~5 words.
Accessibility
- [ON TRACK] Mobile: Accessibility enabled on FF android builds
- [ON TRACK] E10S: phase 2 -> parity single process
- [ON TRACK] Canvas accessibility
- [ON TRACK] Tree creation performance and DOM tree alignment
- Other activities: Addtional Telemetry, B2G test framework collab.
Multi-Process
- Continue regular tracking and resolution of short-term goals
- 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.
- Get windowless and windowed plugins working on all platforms.
- Identify which addons must continue to work to get 80% of users multi-process tabs, and develop a plan for each addon.
- Measure the memory usage of multiple content processes and identify wasted space and a plan to correct any issues.
- Identify remaining issues which need input from the UX team, including panning responsiveness/checkerboarding tradeoffs and misbehaving/crashing content UI.
Perf
- Valgrind developer ROM for pandaboard or Nexus S
- linux "perf"-counters in zippity(depends on above ROM to have perf support in kernel)
- Bug 662444: exit(0) "immediate" shutdown prototype and a plan to land it
- Bug 686805: Incremental decompression for libxul on Android
- Startup-ordered binary on Windows
- 0 fennec sqlite fsyncs on first startup
Networking
- [ON TRACK] SSL performance and responsiveness improvements. Also important for other projects like SPDY.
- Fix bug 511393, Allow multiple SSL worker threads.
- [ON TRACK] Implement high-resolution platform timers
- Fix bug 676349, Implement high-resolution platform timers for Windows.
- [ON TRACK] Improve dual-stack IPv6 experience for users.
- Fix bug 684893, Re-implement "happy eyeballs" IPv6 autodetection at TCP open, or similar system.
- Investigate a fix for biesi's patch
- If too complicated, start coding the algorithm by the spec
- Fix bug 684893, Re-implement "happy eyeballs" IPv6 autodetection at TCP open, or similar system.
- [ON TRACK] Have full implementation of current WebSockets spec (hopefully final) implemented and in the tree in a shippable state.
- We can't control when the spec is complete enough to ship but we can follow it closely and be ready to ship as soon as possible.
- [ON TRACK] Land Patrick's pipelining improvements.
- Complete performance framework for evaluating them.
- [ON TRACK] Land SPDY implementation, bug 528288. OK if it remains pref'd off.
- [ON TRACK] 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.
- [ON TRACK] Improve App Cache
- resolve bug 538595
- resolve bug 538588
- [ON TRACK] Resolve all security bugs sg:moderate or higher that received a security designation before the start of Q4.
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