[wp-trac] [WordPress Trac] #63851: Audit wp_json_encode usage with script tags

WordPress Trac noreply at wordpress.org
Sat Oct 4 01:50:09 UTC 2025


#63851: Audit wp_json_encode usage with script tags
--------------------------------------+-------------------------
 Reporter:  jonsurrell                |       Owner:  jonsurrell
     Type:  task (blessed)            |      Status:  closed
 Priority:  normal                    |   Milestone:  6.9
Component:  General                   |     Version:
 Severity:  normal                    |  Resolution:  fixed
 Keywords:  good-first-bug has-patch  |     Focuses:  javascript
--------------------------------------+-------------------------

Comment (by westonruter):

 In [changeset:"60899" 60899]:
 {{{
 #!CommitTicketReference repository="" revision="60899"
 Emoji: Convert the emoji loader from an inline blocking script to a
 (deferred) script module.

 This modernizes the emoji loader script by converting it from a blocking
 inline script with an IIFE to a script module. Using a script module
 improves the performance of the FCP and LCP metrics since it does not
 block the HTML parser. Since script modules are deferred and run
 immediately before `DOMContentLoaded`, the logic to wait until that event
 is also now removed. Additionally, since the script is loaded as a module,
 it has been modernized to use `const`, `let`, and arrow functions. The
 `sourceURL` comment is also added. See #63887.

 The emoji settings are now passed via a separate `script` tag with a
 `type` of `application/json`, following the new "pull" paradigm introduced
 for exporting data from PHP to script modules. See #58873. The JSON data
 is also now encoded in a more resilient way according to #63851. When the
 `wp-emoji-loader.js` script module executes, it continues to populate the
 `window._wpemojiSettings` global for backwards-compatibility for any
 extensions that may be using it.

 A new `uglify:emoji-loader` grunt task is added which ensures `wp-
 includes/js/wp-emoji-loader.js` is processed as a module and that top-
 level symbols are minified.

 Follow-up to [60681].

 Props westonruter, jonsurrell, adamsilverstein, peterwilsoncc.
 See #63851, #63887.
 Fixes #63842.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/63851#comment:10>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list