Platform/2011-Q3-Goals

From MozillaWiki
Jump to: navigation, 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

  • [MISSED] Fennec layers acceleration
    • Use OpenGL ES on at least a subset of Android hardware
  • [MISSED] Electrolysis Accelerated Layers
    • Land in Q3 - clean up from Q2
    • For non-sandboxed processes only
  • [MISSED] CSS 3 Font Spec Implementation
  • [MISSED] 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

  • [DONE] CSS 3D transforms on mozilla-central
  • [MISSED] CSS Ruby on mozilla-central
  • [DONE] fullscreen style-system support on mozilla-central
  • [MISSED] Move the selection state bits from layout to content
    • We started this work, but needed another week to finish (ETA: 10/7/2011.)


Video

  • [MISSED] MediaStream infrastructure landed on mozilla-central with some media element integration
  • [MISSED] libcubeb sound library replacing libsydneyaudio on mozilla-central
  • [DONE] no threads used for paused media elements
  • [DONE] 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. (Goal added, wasn't listed at start of quarter.)
  • [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] Telemetry [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

Mobile

  • [DONE] Improve Keyboard and IME
    • [DONE] build expertise on the team
    • [DONE] resolve high profile bugs
  • [DONE] Support Android as Tier 1
    • [DONE] make tests greener
    • [DONE] make running tests locally easy for developers
    • [DONE] make debugging easier for developers
  • [MISSED] Flash support
    • [DONE] generate plan for Flash support on android
    • [DONE] have team in place to execute the plan
    • [MISSED] have required outside agreements in place


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.

QA

Full QA team and individual goals are located here:https://intranet.mozilla.org/QA/Q32011_QAgoals

  • [MISSED] Complete development and deploy the crowd-sourcing Firefox Mobile test harness that allows users, developers and mobile community members to run Firefox Mobile unit tests and report those results to online repository for analysis of potential platform compatibility issues.
  • [DONE] Create a test framework that supports the development and execution of Web Apps unit and functional tests and collaborate with the Web Apps team and Mozilla test community to write and develop automated test cases for Web Apps infrastructure and applications.
  • [DONE] QA support for the shipment of FF 6, FF 7 with special focus on the developer tools features to employ detailed functional testing and crowd and community based testing approaches.
  • [DONE] Develop a set of base-line automated endurance tests that measure Firefox resource (memory, cpu load) utilization over repeated real world use-case scenarios to measure the effect of changes and new features across releases of the Firefox browser.