1
edit
Changes
no edit summary
== Project Name ==
D-Bus and other Linux desktop integration improvements.
== Project Description ==
Various Linux distributors have patches in their Firefox packages that add bits and pieces of Linux integration, and we'd Mozilla would like to see even more available. One particular area of interest is controlling the browser via d-bus, and exposing dbus events to the application and extensions.
===Introduction to D-Bus:===
===Possible Ideas===
D-Bus can be integrated in two ways. One is to add a patch in code to use expose D-Bus functions that might be relative. Mozilla already has a patch that allows notifications regarding events from the system or services (such as Network Connectivityor Services Status) to Mozilla. The other is to add some develop an API framework that allows applications Mozilla to communicate with each other or with the systemapplications.
There is currently a project called DBuzzilla which has done a good job implementing a module which allows communication Mozilla to communicate between applications and or the system. The author has mentioned he had some personal issues, and has not touched the project since the summer of 2006. He said he will continue to maintain his project. There are some problems might be an interest working with this project. However, it seems the previous projectauthor is not willing to work in a manner that is consistent with open development. It is maintained by one person, with some or none users. It is not complete, but is a good start. If this project is to be continued and maintained by Seneca students, it is probably better a good idea to fork or start a new project that is updated to the latest version of D-Bus. It is unclear if the author of DBuzilla and is willing to work developed in an open development manner.
===This Project===
The module must include the basic objects, data types, parsers, client/server processes, etc….
Features:
*Phase 1 - Basic D-Bus Communication Classes (using XPCOM and NSPR)
**DBus - Singleton class which starts and ends D-Bus client and server processes in Mozilla
**Connection
**Message - Abstract base class used by the following:
***Signal - Intent is to send a signal to notify listening applications of some status
***MethodCall - Intent is to call a method (like RPC) with the option of arguments
***MethodResponse - Intent is to send a response to a method call
***ErrorResponse - Intent is to send a error response to a method call
**Argument - Attached to a method call
**ArgumentIterator - Used to read each ArgumentList
**ArgumentList - Used to contain all arguments from a method call or response
*Phase 2 - Enrich Framework
**Multi-threading
***NSPR
***Glib
**Proxy classes
**Mozilla process
***Client (handles requests from internal sources, other XPCOM modules)
***Server (handles requests from external sources)
***Monitor (listens to system and applications events to kill internal dependencies, ex. an XPCOM module waiting for a response from an external source which was just killed, dbus sent us a signal telling us this source went offline)
***Dispatcher (notifies the system and applications Mozilla events, ex. Firefox closing)
*Advanced Features
**
===Considerations===