Platform/2011-Q3-Goals

From MozillaWiki
Jump to navigation Jump to search

General Goals

  • [ON TRACK] Realize Android as a top-tier supported platform alongside Windows, Mac, and Linux.
  • [ON TRACK] Implement priortized list of features required to support Web Apps (Joint with Product and Apps teams).
  • [ON TRACK] Ship a new web developer tool.


Firefox

Firefox

  • [DONE] Ship Firefox 6 & 7 on desktop and android
  • [MISSED] Complete 10 features from product team's list, including 6 P1s
    • Hit 7, with 5 P1s according to this list
    • [DONE] If you include Firefox 6, which shipped in Q3, but much of that work was Q2. (That would be 15 total, 13 P1s)

Developer Tools

  • [MISSED] Land Highlighter
  • [MISSED] Land HTML panel
  • [MISSED] Land Style panel

These are all close, demo well, and a couple pieces have already landed, but we're not counting "close" here, and they aren't done. Ergo->MISS.

GFX

  • [ON TRACK] Fennec layers acceleration
    • Use OpenGL ES on at least a subset of Android hardware
  • [ON TRACK] Electrolysis Accelerated Layers
    • Land in Q3 - clean up from Q2
    • For non-sandboxed processes only
  • [ON TRACK] CSS 3 Font Spec Implementation
    • Complete bug 651693
  • [ON TRACK] Azure - Cairo 2D canvas implementation
    • Land on mozilla-central by Sept 13 preffed on
  • Other important Q3 work
    • Start using telemetry
    • Windows 7 font rendering
    • WebGL improvements
      • CORS support, finalize 1.0
      • Anti-aliasing
      • Ongoing security improvements


Layout

  • [ON TRACK] CSS 3D transforms on mozilla-central
  • [ON TRACK] CSS Ruby on mozilla-central
  • [ON TRACK] fullscreen style-system support on mozilla-central
  • [ON TRACK] Move the selection state bits from layout to content


Video

  • [ON TRACK] MediaStream infrastructure landed on mozilla-central with some media element integration
  • [ON TRACK] libcubeb sound library replacing libsydneyaudio on mozilla-central
  • [ON TRACK] no threads used for paused media elements
  • [ON TRACK] Media URI Fragment support


DOM

  • [ON TRACK] e10s:ify IndexedDB
  • [ON TRACK] Replace xpidl with a python based version
  • [ON TRACK] Start collecting telemetry data for the DOM (number of JS wrappers per document, etc)
  • [ON TRACK] Pre-cached JS libraries (not sure what the goal would be here)
  • [ON TRACK] Support whole directory upload
  • [ON TRACK] File API support in Workers
  • [ON TRACK] Finish up the NodeList bindings
  • [ON TRACK] Remove nsHTMLContentSink (in preparation for removing old HTML parser later on), carryover from last quarter
  • [ON TRACK] Implement support for <input type "number">, carryover from last quarter
  • [ON TRACK] JS Compartment per global
  • [ON TRACK] Remove support for policy prefs in caps (significant code removal, dependes on JS compartment per global)


JS

  • [ON TRACK] IonMonkey working prototype. This means a working compiler with GVN, LICM, inlining, LSRA, and on-stack replacement for a subset of JS that at least includes arrays and properties.
  • [ON TRACK] Debug API: land new debug API through to mozilla-beta
  • [ON TRACK] GC: finish incremental GC, start generational GC


Accessibility

  • [ON TRACK] Telemetry [bug 648121]
  • [ON TRACK] E10S [bug 646596]
  • Other important Q3 work:
    • Fennec Android accessibility
    • Make NVDA screen reader users happier [bug 659863]
    • Crush a11y oranges User:Ehsan/OrangeCrush


Multi-Process

Perf

  • [ON TRACK] Valgrind on android
  • [ON TRACK] Instrument at least 90% of Firefox IO with Telemetry
  • Other important Q3 work:
    • Shutdown telemetry
    • Evangelizing telemetry
    • Implementing telemetry probes for the metrics team


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] Start making use of telementry to collect network performance data.
    • Fix bug 658894, Collect basic telemetry for HTTP requests and page load.
    • Fix bug 662555, Race condition when measuring requestEnd.
    • Fix bug 539093, Implement high-resolution platform timers for Tier I platforms.
  • [DONE] Improve dual-stack IPv6 experience for users.
    • Fix bug 621558, Implement "happy eyeballs" IPv6 autodetection at TCP open, or similar system.
  • [ON TRACK] Keep WebSockets implementation up to date with latest spec drafts.
    • 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.
    • Ship an implementation (possible prefixed if spec is not ready) in Firefox 7.
  • [ON TRACK] Improvements to NeckoNet, our standalone networking performance testing tool.
    • Should allow us to compare networking performance between two builds under various conditions, including:
      • the ability to adjust latency
      • the ability to adjust random packet loss
      • the ability to turn on loss of the first SYN of a flow
    • Ensure that the test server supports pipelining
    • Allow testing against NeckoNet from Windows and Mac OS X
  • [ON TRACK] Make progress with pipelining improvements.
    • Review outstanding HTTP pipelining improvements. This means being able to mark the review-tracking bug 659760 as fixed.
    • Complete performance framework for evaluating them.
  • [ON TRACK] Make progress on an SPDY implementation, bug 528288.
    • Hard to say what we might be able to accomplish over the course of three months, but we want to have an implementation in progress.
  • [ON TRACK] Work towards an effective mobile disk cache implementation.
    • Create system with which to measure cache performance locally.
    • Use telemetry to collect cache performance data.
    • Create a plan for a mobile disk cache based on that data
  • [ON TRACK] Fix bug 666059. Only use memory cache for private browsing so that leaving private browsing mode doesn't necessitate blowing away the cache.
  • [ON TRACK] Fix bug 670911. Make deleting the disk cache not kill responsiveness and hog i/o. Do it on a thread, perhaps throttled so as to not hog i/o bandwidth.