Electrolysis/Tasks: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(link bug#)
(Redirect!)
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]
#REDIRECT {{https://bugzilla.mozilla.org/showdependencytree.cgi?id=electrolysis&hide_resolved=1}}
 
== 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={{bug|516524}}
| 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=Mostly done. jgriffin is working on tests. Still need to implement plugin->browser streams.
}}
{{CPTask
| task=windowless plugins (Win+Linux)
| name=karlt/jmuizelaar
| mentor=
| bug=
| ETA=
| notes=Chromium experience is that synchronous drawing is unacceptably slow... they maintain pixel buffers and asynchronously ship pixels across
}}
{{CPTask
| task=Mac plugin remoting (graphics work)
| name=
| mentor=josh
| bug=
| ETA=
| notes=Experiments may be necessary
}}
|}
 
== Mobile ==
 
{| border="1" cellpadding="3" width="100%"
|- align="center"
| '''Project'''
| '''Owner'''
| '''Mentor'''
| '''Bug'''
| '''ETA'''
| '''Notes'''
{{CPTask
| task=Async canvas.drawWindow for remote content
| name=joedrew
| mentor=
| bug={{bug|505847}}
| ETA=
| notes=Important for the Fennec UI
}}
{{CPTask
| task=Forward mouse and keyboard events from the parent to the child
| name=
| mentor=
| bug=
| ETA=
| notes=For the fennec canvasbrowser
}}
{{CPTask
| task=Implement readonly remoting of preferences (nsIPrefService/nsIPrefBranch)
| name=Tibor Mezei
| mentor=bsmedberg
| bug={{bug|506269}}
| ETA=
| notes=Relatively easy, good beginner project.
}}
{{CPTask
| task=Remote all network access to the parent process
| name=jduell/ehsan
| mentor=jst/biesi
| bug=
| ETA=
| notes=Need smaller subtasks!
}}
{{CPTask
| task=Asynchronous and remote resolution of history queries
| name=sdwilsh
| mentor=bz
| bug=
| ETA=
| notes=At least the asynchronous part should land on mozilla-central
}}
{{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=Session history for remote tabs
| name=
| mentor=bz
| bug=
| ETA=
| notes=Need to figure out what information the parent process/UI actually use/need
}}
{{CPTask
| task=Clean up tab process(es) when we don't need it
| name=fred23
| mentor=bent
| bug={{bug|512694}}
| 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.
}}
{{CPTask
| task=[[Content Processes/JPW]]: RPC wrapper for JS objects
| name=mrbkap
| mentor=
| bug=
| ETA=
| notes=This is for extension-compat eventually, but for now will be a crutch to get UI code working.
}}
|}
 
== Firefox ==
 
{| border="1" cellpadding="3" width="100%"
|- align="center"
| '''Project'''
| '''Owner'''
| '''Mentor'''
| '''Bug'''
| '''ETA'''
| '''Notes'''
{{CPTask
| task=Link targeting for remote tabs
| name=bz
| mentor=
| bug=
| ETA=
| notes=
}}
{{CPTask
| task=<browser> and <tabbrowser> basically working on remote tabs
| name=
| mentor=bz
| bug=
| ETA=
| notes=May involve some significant rearch: data which is currently available synchronously will not be!
}}
{{CPTask
| task=Refactor the Firefox context menu to work with remote tabs
| name=dolske
| mentor=
| bug=
| ETA=
| notes=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.
}}
{{CPTask
| task=Implement find-in-page for remote tabs
| name=Josh Matthews
| mentor=bz
| bug={{bug|514925}}
| ETA=
| notes=
}}
{{CPTask
| task=Implement session restore for remote tabs
| name=
| mentor=
| bug=
| ETA=
| notes=
}}
{{CPTask
| task=Crash reporting + multiple processes
| name=
| mentor=ted
| bug=
| ETA=
| notes=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.)
}}
{{CPTask
| task=Multi-process dashboard
| name=
| mentor=
| bug=
| ETA=
| notes=Shows CPU/memory usage/etc for tab and plugin processes
}}
{{CPTask
| task=Form and password autofill
| name=
| mentor=
| bug=
| ETA=
| notes=Needs careful security architecture!
}}
{{CPTask
| task=Mac implementation of remote tabs
| name=
| mentor=josh
| bug=
| ETA=
| notes=Or we could just use tilebrowser in Firefox, which means that the content process wouldn't draw directly to the screen
}}
|}

Revision as of 17:48, 15 September 2009