WordPress.org

Make WordPress Core

Ticket #32109: 32109.2.diff

File 32109.2.diff, 3.7 KB (added by azaozz, 7 years ago)
  • src/wp-includes/js/wp-emoji-loader.js

     
    6262                flag:   browserSupportsEmoji( 'flag' )
    6363        };
    6464
     65        settings.DOMReady = false;
     66        settings.readyCallback = function() {
     67                settings.DOMReady = true;
     68        };
     69
    6570        if ( ! settings.supports.simple || ! settings.supports.flag ) {
     71                if ( document.addEventListener ) {
     72                        document.addEventListener( 'DOMContentLoaded', function() { settings.readyCallback(); }, false );
     73                }
     74
    6675                src = settings.source || {};
    6776
    6877                if ( src.concatemoji ) {
  • src/wp-includes/js/wp-emoji.js

     
    44                var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
    55
    66                /**
    7                  * Flag to determine if the browser and the OS support emoji.
    8                  *
    9                  * @since 4.2.0
    10                  *
    11                  * @var Boolean
    12                  */
    13                 supportsEmoji = false,
    14 
    15                 /**
    16                  * Flag to determine if the browser and the OS support flag (two character) emoji.
    17                  *
    18                  * @since 4.2.0
    19                  *
    20                  * @var Boolean
    21                  */
    22                 supportsFlagEmoji = false,
    23 
    24                 /**
    257                 * Flag to determine if we should replace emoji characters with images.
    268                 *
    279                 * @since 4.2.0
     
    3012                 */
    3113                replaceEmoji = false,
    3214
    33                 isIE8 = window.navigator.userAgent.indexOf( 'IE 8' ) !== -1,
    34 
    3515                // Private
    3616                twemoji, timer,
     17                loaded = false,
    3718                count = 0;
    3819
    3920                /**
     
    4223                 * @since 4.2.0
    4324                 */
    4425                function load() {
     26                        if ( loaded ) {
     27                                return;
     28                        }
     29
    4530                        if ( typeof window.twemoji === 'undefined' ) {
    4631                                // Break if waiting for longer than 30 sec.
    4732                                if ( count > 600 ) {
     
    5742                        }
    5843
    5944                        twemoji = window.twemoji;
     45                        loaded = true;
    6046
    6147                        if ( MutationObserver ) {
    6248                                new MutationObserver( function( mutationRecords ) {
     
    121107                                                        return false;
    122108                                        }
    123109
    124                                         if ( ! supportsFlagEmoji && supportsEmoji &&
     110                                        if ( ! settings.supports.flag && settings.supports.simple &&
    125111                                                ! /^1f1(?:e[6-9a-f]|f[0-9a-f])-1f1(?:e[6-9a-f]|f[0-9a-f])$/.test( icon ) ) {
    126112
    127113                                                return false;
     
    132118                        } );
    133119                }
    134120
    135                 // Load when the readyState changes to 'interactive', not 'complete'.
     121                // Equivalent to body.onload.
    136122                function onLoad() {
    137                         if ( ( ! isIE8 && 'interactive' === document.readyState ) || ( isIE8 && 'complete' === document.readyState ) ) {
     123                        if ( 'complete' === document.readyState ) {
    138124                                load();
    139125                        }
    140126                }
     
    143129                 * Initialize our emoji support, and set up listeners.
    144130                 */
    145131                if ( settings ) {
    146                         supportsEmoji = window._wpemojiSettings.supports.simple;
    147                         supportsFlagEmoji = window._wpemojiSettings.supports.flag;
    148                         replaceEmoji = ! supportsEmoji || ! supportsFlagEmoji;
     132                        replaceEmoji = ! settings.supports.simple || ! settings.supports.flag;
    149133
    150                         if ( ( ! isIE8 && 'loading' === document.readyState ) || ( isIE8 && 'complete' !== document.readyState ) ) {
    151                                 if ( document.addEventListener ) {
    152                                         document.addEventListener( 'readystatechange', onLoad, false );
    153                                 } else if ( document.attachEvent ) {
    154                                         document.attachEvent( 'onreadystatechange', onLoad );
     134                        if ( ! settings.DOMReady ) {
     135                                settings.readyCallback = load;
     136
     137                                // Fallback
     138                                if ( 'complete' !== document.readyState ) {
     139                                        if ( document.addEventListener ) {
     140                                                document.addEventListener( 'readystatechange', onLoad, false );
     141                                        } else if ( document.attachEvent ) {
     142                                                document.attachEvent( 'onreadystatechange', onLoad );
     143                                        }
     144                                } else {
     145                                        load();
    155146                                }
    156147                        } else {
    157148                                load();