v6.4.0
A build on your machine can now become a link someone else can open, and the
bundled Live Preview carrier finally allows the origin that opens it.
Added
extension_preview_webrenders an in-progress build in the web emulator.
It builds the project, pointspreview.extension.devatdist/<browser>over
the dev-onlypreview://buildscheme, and returns a deep link plus a
loadability check against the preview dev server.surface:"inspect"renders
ininspect.extension.devinstead, for fixture and forensic work. This tool
reaches npm for the first time in this release.share:trueuploads the build you just made. It POSTs the resolved
dist/<browser>to the platform's artifact store and returns a public
preview.extension.devlink that renders those exact bytes, for a recipient
with no install, no sign-in, and no dev server. That link also serves the
whole build as a downloadable zip (share.zipUrl), so sharing it hands over
the built code.share.servesreportsuploaded-local-build. Sharing needs a
token scoped to an existing extension.dev workspace and project
(extension_loginorEXTENSION_DEV_TOKEN, valid up to 7 days), degrades to
a login hint when there is no token, and never fails the local preview.
sharealso returnsexpiresAtandrevokeUrl: shared builds expire, and
DELETEingrevokeUrlwith the same token kills the link for good, which is
the part a TTL alone cannot do when a link reaches the wrong person.- A shared link's revoke handle survives losing the tool output. Revocation
is permanent and re-sharing mints a new artifact id, soshare.revokeUrlis
the only handle that can ever pull a given link, and losing it used to mean
waiting out the 30-day TTL. Every successful share is now appended to
.extension.dev/shared-previews.jsonin the project, next to the carrier's
own project-local state and gitignored the same way: one entry per share with
previewUrl,artifactId,revokeUrl,expiresAt,zipUrland the time it
was shared. The list is only ever appended to, an unreadable file is kept
aside instead of overwritten, a write that fails never fails the share, and
the returnedshare.recordand note say where the handle went. If the entry
cannot be added to.gitignore, the response says so. extension_theme_verifysettles a Chrome theme manifest before it ships.
It derives every color current Chrome would paint from the manifest with a
transcribed Chromium resolver and reports the divergence class of any problem:
D1 fabrication, D3 parity gap, D4 acceptance gap (keys Chrome silently
discards, such as dead legacy keys, incognito keys, unknown keys and
out-of-range values). The legs that need a real browser come back as
needsAttendedwith a pointer to the attended harnesses, never as passed.
Fixed
- The bundled Live Preview carrier reaches
preview.extension.dev. This
package ships the carrier prebuilt andextension_devmaterializes it into
the project's./extensions, so the carrier only changes when the package
does. Itsexternally_connectableallowlist had no web preview origin, so a
page onpreview.extension.devcould not talk to the carrier at all. 6.3.0
shipped without the fix. - The carrier popup requested
icons/icon.pngwhile the carrier build ships
images/icon.png, so the popup icon was broken.
Changed
extension_preview_webtakes nochannelargument. It renders the build on
disk, not a promoted CI build.extension_publishand
extension_release_promoteare unchanged and remain the path for released,
channel-scoped builds.- The server advertises 35 tools, up from 33.