Release Notes for Safari Technology Preview 99

Safari Technology Preview Release 99 is now available for download for macOS Catalina and macOS Mojave. 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 253789-254696.

Legacy Plug-Ins

  • Removed support for Adobe Flash

Web Inspector

  • Elements
    • Enabled the P3 color picker (r253802)
    • Added RGBA input fields for the P3 color picker (r254243)
    • Added support for manipulating the value with the arrow keys in the color picker (r254094)
    • Added color() suggestion when editing a CSS property that accepts color values (r254316)
  • Sources
    • Allowed editing of style sheets injected by Safari App Extensions (r254186)
  • Console
    • Ensured that the clear button is always visible, even at smaller widths (r253800)


  • Added support for using valid non-zero width and height attributes to become the default aspect ratio of <img> (r254669)
  • Added a check to ensure Service Workers terminate after a period of time when thread blocking (r253898)
  • Aligned Range.intersectsNode() with the DOM specification (r254018)
  • Changed <iframe> attributes to be processed on srcdoc attribute removal (r254498)
  • Changed <img>.naturalWidth to return the density-corrected intrinsic width (r254229)
  • Changed <link> with non-CSS type to not be retrieved (r253992)
  • Changed Object.keys to throw if called on a module namespace object with uninitialized binding (r254390)
  • Changed Object.preventExtensions to throw if not successful (r254626)
  • Changed Document.createAttribute() to take in a localName, not a qualifiedName (r254021)
  • Changed the supported MIME types for image encoding to be supported image MIME types (r254541)
  • Denied Notification API access for non-secure contexts (r253899)
  • Fixed dispatchEvent() to not clear the event’s isTrusted flag when it returns early (r254016)
  • Fixed String.prototype.replace() incorrectly handling named references on regular expressions without named groups (r254088)
  • Fixed URL parser in Fetch not always using UTF-8 (r254672)
  • Fixed encoding entities correctly in <style> element during XML serialization of text (r253988)
  • Removed the low priority resource load for sendBeacon to reduce failure rates (r253847)
  • Updated Fetch to Handle empty Location value (r253814)


  • Fixed document.cookie to not do a sync IPC to the network process for iframes that do not have storage access (r254556)


  • Added support for image-set() standard syntax (r254406)
  • Added support for rendering highlights specified in CSS Highlight API (r253857)
  • Implemented a network error when fetching a linked stylesheet resource fails (r254043)
  • Improved performance by invalidating only affected elements after media query evaluation changes (r253875)
  • Fixed rejected changes between similar unprefixed and prefixed gradient syntax (r254164)
  • Excluded implicit CSS grid tracks from the resolved value (r254561)


  • Enabled HDR Media Capabilities by default (r253853)
  • Fixed specification violation in Font Loading API (r254220)
  • Ignored URL host for schemes that are not using host information (r253946)
  • Implemented “create a potential-CORS request” (r254000)
  • Implemented transceiver setCodecPreferences (r253966)
  • Made text track loading set same-origin fallback flag (r254031)
  • Fixed MediaKeySession.load() failing (r253852)


  • Removed the certificate info checks related to getUserMedia (r253827)

Payment Request

  • Converted the payment method data IDL in the PaymentRequest constructor (r253986)

Web Animations

  • Stopped creating CSS Animations for <noscript> elements (r254201)


  • Fixed invalid date parsing for ISO 8601 strings when no timezone given (r254038)
  • Fixed RegExp.prototype[Symbol.replace] to support named capture groups (r254195)

Web Share API

  • Added support for a user gesture to allow using the Web Share API even when preceded by an XHR call (r254178)


  • Reimplemented the “Execute Async Script” command with Promises to match the specification (r254329)
  • Fixed handling of session timeouts for values higher than MAX_INT (r253883)
  • Fixed scripts being executed in the wrong page context after a history navigation (r254328)


  • Improved performance by removing the timer for pending operations in IDBTransaction (r253807)