mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Remove explicit document
receiver from add/removeEventListener calls
This allows ActionCable to be used in a web worker, where the `document` global is undefined. Previously, attempting to use ActionCable inside a web worker would result in this exception after you try to open a connection: ``` ReferenceError: document is not defined ``` The visibilitychange event won't ever get triggered in a worker, so adding the listener is effectively a no-op there. But the listener is mainly a convenience, rather than a critical piece of the javascript interface, so using ActionCable in a worker will still work. (And you could listen for visibilitychange yourself in a window script, then tell the worker to reconnect if you still want that behavior.)
This commit is contained in:
parent
ac8ffbe76a
commit
39493185d3
2 changed files with 4 additions and 4 deletions
|
@ -49,7 +49,7 @@
|
|||
this.startedAt = now();
|
||||
delete this.stoppedAt;
|
||||
this.startPolling();
|
||||
document.addEventListener("visibilitychange", this.visibilityDidChange);
|
||||
addEventListener("visibilitychange", this.visibilityDidChange);
|
||||
logger.log("ConnectionMonitor started. pollInterval = " + this.getPollInterval() + " ms");
|
||||
}
|
||||
};
|
||||
|
@ -57,7 +57,7 @@
|
|||
if (this.isRunning()) {
|
||||
this.stoppedAt = now();
|
||||
this.stopPolling();
|
||||
document.removeEventListener("visibilitychange", this.visibilityDidChange);
|
||||
removeEventListener("visibilitychange", this.visibilityDidChange);
|
||||
logger.log("ConnectionMonitor stopped");
|
||||
}
|
||||
};
|
||||
|
|
|
@ -21,7 +21,7 @@ class ConnectionMonitor {
|
|||
this.startedAt = now()
|
||||
delete this.stoppedAt
|
||||
this.startPolling()
|
||||
document.addEventListener("visibilitychange", this.visibilityDidChange)
|
||||
addEventListener("visibilitychange", this.visibilityDidChange)
|
||||
logger.log(`ConnectionMonitor started. pollInterval = ${this.getPollInterval()} ms`)
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ class ConnectionMonitor {
|
|||
if (this.isRunning()) {
|
||||
this.stoppedAt = now()
|
||||
this.stopPolling()
|
||||
document.removeEventListener("visibilitychange", this.visibilityDidChange)
|
||||
removeEventListener("visibilitychange", this.visibilityDidChange)
|
||||
logger.log("ConnectionMonitor stopped")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue