diff --git a/lib/experimental/media/load.php b/lib/experimental/media/load.php index bcb02accf62a6..5cb16d84e1d8d 100644 --- a/lib/experimental/media/load.php +++ b/lib/experimental/media/load.php @@ -186,24 +186,6 @@ function gutenberg_rest_get_attachment_filesize( array $post ): ?int { return null; } -/** - * Filters the list of rewrite rules formatted for output to an .htaccess file. - * - * Adds support for serving wasm-vips locally. - * - * @param string $rules mod_rewrite Rewrite rules formatted for .htaccess. - * @return string Filtered rewrite rules. - */ -function gutenberg_filter_mod_rewrite_rules( string $rules ): string { - $rules .= "\n# BEGIN Gutenberg client-side media processing experiment\n" . - "AddType application/wasm wasm\n" . - "# END Gutenberg client-side media processing experiment\n"; - - return $rules; -} - -add_filter( 'mod_rewrite_rules', 'gutenberg_filter_mod_rewrite_rules' ); - /** * Enables cross-origin isolation in the block editor. * @@ -254,11 +236,16 @@ function gutenberg_start_cross_origin_isolation_output_buffer(): void { $coep = $is_safari ? 'require-corp' : 'credentialless'; ob_start( - function ( string $output ) use ( $coep ): string { - header( 'Cross-Origin-Opener-Policy: same-origin' ); - header( "Cross-Origin-Embedder-Policy: $coep" ); + function ( string $output, ?int $phase ) use ( $coep ): string { + // Only send the header when the buffer is not being cleaned. + if ( ( $phase & PHP_OUTPUT_HANDLER_CLEAN ) === 0 ) { + header( 'Cross-Origin-Opener-Policy: same-origin' ); + header( "Cross-Origin-Embedder-Policy: $coep" ); + + $output = gutenberg_add_crossorigin_attributes( $output ); + } - return gutenberg_add_crossorigin_attributes( $output ); + return $output; } ); }