Release Notes for Safari Technology Preview 133

Safari Technology Preview Release 133 is now available for download for macOS Big Sur and betas of macOS Monterey. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS.

This release covers WebKit revisions 281797-282317. Note: The changes for these release notes were updated after publishing to account for an incorrect end revision number.

Note: Tab Groups do not sync in this release.


  • Added support for self-start, self-end, start, end, left, and right values in positional alignment (r282267, r282078, r281840)
  • Added support for percentages in the scale() transform functions, and the scale property (r282144)
  • Added support for sin(), cos(), tan(), e, and pi in calc() (r282162)
  • Fixed incorrect stacking order with an absolutely positioned and negative z-index <div> with a canvas child (r281913)
  • Fixed absolute positioning with orthogonal writing modes (r281995)
  • Fixed right-relative and bottom-relative values in background-position-x and background-position-y (r282234)
  • Fixed incorrect vertical position in table layout when the inline level box has 0px height (r282256)
  • Fixed changing the border size on rows with border-collapse not redrawing (r282266)
  • Fixed position: sticky used within table cells (r282201)
  • Fixed incorrectly calculated position: sticky constraints when the scrolling container has padding and borders (r282138)
  • Fixed an interoperability issue in margin collapsing with overflow: hidden elements (r282085)

CSS Cascade Layers

  • Added initial support for CSS Cascade Layers in Experimental Features:
    • Added support for computing the order correctly for late added sublayers (r281798)
    • Supported layer argument in @import rules (r281928)

CSS Font Loading API

  • Updated the implementation of the CSS Font Loading API to be closer to the spec and other browsers:
    • Fixed CSSFontFaceSet.clear() to not clear CSS-connected members (r281842)
    • Updated FontFaceSet methods that need to react to style changes (r282016, r282015, r282015, r282261, r282204)
    • Updated FontFaceSet.add() to throw when called on a CSS-connected font (r281951)


  • Fixed blank braille display in contenteditable elements when the field is followed by another element (r281920)
  • Made PDFs loaded via <embed> accessible (r282358)


  • Enabled Object.hasOwn (r281835)
  • Implemented Temporal.PlainTime behind the flag --useTemporal=1 (r282125)
  • Implemented Temporal.TimeZone behind the flag --useTemporal=1 (r282018)
  • Implemented Temporal.Duration behind the flag --useTemporal=1 (r281838)
  • Implemented self.structuredClone() (r281808)
  • Implemented Object.hasOwn() (r281799)
  • Updated Intl.Locale weekendInfo to list all weekend days instead of range to follow to the latest spec change (r282257)


  • Added basic support for Storage API (r282130)
  • Added support for ServiceWorkerGlobalScope.serviceWorker (r281854)
  • Added handling for non-fully active documents in navigator.share() / navigator.canShare() (r282282)
  • Enabled Cross-Origin-Opener-Policy / Cross-Origin-EmbedderPolicy headers support (r282105, r282246)
  • Enabled SharedArrayBuffer support when COOP/COEP headers are used (r281832)
  • Fixed scrollbars on pointer-events: none element still intercepting events (r281991)
  • Implemented top-origin and frame-origin partitioning for BroadcastChannel (r282105)
  • Implemented navigation reporting for Cross-Origin-Opener-Policy (r282305)
  • Implemented getClientRects() for SVG elements (r282316)
  • Updated to always fetch the first manifest if provided (r282026)


  • Added support for RTCError and RTCErrorEvent (r282199)
  • Added support for RTCDataChannel closing event (r282198)
  • Added support for RTCSctpTransport (r282197)
  • Updated timing of RTCPeerConnection descriptions update to align with the WebRTC spec (r282217)
  • Updated signaling state check when applying a local or remote description to align with the WebRTC spec (r281985)
  • Updated getDisplayMedia to capture at the constrained size if possible (r281880)


  • Fixed an incorrect number of frames returned if the decoding frame rate doesn’t match the original in WebM (r282196)
  • Removed Web Audio canPlayType() workaround that made it reports false negatives (r282137)

Web and App Extensions

  • Added the extension’s icon to extension URL tabs for both app and web extensions
  • Added the extension name as the title of tabs when an app extension page and does not specify a title