IBM Launchpad no arranca: Unable to find supported browser

06/05/2014

WebSphere software
Al intentar instalar un antiguo WebSphere 7.0 en un sitema con Mozilla Firefox 10+ como navegador por defecto, ejecutando el IBM Launchpad usando el script launchpad.she, aparece el siguiente mensaje:

An error occurred while starting the launchpad. This error typically occurs when
the launchpad is unable to find a supported browser. Check your product’s
documentation for a list of supported browsers.

El problema está en que las versiones soportadas de Firefox para esta versión de launchpad se limitan a las veriones 1 a 9. Afortunadamente existe algún “apaño” para soportar versiones superiores.

Según se indica en http://www-01.ibm.com/support/docview.wss?uid=swg21595098 podemos modificar el script launchpad\browser.sh de tal modo que la función supportedFirefoxVersion() quede tal que así:

browser.sh Línea 22:

supportedFirefoxVersion()
{
case "$*" in
*Firefox\ [1-9].*) return 0;;
*Firefox/[1-9].*) return 0;;
*Firefox\ [1-9][0-9].*) return 0;;
...

Una vez modificado este fichero, al intentar arrancar la aplicación IBM Launchpad ejecutando el comando launchad.sh en un sistema cuyo navegador por defecto es un Mozilla Firefox 15+, puedes recibir el siguiente mensaje de error en el navegador:

Unable to find supported browser

An error occurred while starting the launchpad. This error typically occurs when the launchpad is unable to find a supported browser. Check your product’s documentation for a list of supported browsers.
NOTE: This file is a place holder for product specific instructions about how to recover from this error.
You should describe the location of installation programs on the product CD so the user can run them directly without starting launchpad if necessary.
Procedure for correcting the error that is preventing the launchpad from displaying
==============================================================
The launchpad supports the following browsers:
o Mozilla
o Firefox
o Internet Explorer (Microsoft Windows platforms only)
o SeaMonkey

Con un poco de investigación, verás que la variable whichBrowser en el script launchpad\browser.sh (invocado por launchpad.sh) se fija correctamente (con la modificación anterior), y que tu navegador se abre con el siguiente comando:

/usr/bin/firefox -P Profile_2883 -profile /tmp/IBM_LaunchPad_2883/Profile_2883 file:///media/sf_websphere_media/media_80/wp_package/Setup/launchpad/Mozilla.html

Esto, inmediatamente te redirige a file:///media/sf_websphere_media/media_80/wp_package/Setup/launchpad/en/noBrowser.html – puede que ni siquiera notes que la redirección ocurre, lo que puede ser frustrante.

Lo que ocurre es que el fichero javascript “Mozilla.js” (llamado desde “Mozilla.html“) está intentando hacer una llamada a netscape.security.PrivilegeManager.enablePrivilege, que ya no está soportada por Firefox. Esto lanza un error javascript, que produce la redirección.

Mozilla.js Línea 42:

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

El soporte para enablePrivilege ha sido eliminado de Firefox (Bug 546848), de modo que ya no es posible obtener privilegios especiales usando este método.

Para más detalles sobre este cambio en Firefox, revisa la siguiente nota de soporte: http://support.mozilla.org/en-US/questions/944433

Siguiendo las indicaciones de http://www-01.ibm.com/support/docview.wss?uid=swg21643517 y si nuestra versión de Firefox es la 15 o la 17, podemos solucionar el problema editando el fichero launchpad\firefox.sh de tal modo que quede algo así:

firefox.sh Línea 57:

echo 'user_pref("capability.principal.codebase.p0.granted", "UniversalXPConnect UniversalBrowserWrite");' >$userprefpath/user.js
echo 'user_pref("capability.principal.codebase.p0.id", "'${LaunchPadURL}'");' >>$userprefpath/user.js
echo 'user_pref("browser.frames.enabled", true);' >>$userprefpath/user.js
echo 'user_pref("browser.shell.checkDefaultBrowser", false);' >>$userprefpath/user.js
echo 'user_pref("javascript.enabled", true);' >>$userprefpath/user.js
echo 'user_pref("security.fileuri.origin_policy", 4);' >>$userprefpath/user.js
echo 'user_pref("security.enable_java", false);' >>$userprefpath/user.js
echo 'user_pref("security.xpconnect.plugin.unrestricted", true);' >>$userprefpath/user.js
echo 'user_pref("update_notifications.enabled", false);' >>$userprefpath/user.js
echo 'user_pref("security.warn_entering_secure", false);' >>$userprefpath/user.js
echo 'user_pref("security.warn_leaving_secure", false);' >>$userprefpath/user.js
echo 'user_pref("security.warn_entering_weak", false);' >>$userprefpath/user.js
echo 'user_pref("security.warn_viewing_mixed", false);' >>$userprefpath/user.js
echo 'user_pref("security.warn_submit_insecure", false);' >>$userprefpath/user.js
echo 'user_pref("signon.rememberSignons", false);' >>$userprefpath/user.js
echo 'user_pref("browser.bookmarks.added_static_root", true);' >>$userprefpath/user.js
echo 'user_pref("intl.charsetmenu.browser.cache", "ISO-8859-1");' >>$userprefpath/user.js
echo 'user_pref("browser.search.opensidebarsearchpanel", false);' >>$userprefpath/user.js
echo 'user_pref("dom.allow_scripts_to_close_windows", true);' >>$userprefpath/user.js
echo 'user_pref("dom.disable_open_during_load", false);' >>$userprefpath/user.js
echo 'user_pref("nglayout.initialpaint.delay", 0);' >>$userprefpath/user.js
echo 'user_pref("browser.link.open_external", 2);' >>$userprefpath/user.js
echo 'user_pref("security.fileuri.strict_origin_policy", false);' >>$userprefpath/user.js
echo 'user_pref("browser.EULA.3.accepted", true);' >>$userprefpath/user.js
echo 'user_pref("browser.EULA.4.accepted", true);' >>$userprefpath/user.js
echo 'user_pref("browser.EULA.5.accepted", true);' >>$userprefpath/user.js
echo 'user_pref("security.enablePrivilege.enable_for_tests", true);' >>$userprefpath/user.js
...

En caso contrario, para solventar el problema, tendremos que instalar una versión antigua de Firefox. Puedes encontrar versiones antiguas de Firefox aquí: https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/

NOTA: Puede ser necesario establecer la variable de entorno que indica el navegador a utilizar, del siguiente modo:
export BROWSER=/usr/lib64/firefox

vía

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: