From 1e4886a15a29596bd548d058651620c7c0e67132 Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Wed, 6 Apr 2016 10:38:48 -0500 Subject: [PATCH] Remove global window and navigator usages from the core code. --- examples/node/domstubs.js | 4 ---- src/display/api.js | 2 +- src/display/font_loader.js | 14 +++++++------- src/frameworks.js | 2 +- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/examples/node/domstubs.js b/examples/node/domstubs.js index fd7add63a..b654d6070 100644 --- a/examples/node/domstubs.js +++ b/examples/node/domstubs.js @@ -120,10 +120,6 @@ DOMElement.prototype = { }, } -global.window = global; - -global.navigator = { userAgent: 'node' }; - global.document = { childNodes : [], diff --git a/src/display/api.js b/src/display/api.js index 17b280d9e..3dfb93926 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -2002,7 +2002,7 @@ var InternalRenderTask = (function InternalRenderTaskClosure() { }, _scheduleNext: function InternalRenderTask__scheduleNext() { - if (this.useRequestAnimationFrame) { + if (this.useRequestAnimationFrame && typeof window !== 'undefined') { window.requestAnimationFrame(this._nextBound); } else { Promise.resolve(undefined).then(this._nextBound); diff --git a/src/display/font_loader.js b/src/display/font_loader.js index e6b09bb4d..74f676c72 100644 --- a/src/display/font_loader.js +++ b/src/display/font_loader.js @@ -308,19 +308,20 @@ FontLoader.isFontLoadingAPISupported = typeof document !== 'undefined' && //#if !(MOZCENTRAL || CHROME) Object.defineProperty(FontLoader, 'isSyncFontLoadingSupported', { get: function () { + if (typeof navigator === 'undefined') { + // node.js - we can pretend sync font loading is supported. + return shadow(FontLoader, 'isSyncFontLoadingSupported', true); + } + var supported = false; // User agent string sniffing is bad, but there is no reliable way to tell // if font is fully loaded and ready to be used with canvas. - var userAgent = window.navigator.userAgent; - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(userAgent); + var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); if (m && m[1] >= 14) { supported = true; } // TODO other browsers - if (userAgent === 'node') { - supported = true; - } return shadow(FontLoader, 'isSyncFontLoadingSupported', supported); }, enumerable: true, @@ -378,8 +379,7 @@ var FontFaceObject = (function FontFaceObjectClosure() { var fontName = this.loadedName; // Add the font-face rule to the document - var url = ('url(data:' + this.mimetype + ';base64,' + - window.btoa(data) + ');'); + var url = ('url(data:' + this.mimetype + ';base64,' + btoa(data) + ');'); var rule = '@font-face { font-family:"' + fontName + '";src:' + url + '}'; if (this.options.fontRegistry) { diff --git a/src/frameworks.js b/src/frameworks.js index ac21dcbe9..9b5109c97 100644 --- a/src/frameworks.js +++ b/src/frameworks.js @@ -20,7 +20,7 @@ 'use strict'; var useRequireEnsure = false; -if (typeof module !== 'undefined' && module.require) { +if (typeof window === 'undefined') { // node.js - disable worker and set require.ensure. isWorkerDisabled = true; if (typeof require.ensure === 'undefined') {