Author: [EMAIL PROTECTED] Date: Mon Oct 27 15:58:02 2008 New Revision: 3876
Modified: wiki/DesignOOPHM.wiki Log: Edited wiki page through web user interface. Modified: wiki/DesignOOPHM.wiki ============================================================================== --- wiki/DesignOOPHM.wiki (original) +++ wiki/DesignOOPHM.wiki Mon Oct 27 15:58:02 2008 @@ -151,15 +151,17 @@ || tag (byte) =11 || ref id (32 bit signed) || === Browser Plugin === - The browser plugin is responsible for handling and dispatch messages in the browser and also for interacting with the browser's !JavaScript engine. Each plugin consists of two conceptual parts: browser-specific functionality for interacting with the !JavaScript engine and a set of shared C++ classes that implement the communication channel and message serialization. We continue to make every effort to implement the plugins using common and standard APIs (like NPAPI/npruntime), but where that is insufficient we rely on proprietary (but public) plugin APIs. Below is a list of the supported browsers and the APIs we are using, or planning to use. + The browser plugin is responsible for handling and dispatch messages in the browser and also for interacting with the browser's !JavaScript engine. Each plugin consists of two conceptual parts: browser-specific functionality for interacting with the !JavaScript engine and a set of shared C++ classes that implement the communication channel and message serialization. We continue to make every effort to implement the plugins using common and standard APIs (like NPAPI/npruntime), but where that is insufficient we rely on proprietary (but public) plugin APIs. Below is a list of the popular browsers and the APIs we are using, or planning to use. - !WebKit - !WebKit (WBPL) Plugin _(Sadly, npruntime has limitations we haven't been able to overcome in !WebKit)_ + !WebKit - !WebKit (WBPL) Plugin _(Sadly, npruntime has limitations we haven't been able to overcome in !WebKit)_ - Mozilla - NPAPI/npruntime + Mozilla - XPCOM component _(NPAPI was initially used and it is mostly functional, but we ran into a problem with Window.enableScrolling that was insurmountable)_ - IE6/7 - ActiveX control + IE6/7/8 - ActiveX control - Opera - Unsupported (NPAPI/npruntime when we confirm that they have finally implemented it fully) + Opera - Unsupported (NPAPI/npruntime when we confirm that they have finally implemented it fully) + + Chrome - Currently unsupported, but NPAPI will be used === Hosted GWT module space === The infrastructure in place in the current version of hosted mode has remained largely intact. At a very high level, this new model for hosted mode replaces the implementation of the !JavaScriptHost interface (which provides an interface directly to the corresponding !JavaScript environment) with the !BrowserChannel construct that is described above. We are intentionally avoiding a massive restructuring of the hosted space infrastructure at this point. @@ -169,8 +171,12 @@ The biggest threat vector comes from the fact that the hosted mode functionality is a general purpose plugin that is instantiable in the browser you use daily by any site. A couple of other issues that come into play here are, (1) using the hosted server UI to validate a user's intent to debug is problematic since that would require the plugin to open a socket to a potentially private address (2) NPAPI and other page based plugins do not have a reliable way to interact with the browser chrome to present dialogs to the user. -== Planned Milestones == - # Feb. 22^nd^ - Demo of !WebKit plugin working against mock server and server working against mock plugin. - # Mar. 07^th^ - Functioning version of OOPHM on !WebKit using the current !GWTShell UI (in SWT). - # Mar. 21^st^ - Add NPAPI plugin (for Mozilla and potentially Opera) and convert the hosted mode server over to the new swing UI. - # (contingent on scheduling IE integration help) - Add IE6/7 support and go feature complete. \ No newline at end of file +== Development Plan == +OOPHM is planned to go into GWT 2.0, which should be 1H09. The current state (as of October 2008) is the Swing-based UI is fully functional and all supported browsers/platforms pass all tests. There are still a few rough edges in the support, but it is perfectly functional. + +Areas to improve: + * Testing opens a new browser, which can be annoying on Windows/Mac (on Linux it is easy enough to run Selenium-RC inside an Xvfb instance). + * hosted.html currently generates missing plugin warnings on Firefox + * User access controls to address the security issue above + * The UI is currently a quick-and-dirty solution with the bare minimum functionality. + * The plugin code needs to be refactored to extract more common code. \ No newline at end of file --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---