I am experiencing the weirdest bug with multiple recent versions of Firefox since I switched to Windows 10 (Pro).
After each reboot, Firefox appears to be completely bugged: saved and new tabs are blank, pages won't load, and the program won't quit normally. When I try to close it, the process starts using more CPU (about 20%), but that's it. I have to kill it through the task manager.
I first tried all of the following, to no avail:
- reset the profile
- start Firefox in safe mode
- use another version (tried the standard, developer and nightly versions)
- disable the antivirus
- disable Smart Screen
- check the Windows Event Log (didn't see anything about Firefox)
- completely reinstall Windows 10
The only thing that seemed to work temporarily was to reinstall Firefox.
Eventually, I found that just replacing the executable by a copy of itself solves the issue, until the next reboot.
The copy is in all aspects identical to the original. Same size, same MD5, same permissions, same attributes.
All I do is click-drag-copy the executable in the program folder, rename the old one to "firefox old.exe", rename the copy to "firefox.exe".
The "firefox old.exe" executable keeps displaying the same weird behavior, while the new one, although identical, works.
Until I reboot. Then I have to do those same steps again.
As far as I can tell, all other programs, including browsers, are behaving normally.
Can someone tell me what is going on here?
How can two seemingly identical copies of the same executable behave differently?
Any clues on how to diagnose this?
Update: the problem does not happen on every reboot.
Update 2: if I first launch the working "firefox.exe", then the previously bugging "firefox old.exe" while the other is still open, they both work fine. Which would be an argument for a profile issue. But then again, clearing the profiles didn't change anything.
Update 3: installing and running Firefox without admin rights doesn't change anything. On the other hand, portable version 55.0.2(64bit) and installed ESR version 52.3.0(64bit) are not affected. Also, with Firefox Developer Edition 56.0b3(64bit), simply changing the name of the exe to anything but "firefox" and leaving it that way seems to prevent the bug from reappearing after a reboot.
Update 4: the behavior seems to be changing, yet I don't know why. Now, simply running a renamed copy of the executable like «firefox2.exe» once and closing it makes the normal «firefox.exe» work again. I also tried booting in safe mode, which didn't solve the issue. Strangely enough, the aforementioned «fix» did not work in safe mode. Tried scanning the registry for changes, but I didn't find anything relevant, as far as I can tell.
Update 5: I'm trying to debug the process with Process Monitor and Windbg, but I'm not an expert, and I don't even know what to look for in the huge amount of logs generated…
Update 6: I finally got some new information.
When I start the working firefox2.exe with the -console
argument, the console only prints the following two lines:
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
But when I run firefox.exe, I get the following:
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...
(full output here: https://pastebin.com/hZ90jRbz )
Then again when I try to close it:
[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...
(full output: https://pastebin.com/6d2RkbQY )
Update 7: After googling some of the console output, I found a thread on the WINE forum about a bug that somewhat sounds like mine.
The post says:
Latest Firefox 51.0.1 (32-bit). Wine 2.0 (but same behavior in earlier versions). When using winecfg to set a newer version of windows (for example Windows 7) and then start Firefox it starts up with a completely blank tab. Menus settings etc work, but the tab is blank. Seems to be related to this:
[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
Funny thing is that, first time after install in this 32-bit Win7 prefix, it shows the tabs, but after closing and restarting the browser the tabs are all blank. Any ideas? Need to run with higher windows version since some add-ons and other program requires higher than XP win version.
The thread points to a bug report, in which I found this «fix»:
Had to change this line in user.prefs from true to false for Firefox 54 since e10s is now the default (for users without add-ons anyway, and on Win7):
user_pref("browser.tabs.remote.autostart.2", false);
This actually disables multiprocess execution. Which somewhat «solves» the problem. (There are still problems with some extensions, like uBlock Origin.)
But why?
Update 8: Now, after two reboots, the Developer Edition works without changing anything, and the standard version bugs. I still don't know how to make any sense of this.
PS: I also asked on Mozilla and Microsoft support sites, but haven't got an answer yet.