Changeset 62807
- Timestamp:
- 07/20/2026 03:36:55 PM (14 hours ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
src/wp-includes/media.php (modified) (1 diff)
-
src/wp-includes/script-modules.php (modified) (1 diff)
-
tests/phpunit/tests/media/wpCrossOriginIsolation.php (modified) (1 diff)
-
tests/phpunit/tests/script-modules/wpScriptModules.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/media.php
r62698 r62807 6609 6609 wp_add_inline_script( 'wp-block-editor', 'window.__documentIsolationPolicy = true;', 'before' ); 6610 6610 } 6611 6612 /*6613 * Register the @wordpress/vips/worker script module as a dynamic dependency6614 * of the wp-upload-media classic script. This ensures it is included in the6615 * import map so that the dynamic import() in upload-media.js can resolve it.6616 */6617 wp_scripts()->add_data(6618 'wp-upload-media',6619 'module_dependencies',6620 array( '@wordpress/vips/worker' )6621 );6622 6611 } 6623 6612 -
trunk/src/wp-includes/script-modules.php
r62428 r62807 212 212 } 213 213 214 // VIPS files are always minified — the non-minified versions are not 215 // shipped because they are ~10MB of inlined WASM with no debugging value. 216 if ( str_starts_with( $file_name, 'vips/' ) ) { 214 // VIPS files and the video-conversion worker are always minified — the 215 // non-minified versions are not shipped because they consist of large 216 // inlined WASM/worker code with no debugging value. 217 if ( str_starts_with( $file_name, 'vips/' ) || 'video-conversion/worker.js' === $file_name ) { 217 218 $file_name = str_replace( '.js', '.min.js', $file_name ); 218 219 } elseif ( '' !== $suffix ) { -
trunk/tests/phpunit/tests/media/wpCrossOriginIsolation.php
r62615 r62807 317 317 318 318 /** 319 * Verifies that setting the client-side media processing flag does not 320 * clobber the script module dependencies of the upload-media script. 321 * 322 * Re-registering `@wordpress/vips/worker` via WP_Scripts::add_data(), 323 * which overwrites rather than merges, dropped the module dependencies 324 * declared in the packages asset file. This removed 325 * `@wordpress/video-conversion/worker` from the import map and broke 326 * animated GIF to video conversion. 327 * 328 * @ticket 65664 329 * 330 * @covers ::wp_set_client_side_media_processing_flag 331 */ 332 public function test_set_flag_preserves_upload_media_module_dependencies() { 333 add_filter( 'wp_client_side_media_processing_enabled', '__return_true' ); 334 335 $before = wp_scripts()->get_data( 'wp-upload-media', 'module_dependencies' ); 336 337 wp_set_client_side_media_processing_flag(); 338 339 $after = wp_scripts()->get_data( 'wp-upload-media', 'module_dependencies' ); 340 341 $this->assertSame( 342 $before, 343 $after, 344 'The module dependencies of the upload-media script should not be modified.' 345 ); 346 347 $ids = array(); 348 foreach ( (array) $after as $module ) { 349 $ids[] = is_array( $module ) ? $module['id'] : $module; 350 } 351 352 $this->assertContains( 353 '@wordpress/vips/worker', 354 $ids, 355 'The vips worker should be a module dependency of the upload-media script.' 356 ); 357 $this->assertContains( 358 '@wordpress/video-conversion/worker', 359 $ids, 360 'The video-conversion worker should be a module dependency of the upload-media script.' 361 ); 362 } 363 364 /** 319 365 * Verifies that cross-origin elements get crossorigin="anonymous" added. 320 366 * -
trunk/tests/phpunit/tests/script-modules/wpScriptModules.php
r62428 r62807 1849 1849 $actual_footer_script_modules 1850 1850 ); 1851 } 1852 1853 /** 1854 * Tests that every default script module points to a file that exists on 1855 * disk, both with and without SCRIPT_DEBUG. 1856 * 1857 * Some files are only shipped minified (large inlined WASM or worker 1858 * code with no debugging value). Those must be special-cased in 1859 * wp_default_script_modules() so the non-minified URL is never used; 1860 * otherwise the import map points to a non-existent file under 1861 * SCRIPT_DEBUG. The exceptions below must mirror that special case. 1862 * 1863 * @ticket 65664 1864 * 1865 * @covers ::wp_default_script_modules 1866 */ 1867 public function test_default_script_module_files_exist() { 1868 $assets_file = ABSPATH . WPINC . '/assets/script-modules-packages.php'; 1869 if ( ! file_exists( $assets_file ) ) { 1870 $this->markTestSkipped( 'The script modules packages asset file is not available.' ); 1871 } 1872 1873 $assets = include $assets_file; 1874 $this->assertNotEmpty( $assets, 'The script modules packages asset file should not be empty.' ); 1875 1876 foreach ( array_keys( $assets ) as $file_name ) { 1877 // Files only shipped minified; mirrors wp_default_script_modules(). 1878 if ( str_starts_with( $file_name, 'vips/' ) || 'video-conversion/worker.js' === $file_name ) { 1879 $file_name = str_replace( '.js', '.min.js', $file_name ); 1880 } 1881 1882 $min_file_name = str_ends_with( $file_name, '.min.js' ) 1883 ? $file_name 1884 : substr( $file_name, 0, -3 ) . '.min.js'; 1885 1886 $this->assertFileExists( 1887 ABSPATH . WPINC . "/js/dist/script-modules/{$file_name}", 1888 "The script module file used with SCRIPT_DEBUG enabled should exist for '{$file_name}'." 1889 ); 1890 $this->assertFileExists( 1891 ABSPATH . WPINC . "/js/dist/script-modules/{$min_file_name}", 1892 "The minified script module file should exist for '{$file_name}'." 1893 ); 1894 } 1851 1895 } 1852 1896
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)