:main
or :layer
can now be used in a compound target, e.g. :main .child
.:main
will no longer match in the region of the interaction origin). It will now always use the first matching selector in up.fragment.config.mainTargets
.<body>
instead of the main element.:has()
selector where available. Unpoly's polyfill for :has()
will remain included for the time being. It will be removed as Firefox' :has()
support has reached the majority of users (available on Nightly now).script[type="application/ld+json"]
elements is considered a meta tag that will be updated with history changes.script[type="application/ld+json"]
elements in are now preserved in new fragments with up.fragment.config.runScripts = false
.Content-Security-Policy-Report-Only
.X-Up-Validate
header value exceeds 2048 characters, it is now set to :unknown
.
This is to prevent web infrastructure from rejecting an overly long request line with an 413 Entity Too Large
error.up:assets:changed
would be emitted for every response when configuring up.fragment.config.runScripts = false
.up.form.isSubmittable()
now returns false
for forms with a cross-origin URL in their [action]
attribute.up.util.contains()
now works on NodeList
objects.up.fragment.config.runScripts = false
.
If you're upgrading from an older Unpoly version you should load unpoly-migrate.js
to polyfill deprecated APIs.
Changes handled by unpoly-migrate.js
are not considered breaking changes.
See our upgrading guide for details.