diff options
author | Solly Ross <sross@redhat.com> | 2016-09-03 13:58:32 -0400 |
---|---|---|
committer | Solly Ross <sross@redhat.com> | 2016-09-14 14:15:19 -0400 |
commit | d0dc8a7583a8a9ad34ae312a17aee7a7e1e2fc9b (patch) | |
tree | e4662d378334f559f4c87f3049c8adc0e7bcb5e3 | |
parent | 894c15911491ab3fea6ddf823b95bfeaf28036ac (diff) | |
download | novnc-d0dc8a7583a8a9ad34ae312a17aee7a7e1e2fc9b.tar.gz |
Util shouldn't modify window object
This commits prevents Util from modifying the window object.
- `window.requestAnimFrame` was removed (no polyfill is needed anymore)
- the potential redefinition of `console.log` and friends was removed
(all supported browsers have `console.xyz` defined anyway)
-rw-r--r-- | core/display.js | 2 | ||||
-rw-r--r-- | core/util.js | 63 | ||||
-rw-r--r-- | tests/test.display.js | 6 | ||||
-rw-r--r-- | tests/test.util.js | 12 |
4 files changed, 30 insertions, 53 deletions
diff --git a/core/display.js b/core/display.js index 79e1e4f..e6239f4 100644 --- a/core/display.js +++ b/core/display.js @@ -778,7 +778,7 @@ } if (this._renderQ.length > 0) { - requestAnimFrame(this._scan_renderQ.bind(this)); + requestAnimationFrame(this._scan_renderQ.bind(this)); } }, }; diff --git a/core/util.js b/core/util.js index f2e12ae..eda4616 100644 --- a/core/util.js +++ b/core/util.js @@ -11,22 +11,6 @@ var Util = {}; -// -// requestAnimationFrame shim with setTimeout fallback -// - -window.requestAnimFrame = (function () { - "use strict"; - return window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { - window.setTimeout(callback, 1000 / 60); - }; -})(); - /* * ------------------------------------------------------ * Namespaced in Util @@ -45,39 +29,26 @@ Util.init_logging = function (level) { } else { Util._log_level = level; } - if (typeof window.console === "undefined") { - if (typeof window.opera !== "undefined") { - window.console = { - 'log' : window.opera.postError, - 'warn' : window.opera.postError, - 'error': window.opera.postError - }; - } else { - window.console = { - 'log' : function (m) {}, - 'warn' : function (m) {}, - 'error': function (m) {} - }; - } - } Util.Debug = Util.Info = Util.Warn = Util.Error = function (msg) {}; - /* jshint -W086 */ - switch (level) { - case 'debug': - Util.Debug = function (msg) { console.log(msg); }; - case 'info': - Util.Info = function (msg) { console.log(msg); }; - case 'warn': - Util.Warn = function (msg) { console.warn(msg); }; - case 'error': - Util.Error = function (msg) { console.error(msg); }; - case 'none': - break; - default: - throw new Error("invalid logging type '" + level + "'"); + if (typeof window.console !== "undefined") { + /* jshint -W086 */ + switch (level) { + case 'debug': + Util.Debug = function (msg) { console.log(msg); }; + case 'info': + Util.Info = function (msg) { console.info(msg); }; + case 'warn': + Util.Warn = function (msg) { console.warn(msg); }; + case 'error': + Util.Error = function (msg) { console.error(msg); }; + case 'none': + break; + default: + throw new Error("invalid logging type '" + level + "'"); + } + /* jshint +W086 */ } - /* jshint +W086 */ }; Util.get_logging = function () { return Util._log_level; diff --git a/tests/test.display.js b/tests/test.display.js index 32a92e2..7c7c693 100644 --- a/tests/test.display.js +++ b/tests/test.display.js @@ -384,15 +384,15 @@ describe('Display/Canvas Helper', function () { display = new Display({ target: document.createElement('canvas'), prefer_js: false }); display.resize(4, 4); sinon.spy(display, '_scan_renderQ'); - this.old_requestAnimFrame = window.requestAnimFrame; - window.requestAnimFrame = function (cb) { + this.old_requestAnimationFrame = window.requestAnimationFrame; + window.requestAnimationFrame = function (cb) { this.next_frame_cb = cb; }.bind(this); this.next_frame = function () { this.next_frame_cb(); }; }); afterEach(function () { - window.requestAnimFrame = this.old_requestAnimFrame; + window.requestAnimationFrame = this.old_requestAnimationFrame; }); it('should try to process an item when it is pushed on, if nothing else is on the queue', function () { diff --git a/tests/test.util.js b/tests/test.util.js index c4ac403..c903c74 100644 --- a/tests/test.util.js +++ b/tests/test.util.js @@ -12,12 +12,14 @@ describe('Utils', function() { sinon.spy(console, 'log'); sinon.spy(console, 'warn'); sinon.spy(console, 'error'); + sinon.spy(console, 'info'); }); afterEach(function () { console.log.restore(); console.warn.restore(); console.error.restore(); + console.info.restore(); }); it('should use noop for levels lower than the min level', function () { @@ -27,12 +29,16 @@ describe('Utils', function() { expect(console.log).to.not.have.been.called; }); - it('should use console.log for Debug and Info', function () { + it('should use console.log for Debug', function () { Util.init_logging('debug'); Util.Debug('dbg'); - Util.Info('inf'); expect(console.log).to.have.been.calledWith('dbg'); - expect(console.log).to.have.been.calledWith('inf'); + }); + + it('should use console.info for Info', function () { + Util.init_logging('debug'); + Util.Info('inf'); + expect(console.info).to.have.been.calledWith('inf'); }); it('should use console.warn for Warn', function () { |