xulrunner 1.9.1 vers xulrunner-17 (xulrunner 2.0)

Problème: crash lors de l'utilisation de xulrunner 1.9.1

xulrunner-1.9.1 application.ini
(process:7711): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
GLib-GObject:ERROR:/tmp/buildd/glib2.0-2.36.3/./gobject/gobject.c:4127:g_weak_ref_set: assertion failed: (weak_locations != NULL)

Solution migrer vers les nouveaux xulrunner

xulrunner-17.0 application.ini

Problème: l'application de démarre pas

Solution, le fichier myApp/chrome/chrome.manifest a été déplacé à la racine. Il faut donc créer le nouveau fichier et inclure l'ancien ou déplacer l'ancien.

myApp/chrome.manifest

manifest chrome/chrome.manifest

Problème (console JS): &action.switchToTab.label; syntax error in chrome://global/content/bindings/autocomplete.xml (jar:file:///usr/lib/xulrunner-17.0/omni.ja!/chrome/toolkit/content/global/bindings/autocomplete.xml)

Solution: ajouter dans myApp/chrome/locale/fr-FR/global/actions.dtd la ligne suivante:

<!ENTITY action.switchToTab.label "Switch to tab">

Problème (console bash): *** Failed to format string errTime in bundle: chrome://global/locale/console.properties

Solution: ajouter dans myApp/chrome/locale/fr-FR/global/console.properties la ligne suivante:

errTime=Heure\u00a0 %S

Problème (console JS): <menuitem id="context-copyLink" in chrome://global/content/viewSource.xul

Solution: ajouter dans myApp/chrome/locale/fr-FR/global/viewSource.dtd la ligne suivante:

<!ENTITY copyLinkCmd.label "Copy Link Location">
<!ENTITY copyLinkCmd.accesskey "L">
<!ENTITY copyEmailCmd.label "Copy Email Address">
<!ENTITY copyEmailCmd.accesskey "E">

Problème xulrunner-24 avec jsconsole: <label value="&filter2.label;" control="Filter"/>

Solution: ajouter dans myApp/chrome/locale/fr-FR/global/console.dtd les lignes suivantes:

<!ENTITY filter2.label "Filtre">
<!ENTITY filter2.accesskey "i">

Problème: pas de dialogue pour les erreurs 401 (authentification HTTP Basic)

Problème: LoginManagerPrompter: _doAsyncPrompt:run: [Exception... [nsIStringBundle.formatStringFromName] ressource://gre/components/nsPrompter.js line 122 ressource://gre/components/nsLoginManagerPrompter.js : 101

Solution, ajouter dans myApp/chrome/locale/fr-FR/global/commonDialogs.properties

ScriptDialogLabel=Prevent this page from creating additional dialogs
ScriptDialogPreventTitle=Confirm Dialog Preference
# LOCALIZATION NOTE (EnterLoginForRealm, EnterLoginForProxy):
# %1 is an untrusted string provided by a remote server. It could try to
# take advantage of sentence structure in order to mislead the user (see
# bug 244273). %1 should be integrated into the translated sentences as
# little as possible. %2 is the url of the site being accessed.
EnterLoginForRealm=A username and password are being requested by %2$S. The site says: "%1$S"
EnterLoginForProxy=The proxy %2$S is requesting a username and password. The site says: "%1$S"
EnterUserPasswordFor=Enter username and password for %1$S
EnterPasswordFor=Enter password for %1$S on %2$S

Référence: Getting_started_with_XULRunner