Platform/2011-Q3-Goals: Difference between revisions
< Platform
Jump to navigation
Jump to search
(→JS) |
|||
Line 70: | Line 70: | ||
=== JS === | === JS === | ||
<onlyinclude> | <onlyinclude> | ||
* {{ | * {{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}} | ||
* {{ | * {{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
- Should allow us to compare networking performance between two builds under various conditions, including:
- [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.