Sha256: 8b0630c930eccec61fd1c09c9912fa703287e452fac5ca8e3166607f6496c0a9

Contents?: true

Size: 1.51 KB

Versions: 17

Compression:

Stored size: 1.51 KB

Contents

goog.provide('webfont.NativeFontWatchRunner');

goog.require('webfont.Font');

goog.scope(function () {
  /**
  * @constructor
  * @param {function(webfont.Font)} activeCallback
  * @param {function(webfont.Font)} inactiveCallback
  * @param {webfont.DomHelper} domHelper
  * @param {webfont.Font} font
  * @param {number=} opt_timeout
  * @param {string=} opt_fontTestString
  */
  webfont.NativeFontWatchRunner = function(activeCallback, inactiveCallback, domHelper, font, opt_timeout, opt_fontTestString) {
    this.activeCallback_ = activeCallback;
    this.inactiveCallback_ = inactiveCallback;
    this.font_ = font;
    this.domHelper_ = domHelper;
    this.timeout_ = opt_timeout || 3000;
    this.fontTestString_ = opt_fontTestString || undefined;
  };

  var NativeFontWatchRunner = webfont.NativeFontWatchRunner;

  NativeFontWatchRunner.prototype.start = function () {
    var doc = this.domHelper_.getLoadWindow().document,
        that = this;

    // We're using Promises here because the font load API
    // uses them, so we can be sure they're available.
    Promise.race([new Promise(function (resolve, reject) {
      goog.global.setTimeout(function () {
        reject(that.font_);
      }, that.timeout_);
    }), doc.fonts.load(this.font_.toCssString(), this.fontTestString_)]).then(function (fonts) {
      if (fonts.length === 1) {
        that.activeCallback_(that.font_);
      } else {
        that.inactiveCallback_(that.font_);
      }
    }, function () {
      that.inactiveCallback_(that.font_);
    });
  };
});

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
webfontloader-1.6.2 src/core/nativefontwatchrunner.js
webfontloader-1.6.0 src/core/nativefontwatchrunner.js
webfontloader-1.5.21 src/core/nativefontwatchrunner.js
webfontloader-1.5.20 src/core/nativefontwatchrunner.js
webfontloader-1.5.19 src/core/nativefontwatchrunner.js
webfontloader-1.5.18 src/core/nativefontwatchrunner.js
webfontloader-1.5.17 src/core/nativefontwatchrunner.js
webfontloader-1.5.16 src/core/nativefontwatchrunner.js
webfontloader-1.5.15 src/core/nativefontwatchrunner.js
webfontloader-1.5.14 src/core/nativefontwatchrunner.js
webfontloader-1.5.13 src/core/nativefontwatchrunner.js
webfontloader-1.5.12 src/core/nativefontwatchrunner.js
webfontloader-1.5.11 src/core/nativefontwatchrunner.js
webfontloader-1.5.10 src/core/nativefontwatchrunner.js
webfontloader-1.5.9 src/core/nativefontwatchrunner.js
webfontloader-1.5.8 src/core/nativefontwatchrunner.js
webfontloader-1.5.7 src/core/nativefontwatchrunner.js