Platform/2010-Q1-Goals: Difference between revisions

(Add Breakpad section.)
 
(38 intermediate revisions by 8 users not shown)
Line 1: Line 1:
=== General Goals ===
=== General Goals ===


* Ship 3.6.
* {{done|Ship 3.6.}}
* Implement security model for JetPack and eliminate platform blockers to the implementation of Jetpack panels.
* {{ok|Implement security model for JetPack and eliminate platform blockers to the implementation of Jetpack panels.}}
* Complete out of process plugins for windows and deliver a beta version of OOPP for mac.
* {{miss|Complete out of process plugins for windows and deliver a beta version of OOPP for mac.}}
* 25% Ts improvement on Windows.
* 25% Ts improvement on Windows.
* Kill sg:crits to <= 20.
* {{miss|Kill sg:crits less than equal to 20. }}
* Implement Layers to enable more hardware acceleration.
* {{miss|Implement Layers to enable more hardware acceleration.}}
* Identify and fix key performance and capability issues for developer tools.
* Identify and fix key performance and capability issues for developer tools.
* Implement crash reporting for ARM.
* {{done|Implement crash reporting for ARM.}}
* Implement crash reporting for x86_64 Linux and Mac.
* {{ok|Enable -fomit-frame-pointer optimization on x86 Linux and Mac.}}


=== GFX ===
=== GFX ===
* Performance
* Performance
** Implement the Gecko Layers API in software (Thebes) and at least one hardware implementation.
** {{done|Implement the Gecko Layers API in software (Thebes) and at least one hardware implementation.}} We landed OpenGL layers support on March 29th.
** Implement full-screen, accelerated (YUV->RGB) video on top of the Gecko Layers API.
** {{done|Implement full-screen, accelerated (YUV->RGB) video on top of the Gecko Layers API.}}
** Implement shared memory tile browsing, using Electrolysis, for Fennec.
** {{done|Implement shared memory tile browsing, using Electrolysis, for Fennec.}}
** Improve out-of-process plugin performance.
** {{done|Improve out-of-process plugin performance.}}
** Continue to support the Electrolysis and startup time projects.
** {{done|Continue to support the Electrolysis and startup time projects.}}
* Font Feature Improvement
* Font Feature Improvement
** Add CSS parser support for additional OpenType-related font-variant properties
** {{miss|Add CSS parser support for additional OpenType-related font-variant properties}}
*** ''I guess this won't make it since AFAIK there's no patch yet. [roc]''


=== Layout ===
=== Layout ===
* Improve the Web platform by contributing to tests and specifications by publishing the CSS2.1 test suite RC and/or identifying advanced layout specs for the future of the web.
* {{done|Improve the Web platform by contributing to tests and specifications by publishing the CSS2.1 test suite RC and/or identifying advanced layout specs for the future of the web.}}
* Improve the Web platform by implementing key features and correctness fixes to enable the use of SVG animation and more CSS3 features (Backgrounds, borders, or calc(), text-overflow, etc.) in the next release.
** ''fantasai, bzbarsky and dbaron all did work here. [roc]''
* Improve perceived and measured performance in SVG, bidi, reflow, and CSS.
* {{miss|Improve the Web platform by implementing key features and correctness fixes to enable the use of SVG animation and more CSS3 features (Backgrounds, borders, or calc(), text-overflow, etc.) in the next release.}}
* Complete general product improvements like Layers to enable more hardware acceleration.
** ''dbaron was absorbed by the :visited privacy bug. We did improve SVG animation a fair bit, but overall I'd say we didn't hit this. [roc]''
* {{miss|Improve perceived and measured performance in SVG, bidi, reflow, and CSS.}}
** ''We fixed the big hang loading the HTML5 spec. No progress in SVG or bidi. Might still land lazy frame construction in Q1. [roc]''
* {{miss|Complete general product improvements like Layers to enable more hardware acceleration.}} ''See Gfx for concrete layers work items and status.''


=== Video/Audio ===
=== Video/Audio ===


* Complete removing dependencies on unnecessary third-party libraries.
* {{ok|Complete removing dependencies on unnecessary third-party libraries.}}
* Hardware-accelerated video rendering in Gecko on all platforms with suitable graphics hardware (20+fps full-screen on N900).
* {{miss|Hardware-accelerated video rendering in Gecko on all platforms with suitable graphics hardware (20+fps full-screen on N900).}} ''We won't get accelerated full-screen video on N900 mainly because an OpenGL layers backend won't be ready in time to support this. However, we do have 25fps full-screen video working in our test player, with ~50% CPU utilization.''


=== [[Platform/2010-Q1-Goals/Content|Content]] ===
=== [[Platform/2010-Q1-Goals/Content|Content]] ===
* Move the web forward by landing WebSockets, enabling the HTML 5 parser by default, and/or finishing more File spec API improvements (i.e., File.url).
* {{miss|Move the web forward by landing WebSockets, enabling the HTML 5 parser by default, and/or finishing more File spec API improvements (i.e., File.url).}}
* Ship out of process plugins betas for windows and continue forward progress on full Electrolysis plans by getting basic HTTP working across processes and implementing multi-proc event handling.
** {{miss|WebSockets has r+, but needs another review. Reviews may happen, but testing infrastructure for it is unlikely to be ready}}
* Improve performance by eliminating more cycles between JIT generated code and our DOM code, and by speeding up out DOM implementation as well.
** {{miss|HTML 5 parser code is likely to be done, and reviewed, but testing infrastructure is lagging behind and is unlikely to be ready by the end of the quarter.}}
* Investigate (and fix as needed) the impact of Firebug on Firefox performance and memory usage  
** {{done|File API stuff is done.}}
* {{miss|Ship out of process plugins betas for windows and continue forward progress on full Electrolysis plans by getting basic HTTP working across processes and implementing multi-proc event handling.}}
** {{done|OOPP}}
** {{miss|HTTP across processes}}
** {{done|e10s event handling}}
* {{miss|Improve performance by eliminating more cycles between JIT generated code and our DOM code, and by speeding up our DOM implementation as well. <i>This work did get done, but due to last minute interruptions by security bug work, it didn't land. But the work is done and reviewed ({{bug|533637}}, {{bug|519614}}, {{bug|554432}}).</i>}}
* {{miss|Investigate (and fix as needed) the impact of Firebug on Firefox performance and memory usage}}
** Implement back-end functionality for allowing Firebug to hook into document load and unload to eliminate perceived performance problems with the use of Firebug.
** Implement back-end functionality for allowing Firebug to hook into document load and unload to eliminate perceived performance problems with the use of Firebug.


=== JS ===
=== JS ===
* Continue to improve responsiveness: GC
* {{done|Continue to improve responsiveness: GC}}
* Performance
* Performance
** reduce performance uniformity issues (slow on some kinds of code)
** {{miss|reduce performance uniformity issues (slow on some kinds of code)}}
** SunSpider / v8 perf improvements, another 30%.
** {{miss|SunSpider / v8 perf improvements, another 30%.}}
** jsval 64-bit representation - this allows better perf on win64 and snow leopard.
** {{miss|jsval 64-bit representation - this allows better perf on win64 and snow leopard.}}
*Improve Web Platform with new features:
* Improve Web Platform with new features:
** byte vectors for gfx and other uses - specialized ways to ship graphics data around.
** {{done|byte vectors for gfx and other uses - specialized ways to ship graphics data around.}}
** Begin building out tool Support
** Begin building out tool Support
*** Design JSD replacement
*** {{miss|Design JSD replacement}}
*** profiling support w/ JIT active
*** {{miss|profiling support w/ JIT active}}
*** profiling hooks from JSExecute
*** {{miss|profiling hooks from JSExecute}}
*** heap profiling API
*** {{miss|heap profiling API}}
* Basic inline threading system. This should be able to run almost all programs with inline threading, be at least a little faster with the tracing jit on, and be no slower with the tracing jit off.
* {{done|Basic inline threading system. This should be able to run almost all programs with inline threading, be at least a little faster with the tracing jit on, and be no slower with the tracing jit off.}}


=== Accessibility ===
=== Accessibility ===
* Drive web accessibility with HTML5 (+ARIA)
* {{done|Drive web accessibility with HTML5 (+ARIA)}}
** address changes to WAI-ARIA specification
** {{done|address changes to WAI-ARIA specification}}
** resolve known WAI-ARIA and HTML5 conflicts
** {{done|resolve known WAI-ARIA and HTML5 conflicts}}
** participate in canvas accessibility
** {{done|participate in canvas accessibility}}
** participate in MathML and SVG accessibility
** {{done|participate in MathML and SVG accessibility}}
* Gather information from web content more safely
* {{done|Gather information from web content more safely}}
** Assist with creation of additional DOM API (reduce frame tree walking)
** {{done|Assist with creation of additional DOM API (reduce frame tree walking)}}
** Reorganize event code
** {{done|Reorganize event code}}
* Drive accessible editing on the web
* {{miss|Drive accessible editing on the web}}
** Get agreement on editor keyboard behavior.
** {{miss|Get agreement on editor keyboard behavior.}}


=== Multi-Process ===
=== Multi-Process ===
* Release multiple betas of multi-process plugins (Windows/Linux)
* {{ok|Release multiple betas of multi-process plugins (Windows/Linux)}}
** stretch goal: release multi-process plugins
** {{miss|stretch goal: release multi-process plugins}}
* Release a beta of multi-process Flash (mac)
* {{miss|Release a beta of multi-process Flash (mac)}}
* Make Fennec + Multi-Process fully functional (ready to measure and tune performance)
* {{miss|Make Fennec + Multi-Process fully functional (ready to measure and tune performance)}}
* Integrate Multi-Process/Thread architecture into JetPack
* {{done|Integrate Multi-Process/Thread architecture into JetPack}} (super-basic prototype, all that was expected this quarter)
 
=== Breakpad ===
Confirmed users
839

edits