Make WordPress Core

Changeset 36359


Ignore:
Timestamp:
01/20/2016 07:39:47 AM (9 years ago)
Author:
dd32
Message:

Emoji: Work around a mod_security rule which prevents pages with 4 or more instances of String.fromCharCode( from being served.

Fixes #35412 for trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/wp-emoji-loader.js

    r36160 r36359  
    1414        var canvas = document.createElement( 'canvas' ),
    1515            context = canvas.getContext && canvas.getContext( '2d' ),
     16            stringFromCharCode = String.fromCharCode,
    1617            tone;
    1718
     
    3839             * to a larger image (4-5KB data URL).
    3940             */
    40             context.fillText( String.fromCharCode( 55356, 56806, 55356, 56826 ), 0, 0 );
     41            context.fillText( stringFromCharCode( 55356, 56806, 55356, 56826 ), 0, 0 );
    4142            return canvas.toDataURL().length > 3000;
    4243        } else if ( 'diversity' === type ) {
     
    4647             * compares if the emoji rendering has changed.
    4748             */
    48             context.fillText( String.fromCharCode( 55356, 57221 ), 0, 0 );
     49            context.fillText( stringFromCharCode( 55356, 57221 ), 0, 0 );
    4950            tone = context.getImageData( 16, 16, 1, 1 ).data.toString();
    50             context.fillText( String.fromCharCode( 55356, 57221, 55356, 57343 ), 0, 0 );
     51            context.fillText( stringFromCharCode( 55356, 57221, 55356, 57343 ), 0, 0 );
    5152            // Chrome has issues comparing arrays, so we compare it as a  string, instead.
    5253            return tone !== context.getImageData( 16, 16, 1, 1 ).data.toString();
     
    5859                 * as an empty square, so the center pixel will be blank.
    5960                 */
    60                 context.fillText( String.fromCharCode( 55357, 56835 ), 0, 0 );
     61                context.fillText( stringFromCharCode( 55357, 56835 ), 0, 0 );
    6162            } else {
    6263                /*
     
    6465                 * that the Unicode Consortium have made in years: the burrito.
    6566                 */
    66                 context.fillText( String.fromCharCode( 55356, 57135 ), 0, 0 );
     67                context.fillText( stringFromCharCode( 55356, 57135 ), 0, 0 );
    6768            }
    6869            return context.getImageData( 16, 16, 1, 1 ).data[0] !== 0;
Note: See TracChangeset for help on using the changeset viewer.