]> git.proxmox.com Git - mirror_novnc.git/commitdiff
Util shouldn't modify window object
authorSolly Ross <sross@redhat.com>
Sat, 3 Sep 2016 17:58:32 +0000 (13:58 -0400)
committerSolly Ross <sross@redhat.com>
Fri, 16 Sep 2016 19:49:52 +0000 (15:49 -0400)
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)

core/display.js
core/util.js
tests/test.display.js
tests/test.util.js

index 79e1e4f61d1d5369fb5de0b6001b2db76267c014..e6239f48a8c6d00a6506b92976230c05fd536d15 100644 (file)
             }
 
             if (this._renderQ.length > 0) {
-                requestAnimFrame(this._scan_renderQ.bind(this));
+                requestAnimationFrame(this._scan_renderQ.bind(this));
             }
         },
     };
index f2e12ae17aeada9f3e8bbbbdb51115e035533df4..eda4616aef117c58b46815a4227f081df0628da7 100644 (file)
 
 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;
index 32a92e22145bed78f01fe52fd79bcf7056cd14e4..7c7c693be09c65142eff7f5b6e3fb848247a43e5 100644 (file)
@@ -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 () {
index c4ac403babc8a05283b25dd4ec092c9fdf2ff0e2..c903c745ae8c57b806021d3763d4dca3f6e8c82e 100644 (file)
@@ -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 () {