JDK-7143984 : expose webstart launch API in plugin dlls
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 8
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows
  • CPU: x86
  • Submitted: 2012-02-08
  • Updated: 2013-11-28
  • Resolved: 2012-02-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
7u4Fixed 8 b27Fixed
Related Reports
Relates :  
it's possible to launch no-codebase jnlp using plugin CLISD, but with OBJECT tag only for now, e.g:

<object width="0" height="0" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">
<param name="launchjnlp" value="dynamictree-webstart-no-codebase.jnlp"/>
<param name="docbase" value="http://docs.oracle.com/javase/tutorial/deployment/webstart/examples/dist/webstart_ComponentArch_DynamicTreeDemo/JavaWebStartAppPage_No_Codebase.html"/>

this is not flexible enough.  we want to have similar support as in DT below:

<object id="javawslauncher" width="0" height="0" classid="clsid:CAFEEFAC-DEC7-0000-0001-ABCDEFFEDCBA">


<script>function launchIt() {
var el = document.getElementById("javawslauncher");

<a href="" onclick="launchIt(); return false;">Launch it</a>

To allow this, we need to expose some webstart launch APIs via the plugin dll.  similar to launchApp API in DT dll.

The test link in JBS is broken.

EVALUATION - Adding support to instantiate NPBaseObject for java mimetype (instead of NPAPIJavaObject) if jnlp_href and code param are both missing. This will allow to serve DT-like requests without launching JVM - Adding support for js launchApp() method call on NPBaseObject - Moved GetDocumentBase from NPAPIJavaObject to BaseObject and slightly tuned implementation - Moved support for "launchjnlp" parameter from JavaObject to BaseObject Eliminated all special codepaths it in JavaObject. - Fixed path to javaws that we derive. Not sure why it was wrong. May be right fix to fix detection logic. But at least it is needed to get this to work on Mac. - new launchApp method has DIFFERENT signature. Instead of replicating DT signatures i am assuming parameters are passed as map like in test code below (see comments in the code for details) ===== <script>function launchIt() { var el = document.getElementById("javawslauncher"); var launchParams = { "url" : "dynamictree-webstart-no-codebase.jnlp", "ignoredparam" : "bb", "params" : {"aaa" : "111", "ccc" : "", "ignoredNonString": 4}}; el.launchApp(launchParams); } </script> <a href="" onclick="launchIt(); return false;">Launch it</a> =======