From 35b7340af950eb0bd38dcefdd8eed40b18d2166c Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Sat, 7 Sep 2024 22:44:17 +0000 Subject: [PATCH] Administration: Remove old IE9 code from `wp-admin/js/svg-painter.js`. About half of the file's code was a back-compat polyfill of base64 functions for IE9. Since WordPress no longer supports IE9 as of version 4.8, and all modern browsers come with these functions, the polyfills can be removed. Follow-up to [26072], [26131], [26601], [47771]. Props TobiasBg, sabernhardt. Fixes #61995. Built from https://develop.svn.wordpress.org/trunk@58997 git-svn-id: http://core.svn.wordpress.org/trunk@58393 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/admin-header.php | 2 +- wp-admin/js/svg-painter.js | 123 ++------------------------------- wp-admin/js/svg-painter.min.js | 2 +- wp-includes/version.php | 2 +- 4 files changed, 10 insertions(+), 119 deletions(-) diff --git a/wp-admin/admin-header.php b/wp-admin/admin-header.php index 53e3c06cfd..235468f146 100644 --- a/wp-admin/admin-header.php +++ b/wp-admin/admin-header.php @@ -203,7 +203,7 @@ if ( is_network_admin() ) { $admin_body_class .= ' network-admin'; } -$admin_body_class .= ' no-customize-support no-svg'; +$admin_body_class .= ' no-customize-support svg'; if ( $current_screen->is_block_editor() ) { $admin_body_class .= ' block-editor-page wp-embed-responsive'; diff --git a/wp-admin/js/svg-painter.js b/wp-admin/js/svg-painter.js index a356735446..6a99d070d7 100644 --- a/wp-admin/js/svg-painter.js +++ b/wp-admin/js/svg-painter.js @@ -8,123 +8,22 @@ window.wp = window.wp || {}; wp.svgPainter = ( function( $, window, document, undefined ) { 'use strict'; - var selector, base64, painter, + var selector, painter, colorscheme = {}, elements = []; $( function() { - // Detection for browser SVG capability. - if ( document.implementation.hasFeature( 'http://www.w3.org/TR/SVG11/feature#Image', '1.1' ) ) { - $( document.body ).removeClass( 'no-svg' ).addClass( 'svg' ); - wp.svgPainter.init(); - } + wp.svgPainter.init(); }); - /** - * Needed only for IE9 - * - * Based on jquery.base64.js 0.0.3 - https://github.com/yckart/jquery.base64.js - * - * Based on: https://gist.github.com/Yaffle/1284012 - * - * Copyright (c) 2012 Yannick Albert (http://yckart.com) - * Licensed under the MIT license - * http://www.opensource.org/licenses/mit-license.php - */ - base64 = ( function() { - var c, - b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', - a256 = '', - r64 = [256], - r256 = [256], - i = 0; - - function init() { - while( i < 256 ) { - c = String.fromCharCode(i); - a256 += c; - r256[i] = i; - r64[i] = b64.indexOf(c); - ++i; - } - } - - function code( s, discard, alpha, beta, w1, w2 ) { - var tmp, length, - buffer = 0, - i = 0, - result = '', - bitsInBuffer = 0; - - s = String(s); - length = s.length; - - while( i < length ) { - c = s.charCodeAt(i); - c = c < 256 ? alpha[c] : -1; - - buffer = ( buffer << w1 ) + c; - bitsInBuffer += w1; - - while( bitsInBuffer >= w2 ) { - bitsInBuffer -= w2; - tmp = buffer >> bitsInBuffer; - result += beta.charAt(tmp); - buffer ^= tmp << bitsInBuffer; - } - ++i; - } - - if ( ! discard && bitsInBuffer > 0 ) { - result += beta.charAt( buffer << ( w2 - bitsInBuffer ) ); - } - - return result; - } - - function btoa( plain ) { - if ( ! c ) { - init(); - } - - plain = code( plain, false, r256, b64, 8, 6 ); - return plain + '===='.slice( ( plain.length % 4 ) || 4 ); - } - - function atob( coded ) { - var i; - - if ( ! c ) { - init(); - } - - coded = coded.replace( /[^A-Za-z0-9\+\/\=]/g, '' ); - coded = String(coded).split('='); - i = coded.length; - - do { - --i; - coded[i] = code( coded[i], true, r64, a256, 6, 8 ); - } while ( i > 0 ); - - coded = coded.join(''); - return coded; - } - - return { - atob: atob, - btoa: btoa - }; - })(); - return { init: function() { painter = this; selector = $( '#adminmenu .wp-menu-image, #wpadminbar .ab-item' ); - this.setColors(); - this.findElements(); - this.paint(); + painter.setColors(); + painter.findElements(); + painter.paint(); }, setColors: function( colors ) { @@ -201,11 +100,7 @@ wp.svgPainter = ( function( $, window, document, undefined ) { } try { - if ( 'atob' in window ) { - xml = window.atob( encoded[1] ); - } else { - xml = base64.atob( encoded[1] ); - } + xml = window.atob( encoded[1] ); } catch ( error ) {} if ( xml ) { @@ -218,11 +113,7 @@ wp.svgPainter = ( function( $, window, document, undefined ) { // Replace `fill` properties in `