Electrolysis/Tasks: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(split tasks by group) |
||
Line 1: | Line 1: | ||
This is a task list for the [[Content Processes|Electrolysis]] project, listing work areas, owners, mentors, etc. To volunteer for a project, please contact [mailto:benjamin@smedbergs.us?subject=Electrolysis%20Volunteer Benjamin Smedberg] | This is a task list for the [[Content Processes|Electrolysis]] project, listing work areas, owners, mentors, etc. To volunteer for a project, please contact [mailto:benjamin@smedbergs.us?subject=Electrolysis%20Volunteer Benjamin Smedberg] | ||
== Core == | |||
{| border="1" cellpadding="3" width="100%" | |||
|- align="center" | |||
| '''Project''' | |||
| '''Owner''' | |||
| '''Mentor''' | |||
| '''Bug''' | |||
| '''ETA''' | |||
| '''Notes''' | |||
{{CPTask | |||
| task=Statically check [[IPDL]] specs and C++ implementations | |||
| name=cjones | |||
| mentor= | |||
| bug= | |||
| ETA= | |||
| notes= | |||
}} | |||
{{CPTask | |||
| task=Dynamic fuzzing/checking of cross-process infrastructure | |||
| name= | |||
| mentor=bsmedberg | |||
| bug= | |||
| ETA= | |||
| notes=Fuzzing for bad data, closed sockets, crashed processes | |||
}} | |||
{{CPTask | |||
| task=[[IPDL/Unit test generation|Systematic dynamic checking of C++ code implementing IPDL protocols]] | |||
| name=robin_bb | |||
| mentor=cjones | |||
| bug={{bug|506303}} | |||
| ETA= | |||
| notes=It should be possible to generate pretty exhaustive unit tests from IPDL specs... | |||
}} | |||
|} | |||
== Plugins == | |||
{| border="1" cellpadding="3" width="100%" | |||
|- align="center" | |||
| '''Project''' | |||
| '''Owner''' | |||
| '''Mentor''' | |||
| '''Bug''' | |||
| '''ETA''' | |||
| '''Notes''' | |||
{{CPTask | |||
| task=NPObject-over-IPC | |||
| name=paritosh | |||
| mentor=bent/josh | |||
| bug= | |||
| ETA= | |||
| notes= | |||
}} | |||
{{CPTask | |||
| task=Clean up plugin processes when we don't need them | |||
| name=bent | |||
| mentor= | |||
| bug= | |||
| ETA= | |||
| notes=Needed so we don't orphan processes on unit-test machines | |||
}} | |||
{{CPTask | |||
| task=NPStream implementation | |||
| name=bsmedberg | |||
| mentor= | |||
| bug= | |||
| ETA=15-Sep | |||
| notes=Strange race conditions with stream closing are fun to debug | |||
}} | |||
{{CPTask | |||
| task=windowless plugins (Win+Linux) | |||
| name= | |||
| mentor= | |||
| bug= | |||
| ETA= | |||
| notes=Chromium experience is that synchronous drawing is unacceptably slow... they maintain pixel buffers and asynchronously ship pixels across | |||
}} | |||
|} | |||
== Mobile == | |||
{| border="1" cellpadding="3" width="100%" | {| border="1" cellpadding="3" width="100%" | ||
Line 50: | Line 132: | ||
}} | }} | ||
{{CPTask | {{CPTask | ||
| task= | | task=IPDL/runtime support for shared-memory buffers | ||
| name= | | name=Rohit | ||
| mentor= | | mentor=cjones/bsmedberg | ||
| bug= | | bug= | ||
| ETA= | | ETA= | ||
| notes= | | notes=Probably needed to make networking and canvas.drawWindow efficient | ||
}} | }} | ||
{{CPTask | {{CPTask | ||
| task= | | task=Session history for remote tabs | ||
| name= | | name= | ||
| mentor= | | mentor=bz | ||
| bug= | | bug= | ||
| ETA= | | ETA= | ||
| notes= | | notes=Need to figure out what information the parent process/UI actually use/need | ||
}} | }} | ||
{{CPTask | {{CPTask | ||
| task= | | task=Clean up tab process(es) when we don't need it | ||
| name=fred23 | |||
| mentor=bent | |||
| name= | |||
| mentor=bent | |||
| bug= | | bug= | ||
| ETA= | | ETA= | ||
Line 90: | Line 156: | ||
}} | }} | ||
{{CPTask | {{CPTask | ||
| task= | | task=Present prompts from the chrome process if necessary (not the content process) | ||
| name= | | name= | ||
| mentor= | | mentor=bsmedberg | ||
| bug= | | bug= | ||
| ETA= | | ETA= | ||
| notes= | | notes=There aren't significant security concerns with just presenting prompts other than the ability to DOS somebody in a loop, but this is probably a good place to do some thinking about the prompt architecture we actually want to end up with. | ||
}} | }} | ||
|} | |||
== Firefox == | |||
{| border="1" cellpadding="3" width="100%" | |||
|- align="center" | |||
| '''Project''' | |||
| '''Owner''' | |||
| '''Mentor''' | |||
| '''Bug''' | |||
| '''ETA''' | |||
| '''Notes''' | |||
{{CPTask | {{CPTask | ||
| task=Link targeting for remote tabs | | task=Link targeting for remote tabs | ||
Line 160: | Line 238: | ||
| ETA= | | ETA= | ||
| notes=Needs careful security architecture! | | notes=Needs careful security architecture! | ||
}} | }} | ||
|} | |} |
Revision as of 16:34, 25 August 2009
This is a task list for the Electrolysis project, listing work areas, owners, mentors, etc. To volunteer for a project, please contact Benjamin Smedberg
Core
Project | Owner | Mentor | Bug | ETA | Notes |
Statically check IPDL specs and C++ implementations | cjones | ||||
Dynamic fuzzing/checking of cross-process infrastructure | bsmedberg | Fuzzing for bad data, closed sockets, crashed processes | |||
Systematic dynamic checking of C++ code implementing IPDL protocols | robin_bb | cjones | bug 506303 | It should be possible to generate pretty exhaustive unit tests from IPDL specs... |
Plugins
Project | Owner | Mentor | Bug | ETA | Notes |
NPObject-over-IPC | paritosh | bent/josh | |||
Clean up plugin processes when we don't need them | bent | Needed so we don't orphan processes on unit-test machines | |||
NPStream implementation | bsmedberg | 15-Sep | Strange race conditions with stream closing are fun to debug | ||
windowless plugins (Win+Linux) | Chromium experience is that synchronous drawing is unacceptably slow... they maintain pixel buffers and asynchronously ship pixels across |
Mobile
Project | Owner | Mentor | Bug | ETA | Notes |
Async canvas.drawWindow for remote content | joedrew | bug 505847 | Important for the Fennec UI | ||
Forward mouse and keyboard events from the parent to the child | For the fennec canvasbrowser | ||||
Implement readonly remoting of preferences (nsIPrefService/nsIPrefBranch) | Tibor Mezei | bsmedberg | bug 506269 | Relatively easy, good beginner project. | |
Remote all network access to the parent process | jduell/ehsan | jst/biesi | Need smaller subtasks! | ||
Asynchronous and remote resolution of history queries | sdwilsh | bz | At least the asynchronous part should land on mozilla-central | ||
IPDL/runtime support for shared-memory buffers | Rohit | cjones/bsmedberg | Probably needed to make networking and canvas.drawWindow efficient | ||
Session history for remote tabs | bz | Need to figure out what information the parent process/UI actually use/need | |||
Clean up tab process(es) when we don't need it | fred23 | bent | |||
Present prompts from the chrome process if necessary (not the content process) | bsmedberg | There aren't significant security concerns with just presenting prompts other than the ability to DOS somebody in a loop, but this is probably a good place to do some thinking about the prompt architecture we actually want to end up with. |
Firefox
Project | Owner | Mentor | Bug | ETA | Notes |
Link targeting for remote tabs | bz | ||||
<browser> and <tabbrowser> basically working on remote tabs | bz | May involve some significant rearch: data which is currently available synchronously will not be! | |||
Refactor the Firefox context menu to work with remote tabs | dolske | Events don't bubble through the content tabs the same way... will probably involve collecting necessary information on the child side and passing it to the chrome process in a trusted manner. | |||
Implement find-in-page for remote tabs | Josh Matthews | bz | |||
Implement session restore for remote tabs | |||||
Crash reporting + multiple processes | ted | Breakpad has existing support for client/server exception handling that we're not currently using. This should fit perfectly here. (Also probably being used in Chromium.) | |||
Multi-process dashboard | Shows CPU/memory usage/etc for tab and plugin processes | ||||
Form and password autofill | Needs careful security architecture! |