Skip to content

Commit

Permalink
Merge pull request rails#34941 from rmacklin/allow-actioncable-to-run…
Browse files Browse the repository at this point in the history
…-in-web-workers

Avoid ReferenceError exceptions if ActionCable is used in a web worker
  • Loading branch information
javan authored Jan 16, 2019
2 parents a5fee7d + 3949318 commit 4811921
Showing 4 changed files with 12 additions and 12 deletions.
8 changes: 4 additions & 4 deletions actioncable/app/assets/javascripts/action_cable.js
Original file line number Diff line number Diff line change
@@ -3,8 +3,8 @@
})(this, function(exports) {
"use strict";
var adapters = {
logger: window.console,
WebSocket: window.WebSocket
logger: self.console,
WebSocket: self.WebSocket
};
var logger = {
log: function log() {
@@ -49,15 +49,15 @@
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");
}
};
ConnectionMonitor.prototype.stop = function stop() {
if (this.isRunning()) {
this.stoppedAt = now();
this.stopPolling();
document.removeEventListener("visibilitychange", this.visibilityDidChange);
removeEventListener("visibilitychange", this.visibilityDidChange);
logger.log("ConnectionMonitor stopped");
}
};
4 changes: 2 additions & 2 deletions actioncable/app/javascript/action_cable/adapters.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export default {
logger: window.console,
WebSocket: window.WebSocket
logger: self.console,
WebSocket: self.WebSocket
}
4 changes: 2 additions & 2 deletions actioncable/app/javascript/action_cable/connection_monitor.js
Original file line number Diff line number Diff line change
@@ -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")
}
}
8 changes: 4 additions & 4 deletions actioncable/test/javascript/src/unit/action_cable_test.js
Original file line number Diff line number Diff line change
@@ -6,14 +6,14 @@ const {module, test} = QUnit
module("ActionCable", () => {
module("Adapters", () => {
module("WebSocket", () => {
test("default is window.WebSocket", assert => {
assert.equal(ActionCable.adapters.WebSocket, window.WebSocket)
test("default is self.WebSocket", assert => {
assert.equal(ActionCable.adapters.WebSocket, self.WebSocket)
})
})

module("logger", () => {
test("default is window.console", assert => {
assert.equal(ActionCable.adapters.logger, window.console)
test("default is self.console", assert => {
assert.equal(ActionCable.adapters.logger, self.console)
})
})
})

0 comments on commit 4811921

Please sign in to comment.