Platform/2011-Q3-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 70: Line 70:
=== JS  ===
=== JS  ===
<onlyinclude>
<onlyinclude>
* {{ok|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.}}
* {{done|IonMonkey working prototype--a working compiler with GVN, LICM, inlining, LSRA for a small subset of the language, and ARM assembler backend. (Scope reduced a bit from original goal, which included OSR and properties in the language subset. ARM backend added--it wasn't in the original goal.}}
* {{done|Land Type inference. (Goal added, wasn't listed at start of quarter)}}
* {{done|Implement JIT spraying mitigations.}}
* {{done|Debug API: land new debug API through to mozilla-beta}}
* {{done|Debug API: land new debug API through to mozilla-beta}}
* {{ok|GC: finish incremental GC, start generational GC}}
* {{missed|GC: finish incremental GC, start generational GC. (We are close--the code for incremental is written, but there is still some perf work ongoing.}}
</onlyinclude>
</onlyinclude>



Revision as of 08:29, 2 October 2011

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

  • [MISSED] e10s:ify IndexedDB
    • We started this work, made a bunch of progress, but got stuck on testing infrastructure not being ready (spent a ton of time hunting a leak that blocks a testing effort, which is still not fixed). And after the WebAPI team was formed our priorities shifted and this got put behind other IndexedDB work.
  • [DONE] Replace xpidl with a python based version
  • [MISSED] Start collecting telemetry data for the DOM (number of JS wrappers per document, etc)
  • [MISSED] Pre-cached JS libraries (not sure what the goal would be here)
    • This really shouldn't have been a goal, what we did want here was an exploration into what this would entail, which did start in bug bug 671093.
  • [MISSED] Support whole directory upload
    • We didn't get to this due to priorities changing with the creation of the WebAPI team
  • [DONE] File API support in Workers
  • [DONE] Finish up the NodeList bindings
    • This work is done, but due to timing of our releases it's not landed yet.
  • [MISSED] Remove nsHTMLContentSink (in preparation for removing old HTML parser later on), carryover from last quarter
    • This missed again due to vacations, all-hands, and the fact that this depends on test fixes that are un-estimateable Lots of progress here though.
  • [MISSED] Implement support for <input type "number">, carryover from last quarter
    • We didn't get to finalize this due to priorities changing with the creation of the WebAPI team
  • [MISSED] JS Compartment per global
    • This needs to carry over, must get done, didn't get all the pieces in place to start working on this in Q3.
  • [MISSED] Remove support for policy prefs in caps (significant code removal, dependes on JS compartment per global)
    • Missed due to the blocking goal missed.


JS

  • [DONE] IonMonkey working prototype--a working compiler with GVN, LICM, inlining, LSRA for a small subset of the language, and ARM assembler backend. (Scope reduced a bit from original goal, which included OSR and properties in the language subset. ARM backend added--it wasn't in the original goal.
  • [DONE] Land Type inference. (Goal added, wasn't listed at start of quarter)
  • [DONE] Implement JIT spraying mitigations.
  • [DONE] Debug API: land new debug API through to mozilla-beta
  • [MISSED] GC: finish incremental GC, start generational GC. (We are close--the code for incremental is written, but there is still some perf work ongoing.


Accessibility

  • [DONE] [bug 648121]
  • [DONE] +phase one+ E10S [bug 646596]
  • Other important Q3 work:
    • [DONE] +early prototype+ Fennec Android accessibility
    • [DONE] +focus refactor+ Make NVDA screen reader users happier [bug 659863]
    • [MISSED] +sig. progress+ Crush a11y oranges User:Ehsan/OrangeCrush


Multi-Process

Perf

  • [DONE] Valgrind on android
  • [DONE] 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

  • [MISSED] SSL performance and responsiveness improvements. Also important for other projects like SPDY.
    • 90% done, patch is written but delayed due to security issues popping up.
    • Fix bug 511393, Allow multiple SSL worker threads.
  • [DONE] 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.
  • [MISSED] Implement high-resolution platform timers
    • 90% done, patch is in review.
    • Fix bug 676349, Implement high-resolution platform timers for Windows.
  • [MISSED] Improve dual-stack IPv6 experience for users.
    • 10% done, thought we fixed it but patch was backed out. Probably need a new strategy.
    • 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
  • [DONE] 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.
  • [DONE] 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
  • [MISSED] Make progress with pipelining improvements.
    • 70% done, made a lot of progress but not enough. Patches need updating and we haven't completed a system for testing.
    • Review outstanding HTTP pipelining improvements. This means being able to mark the review-tracking bug 659760 as fixed.
    • Complete performance framework for evaluating them.
  • [DONE] 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.
  • [MISSED] Work towards an effective mobile disk cache implementation.
    • 10% done, didn't make much progress, made adjustments and work will continue into Q4.
    • 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)
    • Use telemetry to collect cache performance data.
      • Some telemetry is in place; investigating how to use data from telemetry in microbenchmarks
    • Create a plan for a mobile disk cache based on that data
  • [DONE] 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.