Difference between revisions of "User:Jamesboston/nsIProcess"

From CDOT Wiki
Jump to: navigation, search
m
(Name of Project)
 
(70 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
=Name of Project=
 
=Name of Project=
Fix nsIProcess
+
nsIProcess2
 +
 
 +
'''Currently on hiatus.'''
  
 
=Description=
 
=Description=
  
The Mozilla 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.
+
Replace the existing [http://developer.mozilla.org/en/NsIProcess nsIProcess] interface with new interface that:
 
+
* supports Unicode on all platforms
==Relevant bugs==
+
* supports piping to and from processes
https://bugzilla.mozilla.org/show_bug.cgi?id=442393<br />
+
* can handle asynchronous I/O via callbacks
https://bugzilla.mozilla.org/show_bug.cgi?id=68702
+
* 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==
None (yet).
+
Steve Lee
  
=Details=
+
==Mentors==
None (yet).
+
Mark Finkle, Benjamin Smedberg, Ted Mielczarek, Jason Orendorff
  
 
=News and updates=
 
=News and updates=
  
 
==Blog==
 
==Blog==
A blog about the ongoing project to fix nsIProcess is available from James Boston:<br />
+
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

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

James Boston

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.