From 133d5cf8d22a4d3b5d6d3a10bdafcdd30cbe517f Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Mon, 4 Feb 2013 10:51:53 -0600 Subject: [PATCH] Workaround for Chrome's issue 174023 --- src/fonts.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/fonts.js b/src/fonts.js index 3cdd8a578..f29239a4b 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -629,7 +629,9 @@ var FontLoader = { } request.complete(); // cleanup - document.body.removeChild(frame); + if (frame) { + document.body.removeChild(frame); + } window.removeEventListener('message', fontLoaderMessage, false); }, false); @@ -654,6 +656,17 @@ var FontLoader = { src += '

Hi

'; } src += ''; + + var MAX_IFRAME_SRC_LENGTH = 1000000, IFRAME_TIMEOUT = 2000; + // Chrome fails for long src attributes (see issue 174023) + if (src.length > MAX_IFRAME_SRC_LENGTH) { + // ... waiting for some fixed period of time instead + window.setTimeout(function() { + window.postMessage(requestId, '*'); + }, IFRAME_TIMEOUT); + return; + } + var frame = document.createElement('iframe'); frame.src = 'data:text/html,' + src; frame.setAttribute('style',