Merge pull request #2671 from yurydelendik/chrome
Workaround for Chrome's issue 174023
This commit is contained in:
commit
2260458f27
15
src/fonts.js
15
src/fonts.js
@ -632,7 +632,9 @@ var FontLoader = {
|
|||||||
}
|
}
|
||||||
request.complete();
|
request.complete();
|
||||||
// cleanup
|
// cleanup
|
||||||
document.body.removeChild(frame);
|
if (frame) {
|
||||||
|
document.body.removeChild(frame);
|
||||||
|
}
|
||||||
window.removeEventListener('message', fontLoaderMessage, false);
|
window.removeEventListener('message', fontLoaderMessage, false);
|
||||||
},
|
},
|
||||||
false);
|
false);
|
||||||
@ -657,6 +659,17 @@ var FontLoader = {
|
|||||||
src += '<p style="font-family:\'' + names[i] + '\'">Hi</p>';
|
src += '<p style="font-family:\'' + names[i] + '\'">Hi</p>';
|
||||||
}
|
}
|
||||||
src += '</body></html>';
|
src += '</body></html>';
|
||||||
|
|
||||||
|
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');
|
var frame = document.createElement('iframe');
|
||||||
frame.src = 'data:text/html,' + src;
|
frame.src = 'data:text/html,' + src;
|
||||||
frame.setAttribute('style',
|
frame.setAttribute('style',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user