Electrolysis/Tasks: Difference between revisions

From MozillaWiki
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=Statically check [[IPDL]] specs and C++ implementations
| task=IPDL/runtime support for shared-memory buffers
| name=cjones
| name=Rohit
| mentor=
| mentor=cjones/bsmedberg
| bug=
| bug=
| ETA=
| ETA=
| notes=
| notes=Probably needed to make networking and canvas.drawWindow efficient
}}
}}
{{CPTask
{{CPTask
| task=Dynamic fuzzing/checking of cross-process infrastructure
| task=Session history for remote tabs
| name=
| name=
| mentor=bsmedberg
| mentor=bz
| bug=
| bug=
| ETA=
| ETA=
| notes=Fuzzing for bad data, closed sockets, crashed processes
| notes=Need to figure out what information the parent process/UI actually use/need
}}
}}
{{CPTask
{{CPTask
| task=[[IPDL/Unit test generation|Systematic dynamic checking of C++ code implementing IPDL protocols]]
| task=Clean up tab process(es) when we don't need it
| name=robin_bb
| name=fred23
| mentor=cjones
| mentor=bent
| bug={{bug|506303}}
| ETA=
| notes=It should be possible to generate pretty exhaustive unit tests from IPDL specs...
}}
{{CPTask
| task=IPDL/runtime support for shared-memory buffers
| name=Rohit
| mentor=cjones/bsmedberg
| bug=
| ETA=
| notes=Probably needed to make networking and canvas.drawWindow efficient
}}
{{CPTask
| task=NPObject-over-IPC
| name=paritosh
| mentor=bent/josh
| bug=
| bug=
| ETA=
| ETA=
Line 90: Line 156:
}}
}}
{{CPTask
{{CPTask
| task=Session history for remote tabs
| task=Present prompts from the chrome process if necessary (not the content process)
| name=
| name=
| mentor=bz
| mentor=bsmedberg
| bug=
| bug=
| ETA=
| ETA=
| notes=Need to figure out what information the parent process/UI actually use/need
| 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!
}}
{{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=Clean up tab process(es) when we don't need it
| name=fred23
| mentor=bent
| bug=
| ETA=
| notes=
}}
{{CPTask
| task=Present prompts from the chrome process if necessary (not the content process)
| name=
| mentor=bsmedberg
| bug=
| ETA=
| 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.
}}
}}
|}
|}

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!