Platform/2009-Q4-Goals: Difference between revisions
< Platform
Jump to navigation
Jump to search
m (→JS: make JavaScript:SpiderMonkey:GC Futures a link) |
|||
Line 61: | Line 61: | ||
** Finish the off main thread parsing work | ** Finish the off main thread parsing work | ||
** Speculative loading with the HTML5 parser | ** Speculative loading with the HTML5 parser | ||
** Evaluate what parts, if any, of HTML5 to implement next | ** Evaluate what parts, if any, of HTML5 to implement next | ||
* Electrolysis | * Electrolysis | ||
** Implement JPW (cross process JS wrappers) | ** Implement JPW (cross process JS wrappers) | ||
** HTTP over IPC, details TBD - ? What does this mean? | ** HTTP over IPC, details TBD - ? What does this mean? | ||
* Improve performance | * Improve performance | ||
** Non-blocking cache writes for page load landed | ** Non-blocking cache writes for page load landed | ||
** Staying on trace through same origin XOWs | ** Staying on trace through same origin XOWs | ||
** Remove the XBL1 CSS based binding mechanism for non-displayed DOM nodes | ** Remove the XBL1 CSS based binding mechanism for non-displayed DOM nodes | ||
** Use our (almost) lock-free data structures for our main event queue | ** Use our (almost) lock-free data structures for our main event queue | ||
** Optimize DOM child storage for performance | ** Optimize DOM child storage for performance | ||
** Minimize the number of XPCOM tearoffs we create from JS | ** Minimize XPConnect wrapper morphing and the number of XPCOM tearoffs we create from JS | ||
=== JS === | === JS === |
Revision as of 16:45, 23 September 2009
General Goals
- Improve product responsiveness and startup performance.
- Drive towards process separation with a focus on Fennec.
- Improve web capabilities.
- ARM Support
- Testing infra
- Crash reporting
- Release Firefox 3.6
GFX
- Performance: specifically, responsiveness.
- Create an automated responsiveness/interactivity benchmark.
- Improve Gecko/Firefox's score on that benchmark substantially (at least 25%).
- Support and/or participate in the startup time work being done by the Firefox group.
- Participate in the Electrolysis project by adding support for windowless plugins on Windows.
Win Integration
- Address any Win7 compatibility issues that show up
Layout
- Improve the Web platform by contributing to tests and specifications
- Publish CSS3 Selectors as CR [fantasai]
- Ongoing development of reftest infrastructure for the W3C [fantasai, jwatt]
- Improve the Web platform by implementing key features
- Land Harfbuzz prototype integration in tree (allows for richer typographic control, also lays groundwork for performance improvements) [jfkthame]
- Implement calc() (Web platform) [dbaron]
- Support CSS transitions/SVG animation on nearly all CSS values (browser parity) [dbaron, dholbert]
- Enable SVG Animation with shippable feature set (near-complete CSS property coverage, near-complete SVG attribute coverage, but not necessarily syncbase timing) (Acid3, browser parity) [dholbert, birtles, jwatt]
- Improve perceived and measured performance
- CSS scanner performance analysis and improvements (performance) [zwol]
- Implement some kind of lazy frame construction [?] (still working out a plan)
- Compositor phase 2 --- paint and animation control (performance, also add JS animation API to the platform) [roc]
- Improve core code architecture to improve stability/performance and reduce cost of future enhancements
- Simplify frame destruction [fantasai]
- General product improvement
- fix scroll position restoration and maintenance (bugs 43114 / 103279) [dbaron]
Video/Audio
- Video on ARM - 15fps on N900 full-screen?
- 'buffered' and 'seekable' TimeRanges [cpearce]
- Remove dependency on libfishsound, liboggz, and liboggplay [doublec]
- Experimental implementation of accelerated full-screen video using cairo-gl [kinetik]
Mac OS X
- Resolve Mac OS X Java situation for Firefox 3.6.
- Fix any major regressions in 64-bit Mac OS X builds.
- Complete initial performance analysis of 64-bit Mac OS X builds. Should include comparison with 32-bit builds on 10.6 for major benchmarks.
- Fix all known regresssions in Cocoa NPAPI, make it ready to ship.
Content
- XBL2
- Implement remaining binding mechanisms (rollover from last quarter)
- Implement support for mutations of childlists and the anonymous tree
- Implement xbl:attr and xbl:text
- Land document-audit patch on trunk
- Move the web forward by implementing more of HTML5
- Get our HTML5 history API landed
- Finish the off main thread parsing work
- Speculative loading with the HTML5 parser
- Evaluate what parts, if any, of HTML5 to implement next
- Electrolysis
- Implement JPW (cross process JS wrappers)
- HTTP over IPC, details TBD - ? What does this mean?
- Improve performance
- Non-blocking cache writes for page load landed
- Staying on trace through same origin XOWs
- Remove the XBL1 CSS based binding mechanism for non-displayed DOM nodes
- Use our (almost) lock-free data structures for our main event queue
- Optimize DOM child storage for performance
- Minimize XPConnect wrapper morphing and the number of XPCOM tearoffs we create from JS
JS
- ES5
- Complete implementation
- Tracing
- trace more complex recursion
- trace switch-statement style emulators
- Performance
- continue sunspider improvements (within 20% of Chrome 3 on Windows Vista)
- improve v8 benchmark performance substantially (at least 2x vs. Oct1 trunk)
- jsval 64-bit representation
- Continue GC redesign
- GC perf tests
- see JavaScript:SpiderMonkey:GC Futures
Accessibility
- Event handling performance implementation (for DHTML)
- Code reorganization
- Implementation of throttling and/or delayed computation and/or smarter caching
- Crashers
- Fix keyboard support for HTML5 contentEditable
- Add accessibility support for HTML controls inside of a contentEditable
- Polish table/grid/treegrid accessibility
- issues with some existing complex DHTML tables (e.g. dojo)
- vendor reported issues
Multi-Process
- Shippable multi-process Flash, windowed and windowless on Windows (and Linux)
- Complete necko API revisions necessary to support multi-process networking
- Usable prototype of Fennec running multi-process on Linux
- Usable prototype of multi-process Flash on Mac OSX 10.6 (has external dependencies)
- Completed gecko API changes necessary for multi-process session history and link targeting