Open Bug 580570 Opened 14 years ago Updated 29 days ago

nsIDOMJSWindow.setTimeout ERROR_NOT_INITIALIZED

Categories

(Core :: DOM: Core & HTML, defect, P5)

x86
Windows 7
defect

Tracking

()

People

(Reporter: CodeMachine, Unassigned)

Details

I have the following code: this.saveTimeout = setTimeout(this.utils.bind(this, function() { this.saveXMLNow(); }), this.SAVE_DELAY); Which occasionally (and so far unreproducibly) gives the following: Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) I suspect this is related to my using of JS Code Modules, as I've seen all kinds of such bugs from them. The above code is inside a method of an object (not defined in the code module), that is in a singleton variable inside a module. This particular problem can be worked around I think by doing an immediate save on failure, but it's still somewhat concerning. Spotted on FF3.5/3.6, WinXP/7. No idea how to reproduce or how to gather more info, but my extension is good at collecting such errors and letting me know, so if you help me on how I might gather more details I may be able to provide more as I see this one once every few days I think.
I should also note that this seems to happen at the same time as the problem that makes global variables disappear with errors like: Components is not defined (bug #522338 filed on DOM Inspector) <user-var> is not defined etc.
Assignee: general → nobody
Component: JavaScript Engine → DOM
QA Contact: general → general
I suspect this isn't a DOM issue, because the whole Javascript context seems to become corrupted (eg the "Components is not defined" thing) but I guess I don't know enough about the FF design. In particular this isn't just an issue with my extension, the errors come out of other extensions too, although it's of course possible that my extension is provoking the engine corruption. Still waiting on hearing some ideas about how I can gather more info for you.
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046 Move all DOM bugs that haven't been updated in more than 3 years and has no one currently assigned to P5. If you have questions, please contact :mdaly.
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Severity: normal → S3

I just wanted to report that we have encountered this issue. Here's our setup:

  1. We have a top level frame (in the connect.stripe.com doamin)
  2. We create several iframes in similar, but different domains (connect-js.stripe.com)
  3. These created iframes call setTimeout during their initialization
  4. Sometimes, the setTimeout call fails with NS_ERROR_NOT_INITIALIZED. I was able to get specific load sequences that caused this to happen (the call to setTimeout actually happens in one of our dependencies, @apollo/graphql)

Our fix was to simply replace the call to setTimeout with:

try {
  setTimeout(...);
catch (error) {
  console.error...
}

Interestingly enough, when doing this, the console error never got logged (setTimeout started working). It is hard to develop a website that works with FireFox with this issue (though we have not encountered it again since making this fix), so I wanted to give this feedback.

You need to log in before you can comment on or make changes to this bug.