Difference between revisions of "User:Jamesboston/nsIProcess"
Jamesboston (talk | contribs) m |
Jamesboston (talk | contribs) (→Name of Project) |
||
(70 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Name of Project= | =Name of Project= | ||
− | + | nsIProcess2 | |
+ | |||
+ | '''Currently on hiatus.''' | ||
=Description= | =Description= | ||
− | + | Replace the existing [http://developer.mozilla.org/en/NsIProcess nsIProcess] interface with new interface that: | |
− | + | * supports Unicode on all platforms | |
− | + | * supports piping to and from processes | |
− | + | * can handle asynchronous I/O via callbacks | |
− | + | * is available through Components.utils.import("resource://gre/process.js") or a similar JS module approach. | |
− | =Leader= | + | =People= |
+ | ==Leader== | ||
[[User:jamesboston|James Boston]] | [[User:jamesboston|James Boston]] | ||
− | =Contributors= | + | ==Contributors== |
− | + | Steve Lee | |
− | = | + | ==Mentors== |
− | + | Mark Finkle, Benjamin Smedberg, Ted Mielczarek, Jason Orendorff | |
=News and updates= | =News and updates= | ||
==Blog== | ==Blog== | ||
− | + | All posts are tagged 'nsIProcess':<br /> | |
http://jamesboston.ca/cms/taxonomy/term/16 | http://jamesboston.ca/cms/taxonomy/term/16 | ||
+ | |||
+ | Or an RSS feed of the same:<br /> | ||
+ | http://jamesboston.ca/cms/taxonomy/term/16/0/feed | ||
+ | |||
+ | ==News and Progress== | ||
+ | |||
+ | '''Currently on hiatus. Work will resume after final exams in Decemeber 2009.''' | ||
+ | |||
+ | <small>(Click dates for attachments or info)</small> | ||
+ | |||
+ | [https://wiki.mozilla.org/NsIProcess Sept 21, 2008]: A first draft (an alpha version really) of the API is posted. | ||
+ | |||
+ | [http://jamesboston.ca/cms/node/66 Sept 22, 2008]: Released an updated version of an extension that serves as a temporary work around for nsIProcess bugs. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#attach_340506 Sept 25, 2008]: Submitted patch to bugzilla. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#attach_341723 Oct 3, 2008]: Submitted revised patch to bugzilla. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=459572 Oct 12, 2008]: Opened a bug on NSPR lack of unicode support for Unicode arguments. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#c9 Nov 11, 2008]: Submitted a new patch to bugzilla with Unicode support for Windows. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#c11 Nov 23, 2008]: Submitted a new patch to bugzilla with isRunning() method. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#c15 Jan 25, 2009]: Submitted a new patch with unit tests. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#c17 Mar 5, 2009]: Submitted a new patch with minor revisions. The bug has now also been marked ''blocking‑fennec''. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#c26 Mar 9, 2009]: Changed interface to return void on run. | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=442393#c27 Mar 12, 2009]: Patch pushed to mozilla-central. (Followed by a minor bustage fix.) | ||
+ | |||
+ | [https://bugzilla.mozilla.org/show_bug.cgi?id=484246 Mar 19, 2009]: Filed a new enhancement bug that ties together the various features in the next stage of development. | ||
+ | |||
+ | =Downloads= | ||
+ | |||
+ | The code will be done in trunk. To get changeset: | ||
+ | |||
+ | hg pull http://hg.jamesboston.ca/mozilla/gsoc | ||
+ | |||
+ | Or to generate a plain text patch file containing all deviations from trunk visit:<br /> | ||
+ | http://jamesboston.ca/misc/patch.cgi | ||
+ | |||
+ | =Details= | ||
+ | |||
+ | The API for [http://developer.mozilla.org/en/NsIProcess nsIProcess] is not fully implemented. At present, the PID of a created process is not retained and cannot be killed. The API would also benifit from a new spec that includes inter-process communication. | ||
+ | |||
+ | An example of an API that for creating processes and communicating with them through STDIN/STDOUT is the Python subprocess module: | ||
+ | http://docs.python.org/lib/node528.html | ||
+ | |||
+ | The goal of this project is to create a similar API for Mozilla. | ||
+ | |||
+ | ==API proposal== | ||
+ | |||
+ | https://wiki.mozilla.org/NsIProcess | ||
+ | |||
+ | ==Existing API== | ||
+ | |||
+ | [http://developer.mozilla.org/En/Code_snippets/Running_applications Code snippet of how to use the existing API] | ||
+ | |||
+ | ==Existing Code== | ||
+ | http://mxr.mozilla.org/mozilla-central/source/xpcom/threads/nsIProcess.idl<br /> | ||
+ | http://mxr.mozilla.org/mozilla-central/source/xpcom/threads/nsProcess.h<br /> | ||
+ | http://mxr.mozilla.org/mozilla-central/source/xpcom/threads/nsProcessCommon.cpp<br /> | ||
+ | http://mxr.mozilla.org/mozilla-central/source/xpcom/tests/unit/test_nsIProcess.js | ||
+ | |||
+ | ==Relevant bugs== | ||
+ | |||
+ | Implement a replacement for nsIProcess<br /> | ||
+ | https://bugzilla.mozilla.org/show_bug.cgi?id=484246 | ||
+ | |||
+ | nsIProcess.kill() does not work on Win32<br /> | ||
+ | https://bugzilla.mozilla.org/show_bug.cgi?id=442393 | ||
+ | |||
+ | Implement inter-process communication (IPC) in Mozilla<br /> | ||
+ | https://bugzilla.mozilla.org/show_bug.cgi?id=68702 | ||
+ | |||
+ | PR_CreateProcess in NSPR needs unicode support<br /> | ||
+ | https://bugzilla.mozilla.org/show_bug.cgi?id=459572 | ||
+ | |||
+ | ==Submitted patches== | ||
+ | |||
+ | [https://bugzilla.mozilla.org/attachment.cgi?bugid=442393&action=viewall Bug 442393 patches]: Patches submitted to fix Bug 442393 - nsIProcess.kill() does not work on Win32 | ||
+ | |||
+ | ==Meetings (Chronological)== | ||
+ | |||
+ | [http://zenit.senecac.on.ca/wiki/index.php/User:Jamesboston/nsIProcess/meeting-092008 Sept 19, 2008]: Discussion with Benjamin Smedberg and David Humphrey to discuss the new API proposal.<br /> | ||
+ | |||
+ | [http://zenit.senecac.on.ca/wiki/index.php/User:Jamesboston/nsIProcess/meeting-092208 Sept 22, 2008]: Discussion with Mark Finkle and David Humphrey about the API design. | ||
+ | |||
+ | [http://zenit.senecac.on.ca/wiki/index.php/User:Jamesboston/nsIProcess/meetin-092308 Sept 23, 2008]: Discussion with Mark Finkle about using NSPR. | ||
+ | |||
+ | [[User:Jamesboston/nsIProcess/meeting-100808|Oct 8, 2008]]: Discussion about string types and Windows paths in NSPR. | ||
+ | |||
+ | [[User:Jamesboston/nsIProcess/meeting-102908|Oct 29, 2008]]: Advice regarding PRProcess type. | ||
+ | |||
+ | [[User:Jamesboston/nsIProcess/meeting-110508|Nov 5, 2008]]: Getting advice on callbacks across XPConnect divide. | ||
+ | |||
+ | [[User:Jamesboston/nsIProcess/meeting-110708|Nov 7, 2008]]: Round table on Unicode support. | ||
+ | |||
+ | [[User:Jamesboston/nsIProcess/meeting-112308|Nov 23, 2008]]: Discussion about pathnames in xpcshell. |
Latest revision as of 12:31, 5 March 2010
Contents
Name of Project
nsIProcess2
Currently on hiatus.
Description
Replace the existing nsIProcess interface with new interface that:
- supports Unicode on all platforms
- supports piping to and from processes
- can handle asynchronous I/O via callbacks
- is available through Components.utils.import("resource://gre/process.js") or a similar JS module approach.
People
Leader
Contributors
Steve Lee
Mentors
Mark Finkle, Benjamin Smedberg, Ted Mielczarek, Jason Orendorff
News and updates
Blog
All posts are tagged 'nsIProcess':
http://jamesboston.ca/cms/taxonomy/term/16
Or an RSS feed of the same:
http://jamesboston.ca/cms/taxonomy/term/16/0/feed
News and Progress
Currently on hiatus. Work will resume after final exams in Decemeber 2009.
(Click dates for attachments or info)
Sept 21, 2008: A first draft (an alpha version really) of the API is posted.
Sept 22, 2008: Released an updated version of an extension that serves as a temporary work around for nsIProcess bugs.
Sept 25, 2008: Submitted patch to bugzilla.
Oct 3, 2008: Submitted revised patch to bugzilla.
Oct 12, 2008: Opened a bug on NSPR lack of unicode support for Unicode arguments.
Nov 11, 2008: Submitted a new patch to bugzilla with Unicode support for Windows.
Nov 23, 2008: Submitted a new patch to bugzilla with isRunning() method.
Jan 25, 2009: Submitted a new patch with unit tests.
Mar 5, 2009: Submitted a new patch with minor revisions. The bug has now also been marked blocking‑fennec.
Mar 9, 2009: Changed interface to return void on run.
Mar 12, 2009: Patch pushed to mozilla-central. (Followed by a minor bustage fix.)
Mar 19, 2009: Filed a new enhancement bug that ties together the various features in the next stage of development.
Downloads
The code will be done in trunk. To get changeset:
hg pull http://hg.jamesboston.ca/mozilla/gsoc
Or to generate a plain text patch file containing all deviations from trunk visit:
http://jamesboston.ca/misc/patch.cgi
Details
The API for nsIProcess is not fully implemented. At present, the PID of a created process is not retained and cannot be killed. The API would also benifit from a new spec that includes inter-process communication.
An example of an API that for creating processes and communicating with them through STDIN/STDOUT is the Python subprocess module: http://docs.python.org/lib/node528.html
The goal of this project is to create a similar API for Mozilla.
API proposal
https://wiki.mozilla.org/NsIProcess
Existing API
Code snippet of how to use the existing API
Existing Code
http://mxr.mozilla.org/mozilla-central/source/xpcom/threads/nsIProcess.idl
http://mxr.mozilla.org/mozilla-central/source/xpcom/threads/nsProcess.h
http://mxr.mozilla.org/mozilla-central/source/xpcom/threads/nsProcessCommon.cpp
http://mxr.mozilla.org/mozilla-central/source/xpcom/tests/unit/test_nsIProcess.js
Relevant bugs
Implement a replacement for nsIProcess
https://bugzilla.mozilla.org/show_bug.cgi?id=484246
nsIProcess.kill() does not work on Win32
https://bugzilla.mozilla.org/show_bug.cgi?id=442393
Implement inter-process communication (IPC) in Mozilla
https://bugzilla.mozilla.org/show_bug.cgi?id=68702
PR_CreateProcess in NSPR needs unicode support
https://bugzilla.mozilla.org/show_bug.cgi?id=459572
Submitted patches
Bug 442393 patches: Patches submitted to fix Bug 442393 - nsIProcess.kill() does not work on Win32
Meetings (Chronological)
Sept 19, 2008: Discussion with Benjamin Smedberg and David Humphrey to discuss the new API proposal.
Sept 22, 2008: Discussion with Mark Finkle and David Humphrey about the API design.
Sept 23, 2008: Discussion with Mark Finkle about using NSPR.
Oct 8, 2008: Discussion about string types and Windows paths in NSPR.
Oct 29, 2008: Advice regarding PRProcess type.
Nov 5, 2008: Getting advice on callbacks across XPConnect divide.
Nov 7, 2008: Round table on Unicode support.
Nov 23, 2008: Discussion about pathnames in xpcshell.