Je rencontre le bug le plus étrange avec plusieurs versions récentes de Firefox depuis que je suis passé à Windows 10 (Pro).
Après chaque redémarrage, Firefox semble être complètement bogué : les onglets sauvegardés et les nouveaux onglets sont vides, les pages ne se chargent pas et le programme ne se quitte pas normalement. Lorsque j'essaie de le fermer, le processus commence à utiliser plus de CPU (environ 20 %), mais c'est tout. Je dois le tuer via le gestionnaire de tâches.
J'ai fait un gif pour illustrer cela : http://i.imgur.com/S1a8WXX.gif
J'ai d'abord essayé toutes les solutions suivantes, sans succès :
- réinitialiser le profil
- démarrer Firefox en mode sans échec
- utiliser une autre version (j'ai essayé les versions standard, développeur et nightly)
- désactiver l'antivirus
- désactiver l'écran intelligent
- vérifier le journal des événements de Windows (je n'ai rien vu à propos de Firefox)
- réinstaller complètement Windows 10
La seule chose qui a semblé fonctionner temporairement a été de réinstaller Firefox.
Finalement, j'ai découvert que le remplacement de l'exécutable par une copie de lui-même résolvait le problème, jusqu'au prochain redémarrage.
La copie est en tous points identique à l'original. Même taille, même MD5, mêmes autorisations, mêmes attributs. Tout ce que je fais, c'est cliquer-glisser-copier l'exécutable dans le dossier du programme, renommer l'ancien en "firefox old.exe", renommer la copie en "firefox.exe".
L'exécutable "firefox old.exe" continue d'afficher le même comportement bizarre, alors que le nouveau, bien qu'identique, fonctionne.
Jusqu'à ce que je redémarre. Je dois alors recommencer les mêmes étapes.
Pour autant que je puisse en juger, tous les autres programmes, y compris les navigateurs, se comportent normalement.
Quelqu'un peut-il me dire ce qui se passe ici ?
Comment deux copies apparemment identiques d'un même exécutable peuvent-elles se comporter différemment ?
Des indices sur la façon de diagnostiquer ce problème ?
Mise à jour : le problème ne se produit pas à chaque redémarrage.
Mise à jour 2 : si je lance d'abord le "firefox.exe" qui fonctionne, puis le "firefox old.exe" qui posait problème auparavant, alors que l'autre est encore ouvert, ils fonctionnent tous les deux correctement. Ce qui serait un argument en faveur d'un problème de profil. Mais encore une fois, l'effacement des profils n'a rien changé.
Mise à jour 3 : l'installation et l'exécution de Firefox sans les droits d'administrateur ne change rien. Par contre, La version portable 55.0.2(64bit) et la version ESR 52.3.0(64bit) installée ne sont pas affectées. De plus, avec Firefox Developer Edition 56.0b3(64bit), le simple fait de changer le nom de l'exe par autre chose que "firefox" et de le laisser ainsi semble empêcher le bogue de réapparaître après un redémarrage.
Mise à jour 4 : le comportement semble changer, mais je ne sais pas pourquoi. Maintenant, il suffit d'exécuter une fois une copie renommée de l'exécutable comme "firefox2.exe" et de la fermer pour que le "firefox.exe" normal fonctionne à nouveau. J'ai également essayé de démarrer en mode sans échec, ce qui n'a pas résolu le problème. Curieusement, le "fix" susmentionné n'a pas fonctionné en mode sans échec. J'ai essayé de rechercher des modifications dans le registre, mais je n'ai rien trouvé de pertinent, pour autant que je sache.
Mise à jour 5 : J'essaie de déboguer le processus avec Process Monitor et Windbg, mais je ne suis pas un expert, et je ne sais même pas quoi chercher dans l'énorme quantité de journaux générés
Mise à jour 6 : J'ai finalement obtenu de nouvelles informations. Lorsque je démarre le fichier firefox2.exe avec l'option -console
la console n'affiche que les deux lignes suivantes :
Unable to read VR Path Registry from C:\Users\Victor\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\Victor\AppData\Local\openvr\openvrpaths.vrpath
Mais lorsque je lance firefox.exe, j'obtiens ce qui suit :
Unable to read VR Path Registry from C:\Users\Victor\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\Victor\AppData\Local\openvr\openvrpaths.vrpath
[Parent 592] WARNING: Failed to launch tab subprocess: file z:/build/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 604
[Parent 592] WARNING: Failed to launch tab subprocess: file z:/build/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 604
[Parent 592] WARNING: Failed to launch tab subprocess: file z:/build/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 604
[Parent 592] WARNING: Failed to launch tab subprocess: file z:/build/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 604
[Parent 592] WARNING: Failed to launch tab subprocess: file z:/build/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 604
[Parent 592] WARNING: Failed to launch tab subprocess: file z:/build/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 604
Extension error: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMessageSender.sendAsyncMessage]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: resource://gre/modules/ExtensionParent.jsm :: _onExtensionBrowser :: line 346" data: no] undefined 346
[[Exception stack...
(voir la sortie complète ici : https://pastebin.com/hZ90jRbz )
Puis de nouveau lorsque j'essaie de le fermer :
[Parent 592] WARNING: Failed to launch tab subprocess: file z:/build/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 604
Extension error: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIMessageSender.sendAsyncMessage]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: resource://gre/modules/ExtensionParent.jsm :: _onExtensionBrowser :: line 346" data: no] undefined 346
[[Exception stack...
(sortie complète : https://pastebin.com/6d2RkbQY )
Mise à jour 7 : Après avoir cherché sur Google une partie de la sortie de la console, j'ai trouvé une discussion sur le forum Wine à propos d'un bug qui ressemble un peu au mien.
L'article dit :
Dernière version de Firefox 51.0.1 (32 bits). Wine 2.0 (mais même comportement dans les versions antérieures). Lorsque l'on utilise winecfg pour configurer une version plus récente de Windows (par exemple Windows 7) et que l'on lance ensuite Firefox, celui-ci démarre avec un onglet complètement vide. Les menus, les paramètres, etc. fonctionnent, mais l'onglet est vide. Il semble que ce soit lié à
[Parent 37] WARNING: Failed to launch tab subprocess: file c:/builds/moz2_slave/m-rel-w64-00000000000000000000/build/src/ipc/glue/GeckoChildProcessHost.cpp, line 574
Ce qui est amusant, c'est que la première fois après l'installation sur ce préfixe Win7 32 bits, il affiche les onglets, mais après avoir fermé et redémarré le navigateur, les onglets sont tous vides. Des idées ? J'ai besoin d'une version plus récente de Windows car certains modules complémentaires et d'autres programmes nécessitent une version plus récente que la version XP.
Le fil conducteur indique un rapport de bogue dans lequel j'ai trouvé cette "solution" :
J'ai dû changer cette ligne dans user.prefs de true à false pour Firefox 54 puisque e10s est maintenant la valeur par défaut (pour les utilisateurs sans add-ons de toute façon, et sur Win7) :
user_pref("browser.tabs.remote.autostart.2", false);
Cela désactive en fait l'exécution multiprocessus. Ce qui "résout" en quelque sorte le problème. (Des problèmes subsistent avec certaines extensions, comme uBlock Origin).
Mais pourquoi ?
Mise à jour 8 : Maintenant, après deux redémarrages, la Developer Edition fonctionne sans rien changer, et la version standard bug. Je ne sais toujours pas comment interpréter cette situation.
PS : J'ai également posé la question sur les sites d'assistance de Mozilla et de Microsoft, mais je n'ai pas encore obtenu de réponse.