Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Tor Browser Tor Browser
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 876
    • Issues 876
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 14
    • Merge requests 14
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

Admin message

GitLab has been upgraded GitLab 16, please report any issues!

  • The Tor Project
  • Applications
  • Tor BrowserTor Browser
  • Issues
  • #41711
Closed
Open
Issue created Mar 31, 2023 by Pier Angelo Vendrame@pierovMaintainer

Race condition when opening a new window in New Identity

I think that we have a race condition during the new identity.

It's especially visible when loggers try to do something, but we don't have a window yet:

[Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDocShell.domWindow]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: resource://devtools/server/actors/targets/window-global.js :: get window :: line 422"  data: no] window-global.js:422:5
    get window resource://devtools/server/actors/targets/window-global.js:422
    _getWindowForBrowserConsole resource://devtools/server/actors/webconsole.js:269
    get global resource://devtools/server/actors/webconsole.js:247
    makeDebuggeeValue resource://devtools/server/actors/webconsole.js:470
    arguments resource://devtools/server/actors/webconsole.js:2058
    map self-hosted:180
    prepareConsoleMessageForRemote resource://devtools/server/actors/webconsole.js:2057
    onConsoleAPICall resource://devtools/server/actors/webconsole.js:1793
    onConsoleAPICall self-hosted:1115
    onConsoleAPILogEvent resource://devtools/server/actors/webconsole/listeners/console-api.js:115
    onConsoleAPILogEvent self-hosted:1115
    CS_recordEvent resource://gre/modules/ConsoleAPIStorage.jsm:174
    Redux 3
    React 13
    dispatchInteractiveEvent self-hosted:1162

I've got it also when the TorProtolService tried to log some errors because I had killed tor to do some tests (so, the result was that the original issues were even more difficult to debug, because I had these errors, instead).
At a certain point I've seen it also with our connection pill and browser.js in the stack trace, but I don't remember all the details.

I think that at the moment things usually work as expected, except when we have some logs (usually in error states?).

So, I propose promiseing the new window, and awaiting for it, either before or after closing the old windows.

I suppose it should not make a big difference, and in any case relying on some race condition to make sure new identity works doesn't seem a good idea.

In this way I could not get any more of these errors.

Assignee
Assign to
Time tracking