Platform/2011-Q3-Goals: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 93: Line 93:
=== Networking ===
=== Networking ===
<onlyinclude>
<onlyinclude>
* {{ok|SSL performance and responsiveness improvements. Also important for other projects like SPDY.}}
* {{miss|SSL performance and responsiveness improvements. Also important for other projects like SPDY.}}
** Fix {{bug|511393}}, Allow multiple SSL worker threads.
** Fix {{bug|511393}}, Allow multiple SSL worker threads.
* {{done|Start making use of telementry to collect network performance data.}}
* {{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|658894}}, Collect basic telemetry for HTTP requests and page load.
** Fix {{bug|662555}}, Race condition when measuring requestEnd.
** Fix {{bug|662555}}, Race condition when measuring requestEnd.
* {{ok|Implement high-resolution platform timers}}
* {{miss|Implement high-resolution platform timers}}
** Fix {{bug|676349}}, Implement high-resolution platform timers for Windows.
** Fix {{bug|676349}}, Implement high-resolution platform timers for Windows.
* {{miss|}} Improve dual-stack IPv6 experience for users.
* {{miss|}} Improve dual-stack IPv6 experience for users.
Line 104: Line 104:
*** Investigate a fix for biesi's patch
*** Investigate a fix for biesi's patch
*** If too complicated, start coding the algorithm by the spec
*** If too complicated, start coding the algorithm by the spec
* {{ok|Keep WebSockets implementation up to date with latest spec drafts.}}
* {{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.
** 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.
** Ship an implementation (possible prefixed if spec is not ready) in Firefox 7.
Line 114: Line 114:
** Ensure that the test server supports pipelining
** Ensure that the test server supports pipelining
** Allow testing against NeckoNet from Windows and Mac OS X
** Allow testing against NeckoNet from Windows and Mac OS X
* {{ok|Make progress with pipelining improvements.}}
* {{miss|Make progress with pipelining improvements.}}
** Review outstanding HTTP pipelining improvements. This means being able to mark the review-tracking {{bug|659760}} as fixed.
** Review outstanding HTTP pipelining improvements. This means being able to mark the review-tracking {{bug|659760}} as fixed.
** Complete performance framework for evaluating them.
** Complete performance framework for evaluating them.

Revision as of 16:45, 30 September 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

  • [ON TRACK] e10s:ify IndexedDB
  • [DONE] 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
  • [DONE] 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.
  • [DONE] Debug API: land new debug API through to mozilla-beta
  • [ON TRACK] GC: finish incremental GC, start generational GC


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.
    • 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
    • Fix bug 676349, Implement high-resolution platform timers for Windows.
  • [MISSED] 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
  • [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.
    • 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.
    • IMO there is nothing conclusive in clear sight yet. Work should be continued in 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.