A new light-weight browser helper object, jp2ssv.dll, has been added
which performs the registry key redirection done by the old ssv.dll as
well as the cleanup of old Java Plug-Ins out of the Mozilla plugins
directory. It redirects all of the static and family CLSIDs to the new
Java Plug-In's jp2iexp.dll, and this code has been modified to deal
with arbitrary CLSIDs coming in for instantiation. More work is needed
to provide full SSV support in the new plugin. An associated broker
process, jp2ssvbroker.exe, has been added which elevates to either
medium or high integrity to help with this work, depending on the kind
of work needed. Shared code from the old ssv.dll has been placed in
the ssv_common directory; more refactorings between the old and the
new SSV DLLs will be done in a subsequent putback.
A small custom launcher, jp2launcher.exe, has been added for Windows
Vista which is registered as a broker process by the installer on this
platform. This launcher performs the necessary argument validation to
prevent other IE plugins from escaping the low integrity sandbox, and
then executes javaw.exe.
The installer has been modified to register all of the above new DLLs
and executables in the appropriate ways, and to unregister them during
uninstallation. Currently if the new plugin is the default, then
during installation it will register jp2ssv.dll as a browser helper
object and unregister ssv.dll. Once the Java Control Panel work for
switching between the old and new plugins is done, both of these
browser helper objects will be registered simultaneously, and one or
the other will be disabled depending on the toggle value in the
control panel.