Linux 软件免费装
Banner图

Client-Side Media Everywhere

开发者 adamsilverstein
更新时间 2026年8月5日 06:31
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

performance media firefox safari cross-origin

下载

1.1.0 1.1.1

详情介绍:

In one sentence: this plugin gets client-side media processing working in Safari and Firefox, which WordPress otherwise only does in Chrome. When you upload an image in Chrome, WordPress resizes and compresses it on your own device before it is sent, so less data goes over the wire and your server does much less work. In Safari and Firefox that is switched off, and uploads fall back to the older server-side path. This plugin switches it back on. There is nothing to configure - activate the plugin and it works. Chrome is unaffected, because WordPress already handles it there. One thing to know before you install: this works by turning on cross-origin isolation, which is a real security boundary and can affect embeds and third-party media inside the editor. It is worth reading the Tradeoffs section below first. Why WordPress switches it off: WordPress 7.1 and Gutenberg include client-side media processing powered by WebAssembly (wasm-vips). This requires cross-origin isolation, which is achieved via Document-Isolation-Policy (DIP) on Chrome 137+. However, Firefox and Safari do not yet support DIP, and neither does Chrome before 137, so client-side media processing is disabled on those browsers. This plugin restores support for Firefox and Safari by sending the older COEP/COOP headers (Cross-Origin-Embedder-Policy / Cross-Origin-Opener-Policy) on browsers where DIP is not available. Under the hood: Requirements:

安装:

  1. Upload the client-side-media-everywhere folder to /wp-content/plugins/.
  2. Activate the plugin through the 'Plugins' menu in WordPress.
  3. The plugin activates automatically on browsers that need COEP/COOP headers.

常见问题:

Why is media still processed server-side?

Check that your site is served over HTTPS (or localhost). Client-side media processing requires a secure context; without one, cross-origin isolation is unavailable and WordPress silently falls back to server-side processing. The editor logs an informational message in the browser console explaining the reason for the fallback.

Do I need this plugin on Chrome?

No. Chrome 137+ uses Document-Isolation-Policy, which is handled by WordPress core / Gutenberg. This plugin only activates on browsers that do not support DIP.

Will this break my site?

Not the front-end: the COEP/COOP headers are only sent on block editor admin pages, and only on browsers that need them (Firefox, Safari, Chrome < 137). Within the editor on those browsers, cross-origin isolation can break oEmbed previews, media served from third-party origins, popup-based authentication flows, and plugins that load editor assets cross-origin. See the Tradeoffs section for the details and for how to turn the headers off if you hit one.

Can I disable the COEP/COOP behavior?

Yes - deactivate the plugin. Sending the COEP/COOP headers is the plugin's only job, so there is no separate settings toggle: activating the plugin turns the behavior on, deactivating it turns it off. To keep the plugin active but suppress the headers programmatically (for example, per environment), use the csme_use_coep_coop filter: add_filter( 'csme_use_coep_coop', '__return_false' );

How do HEIC uploads work?

WordPress 7.1 converts HEIC images client-side where possible and server-side otherwise. This plugin no longer includes any HEIC handling of its own.

更新日志:

1.1.1 1.1.0 1.0.0 0.2.0 0.1.0