Platform/2009-Q4-Goals: Difference between revisions

 
(37 intermediate revisions by 7 users not shown)
Line 1: Line 1:
=== General Goals ===
=== General Goals ===


* Improve product responsiveness.
* Improve cold startup performance by 30% on windows and mac.
* Drive towards process separation with a focus on Fennec.
* Deliver out of process plugins for windows.
* Improve web capabilities.
* Deliver SVG Animations.
* Kill security bugs to under 30 again.
* Reduce crashes to at least parity with pre-3.5.  
* ARM Support  
* ARM Support  
** Testing infra
** Add testing infrastructure.
** Crash reporting  
** Implement crash reporting  
* Release Firefox 3.6
* Release Firefox 3.6.


=== GFX ===
=== GFX ===
Line 17: Line 19:


=== Win Integration ===
=== Win Integration ===
* Address any Win7 compatibility issues that show up


=== Layout ===
=== Layout ===


* Improve the Web platform by contributing to tests and specifications
* Improve the Web platform by contributing to tests and specifications
** Publish CSS3 Selectors as CR [fantasai]
** Publish CSS3 Selectors as CR [fantasai] (done) (backgrounds and borders CR done)
** Ongoing development of reftest infrastructure for the W3C [fantasai, jwatt]
** Ongoing development of reftest infrastructure for the W3C [fantasai, jwatt] (missed)
* Improve the Web platform by implementing key features
* 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]
** Land Harfbuzz prototype integration in tree (allows for richer typographic control, also lays groundwork for performance improvements) [jfkthame] (mostly done, will miss landing)
** Implement calc() (Web platform) [dbaron]
** <strike>Implement calc() (Web platform) [dbaron]</strike> Probably insufficient dbaron resources due to crashkill etc (missed)
** Support CSS transitions/SVG animation on nearly all CSS values (browser parity) [dbaron, dholbert]
** Support CSS transitions/SVG animation on nearly all CSS values (browser parity) [dbaron, dholbert] (done)
** 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]
** 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] (pathlist and lengthlist done this quarter, finishing off next quarter)
* Improve perceived and measured performance
* Improve perceived and measured performance
** CSS scanner performance analysis and improvements (performance) [zwol]
** CSS scanner performance analysis and improvements (performance) [zwol] (delayed due to security work) (? maybe a patch end of next week)
** Implement some kind of lazy frame construction [?] (still working out a plan)
** Implement some kind of lazy frame construction [?] (tnikkel)
** Compositor phase 2 --- paint and animation control (performance, also add JS animation API to the platform) [roc]
** <strike>Compositor phase 2 --- paint and animation control (performance, also add JS animation API to the platform) [roc]</strike> Delayed in favour of layers work
** Implement core layers infrastructure to allow for hardware and multithreaded acceleration [roc] (on track)
* Improve core code architecture to improve stability/performance and reduce cost of future enhancements
* Improve core code architecture to improve stability/performance and reduce cost of future enhancements
** Simplify frame destruction [fantasai]
** Simplify frame destruction [fantasai] (waiting for review)
* General product improvement
* General product improvement
** fix scroll position restoration and maintenance (bugs 43114 / 103279) [dbaron]
** fix scroll position restoration and maintenance (bugs 43114 / 103279) [dbaron] (crashkill victim, also blocked on scroll refactoring)


=== Video/Audio ===
=== Video/Audio ===
 
* Video on ARM - Theora, 15fps on N900 full-screen [at risk due to hardware unavailability]
* 'buffered' and 'seekable' TimeRanges [cpearce]
* Remove dependency on libfishsound, liboggz, and liboggplay [doublec]
* Remove dependency on libfishsound, liboggz, and liboggplay [doublec]
* Experimental implementation of accelerated full-screen video using cairo-gl [kinetik]
* <strike>Experimental implementation of accelerated full-screen video using cairo-gl [kinetik]</strike> Obsolete due to layers plan


=== Mac OS X ===
=== Mac OS X ===
Line 51: Line 54:


=== Content ===
=== Content ===
* 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
** Rewrite session history to be more like what's specified in HTML5
* Electrolysis
** Implement JPW (cross process JS wrappers)
** Get HTTP GET working over IPC
** Propose a cross process event handling plan
* 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
** Improve DOM event handling performance
* Move the plugin API forward
** Implement https://wiki.mozilla.org/Plugins:CancelSourceStream


=== 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]]
* jsctypes
** Spec and implement a JS-facing API for handling pointers, structs, and arrays.


=== Accessibility ===
=== Accessibility ===
1,295

edits