Safari Changelog

What's new in Safari 17.4 Technology Preview 190

Mar 7, 2024
  • Authentication:
  • New Features:
  • Added support for CTAP to set a pin. (274385@main) (113573055)
  • CSS:
  • New Features:
  • Added support for the safe keyword in flexbox properties. (274304@main) (118000717)
  • Added support for CSS style container queries. (274481@main) (122800215)
  • Resolved Issues:
  • Fixed getComputedStyle() to work with functional pseudo-elements like ::highlight(). (274846@main) (117864743)
  • History:
  • Resolved Issues:
  • Fixed the properties of History to throw a SecurityError when not in a fully active Document. (274260@main) (118750576)
  • HTML:
  • New Features:
  • Added support for the shadowrootclonable attribute and aligned with declarative shadow root standards changes. In particular, web developers will now have to set this attribute if they want their declarative shadow root to be clonable. (274727@main) (123006751)
  • JavaScript:
  • Resolved Issues:
  • Fixed several issues:
  • direct eval() in a default value expression inside a rest parameter creates a variable in the environment of the function rather than the separate one of the parameters;
  • a ReferenceError is thrown when accessing a binding, which is defined inside rest parameter, in eval(), or a closure created in a default value expression of a preceding parameter, but only if there is a var binding by the same name;
  • a closure, created in the default value expression inside a rest parameter, is created in a different VariableEnvironment of the function than its counterparts in preceding parameters which causes the incorrect environment to be consulted when querying or modifying parameter names that are “shadowed” by var bindings. (274109@main) (121961421)
  • Media:
  • Resolved Issues:
  • Fixed pseudo-element font size calculation to fix subtitle size in fullscreen mode. (274480@main) (122584350)
  • Deprecations:
  • Removed non-standard VTTRegion.track. (274936@main) (123172214)
  • Networking:
  • Resolved Issues:
  • Fixed upgrading inactive or passive subresource requests and fetches in would-be mixed security contexts to match standards. (274409@main) (101678657)
  • Fixed loading WebArchives with a non-persistent datastore. (274565@main) (122290562)
  • Rendering:
  • Resolved Issues:
  • Fixed backdrop-filter to apply to the border area of an element with a border-radius. (274757@main) (122295068)
  • SVG:
  • New Features:
  • Added support for the turn unit in . (274778@main) (120840743)
  • Resolved Issues:
  • Fixed the UA stylesheet for links in SVGs to apply cursor: pointer matching standards. (274422@main) (122715957)
  • URLs:
  • Resolved Issues:
  • Fixed the URL parser to parse URLs that include authority and a backslash after the host. (274915@main) (119219832)
  • Web API:
  • Resolved Issues:
  • Fixed changing HTMLCanvasElement width or height causing intermediate buffer allocations. (274135@main) (122309325)
  • Fixed canvas captureStream stuttering with WebGL. (274454@main) (122471664)
  • Fixed DOM Range to correctly account for CDATASection nodes. (274346@main) (122608224)
  • Web Inspector:
  • Deprecations:
  • Disabled the network throttling experimental feature. (274112@main) (122327408)

New in Safari 17.4 Technology Preview 189 (Feb 22, 2024)

  • CSS:
  • New Features:
  • Added support for light-dark() function for color values. (273634@main) (117033939)
  • Added support for @starting-style. (273740@main) (121918611)
  • Resolved Issues:
  • Fixed named at-rule container getting skipped when the container is named in a :host selector. (273987@main) (120428386)
  • Fixed the name for a ::slotted pseudo-element in a container query getting resolved against the wrong scope. (274050@main) (122224135)
  • Deprecations:
  • Removed :-webkit-full-screen-ancestor pseudo-class. (273620@main) (100782937)
  • Removed :-webkit-full-screen-controls-hidden pseudo-class. (273619@main) (121323330)
  • Removed :-webkit-full-page-media pseudo-class. (273618@main) (121752962)
  • Removed :-webkit-full-screen-document pseudo-class. (273639@main) (121816310)
  • HTML:
  • Resolved Issues:
  • Fixed “about:blank” document.referrer initialization. (278830@main) (97689906)
  • Fixed parsing a self-closing SVG script element. It now successfully executes. (273697@main) (121887875)
  • JavaScript:
  • Resolved Issues:
  • Fixed throwing a RangeError if Set methods are called on an object with negative size property. (274009@main) (121310940)
  • Fixed eval() function from another realm to not cause a direct eval call. (273782@main) (121546048)
  • Fixed eval() call with ...spread syntaxt to be a direct call. (273788@main) (121547890)
  • Fixed programming style for bitwise and in setExpectionPorts. (273960@main) (122138733)
  • Rendering:
  • Resolved Issues:
  • Fixed Greek uppercase transforms failing for some characters. (274036@main) (90364897)
  • Fixed lingering boxes with content-visibility: hidden. (117916396)
  • Fixed: FIXME: Fixed graphics artifacts when scrolling a Heroku app. (273999@main) (120373474)
  • Fixed align-content and justify-content on scroll containers causing overflowing content to become inaccessible. (273737@main) (121366949)
  • Fixed a line break at gaps between two inline elements in a container with white-space: nowrap. (121859917)
  • Fixed a floating element causing the latter half of a hyphenated word to disappear. (273836@main) (121889487)
  • Fixed cropped first letter for custom fonts that report negative advance width. (121891210)
  • SVG:
  • Resolved Issues:
  • Fixed SVG title to have display: none as the default UA style rule. (273991@main) (122185838)
  • Web API:
  • Resolved Issues:
  • Fixed history.pushState() and history.replaceState() to ignore the title argument. (273650@main) (75695791)
  • Fixed lang attribute in no namespace to only apply to HTML and SVG elements. (273726@main) (117795695)
  • Fixed the spelling of clonable. (274063@main) (121516711)
  • Deprecations:
  • Removed which from KeyboardEvent. (273701@main) (106580687)
  • Web Inspector:
  • New Features:
  • Added a Media details panel to Web Inspector when selecting a or element in the Elements tab. (273777@main) (118865793)
  • Resolved Issues:
  • Fixed font sizes in the Audits tab. (273615@main) (76162927)
  • WebAuthn:
  • Resolved Issues:
  • Fixed navigator.credentials.create() rejects with “NotAllowedError: Operation Failed” after a conditional UI request is aborted. (273918@main) (109936742)
  • WebGL:
  • New Features:
  • Enabled support for EXT_texture_mirror_clamp_to_edge, WEBGL_render_shared_exponent, and WEBGL_stencil_texturing. (273645@main) (121835897)
  • WebRTC:
  • New Features:
  • Added support for missing WebRTC stats. (273643@main) (121594743)
  • Resolved Issues:
  • Fixed a bug that prevented HTML canvas elements from always being marked dirty on initialization. This could cause some video effects to have choppy animations. (121257960)
  • Fixed VideoTrackGenerator writer to close when its generator track (and all its clones) are stopped. (273778@main) (121835553)

New in Safari 17.4 Technology Preview 188 (Feb 8, 2024)

  • Accessibility:
  • New Features:
  • Added support for the new CSS content alternative text syntax. (272455@main) (26942023)
  • Resolved Issues:
  • Fixed role assignment for inside and sectioning elements. (273188@main) (48370244)
  • Fixed text missing from accessibility labels for many common shadow DOM scenarios. (272531@main) (120223342)
  • Fixed the mapping for the iOS accessibility framework to speak “switch button”, “on”, and “off” for . (273206@main) (121215059)
  • Fixed comboboxes to expose their linked objects correctly. (273542@main) (121242926)
  • Animations:
  • Resolved Issues:
  • Fixed the transition property to produce the shortest serialization. (272513@main) (119822401)
  • Fixed the animation property to produce the shortest serialization. (272629@main) (120439368)
  • Browser Changes:
  • Resolved Issues:
  • Fixed loading a ⌘Click fragment link in a background tab. (272906@main) (119079650)
  • Fixed saving linked subresources when saving web page resources. (272925@main) (120491493)
  • CSS:
  • New Features:
  • Added supports() syntax for @import rules. (273591@main) (109060734)
  • Resolved Issues:
  • Fixed getComputedStyle() for invalid pseudo-elements. (272543@main) (98504661)
  • Fixed oklab and oklch lightness value clamping. (272501@main) (116195533)
  • Fixed poor performance with :has(+ :not(.class)) pseudo-class selector. (272678@main) (119819247)
  • Fixed CSS content computed value serialization. (272476@main) (120061551)
  • Fixed pseudo-element parsing in getComputedStyle() and KeyframeEffect.prototype.pseudoElement so they require them starting with :: (or : for 4 legacy pseudo-elements). (272499@main) (120170550)
  • Fixed CSS linear() easing. (272613@main) (120290721)
  • Fixed: Aliased :-webkit-full-screen pseudo-class to :fullscreen. (272577@main) (120335917)
  • Fixed: Aliased :-webkit-any-link to :any-link and :matches() to :is(). (272559@main) (120337922)
  • Fixed getComputedStyle() pseudo-element parsing to support the full range of CSS syntax. (272649@main) (120471227)
  • Fixed :not(:has(:not(foo))) getting misclassified as scope breaking. (273177@main) (120492012)
  • Fixed @supports to correctly handle support for some -webkit prefixed pseudo-elements that were incorrectly treated as unsupported. (272726@main) (120577690)
  • Fixed updating media-query sensitive meta tags after style changes. (272947@main) (120854167)
  • Deprecations:
  • Removed -webkit-alt and alt properties. (272480@main) (120051066)
  • Removed the non-standard resize: auto property. (273035@main) (120138995)
  • Made -apple- prefixed pseudo-elements no longer valid. (272538@main) (120268884)
  • Removed :-webkit-animating-full-screen-transition pseudo-class. (273529@main) (121302758)
  • Removed :-khtml-drag pseudo-class. (273261@main) (121303391)
  • Forms:
  • Resolved Issues:
  • Fixed text-indent to affect the selected file(s) label for file inputs. (272837@main) (105223868)
  • Loading:
  • Resolved Issues:
  • Fixed navigator.cookieEnabled to return false when cookies are blocked. (273522@main) (121284878)
  • Lockdown Mode:
  • Resolved Issues:
  • Fixed Lockdown Mode disabling on sites with COOP and COEP HTTP headers. (273243@main) (119503109)
  • Media:
  • Resolved Issues:
  • Fixed HLS video captions where there are multiple text tracks available. (272784@main) (119839950)
  • Fixed fullscreen video not scaling to display size when the Safari window is in Full Screen App Mode. (272733@main) (119893556)
  • Fixed handling key renewal requests that cause playback errors for some DRM content. (272592@main) (120230860)
  • Fixed paint-on captions shifting during playback. (272966@main) (120847946)
  • Fixed blocked encrypted sampled not getting enqueued after a CDM is attached to a SourceBuffer. (273340@main) (120879185)
  • Rendering:
  • Resolved Issues:
  • Fixed resizing a element with 1rem padding. (273029@main) (90639221)
  • Fixed incorrectly oriented Traditional Mongolian script characters. (272454@main) (93426525)
  • Fixed handling images with color spaces not supported by the backend to fallback to render in sRGB. (273204@main) (118238178)
  • Fixed check boxes and radio buttons to avoid floats. (273047@main) (118660695)
  • Fixed rendering issues when editing text. (273320@main) (119833765)
  • Fixed a floating element causing a list item bullet to be orphaned on constrained lines. (272451@main) (120022893)
  • Fixed fully repainting form controls with visual overflow and writing-mode: vertical-rl. (272799@main) (120066970)
  • Fixed incorrect inline box (hugging) outline painting in vertical writing modes. (272512@main) (120217559)
  • Fixed incorrect ch unit value in vertical-rl and vertical-lr when text-orientation is not upright. (272536@main) (120293590)
  • Fixed the color correctness of the color matrix filter. (272891@main) (120795573)
  • Fixed overflow: hidden preventing CSS Subgrid. (273134@main) (120848131)
  • Fixed the repaint area for underline text decorations. (273126@main) (121082290)
  • Fixed rendering floats and an out-of-flow element with clear. (273407@main) (121444267)
  • Scrolling:
  • Resolved Issues:
  • Fixed unusable horizontal scrollbars with a right-to-left element. (272466@main) (109858866)
  • Fixed wheel overflow behavior with Shadow DOM elements. (273181@main) (118496293)
  • Fixed keyboard scrolling beyond the page getting stuck at a bad scroll offset. (272957@main) (120053910)
  • Fixed a variety of issues by disabling Scroll Anchoring. (273238@main) (121236706)
  • Storage:
  • Resolved Issues:
  • Fixed cases where website data is unexpectedly evicted. (272951@main) (119818267)
  • Deprecations:
  • Removed support for AppCache. (273297@main) (113343269)
  • SVG:
  • Resolved Issues:
  • Fixed negative SVGTransform scale values to be correctly stringified. (272885@main) (118656892)
  • Fixed the layout of an SVG when it is inside an without affecting the size of the . (272503@main) (120178866)
  • Fixed displaying an SVG element inside a element. (272831@main) (120732837)
  • Web API:
  • New Features:
  • Added support for CustomStateSet in custom elements and :state() pseudo-class. (272474@main) (120072599)
  • Resolved Issues:
  • Fixed: Added support for AES-GCM in WebCrypto. (273488@main) (101040216)
  • Fixed removing highlights in the Custom Highlights API. (272723@main) (119531671)
  • Fixed unnecessarily unsetting the iframe fullscreen flag. (272462@main) (120052751)
  • Fixed getElementsByName() to only return HTML elements, not SVG, MathML, or other types of elements. (272530@main) (120275680)
  • Fixed the button value for a pointerup event not matching the pointerdown event. (273263@main) (120429508)
  • Fixed a wheel event to fire on an element that has been re-inserted after document.open. (272960@main) (120893136)
  • Fixed Scroll To Text Fragment Text Directives to find text with additional unrendered white space in their node data. (273016@main) (120913588)
  • Fixed Media Capture API to capture the camera. (273258@main) (121256297)
  • Deprecations:
  • Removed support for KeyboardEvent.altGraphKey. (273379@main) (102980723)
  • Removed AES-CFB support from WebCrypto. (272615@main) (120000331)
  • Removed the non-standard KeyboardEvent.keyLocation. (273457@main) (121564228)
  • Web Extensions:
  • Resolved Issues:
  • Fixed browsing.scripting.executeScript to handle all valid argument types. (120727491)
  • WebAuthn:
  • Resolved Issues:
  • Fixed getClientCapabilities to align with WebAuthn standards to use a record type with camelCase values. (272998@main) (120442670)
  • WebGL:
  • New Features:
  • Enabled support for EXT_conservative_depth and NV_shader_noperspective_interpolation. (272979@main) (120907578)
  • Resolved Issues:
  • Fixed WebGL to be available in nested workers. (272765@main) (120279728)
  • WebRTC:
  • Resolved Issues:
  • Fixed triggering resolution scaling in the case of WebRTC maintain-framerate degradationPreference. (273172@main) (121041723)

New in Safari 17.4 Technology Preview 187 (Jan 26, 2024)

  • Accessibility:
  • New Features:
  • Added support for the CSS content alt-text syntax. (272455@main) (26942023)
  • Resolved Issues:
  • Fixed text missing from accessibility labels for many common shadow DOM scenarios. (272531@main) (120223342)
  • Animations:
  • Resolved Issues:
  • Fixed the transition property to produce the shortest serialization. (272513@main) (119822401)
  • Fixed the animation property to produce the shortest serialization. (272629@main) (120439368)
  • CSS:
  • Resolved Issues:
  • Fixed getComputedStyle() for invalid pseudo-elements. (272543@main) (98504661)
  • Fixed oklab and oklch lightness value handling. (272501@main) (116195533)
  • Fixed CSS content computed value serialization. (272476@main) (120061551)
  • Fixed CSS linear() easing. (272613@main) (120290721)
  • Fixed: Aliased :-webkit-full-screen pseudo-class to :fullscreen. (272577@main) (120335917)
  • Fixed: Aliased :-webkit-any-link to :any-link and :matches() to :is(). (272559@main) (120337922)
  • Fixed getComputedStyle() pseudo-element parsing to support the full range of CSS syntax. (272649@main) (120471227)
  • Fixed updating media-query sensitive meta tags after style changes. (272947@main) (120854167)
  • Deprecations:
  • Removed -webkit-alt and alt properties. (272480@main) (120051066)
  • Made -apple- prefixed pseudo-elements no longer valid. (272538@main) (120268884)
  • Forms:
  • Resolved Issues:
  • Fixed text-indent to affect the the selected file(s) label for file inputs. (272837@main) (105223868)
  • Media:
  • Resolved Issues:
  • Fixed HLS video captions where there are multiple text tracks available. (272784@main) (119839950)
  • Fixed fullscreen video not scaling to display size when the Safari window is in Full Screen App Mode. (272733@main) (119893556)
  • Fixed handling key renewal requests that cause playback errors for some DRM content. (272592@main) (120230860)
  • Rendering:
  • Resolved Issues:
  • Fixed incorrectly oriented Traditional Mongolian script characters. (272454@main) (93426525)
  • Fixed a floating element causing a list item bullet to be orphaned on constrained lines. (272451@main) (120022893)
  • Fixed incorrect inline box (hugging) outline painting in vertical writing modes. (272512@main) (120217559)
  • Fixed incorrect ch unit value in vertical-rl and vertical-lr when text-orientation is not upright. (272536@main) (120293590)
  • Fixed the color correctness of the color matrix filter. (272891@main) (120795573)
  • Scrolling:
  • Resolved Issues:
  • Fixed unusable horizontal scrollbars with a right-to-left element. (272466@main) (109858866)
  • Storage:
  • Resolved Issues:
  • Fixed cases where website data is unexpectedly evicted. (272951@main) (119818267)
  • SVG:
  • Resolved Issues:
  • Fixed the layout of an SVG when it is inside an without affecting the size of the . (272503@main) (120178866)
  • Fixed displaying an SVG element inside a element. (272831@main) (120732837)
  • Web API:
  • New Features:
  • Added support for CustomStateSet in custom elements and :state() pseudo-class. (272474@main) (120072599)
  • Resolved Issues:
  • Fixed removing highlights in the Custom Highlights API. (272723@main) (119531671)
  • Fixed unnecessarily unsetting the iframe fullscreen flag. (272462@main) (120052751)
  • Fixed getElementsByName() to only return HTML elements, not SVG, MathML, or other types of elements. (272530@main) (120275680)
  • Deprecations:
  • Removed AES-CFB support from WebCrypto. (272615@main) (120000331)
  • WebGL:
  • Resolved Issues:
  • Fixed WebGL to be available in nested workers. (272765@main) (120279728)

New in Safari 17.4 Technology Preview 186 (Jan 11, 2024)

  • CSS:
  • New Features:
  • Added support for invalidating :any-link, :link, and :-webkit-any-link inside :has() (271919@main) (116616425)
  • Added support for @scope invalidation. (271897@main) (119313058)
  • Added support for an implicit scoping root when there is no . (272390@main) (119659940)
  • Added support for :scope inside @scope prelude. (272065@main) (119661541)
  • Added support for align-content on table cells. (272373@main) (119701629)
  • Added support for content-visibility to be animate-able. (272364@main) (119940258)
  • Resolved Issues:
  • Fixed querySelector() to not throw an exception for -webkit- prefixed pseudo-elements. (272337@main) (99299129)
  • Fixed :user-invalid triggering while typing a date. (272346@main) (110687369)
  • Fixed nested @supports queries with declarations. (271989@main) (113652033)
  • Fixed contain: inline-size breaking grid-template-rows: auto. (272085@main) (113915953)
  • Fixed parsing and serialization of -webkit- prefixed pseudo-elements. (272411@main) (118081134)
  • Fixed incorrect scoping roots with nested @scope. (271941@main) (119511916)
  • Fixed @scope prelude to take nesting into account. (272117@main) (119711922)
  • Fixed grid with size containment and min-height not sizing row correctly. (272276@main) (119736473)
  • Fixed @scope to be able to have orphaned declarations with an implicit enclosing style rule. (119937025)
  • Forms:
  • New Features:
  • Added focus ring support for . (271884@main) (119499785)
  • Added vertical rendering support for . (272405@main) (119940157)
  • HTML:
  • Resolved Issues:
  • Fixed missing support for the direction attribute in the list of attributes whose values are matched case-insensitively with attribute selectors. (272219@main) (119432066)
  • JavaScript:
  • Resolved Issues:
  • Fixed async functions and generators to properly handle promises with throwing “constructor” getter. (272291@main) (119734587)
  • Rendering:
  • Resolved Issues:
  • Fixed rendering for a within a transformed parent with overflow: hidden. (271894@main) (118901069)
  • Fixed offsetHeight and offsetWidth are 0 for an inline box wrapping a block. (272386@main) (119955792)
  • Service Workers:
  • Resolved Issues:
  • Fixed duplicate load requests with an active service worker. (272024@main) (104377727)
  • Web Animations:
  • Resolved Issues:
  • Fixed percentage transform animations when width and height are animated. (272022@main) (63309680)
  • Fixed a paused animation where currentTime is changed to 0 not restarting when unpaused. (271872@main) (118826588)
  • Web API:
  • New Features:
  • Added a “gamepad” permission policy defaulting to * for the allow list. (272199@main) (83219098)
  • Added ShadowRoot clonable attribute. (272096@main) (119707278)
  • Resolved Issues:
  • Fixed invalid coordinates on wheel and gesturechange events inside an iframe. (272176@main) (105243167) (FB11986074)
  • Fixed HTMLAreaElement to align with the HTML Standard. (272217@main) (110028213)
  • Fixed Scroll To Text Fragment to not scroll after dynamic stylesheet loads and the user has scrolled. (272151@main) (112608578)
  • Fixed toggling the spellcheck attribute not toggling spelling markers on input elements. (271927@main) (119269616)

New in Safari 17.4 Technology Preview 185 (Dec 21, 2023)

  • Accessibility:
  • Resolved Issues:
  • Fixed: Removed the default ARIA-level heading for a heading role, matching removal from ARIA specifications. (271497@main) (119059172)
  • CSS:
  • New Features:
  • Added support for align-content on block containers. (271818@main) (114740670)
  • Added percentage values support for letter-spacing and word-spacing. (271357@main) (116562262)
  • Added support for scroll anchoring with overflow-anchor. (271790@main) (118365809)
  • Added support for @scope. (271670@main) (119261250)
  • Resolved Issues:
  • Fixed CSS counters to update properly on style changes. (271451@main) (109416780)
  • Fixed: Updated Full Size Kana table to Unicode 15. (271276@main) (111508663)
  • Fixed missing user-agent stylesheet rules for MathML fractions. (271337@main) (116922348)
  • Fixed selection gaps to get painted with the expected ::selection pseudo-element color. (271129@main) (117796745)
  • Fixed ::backdrop to be allowed after ::slotted(). (271366@main) (119015204)
  • Fixed: Removed support for special first track handling to align with the evolving Masonry standard. (271757@main) (119041053)
  • HTML:
  • New Features:
  • Added support for . (271736@main) (119378678)
  • Media:
  • New Features:
  • Added WebCodecs VP9 profile 2 support. (271238@main) (118879753)
  • Resolved Issues:
  • Fixed an HEVC decoder issue when translating annexb data. (271728@main) (116768196)
  • Fixed AV1-in-MP4 codec string not shown in Show Media Stats. (271187@main) (118850797)
  • Fixed getDisplayMedia frameRate always at 30 regardless of constraints. (271233@main) (118874132)
  • Fixed to not loop if current time or duration is zero. (271256@main) (118902468)
  • Fixed in-band captions wrapping unnecessarily. (271415@main) (119024855)
  • Rendering:
  • Resolved Issues:
  • Fixed: Removed the text-decorationcolor override quirk. (271338@main) (102920597)
  • Fixed shadow invalidation issue in vertical-rl mode. (271416@main) (111915460)
  • Fixed text in flex items not breaking under specific conditions. (271122@main) (118796634)
  • Web API:
  • New Features:
  • Added Element.prototype.setHTMLUnsafe(), ShadowRoot.prototype.setHTMLUnsafe(), and Document.parseHTMLUnsafe() methods. (271423@main) (115345128)
  • Resolved Issues:
  • Fixed updating resizeBy and resizeTo to use int rather than float to align with specifications. (271194@main) (118872048)
  • Fixed the CookieChangeEvent to not be exposed when the Cookie Store API is disabled. (271243@main) (118902989)
  • Fixed to use the page’s preferred rendering update interval. (271431@main) (118976548)
  • Fixed Element.prototype.setAttributeNode() to not treat attribute names case insensitively. (271363@main) (119013600)
  • Fixed WebGL OffscreenCanvas returning the previously created WebGL1 context when asking for WebGL2. (271546@main) (119028794)
  • Fixed to allow :checked and :indeterminate to match at the same time. (271430@main) (119075969)
  • Web Inspector:
  • New Features:
  • Expanded OffscreenCanvas support for bitmaprenderer, webgl, and webgl2. (271300@main) (109594232)
  • Added Grid overlay support for Masonry layout. (271332@main) (118833618)
  • WebAuthn:
  • New Features:
  • Added support for getClientCapabilities(). (271584@main) (119058559)
  • WebGPU:
  • New Features:
  • Enabled WebGPU to be testable via the Develop menu. (271725@main) (119262908)

New in Safari 17.4 Technology Preview 184 (Dec 8, 2023)

  • Accessibility:
  • Resolved Issues:
  • Fixed VoiceOver not announcing the button label if the button is in a shadow root. (270542@main) (118118138)
  • CSS:
  • New Features:
  • Added support for CSS custom properties on dialog ::backdrop (270246@main) (117949961)
  • Resolved Issues:
  • Fixed visited color to fallback. (270270@main) (115289075)
  • Fixed block size with max-content and min-content in a table. (271054@main) (116264670)
  • Fixed the continuity of transform animations through singular transforms. (270294@main) (117209302)
  • Fixed content-visibility to not apply to tables. (270888@main) (117914336)
  • HTML:
  • Resolved Issues:
  • Fixed memory growth with lazy loaded images outside the viewport. (270745@main) (117683012)
  • Fixed blocking JavaScript reading nonce for and . (271046@main) (118676659)
  • JavaScript:
  • New Features:
  • Enabled Array group methods. (270350@main) (118037635)
  • Added support for ArrayBuffer.prototype.detached, ArrayBuffer.prototype.transfer, and ArrayBuffer.prototype.transferToFixedLength. (270349@main) (118037759)
  • Resolved Issues:
  • Fixed Temporal API to throw TypeErrors for unexpected primitives. (270262@main) (117992134)
  • Fixed Temporal options handling to align with the specification. (270360@main) (118088676)
  • Fixed Temporal.Now.timeZone() to be updated to timeZoneId(). (271003@main) (118674314)
  • Media:
  • New Features:
  • Added support for all of HTML’s character entities in WebVTT. (270240@main) (51064890)
  • Resolved Issues:
  • Fixed the always empty video.buffered attribute. (270931@main) (118550061)
  • Fixed WebVTT to correctly parse region id settings. (270868@main) (118551267)
  • Fixed VideoEncoder produces no frames with latencyMode “realtime” when framerate/bitrate are not given. (271087@main) (118725549)
  • Fixed in-band captions wrapping unnecessarily. (271415@main) (119024855)
  • Web Animations:
  • Resolved Issues:
  • Fixed style invalidation for animations. (270890@main) (118500247)
  • Web API:
  • New Features:
  • Added support for AbortSignal.any(). (270268@main) (117985827)
  • Added support for element.checkVisibility(). (270425@main) (118157977)
  • Web Assembly:
  • New Features:
  • Enabled extended constant expressions. (270475@main) (118190467)
  • Web Inspector:
  • New Features:
  • Added support for grouping source map load errors. (270834@main) (109239646)
  • Added an editor for the CSS linear() timing function. (270855@main) (115095425)
  • Resolved Issues:
  • Fixed the tan() function to not trigger the color picker. (271075@main) (118724061)
  • WebGL:
  • New Features:
  • Added support for new WebGL extensions:
  • EXT_clip_control
  • EXT_depth_clamp
  • EXT_polygon_offset_clamp
  • WEBGL_polygon_mode (270382@main) (118110035)

New in Safari 17.4 Technology Preview 183 (Nov 16, 2023)

  • Accessibility:
  • Resolved Issues:
  • Fixed exposing the correct element role. (270231@main) (13661104)
  • Fixed slow VoiceOver focus and navigation on extremely long or contenteditable fields. (270066@main) (117114220)
  • Fixed Play Animation and Pause Animation animated image context menu items sometimes not appearing after setting toggle. (269878@main) (117215059)
  • Fixed and elements not included in VoiceOver form controls menu or list. (269643@main) (117308226)
  • Fixed comboboxes not notifying assistive technologies when aria-activedescendant changes. (270182@main) (117747058)
  • Fixed toggling accessibility preferences to correctly update form control appearance. (270221@main) (117914468)
  • AutoFill:
  • Resolved Issues:
  • Fixed clipping the “Strong Password” button after selecting “Suggest New Password”. (270068@main) (113701243)
  • CSS:
  • New Features:
  • Added basic support for text-wrap: balance and text-wrap-style property. (269680@main) (117336969)
  • Resolved Issues:
  • Fixed CSS grid support for last baseline alignment in the column axis for subgrid items with non-orthogonal ancestors. (269781@main) (116484865)
  • Fixed text-decoration-thickness to support percentages. (269886@main) (116985587)
  • Fixed computing the definite free space of grid rows when the grid has an aspect-ratio and definite logical width. (270098@main) (117138268)
  • Fixed CSS grid to synthesize the central baseline of grid items in the column axis. (269857@main) (117424263)
  • Fixed serialization for CSS highlight pseudo-elements. (270146@main) (117864974)
  • Forms:
  • Resolved Issues:
  • Fixed dir=auto to work for hidden, password, submit, reset, and button input types, made dirname work for password and submit input types, and removed dirname support from number input types. (269711@main) (113127508)
  • HTML:
  • New Features:
  • Added support for the allow-downloads directive for frames. (109414664)
  • Resolved Issues:
  • Fixed to fully clear the stylesheet. (269753@main) (114736719)
  • Fixed the system-ui font family within . (117231545)
  • JavaScript:
  • New Features:
  • Added support for ArrayBuffer.prototype.transfer. (269674@main) (117337535)
  • Aligned the implementation of the internal function IntlMathematicalValue (used in Number.prototype.toLocaleString, and Intl.NumberFormat) with its current specification. (269825@main) (117535507)
  • Resolved Issues:
  • Fixed an edge case in the semantics of for loops. (269653@main) (44730906)
  • Fixed an edge case with detecting a semantic error in generators. (269801@main) (117497786)
  • Media:
  • Resolved Issues:
  • Fixed canplay event to fire for video elements where the first sample’s presentation time is slightly greater than 0. (269689@main) (105169372)
  • Fixed WebVTT to treat negative percentages as invalid values. (269882@main) (117615681)
  • Rendering:
  • Resolved Issues:
  • Fixed a bug where swapping to Safari from another app (or tab) would flash black. (269776@main) (116530284)
  • Fixed a bug where the returned transform from getComputedStyle was incorrect. (269920@main) (117523629)
  • Scrolling:
  • Resolved Issues:
  • Fixed scrolling on nested pointer-events: auto inside pointer-events: none. (270094@main) (110954175)
  • SVG:
  • Resolved Issues:
  • Fixed the motion path anchor point used for SVG when the transform-box is not the view-box. (269642@main) (108285569)
  • Fixed: Added strokeContains optimization. (269745@main) (117439322)
  • URLs:
  • Resolved Issues:
  • Fixed CSS invoked URL parsing to always use UTF-8 as agreed by the W3C CSS WG. (270169@main) (114889625)
  • Web API:
  • Resolved Issues:
  • Fixed showPicker() method to trigger suggestions from a datalist. (269981@main) (116017782)
  • Fixed declarative shadow trees to match the latest specifications. (269976@main) (117655691)
  • Fixed jiggling caused by repeated calls to scrollIntoView({ block: 'center' }). (270160@main) (117755250)
  • Web Inspector:
  • Resolved Issues:
  • Fixed file drag-and-drop behavior in the Network tab. (270108@main) (114311077)
  • WebGL:
  • Resolved Issues:
  • Fixed Canvas WebGL context capture to WebCodecsVideoFrame not capturing all frames. (269757@main) (108459224)
  • Fixed: Improved performance of MSAA rendering, including antialiased default framebuffer and fixed PBO uploads of PVRTC1 textures. (269810@main) (117461678)

New in Safari 17.4 Technology Preview 182 (Nov 2, 2023)

  • CSS:
  • New Features:
  • Added the white-space-collapse and text-wrap-mode CSS properties. (269613@main) (117248327)
  • Resolved Issues:
  • Fixed animating a rotate property when the scale property is also used. (269453@main) (113999490)
  • Fixed getComputedStyle() to return a resolved value for font-size-adjust: from-font. (269084@main) (116151111)
  • Fixed subgrids to have their row-start margins resolved after column sizing in the outer grid. (269424@main) (116369419)
  • Fixed forced layout on absolutely positioned elements for content-visibility. (268840@main) (116453903)
  • Fixed validating @property at parse-time. (269466@main) (116803886)
  • Fixed background-blend-mode property to return a comma-separated list. (26932@main) (116838342)
  • Fixed content-visibility to take forced layout into account for absolute positioned grid items. (269531@main) (117214848)
  • Fixed @supports selector(:popover-open) to reflect disabled state. (269565@main) (117226626)
  • Forms:
  • New Features:
  • Added support for the showPicker() method for . (269257@main) (110099910)
  • HTML:
  • New Features:
  • Added support for the list of available images for lazy loaded images. (269243@main) (98788086)
  • Resolved Issues:
  • Fixed strictly enforcing exclusivity for the element name attribute. (269127@main) (116463466)
  • JavaScript:
  • New Features:
  • Added TimeZoneOffset format support to Intl.DateTimeFormat. (269497@main) (117124296)
  • Resolved Issues:
  • Fixed Map.groupBy and Object.groupBy callback arguments. (269456@main) (117120234)
  • Fixed Intl.Collator’s ignorePunctuation to reflect the queried result. (269459@main) (117122647)
  • Fixed Intl.NumberFormat and Intl.PluralRules with updated property access ordering and resolvedOptions key ordering. (269501@main) (117181500)
  • Loading:
  • Resolved Issues:
  • Fixed navigation to about scheme URLs without opaque paths. (269423@main) (116238322)
  • Media:
  • New Features:
  • Added support for H264 L1T2 for WebCodecs. (269297@main) (114940765)
  • Resolved Issues:
  • Fixed WebVTT regions to position according to specifications. (268787@main) (23091897) (FB5414788)
  • Fixed an issue where Safari would briefly change document.visibilityState to hidden when entering fullscreen. (269150@main) (104984915)
  • Fixed pausing MediaRecorder continuing to call ondataavailable at every timeslice event. (268433@main) (115979604)
  • Fixed the close algorithms for audio and video WebCodec decoders and encoders to match specification changes. (268781@main) (116346725)
  • Fixed picture-in-picture when the srcObject is a video stream. (269403@main) (116465668)
  • Fixed constraints on the maximum width or height causing blurry getDisplayMedia video. (269406@main) (116810370)
  • Fixed object-fit: fill to work for a video element using a canvas stream srcObject. (269568@main) (116832514)
  • Fixed the limit for the number of real-time audio threads. (269291@main) (116864442)
  • Rendering:
  • Resolved Issues:
  • Fixed ignoring calc() values on elements. (269200@main) (106692191)
  • Fixed ancestor subgrids’ gutters to add to the extra layer of margin for descendant subgrids. (269194@main) (114271857)
  • Scrolling:
  • Resolved Issues:
  • Fixed clicking and dragging the overlay scrollbar that overlaps a composited, positioned descendant of a container with overflow: scroll. (269255@main) (89598421)
  • Fixed a bug that caused some complicated websites to freeze when scrolling. (269486@main) (113318934)
  • Storage:
  • New Features:
  • Added support for blob partitioning. (269264@main) (116813727)
  • SVG:
  • Resolved Issues:
  • Fixed ellipse hit testing in the non-circle case. (269554@main) (103756227)
  • Fixed to compute stroke-bounding-box lazily. (269351@main) (116852041)
  • Fixed approximate stroke-bounding-box computation for repainting. (269492@main) (116999242)
  • Fixed repainting an SVG element with a CSS reference filter when the filter changes. (269413@main) (117047658)
  • Text:
  • Resolved Issues:
  • Fixed font fallback to ignore generic families for Private-Use Area Unicode codepoints. (269524@main) (115901340) (FB13197885)
  • Web API:
  • Resolved Issues:
  • Fixed the result of Range.getClientRects() and Range.getBoundingRect() for certain ranges. (269271@main) (112543805)
  • Fixed audio elements with event listeners not getting garbage collected. (269165@main) (116347723)
  • Fixed mouse event handling such that if a drag operation is initiated from a canceled mousedown event, all subsequent mouse events are sent to the originating frame until the drag operation ends with a corresponding mouseup event. (269370@main) (116668701)
  • Fixed FetchResponse.formData() to parse headers names as case insensitive. (269144@main) (116742000)
  • Fixed light dismiss for a popover element within a complex shadow DOM breaks light dismiss calculation. (269596@main) (117214343)
  • Web Assembly:
  • New Features:
  • Added support for new constant expressions. (269484@main) (107680283)
  • Resolved Issues:
  • Fixed WebAssembly SIMD vectors that can get corrupted when using v128.any_true. (269080@main) (111050621)
  • Fixed: Adopted final opcodes for Wasm-GC proposal. (269454@main) (117118851)
  • Web Inspector:
  • New Features:
  • Added support for logging a message to the Console when a page attempts to load a font URL blocked by Lockdown Mode. (269238@main) (114657783)
  • WebRTC:
  • Resolved Issues:
  • Fixed long delays switching audio input in video conferencing applications. (269242@main) (102724364)

New in Safari 17.4 Technology Preview 181 (Oct 19, 2023)

  • CSS:
  • New Features:
  • Added support for content-visibility. (268313@main) (114734606)
  • Resolved Issues:
  • Fixed to never serialize to a single value. (268291@main) (111750372)
  • Fixed to forbid generic families. (268203@main) (113746537)
  • Fixed offset path inset shapes with a border-radius. (268192@main) (115316728)
  • Fixed blend modes with Interoperability improvements. (268173@main) (115688282)
  • Fixed not serializing at in circle() or ellipse() if unspecified. (268344@main) (115866108)
  • Fixed serialization of shape-outside. (268365@main) (115938310)
  • HTML:
  • New Features:
  • Added support for one-time-code as an allowed autocomplete field name. (268097@main) (115684196)
  • Resolved Issues:
  • Fixed respecting the first parseable value. (268064@main) (64705222)
  • Fixed [dir=auto] invalidation with password fields. (268322@main) (115887776)
  • JavaScript:
  • Resolved Issues:
  • Fixed generator functions to not be Annex B hoisting candidates. (268352@main) (114213642)
  • Fixed the algorithm determining Annex B hoisted functions to perform lexical scope chain walk. (268302@main) (115504046)
  • Media:
  • New Features:
  • Added MediaStream support for whiteBalanceMode. (268102@main) (115552800)
  • Rendering:
  • Resolved Issues:
  • Fixed resizing behavior with writing-mode: vertical-rl or direction: rtl. (268157@main) (102620110)
  • Fixed handling iframes with display: none. (268148@main) (112494003)
  • Fixed opacity and rendering the root element background image. (268156@main) (115396444)
  • Fixed the color of the drop shadow to preserve its alpha channel. (268233@main) (115812347)
  • Fixed filters with outsets to repaint the entire filterRegion if GraphicsStyles are used. (268282@main) (115817290)
  • Fixed compositing the filter style transparency layers to not clip the destination context. (268341@main) (115901634)
  • Deprecations:
  • Removed margin-trim behavior for floats to match specification changes. (268227@main) (115794102)
  • SVGin page link:
  • Resolved Issues:
  • Fixed the SVG mask to work as a mask-resource for the CSS mask-image. (268272@main) (114465545)

New in Safari 17.4 Technology Preview 180 (Oct 5, 2023)

  • Accessibility:
  • Resolved Issues:
  • Fixed parsing the ARIA role attribute to ignore leading and trailing whitespace, including line breaks. (267930@main)
  • Fixed exposing column headers of cells within role="row" elements with display: contents to assistive technologies. (267838@main)
  • Fixed empty accessibility label for role="treeitem" elements with display: contents who have child text starting with a newline. (267839@main)
  • Fixed form landmarks being incorrectly exposed when they are missing a label. (268025@main)
  • CSS:
  • New Features:
  • Added support for rect() shape for shape-outside, clip-path, and offset-path. (267863@main)
  • Resolved Issues:
  • Fixed the default link color contrast for the dark color scheme. (267847@main)
  • Fixed :has(:scope) matching. (267856@main)
  • Fixed invalidating scope-breaking :has(:is(...)) selectors. (268038@main)
  • Fixed backface-visibility to create a stacking context and containing block. (267980@main)
  • Fixed basic shapes to use an offset motion path. (267866@main)
  • Fixed grid to not always put first and last baseline aligned items into different alignment contexts. (267922@main)
  • Fixed :has(~ :is(.x ~ .y)) to consider all siblings of the :has scope when invalidating. (267932@main)
  • Fixed invalidating :default pseudo-class changes on input elements. (267848@main)
  • Fixed calc(clamp(1px, 1em, 1vh)) to collapse to clamp(1px, 1em, 1vh). (267840@main)
  • Fixed determing baseline for grid by considering the first and last baseline-aligned grid items. (268029@main)
  • Fixed the serialization of the computed style of grid-area. (268026@main)
  • Deprecations:
  • Removed support for the auto value from alignment-baseline. (268008@main)
  • JavaScript:
  • New Features:
  • Added support for CanDeclareGlobalFunction abstract operation and related implementations. (267655@main)
  • Added support for HasVarDeclaration abstract operation. (267891@main)
  • Loading:
  • Resolved Issues:
  • Fixed an issue with a workaround to handle cases where websites serve Data URLs with malformed padding. This issue prevented some images in Word documents from failing to display when hosted by Box and Sharepoint. (267987@main)
  • Media:
  • Resolved Issues:
  • Fixed WebCodecs hardware encoders losing a frame. (267865@main)
  • Web Animations:
  • Resolved Issues:
  • Fixed color-scheme to support discrete animation. (267750@main)
  • Web API:
  • Resolved Issues:
  • Fixed URL encoding for Request’s referrer feature and Response.redirect(). They now always use UTF-8. (267841@main)

New in Safari 17.0 Technology Preview 179 (Sep 22, 2023)

  • CSS:
  • New Features:
  • Added support for mask-border properties. (267460@main)
  • Added support for the cap unit. (267315@main)
  • Added support for the parameter in ray(). (267459@main)
  • Added new relaxed parsing behavior for CSS Nesting. (267549@main)
  • Added support for xywh() shape. (267789@main)
  • Added support for offset-position: normal for CSS Motion Path. (267657@main)
  • Added support for the rcap, rex, ric, and rch units. (267321@main)
  • Added new typed OM factory functions for font and root font relative units. (267437@main)
  • Added support for the coord-box parameter in ray(). (267566@main)
  • Added offset-position support for circle() and ellipse(). (267810@main)
  • Resolved Issues:
  • Fixed the font-family descriptor for @font-palette-values to accept multiple values. (267411@main)
  • Fixed CSS @imports in HTML getting mistakenly hidden from the CSS preload scanner when missing a semi-colon and space. (267322@main)
  • Fixed :nth-child() invalidation when not in subject position. (267600@main)
  • Fixed :has(:host) invalidation. (267773@main)
  • Fixed :has(:nth-child()) invalidation and related. (267771@main)
  • Fixed handling dynamic updates to viewport units when used in @property initial value. (267590@main)
  • Fixed the implementation for offset-path. (267556@main)
  • Fixed implementation for offset-path. (267524@main)
  • Fixed serialization to always serialize implicit & and an implicit nested rule. (267531@main)
  • Fixed the serialization of percentages in color-mix(). (267596@main)
  • Fixed the check for in-progress layout when setting a containing block rect for ray() used with motion-path. (267479@main)
  • Fixed adding fine-grained invalidation support for selectors containing :slotted(). (267326@main)
  • Fixed rounding of type to round half towards positive infinity. (267339@main)
  • Fixed fine-grained invalidation for :host pseudo-class in non-subject position. (267355@main)
  • Fixed the container for the ::part pseudo-element to be selected from the originating element tree. (267421@main)
  • Fixed serialization of infinity and -infinity in colors. (267544@main)
  • Fixed lab, lch, oklab, oklch components to be clamped to appropriate ranges. (267555@main)
  • Fixed coord-box to use border-radius for CSS Motion Path. (267613@main)
  • Fixed color-mix() to not serialize to legacy color syntax. (267626@main)
  • Fixed resolving the size of a replaced element by using its intrinsic size as the width. (267648@main)
  • Fixed determining non-orthogonal grid item’s columnAxisPosition by considering fallback alignment for first/last baseline. (267811@main)
  • HTML:
  • New Features:
  • Added support for the name attribute in the element. (267756@main)
  • Resolved Issues:
  • Fixed not returning the correct value when a decimal is entered. (267581@main)
  • Fixed dynamic handling of elements. (267498@main)
  • Fixed URL encoding of elements. (267585@main)
  • Fixed URL encoding of SVG elements. (267593@main)
  • Fixed empty value attributes to not be ignored on image input types. (267592@main)
  • HTTP:
  • Resolved Issues:
  • Fixed COOP header breaking back and forward behavior when client-side redirects are involved. (267553@main)
  • Media:
  • New Features:
  • Added support for WebRTC HEVC RFC 7789 RTP Payload Format. (267677@main, 267862@main)
  • Resolved Issues:
  • Fixed WebCodecs VideoEncoder configure to resolve its promise for unknown codecs. (267668@main)
  • Fixed handling NaN in audio delay curves. (267589@main)
  • Fixed setting the color space for WebCodecs/WebRTC VP9 for libvpx encoders. (267638@main)
  • SVG:
  • New Features:
  • Added support for SVG . (267349@main)
  • Web Animations:
  • Resolved Issues:
  • Fixed color-scheme to support discrete animation. (267750@main)
  • Web API:
  • New Features:
  • Added support for window.clientInformation in terms of window.navigator. (267625@main)
  • Resolved Issues:
  • Fixed checking for NaN when creating a DelayNode for WebAudio. (267650@main)
  • Fixed element.querySelector(":has(:scope *)") to never match. (267809@main)
  • Deprecations:
  • Removed HTMLMediaElement.webkitHasClosedCaptions and HTMLMediaElement.webkitClosedCaptionsVisible. (267780@main)
  • Web Inspector:
  • New Features:
  • Added support for 2D OffscreenCanvas. (262388@main, 267488@main)
  • Added a specialized editor for the CSS steps() timing function. (267484@main)
  • Resolved Issues:
  • Fixed objects logged to the console with multiple private fields that use the same name. (267483@main)

New in Safari 17.0 Technology Preview 178 (Sep 6, 2023)

  • Web Inspectorin page link:
  • Added color palette with CSS variables in color picker (266794@main)
  • Moved the details sidebar to the bottom when Web Inspector is too narrow (266784@main)
  • CSSin page link:
  • Implemented counter-set property (267137@main)
  • Fixed counter values to prevent them from overflowing or underflowing (266817@main)
  • Fixed to not accept negative resolutions for @property (267134@main)
  • Fixed currentcolor to correctly inherit computed :visited style (267139@main)
  • Fixed color-mix() to respect :visited style to resolve “currentcolor” (267271@main)
  • Fixed baseline aligned flex items to also be aligned using their fallback alignment (267026@main)
  • Fixed border-image to fall back to the border property if the image is invalid (266749@main)
  • Fixed the scripting media query to never match initial-only (267198@main)
  • Fixed font-size-adjust toggling font sizes for system-ui font (266771@main)
  • Fixed :user-invalid and :user-valid interactions with form reset and submission (266702@main)
  • Added the support for mixed percentage and length/number arguments in CSS step functions (267072@main)
  • CSS Container Queriesin page link:
  • Fixed container unit resolution to check if the selected container is eligible (267192@main)
  • Fixed container-name to use scoped names (267163@main)
  • Fixed container selection for container units in pseudo-elements (267197@main)
  • Fixed container query with font units to invalidate when the font changes (267258@main)
  • JavaScriptin page link:
  • Enabled import attributes (266957@main)
  • Added support for Intl.NumberFormat’s FormatApproximately operation (266645@main)
  • Changed Intl.DurationFormat digital’s default from narrow to short (266891@main)
  • Fixed a positive look-behind RegExp with alternatives of different minimum lengths (266912@main)
  • Increased minimumFractionDigits and maximumFractionDigits limit from 20 to 100 (266879@main)
  • Updated Intl.DateTimeFormat’s to obtain options only once, matching spec changes (266868@main)
  • Updated Intl.NumberFormat and Intl.PluralRules roundingIncrement handling (267123@main)
  • SVGin page link:
  • Added the missing default value translate for animateTransform (266758@main)
  • Fixed paint-order property to inherit (267002@main)
  • Fixed SVG filters to prevent them from leaking visited hyperlinks (266683@main)
  • Accessibilityin page link:
  • Fixed an issue where innerHTML and innerText changes to labels did not update their corresponding input element’s accessibility title (266919@main)
  • Mediain page link:
  • Added support for negative timestamps of TextTrackCue (267042@main)
  • Fixed vertical multiline WebVTT captions getting cut off (267162@main)
  • IntersectionObserverin page link:
  • Fixed edge cases in parsing options (266856@main)
  • Web APIin page link:
  • Enabled Fetch Priority by default (267196@main)
  • Enabled requestIdleCallback (267023@main, 266750@main)
  • Made event loop to execute idle callbacks at the end of each task (266877@main)
  • Enabled responsive images in (266787@main)
  • Added the change event for the Cookie Store API (266850@main)
  • Added more restrictions for top-frame navigations by a third-party iframe (266666@main)
  • Added support for from-image to ImageBitmapOptions (266893@main)
  • Changed navigable target names to _blank if they have dangling markup (267154@main)
  • Fixed ServiceWorkerRegistration data deletion (266882@main)
  • Fixed details element to use ToggleEvent for toggle events (267076@main)
  • Fixed SpeechSynthesisUtterance to not get GC’ed if there is a pending event (267161@main)
  • Added the support for key pair checks for Ed25519 in WebCrypto (267184@main)
  • Added basic support for SVGImageElement in createImageBitmap (267218@main)
  • Fixed and origin getters to return an empty string for non-parsable URLs (267222@main)
  • Fixed and protocol setters for non-parsable URLs (267265@main)
  • WebGLin page link:
  • Fixed WebGL to not send a non-standard webglcontextchanged event (266861@main)

New in Safari 17.0 Technology Preview 177 (Aug 23, 2023)

  • Web Inspector:
  • Fixed broken search functionality (266783@main, 266820@main, 266802@main)
  • CSS:
  • Fixed mod() evaluation (266485@main)
  • Fixed round() evaluation when the number is a multiple of the step (266504@main)
  • Fixed computing the correct overflow-x and overflow-y values for elements (266560@main)
  • Rendering:
  • Fixed out-of-flow to not trigger a line break (266475@main)
  • Popover:
  • Fixed popover incorrectly auto-hiding when using shadow DOM (266457@main)
  • Media:
  • Fixed fullscreen ready check to remove the hierarchy requirement (266426@main)
  • Fixed videos disappearing when switching from landscape to portrait (266531@main)
  • Fixed pausing media playback after suspending media playback to correctly pause after media playback is unsuspended (266590@main)
  • JavaScript:
  • Optimized Array#splice to skip result array creation if it is not used at all (266591@main)
  • Web API:
  • Fixed intermittent removal of adoptedStyleSheet CSSStyleSheet instances when assigning an adoptedStyleSheet array (266464@main)
  • Fixed keyboard scroll not stopping after pressing the down arrow if keyup is default prevented (266425@main)
  • Fixed window.postMessage with OffscreenCanvas with an isolated world message listener (266465@main)
  • Accessibility:
  • Fixed non-accessible content within iframes with ARIA roles (266506@main)
  • Fixed VoiceOver word echo on text inputs with a combobox role (266569@main)
  • Apple Pay:
  • Deprecated enabled in favor of available in shippingContactEditingMode (266493@main)

New in Safari 17.0 Technology Preview 176 (Aug 10, 2023)

  • CSS:
  • Added support for contain-intrinsic-size: inherit (266100@main)
  • Implemented linear(...) timing function for CSS animations & transitions (266195@main)
  • Corrected auto none support for contain-intrinsic-size (266136@main)
  • Made width attribute set to 0 or 0px compute to 1px (266418@main)
  • Rendering:
  • Fixed out-of-flow boxes not showing (266366@main)
  • Fixed canvas not showing the results of CanvasRenderingContext2D.putImageData until a forced re-render (266397@main)
  • Fixed scrollbar not updating on CSS color-scheme change (266176@main)
  • Prevented invalidating columns when the entire table is being destroyed (266344@main)
  • Accessibility:
  • Fixed display: contents elements sometimes missing their children (266407@main)
  • Fixed incorrect accessible name from multiple elements (266151@main)
  • Fixed unexpected speech synthesis behavior for unordered lists (266383@main)
  • Media:
  • Implemented automatic text track selection for 'metadata' tracks (266380@main)
  • Fixed RTCRtpSender maxFramerate encoding parameter having no effect (266128@main)
  • Fixed updating time stamps on media controls to update while scrubbing the timeline (266339@main)
  • Web API:
  • Added support for the title attribute for pattern validation errors (266311@main)
  • Aligned naturalWidth and naturalHeight with spec, changing from int to unsigned (266302@main)
  • Changed to return opaque origin for blob: URL containing inner non-http(s): URL (266247@main)
  • Converted embed hidden into a proper boolean attribute (266399@main)
  • Fixed ElementInternals.setFormValue() to clear the submission value (266126@main)
  • Fixed custom highlight logic for checking author and set text color (266117@main)
  • Fixed custom highlight text decoration to respect priority (266184@main)
  • Fixed emoji characters sometimes getting incorrectly drawn in text style (266089@main)
  • Fixed URL pathname and search setter incorrectly stripping trailing spaces (266252@main)
  • Handled focusability for plugin elements which have browsing context (266286@main)
  • Throttled mousemove events to one per rendering update (266341@main)

New in Safari 17.0 Technology Preview 175 (Jul 28, 2023)

  • Accessibility:
  • Fixed some content on web pages not displaying on braille displays (265957@main)
  • CSS:
  • Changed to allow an empty font-family name in @font-face and @font-palette-values (265997@main)
  • Fixed -webkit-box-decoration-break: clone with left and right padding causes unexpected wrapping of inline content (266051@main)
  • Fixed serializing CSS math function root nodes (265892@main, 265879@main, 265886@main, 265885@main, 265881@main)
  • Fixed result of tan() in degenerate cases (265881@main)
  • Fixed min() and max() with one argument to always collapse to calc() (265893@main)
  • Fixed NaN numeric representation to be 0 not Infinity (265891@main)
  • Fixed @font-face { src: format() } to parse valid unsupported keywords (266043@main)
  • Fixed @font-face { src: tech() } to parse valid unsupported keywords (265999@main)
  • Fixed font-tech() to not validate the descriptor for any invalid item (266032@main)
  • Fixed animation using padding-block or padding-inline not overriding the set padding style (265956@main)
  • Editing:
  • Fixed an issue when breaking out of an empty list item in case of nested lists (265747@main)
  • Media:
  • Added WebCodecs HEVC support (266044@main)
  • Fixed enumerateDevices to not include devices that can not be used (265947@main, 265923@main)
  • Fixed VideoFrame buffer constructor not respecting the codedWidth if visibleRect is present (265844@main)
  • Web API:
  • Added support for priority to CSS Highlight API (265812@main)
  • Aligned with the HTML Standard (265977@main)
  • Fixed camera RAW files picked via file input getting returned as PNG on change (266049@main)
  • Fixed HTMLTableSectionElement.insertRow(0) and HTMLTableRowElement.insertCell(0) (265768@main)
  • Fixed incorrect tab stop if the tab-size is a and the distance to the next tab stop is less than 0.5ch (265922@main)
  • Fixed Service Worker redirect losing the hash fragment (265845@main)
  • Fixed setting the outerHTML on a child of DocumentFragment to not throw an error (266086@main)
  • Made nodeValue and textContent for Attr nodes not nullable (265769@main)
  • Web Inspector:
  • Stopped using Number.prototype.toLocaleString() for numeric console format specifiers (266020@main)

New in Safari 17.0 Technology Preview 174 (Jul 13, 2023)

  • CSS:
  • Added support for contain-intrinsic-size: auto none property syntax (265617@main)
  • Fixed text-overflow: ellipsis so it works with overflow: clip (265445@main)
  • Fixed cjk-earthly-branch and cjk-heavenly-stem counter styles to fallback to cjk-decimal (265474@main)
  • Fixed inline-flex and inline-grid boxes to stop propagating underlines to align with other browsers (265471@main)
  • Fixed CSS accelerated animation handling with multiple effects on the stack (265498@main)
  • Fixed cursor style to respect explicitly set cursor type over system default (265597@main)
  • CSS Container Queries:
  • Fixed container units in a container query to evaluate against the ancestor container (265583@main)
  • Fixed container units to consider writing mode for unit resolution (265654@main)
  • Fixed how text decorations propagate into tables to align with other browsers (265488@main)
  • Layout:
  • Fixed list alignment when a list item has a flex container (265464@main)
  • Fixed font size to allow use of fractional pixel values (265657@main)
  • Fixed bordercolor attribute on table elements to not create a visible border (265670@main)
  • JavaScript:
  • Renamed .groupByToMap() on Array to .groupBy() on Object and Map in order to align with latest TC-39 proposal (265632@main)
  • Media:
  • Added support for WebCodecs temporal scalabilityMode for software codecs, including parsing and error handling (265561@main)
  • Added support for WebM files with no track ID (265425@main)
  • Updated VTTCue to match latest W3C specification, including support for CSS updated default CSS properties, as well as support for vh, vw, cqh, and cqw units. (265596@main)
  • Popover:
  • Fixed togglePopover() to always throw an exception if it’s disconnected or not a popover (265589@main)
  • Accessibility:
  • Improved accessibility for tables and table components with display: flex, grid, block, inline-block, and contents (265486@main)
  • Prioritized HTML required attribute over aria-required when both are present (265552@main)
  • SVG:
  • Fixed dominant-baseline CSS property to be inherited (265525@main)
  • Fixed references for SVG fragments in shadow DOM trees (265565@main)
  • Web API:
  • Fixed constructing a SharedWorker in a detached document so it throws an exception (265483@main)
  • Removed artificial memory limit for canvas context, given it the same memory restrictions as other Web features (265628@main)

New in Safari 17.0 Technology Preview 173 (Jun 29, 2023)

  • Web Inspector:
  • Fixed color swatch to not show an incorrect tooltip when read-only (265039@main)
  • Fixed details sidebar in the Sources tab to maintain its width when changing between tabs (265152@main)
  • CSS:
  • Added a CSS rule nesting level limit (265309@main)
  • Fixed cjk-earthly-branch and cjk-heavenly-stem counter styles to have fixed system (265235@main)
  • Fixed the computed display of a form inside table elements to be display: none (265283@main)
  • Made optional in ray() for CSS Motion Path (265200@main)
  • Media Queries:
  • Implemented update media feature (265277@main)
  • Implemented scripting media feature (265278@main)
  • Fixed negative resolutions to be invalid (265279@main)
  • Rendering:
  • Fixed inline-level elements with a self-painting layer rendering overlapping ellipsis (264973@main)
  • Editing:
  • Fixed with float: left disappearing when editing text (264943@main)
  • JavaScript:
  • Added global String.replace(/regexp-global/g, func) result caching for large strings (264967@main)
  • Optimized op_to_this for global object case (265373@main)
  • Optimized parseFloat(number) (265189@main)
  • Optimized ProxyObject’s “ownKeys” trap (265218@main)
  • Popover:
  • Made popover methods forbid only modal dialogs, not all open dialogs (264876@main)
  • Made element.togglePopover() return a boolean (265064@main)
  • Images:
  • Fixed main-resource content loads with Content-Type: image/heif to show the image instead of downloading it (265091@main)
  • Media:
  • Fixed animation when making a video full screen (265051@main)
  • Fixed non-MSE blob URLs for the element and src attribute (265045@main)
  • Fixed WebM files support with no track ID (265425@main)
  • Fixed video going black with only audio playing when exiting picture-in-picture (264974@main)
  • Fixed Safari Tab showing a speaker icon indicating the tab is playing audio even though it is paused (265052@main)
  • Set a limit for the number of samples stored in SourceBuffer (265355@main)
  • Web API:
  • Changing the dir attribute of documentElement doesn’t update a child element matching :dir pseudo-class (265332@main)
  • Fixed images with decoding="async" flickering while zooming in. (265328@main)
  • Fixed serialization of Selectors (264980@main)
  • Fixed ensuring all ServiceWorkerRegistration files and directories are removed when registrations are cleared (264998@main)
  • Fixed style invalidation of IDs within :nth-child and :nth-last-child (264986@main)
  • Fixed MediaStream from canvas (captureStream) to be able to render into a different canvas (265128@main)
  • Fixed readAsDataURL.readAsDataURL() for empty blobs (265153@main)
  • Fixed remaining page height to never be 0 (264857@main)
  • Fixed with multiple enabled not consistently firing the onchange event (264873@main)
  • Fixed HTMLPreloadScanner to not ignore the referrerpolicy attribute for elements (265223@main)
  • Fixed window named getter to behave correctly when there are duplicate frame names (265211@main)
  • Fixed XMLHttpRequest.responseXML.characterSet (265210@main)
  • Set canvas-based VideoFrame color space to RGB (264881@main)
  • SVG:
  • Changed to stop propagating text decorations on the outermost SVG roots (264894@main)
  • Changed to use a placeholder SVG as a mask to respect semantic color changes (265037@main)
  • Fixed filter when defined inside then set directly on the element (265135@main)
  • Fixed setting the vector-effect attribute in the SVG tag to “non-scaling-stroke” has no effect (265204@main)
  • Fixed handling of a negative radius for feMorphology (265007@main)

New in Safari 17.0 Technology Preview 172 (Jun 19, 2023)

  • Web Inspector:
  • Fixed truncation for deeply nested async stack traces to avoid infinite nesting (264354@main)
  • Fixed XHR request with the same URL as the main resource to have an XHR type (264686@main)
  • CSS:
  • Added unprefixed hyphens and hyphenate-character CSS properties (264628@main)
  • Added :has() invalidation support for :defined pseudo class (264602@main)
  • Added nowrap white-space to the User-Agent Stylesheet for the option element (264691@main)
  • Fixed child-indexed pseudo-classes to match root elements (264620@main)
  • Fixed baseline alignment to not synthesize the first baseline when a flex item block axis is parallel to a flex cross axis (264423@main)
  • Fixed input elements to respect line heights smaller than normal (264802@main)
  • Fixed computing table overflow to take overflow: clip into account (264849@main)
  • Fixed viewport layout size when a site specifies an initial scale (264842@main)
  • Image Set:
  • Fixed type() function to only take one string (264310@main)
  • Fixed image-set options with identical resolutions to choose the first supported image type (264481@main)
  • Rendering:
  • Fixed calculating the actual column count to avoid floating point precision issues (264667@main)
  • Fixed wrong input text position with line-height (264613@main)
  • Fixed which element scrollbar-width is resolved from for the viewport (264632@main)
  • Fixed resize handles to render correctly when scrollbar-width is none (264630@main)
  • Editing:
  • Fixed option and optgroup to not be focusable in a menulist (264755@main)
  • Fixed text selection to appear correctly for partially rotated text (264556@main)
  • Fixed the caret color when specifying caret-color: auto (264818@main)
  • Fixed the input renderer applying overflow clipping to the content box (264731@main)
  • Fixed matching elements without a parent with child-indexed pseudo-classes (264620@main)
  • Fixed overflowing placeholder text inside an input (264684@main)
  • Fixed clipping a caret rect changing size instead of clipping (264708@main)
  • JavaScript:
  • Added String#split cache (264749@main)
  • Allowed CellOrOther for PutByVal etc. (264683@main)
  • Disabled fp-contract explicitly for Date math (264453@main)
  • Fixed to use ApproximateTime in CodeCache (264640@main)
  • Media:
  • Fixed WebRTC backed media element rendering layer changes slowly (size or layer made hidden/visible) (264777@main)
  • Added the BufferedChangeEvent object (264472@main)
  • Fixed media recorder producing empty chunks (264478@main)
  • Fixed getDisplayMedia capture to mute other tabs when starting (264611@main)
  • Popover:
  • Fixed hidePopover to prevent a recursive loop (264623@main)
  • SVG:
  • Fixed animateMotion to accumulate properly with rotate: auto or rotate: auto-reverse (264595@main)
  • Fixed to not create an interval if a value in begin-value-list doesn’t have a matching value in end-value-list (264635@main)
  • Fixed using a nested SVG resource (264618@main)
  • Fixed the computed display for SVG elements (264627@main)
  • Fixed the mapping from a point to a character index for the SVG element (264796@main)
  • Accessibility:
  • Fixed aria-checked to work for role="treeitem" elements with display: contents (264761@main)
  • Fixed display: contents lists to return the correct sub-role (264644@main)
  • Fixed elements with the popovertarget attribute to expose expanded state to assistive technologies (264852@main)
  • HTML:
  • Removed -webkit-user-select: none from draggable elements (264448@main)
  • IndexedDB:
  • Fixed an array keyPath to yield an array key (264479@main)
  • Web API:
  • Added applying cookie policy on WebSocket requests (264753@main)
  • Fixed the change event to fire when the user reverts the value of a color, date, time, or datetime input after JavaScript changed the value (264528@main)
  • Fixed images with decoding="async" flickering while zooming in (264433@main)
  • Fixed forbidden host and domain code points to align with specifications (264482@main)
  • Fixed to not fire a mousemove event when a modifier key is pressed (264455@main)
  • Fixed the heuristics for reporting storage quota (264446@main)
  • Fixed CSS.supports() to always use no-quirks mode (264835@main)
  • Fixed window.stop() to fire abort events on XMLHttpRequest asynchronously (264765@main)
  • Fixed navigator.credentials.preventSilentAccess() (264345@main)
  • Fixed HTMLOptionElement text setter to not have a non-conforming observable behavior (264442@main)
  • Fixed ignoring bidi control characters while collecting fallback fonts (264509@main)
  • Fixed missing network connection integrity policies when connecting via (264382@main)
  • Fixed to resolve percentage in use against the instance’s viewport element (264596@main)
  • Fixed selecting an OptGroup label not unselecting the selected item (264767@main)
  • Fixed ServiceWorker downloads when chunks are sent via postMessage (264412@main)

New in Safari 16.4 Technology Preview 171 (Jun 2, 2023)

  • Web Inspector:
  • Console tab:
  • Added showing the target of a WeakRef (264171@main)
  • Fixed timestamps taking up different amounts of space (264161@main)
  • Sources tab:
  • Fixed Step Over behaving like resume when stepping over a function with a falsy conditional breakpoint (264160@main)
  • Storage tab:
  • Fixed truncated localStorage editing giving the illusion of a proper edit and the truncated string being saved (264166@main)
  • Fixed popovers so that only one can be displayed at a time (264159@main)
  • CSS:
  • Added support for @font-face { src: tech() } and @supports font-tech() (263725@main)
  • Added support for @font-face size-adjust descriptor (263604@main)
  • Fixed ascent for flex items that are scroll containers to be clamped to the border box (263974@main)
  • Fixed text-shadow and box-shadow with currentcolor (264120@main)
  • Fixed the containing block for items in a masonry columns grid to be the logical width of the grid’s content box (264011@main)
  • Fixed not adding extra grid gap at the bottom of masonry rows (263657@main)
  • Fixed computing masonry item offsets (263709@main)
  • Fixed image-set to accept zero resolution and clamp negative resolutions used in calc expressions (264298@main)
  • Fixed container query length units to use the content box instead of the border box (263595@main)
  • Fixed CSS Masonry Layout to ensure grid size updates on resize (263712@main)
  • Fixed overflow: clip fails when intrusive float is present (264101@main)
  • Removed parsing support of left and right values for caption-side (264262@main)
  • Renamed text-box-trim value normal to none (263702@main)
  • Renamed leading-trim to text-box-trim to match the latest spec (263587@main)
  • Renamed text-edge to text-box-edge to match the latest spec (263612@main)
  • Fixed the bug that @supports selector() fails for all -webkit- prefixed pseudo elements (264090@main)
  • CSS Counter Styles:
  • Added support for extending ethiopic counter styles (263602@main)
  • Added support for extending CJK counter styles (263542@main, 263544@main)
  • Web Animations:
  • Removed animation support for zoom (263908@main)
  • Rendering:
  • Fixed images with decoding="async" flickering while zooming in (264433@main)
  • Fixed handling multi-column intrinsic inline-size changes (264292@main)
  • Fixed SVG use element doesn’t render if it references a subsequent element after a style resolution (264085@main)
  • Fixed alt texts rendered horizontally in vertical writing mode (263776@main)
  • Fixed OffscreenCanvas rendering hiding the border from the element (263731@main)
  • Complex text path: Make tab glyph invisible after advancing (263929@main)
  • Fixed text not wrapping in a nested grid (264252@main)
  • Changed to respect style containment on list items (264273@main)
  • Fixed negative shadow repaint issue (263899@main)
  • Fixed width of textarea with overflow hidden including scrollbar thickness (264095@main)
  • Fixed textarea’s logical height with overflow: auto to not include scrollbar-thickness (264251@main)
  • JavaScript:
  • Cached default Intl NumberFormat (264057@main)
  • Cached lookups of ProxyObject’s traps (263944@main)
  • Changed to not use Strong in VM and simplify jsString (264099@main)
  • Changed to not use Vector as intermediate transfer buffer for typed array (263942@main)
  • Disabled Array#group and Array#groupToMap (263922@main)
  • Fixed definePropertyOnReceiver() to account for put_by_val_with_this bytecode op (263559@main)
  • Fixed /p{Number}--]/v; to be a syntax error (264175@main)
  • Fixed JSON.parse to use simple recursion until it hits a soft-recursion threshold (263744@main)
  • Fixed StringConstructor constant function inlining in the case of [[Construct]] (264191@main)
  • Fixed Stringifier to quickly get names even if it involves accessors (263619@main)
  • Optimized Dictionary access (264040@main)
  • Optimized JSON.stringify integer serialization (263765@main)
  • Popover:
  • Changed to not throw when popover or dialog is in requested state (263957@main)
  • Changed to only use the invoker to establish popover hierarchy (264002@main)
  • Changed to use the focus algorithm for dialog popovers (263749@main)
  • Changed hidePopover to restore focus only when focus was in the popover (263645@main)
  • Reset the invoker in showPopover() (264006@main)
  • Web API:
  • Added more explicit error messages for new URL(url, base) Constructor (264129@main)
  • Added value argument to URLSearchParams’s has() and delete() (263726@main)
  • Added support for AbortSignal.any() (264163@main)
  • Added support for ServiceWorkerRegistration.getNotifications() (264169@main)
  • Added support for the element (264110@main)
  • Exposed DeviceMotionEvent and DeviceOrientationEvent on the global Window object on macOS (264271@main)
  • Changed document.body.onerror setter to setup a five-parameter listener (264190@main)
  • Changed the HTML parser to allow to be used inside as a separator per a recent HTML Standard change the WebKit team contributed, which makes it easier to add a visual separator on macOS (263624@main)
  • Changed to not escape , &, and nbsp inside a element when scripting is enabled (263633@main)
  • Changed to respect Content-Type from internal headers instead of caching it in body (264054@main)
  • Changed to allow relative URLs and http(s) scheme in the WebSocket constructor (263968@main)
  • Changed WebSocket’s binaryType setter to not throw (263963@main)
  • Fixed firing a controllerchange event on clients when a service worker gets deleted (264255@main)
  • Fixed running a service worker before firing its activate event (264242@main)
  • Fixed document.write of template producing multiple text nodes (263841@main)
  • Fixed event dispatching on disabled form controls (264098@main)
  • Fixed a bug in the preload scanner with nested templates (263850@main)
  • Fixed node depth computation for shadow nodes in ResizeObserver (263920@main)
  • Fixed revealing the focused input element in an event loop task instead of a post layout task (263665@main)
  • Fixed with an invalid date to return an empty string for the value instead of the default value (263784@main)
  • Fixed sanitizing email input when the multiple attribute is set (263555@main)
  • Fixed selecting a link and pasting plain text changes text in the link, but not the link href (263539@main)
  • Fixed StorageManager.persist() (263930@main)
  • Fixed input.validity reporting valid: true for partially completed dates and times (263748@main)
  • Fixed Compression Streams not handling large outputs during the flush stage (263997@main)
  • Mapped align="abscenter" to vertical-align: middle (263852@main)
  • Media:
  • Added support for getDisplayMedia video track clone resizing (263750@main)
  • Exposed aspectRatio and frameRate in RTCPeerConnection remote MediaStreamTrack settings (263849@main)
  • Fixed camera and microphone to all have groupIds (264112@main)
  • Accessibility:
  • Fixed the HTML element to map to role=list (264077@main)
  • Fixed aria-describedby to be equivalent to aria-description and override it when both are present (263813@main)
  • Fixed slot elements not computing a label for aria-labelledby (263644@main)
  • Fixed slotted elements inside and aria-modal not being accessible (263561@main)
  • SVG:
  • Fixed to orient correctly (264053@main)
  • Fixed overflow="visible" having no effect on the dimension of a use element unless its dimensions are specified (263977@main)

New in Safari 16.4 Technology Preview 170 (May 18, 2023)

  • CSS:
  • Fixed :dir pseudo-class to invalidate after removing dir content attribute from the document element (263357@main)
  • Fixed computing the percentage height of table cell replaced children where the table cell has a horizontal scrollbar (263318@main)
  • Fixed shorthand flow relative margin and padding values to resolve for individual CSS property values (263372@main, 263391@main)
  • Fixed trimming nested self-collapsing children at block-end (263439@main)
  • Fixed trimmed block-end margins for block containers to be reflected in the computed style in a horizontal writing mode (263398@main)
  • Fixed content at block-start edge to have their trimmed margins reflected in the computed style (263412@main)
  • Fixed the CSS hypot() function sometimes returning the result squared (263351@main)
  • Forms:
  • Fixed the value not updating on and elements (263473@main)
  • Layout:
  • Fixed unexpected content wrapping when percent padding is present (263535@main)
  • Fixed sibling flex items sometimes showing clamped content (263360@main)
  • Fixed incorrect damage line index sometimes causing double inline items (263455@main)
  • Fixed content getting truncated too early caused by subpixel flooring (263428@main)
  • Fixed text-overflow: ellipsis truncating the text incorrectly in right-to-left (263418@main)
  • JavaScript:
  • Expanded existing property names caching onto Reflect.ownKeys() and Object.getOwnPropertySymbols() (263441@main)
  • Integrated inlined megamorphic access in DFG and FTL (263300@main)
  • Optimized Object.assign with empty object (263444@main)
  • Simplified and optimized the JSON parser (263416@main)
  • Media:
  • Fixed content briefly zooming in when exiting picture-in-picture (263350@main)
  • Fixed AirPlay sometimes failing (263534@main)
  • Popover:
  • Fixed handling of popovers moved between documents after beforetoggle event (263449@main)
  • Implemented focus navigation scopes for popovers (263532@main)
  • Accessibility:
  • Fixed aria-flowto for display: contents elements (263425@main)
  • Fixed display: contents elements never returning any selected AX children despite having them (263339@main)
  • Fixed the accessible name getting computed incorrectly for display: contents elements that rely on labels or captions (263379@main)
  • Fixed form controls to be focusable when tabindex attribute is set (263527@main)

New in Safari 16.4 Technology Preview 169 (May 4, 2023)

  • Web Inspector:
  • Console Tab:
  • Fixed internal properties not getting greyed-out in object previews (262924@main)
  • Fixed non-enumerable properties appearing as though they’re internal (262923@main)
  • Fixed timestamps (263261@main)
  • Fixed repeated logs sometimes having the wrong timestamp (263265@main)
  • Fixed timestamps causing objects to be shown on a separate line (263263@main)
  • Sources Tab:
  • Added support for ES2022 Private Fields when inspecting and logging JavaScript objects (262882@main)
  • CSS:
  • Implemented overflow-block and overflow-inline media query features (263088@main)
  • Implemented the from-font value for font-size-adjust (262800@main)
  • Fixed parsing of nested at-rules with CSSOM (263028@main)
  • Fixed background-size to not accept unit-less lengths (262873@main)
  • Fixed cross-size width of a table flex-item inside inline-flex with column flex-direction (263001@main)
  • Fixed text-emphasis marks to not render if there is no emphasized character (262997@main)
  • Fixed computed style to reflect trimmed block-start, block-end, inline-end, and inline-start margins for grid items in horizontal writing-mode (262967@main, 263002@main, 263008@main, 263006@main)
  • Fixed rebuilding the rule set from the original (not resolved) selector (263026@main)
  • Fixed rendering issue with checkbox in flexbox layout (263052@main)
  • Scroll Snap:
  • Fixed snapping to the last snap position when performing layout when scroll snapping occurs with a phyisical mouse wheel (263108@main)
  • Fixed scrolling with a physical mouse wheel to not always animate to the closest snap point (263071@main)
  • Fixed updating the tracking for currently snapped boxes on each scroll-related snap and re-snapping after layout (263097@main)
  • JavaScript:
  • Added and optimized enumerator_put_by_val (263056@main)
  • Optimized Array#join’s toString operation for Objects (263117@main)
  • Implemented megamorphic load IC (262872@main, 263200@main)
  • Popover:
  • Renamed :open to :popover-open and removed :closed (262764@main)
  • SVG:
  • Fixed clip-path sometimes being broken (263087@main)
  • Accessibility:
  • Fixed aria-activedescendant to work for display: contents elements (263163@main)
  • Fixed aria-grabbed and aria-dropeffects to work for display: contents elements (263249@main)
  • Fixed CSS speak-as, AXAccessKey, aria-owns, and URL AX APIs to work for display: contents elements (263205@main)
  • Fixed isSelected AX APIs for some types of display: contents elements (263014@main)
  • Fixed properly exposing lists that have display: contents list items (262889@main)
  • Fixed conveying focus movement when using aria-activedescendant to set the active cell within a grid (263189@main)
  • Fixed computing the wrong accessibility clickpoint for display: contents links and headings (263287@main)
  • Media:
  • Fixed to end a muted microphone track if its device disappears (263132@main)
  • Fixed a default camera whose facingMode is unknown to be selected by getUserMedia if there is no facingMode constraint (263022@main)
  • Rendering:
  • Fixed element counter-scaling causing overlapping media elements when page scale is less than 1 (262952@main)
  • Web API:
  • Added customElements.getName method (263281@main)
  • Added missing service worker content filter check (262972@main)
  • Fixed createImageBitmap using ImageData to respect the premultiply flag (263137@main)
  • Fixed data: URL base64 handling to always match atob() (262976@main)
  • Fixed postMessage support to occur when creating service worker clients (262818@main)
  • Fixed HTML fast parser failing to parse complex HTML entities (262856@main)
  • Fixed missing underline after the first character in contenteditable (262914@main)
  • Fixed window.open from an iframe not exiting fullscreen for parent document (263284@main)

New in Safari 16.4 Technology Preview 168 (Apr 20, 2023)

  • Web Inspector:
  • Network tab:
  • Fixed cleared items reappearing with Preserve Log enabled (262603@main)
  • Sources tab:
  • Fixed unresponsiveness after inspecting photos (262409@main)
  • Graphics tab:
  • Added support for OffscreenCanvas in Canvas related operations (262388@main)
  • CSS:
  • Added CSS Nesting serialization support for CSSOM (262177@main)
  • Added support for @supports font-format() (262305@main)
  • Implemented two-value syntax of font-size-adjust (262309@main, 262374@main)
  • Implemented CSSOM insertRule() on StyleRule (262394@main)
  • Fixed color() function parsing to reject missing components (262098@main)
  • Fixed to not show cursor: pointer on unclickable (262559@main)
  • Fixed UA styles incorrectly applying to elements with other namespaces such as SVG (262053@main)
  • Fixed hit testing for an ::after with transform-style: preserve-3d and a negative z-index (262728@main)
  • Fixed content: counter() not updating visually if position: absolute is set (262269@main)
  • Fixed unknown function parsing in @supports rule (262308@main)
  • Fixed @counter-style to stop allowing redefining certain predefined styles (262038@main)
  • Fixed @counter-style extends system to always extend first symbol for fixed system (262264@main)
  • Fixed triggering layout on margin-trim style change (262423@main)
  • Fixed trimmed block-start, block-end, inline-start, and inline-end margins for flex items in horizontal writing mode to reflect in computed style (262700@main, 262081@main, 262663@main, 262708@main)
  • Rendering:
  • Fixed statically positioned out-of-flow box location when display type changes from block to inline-block (262042@main)
  • Fixed incorrectly positioned out-of-flow box when a layout boundary is present (262470@main)
  • Fixed siblings layout if an adjacent float no longer affects them (262481@main)
  • Fixed vertical-align correctness (262506@main)
  • Fixed MathML element in display: flex not getting repainted on a content change (262674@main)
  • Fixed statically positioned out-of-flow box with anonymous sibling flex item inside display: flex (262341@main)
  • Web Animations:
  • Fixed first frame of transform animation visible when !important style overrides the animated value (262327@main)
  • JavaScript:
  • Added ImplementationVisibility to Wasm::Callee (262191@main)
  • Aligned RegExp V Flags Syntax errors with V8 (262017@main)
  • Applied the new display computation for digital in Intl.DurationFormat (262682@main)
  • Fixed Paren Context allocation and use with Duplicate Named Capture groups (262239@main)
  • Lockdown Mode:
  • Disabled the Web Codecs API (262653@main)
  • Media:
  • Fixed videos not playing if opened in full screen on first play (262654@main)
  • Popover:
  • Fixed event.preventDefault() to not cancel popover light dismiss (262283@main)
  • Fixed changing popover attribute during beforetoggle when showing a popover to throw an exception (262026@main)
  • Implemented “check and possibly close popover stack” algorithm (262440@main)
  • Web API:
  • Implemented URL.canParse() (262072@main)
  • Fixed HTML Comments after placed at the bottom of the contents (262222@main)
  • Fixed innerHTML escaping , &, and nbsp inside noembed, noframes, iframe and plaintext (262285@main)
  • Fixed innerHTML serialization to not have a special handling for javascript: URLs (262267@main)
  • Fixed sliced blobs ending up with the wrong Content-Type in Fetch (262583@main)
  • Fixed Offscreen Canvas not respecting size set via CSS (262039@main)
  • Fixed smooth keyboard scrolling with Page Up and Page Down (262466@main)
  • Accessibility:
  • Changed to not include the password input value in aria-labelledby description (262433@main)
  • Fixed aria-owns attribute for the radio role (262566@main)
  • Fixed VoiceOver not reading entered text in text fields (262126@main)

New in Safari 16.4 Technology Preview 167 (Apr 6, 2023)

  • Web Inspector:
  • Elements tab:
  • Fixed editing CSS properties inside rules with nested rules causing the inner nested rules to be deleted (261329@main)
  • Fixed filtering styles to also match CSS at-rule identifiers (261804@main)
  • Sources tab:
  • Added pretty-printing support for various modern JavaScript syntax, including optional chaining, private class members, and optional assignment operators (261748@main)
  • CSS:
  • Implemented CSS text-transform with multiple values (261419@main)
  • Added offsets into shape-outside Shapes (261331@main)
  • Added support for top-level & selector for CSS Nesting (261739@main)
  • Changed to apply basic font properties as font variation settings (261566@main)
  • Fixed CSS @imports in HTML missing quote marks getting mistakenly hidden from the Preload Scanner (261254@main)
  • Fixed calculating the CSSFilter geometry and clipping (261827@main)
  • JavaScript:
  • Added ClassSetCharacter syntax tests for RegExp v flag and fix issues found (261746@main)
  • Added more tests for RegExp v flag and fix issues found (261714@main)
  • Added ProxyObjectHas IC to optimize “has” trap (261628@main)
  • Aligned error message for non-callable ProxyObject’s “get” trap with its counterparts (261627@main)
  • Optimized Function.prototype.bind (261825@main)
  • WebAssembly:
  • Added support for anyref behind flag (261711@main)
  • Implemented cast operations behind flag (261445@main)
  • Implemented eqref and ref.eq behind flag (261663@main)
  • Implemented initial minimal JS API for Wasm GC behind flag (261544@main)
  • Media:
  • Fixed video in picture-to-picture snaps to incorrect size (261383@main)
  • Fixed a page with one document doing capture and another playing correctly handle remote commands (261414@main)
  • Skipped initial MSE buffering rate computation (261328@main)
  • Popover:
  • Avoided conflicting interactions in the top layer (261317@main)
  • Made element.togglePopover() more interoperable (261386@main, 261436@main)
  • Implemented popover focusing steps (261400@main)
  • Implemented popovertarget & popovertargetaction attributes (261346@main)
  • Added an exception when calling dialog.show() on an open popover (261351@main)
  • Rendering:
  • Fixed mixed characters in right-to-left SVG text (261495@main)
  • Web API:
  • Implemented Priority Hints (261689@main)
  • Changed to allow quota to be set based on disk space (261840@main)
  • Changed range.extractContents() to abort early if there’s a doctype in the range (261342@main)
  • Changed to include FetchMetadata on preflight requests (261587@main)
  • Fixed some Scroll To Text Fragment URLs not finding existing text on the page (261302@main)
  • Fixed the element not focusable with tabindex (261497@main)
  • Fixed problems changing multiple state element to single state (261380@main)
  • Optimized the HTML parser entity names table by omitting semicolons (261734@main)
  • Updated margin box for trimmed block-end boxes in block container and adjust the position of self-collapsing children (261750@main)
  • Accessibility:
  • Added support for code ARIA role (261640@main)
  • Fixed standalone spin buttons to be directly incrementable and decrementable (261396@main)
  • MathML:
  • Fixed not ignoring out-of-flow boxes while processing invalid MathML content (261841@main)
  • SVG:
  • Fixed text transformation not starting on initial render (261408@main)

New in Safari 16.4 Technology Preview 166 (Mar 24, 2023)

  • Web Inspector:
  • Added input fields for editing variation axes values in Fonts sidebar panel (261162@main)
  • CSS:
  • Enabled @counter-style by default (261182@main, 260912@main, 261135@main)
  • Enabled CSS contain-intrinsic-size by default (261185@main)
  • Fixed serialization of image-set() to use authored order (261015@main)
  • Implemented @supports with the & nesting operator (261004@main)
  • Implemented text-transform: full-width (261211@main)
  • Fixed floats trimmed margins to not contribute to the containing block's intrinsic sizing (260906@main)
  • JavaScript:
  • Implemented RegExp v flag with set notation and properties of strings (261188@main)
  • Enabled new WASM baseline JIT (BBQ) for increased performance (261153@main)
  • Inlined Proxy [[Set]] trap in DFG / FTL (261058@main)
  • Made C++ to JS calls faster (260858@main)
  • Popover:
  • Enabled the popover attribute (261193@main)
  • Implemented [popover=auto] and light dismiss behavior (261093@main)
  • Media:
  • Fixed picture-in-picture video snapping to incorrect size (261383@main)
  • MSE:
  • Changed to only fire durationchange after parsing the media buffer (261029@main)
  • Web API:
  • Added support for preconnect via HTTP early hints (261079@main)
  • Added Cancel, Unknown, and Clear keycodes (261008@main)
  • Added selection API that works across shadow boundaries (261021@main)
  • Added support for largeBlob extension for the local authenticator (260958@main)
  • Adjusted text input scrollWidth and scrollHeight to include padding and any whitespace added by decorations (261121@main)
  • Fixed translation for shadow DOM content (261096@main)
  • Fixed translation to treat a floating list item as its own paragraph (261114@main)
  • Fixed Speech Recognition API terminating after one utterance or a short time (260886@main)
  • Fixed window.onload getting repeatedly re-executed when changing the URL fragment during onload (260860@main)
  • Improved support for prioritized HTTPS navigations (261022@main)
  • Stripped tab and newline from Location, URL, , and 's protocol setter (261017@main)
  • Accessibility:
  • Fixed input[type=date] individual fields getting announced as "group" (261123@main)
  • Fixed the wrong role displayed for input in Web Inspector (260868@main)

New in Safari 16.4 Technology Preview 165 (Mar 9, 2023)

  • Web Inspector:
  • Added support for color-mix CSS values in the Styles details sidebar of the Elements tab (260332@main)
  • Added setting to always show rulers when highlighting elements (260416@main)
  • CSS:
  • Added support for text-transform: full-size-kana (260307@main)
  • Added support for margin-trim for floats in block containers that contain only block boxes (260318@main)
  • Added support for x units in calc() function (260678@main)
  • Added support to image-set() for resolution and type as optional arguments (260796@main)
  • Fixed preserve-3d not being applied to pseudo elements. (260324@main)
  • Fixed opacity not applying to dialog element ::backdrop pseudo-class (260556@main)
  • Fixed the background to not propagate when content: paint is set on the body or root element (260766@main)
  • Fixed table-layout: fixed not being applied when width is max-content (260501@main)
  • Fixed font-optical-sizing: auto having no effect (260447@main)
  • JavaScript:
  • Added support for RegExp Duplicate Named Capture Groups (260692@main)
  • Changed Intl.Locale info proposals’ getters to methods to match the latest specification (260412@main)
  • Optimized Boolean constructor calls (260816@main)
  • Optimized Proxy [[Set]] trap (260803@main)
  • Optimized Bound function calls (260303@main, 260494@main)
  • Optimized Reflect.get (260327@main)
  • Optimized Proxy [[Get]] trap (260282@main)
  • Optimized WebAssembly SIMD operations (260223@main, 260206@main, 260239@main)
  • Replaced narrow-no-break spaces from Intl.DateTimeFormat with ASCII spaces for web compatibility (260179@main)
  • Updated RegExp UnicodeData to 15.0.0 (260607@main)
  • Layout:
  • Fixed accounting of margins in multi-column layout before forced breaks (260510@main)
  • Fixed floats with clear to not be placed incorrectly (260674@main)
  • Media:
  • Fixed SourceBuffer.timestampOffset not behaving correctly with webm content (260822@main)
  • Fixed HDR data to no longer be clipped in AVIF images (260512@main)
  • Forms:
  • Fixed resetting the value of an input type=file to null to make the input invalid (260688@main)
  • Fixed minlength/maxlength attributes to rely on code units instead of grapheme clusters (260838@main)
  • Web Animations:
  • Added support for the length property of CSSKeyframesRule (260400@main)
  • Changed animation of mask-image to be discrete (260756@main)
  • Fixed custom properties not being treated as valid in the shorthand animation property (260759@main)
  • Fixed transition-property: all not applying to custom properties (260384@main)
  • WebCrypto:
  • Fixed Secure Curves not having a namedCurve property (260599@main)
  • WebGL:
  • Fixed restored WebGL context not being visible until layout (260693@main)
  • Loading:
  • Fixed lazily loaded frames to get a contentWindow/contentDocument as soon as they get inserted into the document (260713@main)
  • Fixed frames to not be lazily loaded if they have an invalid or about:blank URL (260612@main)
  • Web API:
  • Added Headers.prototype.getSetCookie. (260533@main)
  • Added support for link rel=modulepreload (260761@main, 260709@main, 260659@main)
  • Fixed location.href to throw a DOMException "SyntaxError" on failing to parse the URL (260539@main)
  • Accessibility:
  • Fixed aria-errormessage to not be exposed when aria-invalid is false (260545@main)
  • Fixed text associated with various types of elements not being exposed (260521@main)
  • Fixed invalid summary elements to not be exposed as interactive (260546@main)
  • Fixed some inputs not being treated as invalid despite being rendered as such (260544@main)
  • Web Extensions:
  • Fixed Content Blocker API ignoring some CSS selectors with uppercase letters (260638@main)

New in Safari 16.4 Technology Preview 164 (Feb 23, 2023)

  • Web Inspector:
  • Elements tab:
  • Added showing grid and flex overlays when in element selection and highlighting elements (259989@main, 260061@main)
  • Prevented showing ::backdrop rules for elements without a backdrop (259894@main)
  • Sources tab:
  • Added experimental feature to enable aggressive limits on the length of lines that are formatted for sources (259603@main)
  • CSS:
  • Fixed dynamically setting the width of tables with fixed layout and auto width (260143@main)
  • Improved serialization of mask and background properties (260157@main)
  • Made -webkit-image-set() an alias of image-set() (259994@main)
  • Made margin-trim trim collapsed margins at block-start and block-end sides (259734@main)
  • JavaScript:
  • Fixed String#toWellFormed to return stringified value (260043@main)
  • Disabled import-assertion based on TC39’s stage-2 downgrade (259795@main)
  • Disabled wasm tail-calls because of some issues (259801@main)
  • Made JavaScript to Wasm function calls faster (259584@main)
  • Optimized parseInt(number) case (259939@main)
  • Optimized RegExp performance by enhancing Boyer-Moore search (259941@main, 260054@main, 260142@main)
  • Optimized String constructor calls (260146@main)
  • ResizeObserver:
  • Fixed the initial last reported size of ResizeObservation (259673@main)
  • Rendering:
  • Fixed content truncation when text-overflow is ellipsis (259850@main)
  • Fixed table cells, rows, sections or column (groups) to support margins (259955@main)
  • Fixed the margin for summary on details for right-to-left mode (260063@main)
  • Fixed inline text boxes containing Zero Width Joiner, Zero Width Non-Joiner, or Zero Width No-Break Space characters to not use simplified text measuring (259618@main)
  • Web Animations:
  • Fixed animating two custom property list values with mismatching types to use a discrete animation (259557@main)
  • Fixed the animation of color list custom properties when iterationComposite is incorrect (259761@main)
  • Fixed composite of implicit keyframes for CSS Animations to be replace (259739@main)
  • Fixed keyframes to be recomputed if a custom property registration changes (259737@main)
  • Fixed keyframes to be recomputed when bolder or lighter is used on a font-weight property (259740@main)
  • Fixed keyframes to be recomputed when a parent element changes value for a custom property set to inherit (259812@main)
  • Fixed keyframes to be recomputed when a parent element changes value for a non-inherited property set to inherit (259645@main)
  • Fixed keyframes to be recomputed when the currentcolor value is used on color related properties (259736@main)
  • Fixed keyframes to be recomputed when the currentcolor value is used on a custom property (259808@main)
  • Fixed line-height to not transition from the default value to a number (260028@main)
  • Fixed animations without a browsing context to be idle (260101@main)
  • Fixed an @keyframes rule using an inherit value to update the resolved value when the parent style changes (259631@main)
  • Fixed non-inherited custom property failing to inherit from parent when inherit is set (259809@main)
  • WebAuthn:
  • Fixed conditional passkey requests not cancelling correctly after AbortController.abort() (259754@main)
  • Media:
  • Fixed distorted audio after getUserMedia when playing with AudioWorkletNode (259964@main)
  • Fixed getDisplayMedia to not build a list of every screen and window (259969@main)
  • HTTP:
  • Enabled Clear-Site-Data HTTP header support (259970@main)
  • Added support for Clear-Site-Data: "executionContext" (259940@main)
  • Editing:
  • Turned on the feature to make selection return a live range from getRangeAt and throw errors as specified (259904@main)
  • Fixed incorrect text caret placement when right-to-left text starts with whitespace (259868@main)
  • Web API:
  • Added optional submitter parameter to FormData constructor (259558@main)
  • Added canvas.drawImage support for SVGImageElement (259869@main)
  • Implemented focus fixup rule so that focused elements are blurred when they are no longer focusable due to style changes (260067@main)
  • Fixed elements with media queries that do not match to not block visually first paint (259963@main)
  • Fixed a Fetch bug with empty header values in Headers objects with "request-no-cors" guard (260066@main)
  • Fixed caret move by line when padding-top is set (259906@main)
  • Fixed individually paused or playing animations not being effected by Play All Animations and Pause All Animations (259971@main)
  • Fixed find on page failing to show results in PDFs in Safari (259655@main)
  • Fixed navigation within an iframe not exiting fullscreen for a parent iframe element (260024@main)
  • Fixed scrolling away from and back to an individually playing animation causing it to be incorrectly paused (259910@main)
  • Safari Web Extensions:
  • Fixed Cross-Origin-Resource-Policy blocking fetch from extensions (259976@main)

New in Safari 16.4 Technology Preview 163 (Feb 9, 2023)

  • Web Inspector:
  • General:
  • Fixed Web Inspector not remembering which side of the window it was attached to (259320@main)
  • Fixed undocked Web Inspector windows being placed in a different window set from the window they are inspecting when using Stage Manager (258672@main)
  • Elements Tab:
  • Fixed the ITAL variation axis slider showing NaN values in the Fonts details sidebar panel (259351@main)
  • Fixed “Inspect Element” not revealing the selected element in the DOM tree if the element was hidden behind the "Show All Nodes" button (258805@main)
  • Timelines Tab:
  • Disabled the Screenshots timeline when inspecting targets that can't support it (259326@main)
  • Masonry Layout:
  • Enabled Masonry layout by default (258694@main, 259308@main)
  • Added the initial support for align-tracks and justify-tracks (258544@main)
  • CSS Custom Properties:
  • Added dependency cycle handling that involves root style (258985@main)
  • Added detection for complex custom property cycles involving multiple loops (259506@main)
  • Added handling for computational dependencies in transform functions (259353@main, 259298@main)
  • Changed rules in shadow trees to be ignored (258880@main)
  • Updated CSS custom properties containing var() to update when the referenced property is animated (258786@main)
  • Fixed failing to provide intialValue in registerProperty with non-universal syntax should throw (258909@main)
  • Fixed “ | +” to match “yellow blue” (259166@main)
  • Ensured transition-property values fill with a custom property when other transition CSS properties are used with a longer list of items (258770@main)
  • :has() pseudo-class:
  • Added invalidation support for :buffering and :stalled pseudo-classes (258891@main)
  • Made :has() require valid selectors for all selectors in the selector list (258712@main)
  • Media Queries Level 4:
  • Allowed negative values in media queries (258938@main)
  • Made "layer" an invalid media type name (258957@main)
  • CSS:
  • Added support for leading-trim (258766@main)
  • Added support for using currentcolor with color-mix() (258970@main, 259145@main)
  • Fixed box-shadow not painting correctly on inline elements (258923@main)
  • Made CSS animations participate in cascade (258514@main)
  • Fixed invalidation for class names within :nth-child() selector lists (258917@main)
  • Fixed focusing an element with scroll snap to not always result in snapping to that element (259381@main)
  • Fixed font-face src list failing early if the component fails (258749@main, 258870@main)
  • Fixed font-face src local() to invalidate CSS-wide keywords (258695@main)
  • Fixed text-decoration-thickness property to always trigger a repaint when changed (258641@main)
  • Fixed overscroll-behavior: none to prevent overscroll when the page is too small to scroll (259227@main)
  • Fixed appearance: slider-vertical to only apply to range inputs (258924@main)
  • Fixed that initial whitespace breaks the query in window.matchMedia() (259357@main)
  • Fixed a bug that Disconnected elements sometimes incorrectly match :valid / :invalid selectors (259422@main)
  • Removed "specified hue" color interpolation method for gradients and color-mix() (259190@main)
  • Stopped requiring whitespace between of and the selector list in :nth-child and :nth-last-child (258703@main)
  • CSS Typed OM:
  • Stopped treating grid-row-start, grid-column-start, grid-row-end, and grid-column-end as list properties (258764@main)
  • Forms:
  • Fixed input[type=submit], input[type=reset], and input[type=button] to honor font-size/padding/height and to work with multi-line values (258754@main)
  • Rendering:
  • Added a guard against zero or negative space shortage (258647@main)
  • Changed the default oblique angle from 20 degrees to 14 degrees to match other browsers (258722@main)
  • Fixed underlines not appearing and disappearing when expected (258914@main)
  • Fixed hairline on selection when bidi text is involved (259537@main)
  • Fixed incorrect paint of translate property animation (259173@main)
  • Fixed incorrect repaint when inline content shrinks vertically (259141@main)
  • Fixed scrolling through content hidden with clip-path not propagating below (259368@main)
  • Fixed margin: auto to be the only rule resolved against the "available width adjusted with intrusive floats" (e.g. percent values are based on container width). (259125@main)
  • Fixed lazy image loading failure when overflow: clip was set on just one axis (259007@main)
  • Fixed scrolling for a fixed header inside overflow scroll with a transformed ancestor (259175@main)
  • Fixed incorrect custom pseudo-scrollbar sizes (259389@main)
  • Improved balancing for border, padding, and empty block content (259246@main)
  • JavaScript:
  • Fixed Atomics.waitAsync to be invocable from the main thread (258856@main)
  • Fixed module scripts to always decode using UTF-8 (259251@main, 259261@main)
  • Fixed toLocaleLowerCase and toLocaleUpperCase to not throw an exception on empty string (259242@main)
  • Optimized Number constructor calls further (259533@main)
  • Optimized WebAssemblyInstance#exports (259017@main)
  • Updated Intl.DurationFormat to align with updated standards (259317@main)
  • WebAssembly:
  • Added ref.as_non_null instruction (259420@main)
  • Added missing type expansion for GC arrays and structs (259042@main)
  • Added struct.new_canon_default (258689@main)
  • Gamepad API:
  • Added support for vibrationActuator (258680@main)
  • Added experimental support for "trigger-rumble" effect type behind a feature flag (259507@main)
  • Fixed GamepadHapticActuator.playEffect() with a magnitude less than 0.1 having no effect (258874@main)
  • Fixed how magnitude values passed to GamepadHapticActuator.playEffect() (258988@main)
  • Made gamepad.vibrationActuator.playEffect() throw for invalid effect parameters (258752@main)
  • Made vibrationActuator limit the duration of vibration effects (258759@main)
  • Made vibrationActuator stop vibrating when its document becomes hidden (258802@main)
  • Made Gamepad.vibrationActuator work with the GameController framework (258674@main)
  • Made Gamepad.vibrationActuator return null when the gamepad doesn't support dual-rumble (258812@main)
  • Set Gamepad.vibrationActuator.type to "dual-rumble" (258758@main)
  • Web API:
  • Enabled default ARIA for custom elements (258743@main)
  • Implemented StorageManager.estimate() (258610@main)
  • Added support for Ed25519 keys to Web Crypto (259277@main, 259489@main)
  • Changed queryCommandValue("stylewithcss") to always return an empty string (258777@main)
  • Disabled DOMParser’s support for declarative shadow DOM (258768@main)
  • Fixed a bug that FileSystemSyncAccessHandle’s close function throws an exception on the second call (258736@main)
  • Fixed data written via FileSystemSyncAccessHandle disappearing after creating a new FileSystemFileHandle (258876@main)
  • Fixed negative shadow repaint issue (259497@main)
  • Fixed getting input.value for number inputs with over 39 characters returning an empty string (258614@main)
  • Fixed right-to-left tab handling (259428@main, 259460@main)
  • Fixed Clear-Site-Data HTTP header to obey origin partitioning (259466@main)
  • Fixed a bug that a new SharedWorker will be dysfunctional after the old one terminated via SharedWorkerGlobalScope.close() (259228@main)
  • Fixed a bug that HTMLSelectElement's value setter sets incorrect values if there are grouped options (259249@main)
  • Fixed stripping of leading slashes in URL.hostname setter (259366@main)
  • Fixed a bug that formDisabledCallback() is sometimes called even when disabledness hasn’t changed (259372@main)
  • Made autofilling form to trigger input event in addition to change event (259434@main)
  • Moved oncopy, oncut, and onpaste to GlobalEventHandlers (258390@main)
  • Removed the precision="float" attribute on (258625@main)
  • Removed HTMLHeadElement.profile (258397@main)
  • Removed HTMLPreElement.wrap (258445@main)
  • Removed SVGFEMorphologyElement.setRadius(radiusX, radiusY) (258733@main)
  • Removed HTMLFrameElement.location (259067@main)
  • Updated Content Security Policy when the header is sent as part of a 304 response (258931@main)
  • WebGL:
  • Enabled WEBGL_provoking_vertex by default (259499@main)
  • Implemented WEBGL_clip_cull_distance (259435@main)
  • SVG:
  • Fixed rotate: x and transform: rotate(x) yielding different behavior with SVG (258882@main)
  • Fixed SVG textLength (258921@main)
  • Handled animation freeze when repeatDur is not a multiple of dur (259212@main)
  • Fixed the bug that SVG sometimes doesn’t repaint when resolving color changes (259082@main)
  • Fixed computing the keyTimes index correctly for discrete values animations (258939@main)
  • Scrolling:
  • Fixed page scrolling more than one screenful when pressing Space or Fn+Down (259146@main)
  • Media:
  • Enabled AudioSession API by default with a reduced subset (259074@main)
  • Moved Media Source API settings back into the Experimental Features (258853@main)
  • Changed to try using low latency for the WebRTC HEVC encoder, if available (259128@main)
  • Fixed HLS videos sometimes failing to reach "ended" state and not able to be restarted (259342@main)
  • Fixed MediaStreamTrack ending due to a capture failure when using bluetooth headsets (259150@main)
  • Fixed AudioBufferSourceNode.start with a duration sometimes failing (259234@main)
  • Fixed duplicate timeupdate events in Text Track Code (259023@main)
  • Fixed a bug that video element pauses after bluetooth audio input is disconnected (259415@main, 259478@main)
  • Updated MediaController.currentTime to return the previously set position (259020@main)
  • Accessibility:
  • Fixed aria-controls to be exposed as AXLinkedUIElements and not AXARIAControls (258922@main)
  • Fixed VoiceOver when selecting "Sign in with Apple" on some websites (259147@main)
  • WebDriver:
  • Fixed the Shift modifier key not applying to typed text (259039@main)
  • Safari Web Extensions:
  • Fixed :has() selector for Safari Content Blockers (259068@main)
  • Changed declarativeNetRequest rules to default to false for isUrlFilterCaseSensitive

New in Safari 16.4 Technology Preview 162 (Jan 26, 2023)

  • Web Inspector:
  • Added editing capabilities for font variation axes in Fonts sidebar panel (258503@main)
  • Added showing parent style rules for nested style rules in Styles sidebar (258555@main)
  • CSS:
  • Enabled CSS Nesting (258564@main, 258560@main)
  • Enabled CSS relative color syntax (258519@main)
  • Enabled CSS margin-trim property (258588@main)
  • Implemented margin-trim for flexbox (258563@main)
  • Implemented margin-trim for grid containers (258587@main)
  • Fixed CSS animations to participate in the cascade (258514@main)
  • Scrolling:
  • Fixed page up and page down scrolling feeling slow (258598@main)
  • Gamepad API:
  • Added support for Gamepad.vibrationActuator (258680@main)
  • Added plumbing for Gamepad.vibrationActuator API (258482@main, 258559@main)
  • Made Gamepad.vibrationActuator work with the GameController framework (258674@main)
  • Media:
  • Limited DOMAudioSession to third-party iframes that have microphone access (258423@main)
  • Web API:
  • Enabled declarative Shadow DOM by default (258566@main, 258568@main)
  • Enabled form-associated custom elements with ElementInternals by default (258574@main, 258561@main)
  • Implemented non-autofill credential type for the autocomplete attribute (258582@main)
  • Changed and elements with a readonly attribute to not be barred from constraint validation (258485@main)
  • Fixed painting an in-process VideoFrame in a remotely-backed canvas does not work (258479@main)
  • Lowered per-process WebSocket connection limits (258488@main)
  • Made all FileSystemSyncAccessHandle methods sync (258473@main)
  • Moved oncopy, oncut, and onpaste to GlobalEventHandlers (258390@main)
  • Removed HTMLFrameElement.width and HTMLFrameElement.height (258573@main)
  • Removed HTMLHeadElement.profile (258397@main)
  • Removed HTMLPreElement.wrap IDL attribute (258445@main)
  • Accessibility:
  • Enabled default ARIA for custom elements (258743@main)
  • Fixed aria-activedescendant to work with a standard "listbox" pattern (258478@main)
  • Fixed nested role="presentation" elements break role="tree" behavior (258435@main)
  • Browser Changes:
  • Improved Safari's form heuristics support for elements in the shadow DOM

New in Safari 16.4 Technology Preview 161 (Jan 13, 2023)

  • Note: Shared Tab Groups and syncing for Tab Groups, Website Settings, and Web Extensions are not enabled in this release.
  • Web Inspector:
  • Added emulation toggles for prefers-reduced-motion and prefers-contrast in the Elements tab (257383@main)
  • Changed to show the "Device" menu for all sessions (257426@main)
  • CSS:
  • Made changes to transform-style: preserve-3d and perspective so they only apply to direct DOM children (257432@main)
  • Fixed length values in gradients to take effective zoom into account (257659@main)
  • Rendering:
  • Changed to use the intrinsic ratio of replaced elements when computing flex sizes (257474@main)
  • Made ::backdrop renderers use background layers when possible (257538@main)
  • Fixed button elements clipping overflow by default (257439@main)
  • Fixed rendering lazy loaded images inside an inline element with no height (257565@main)
  • JavaScript:
  • Made Object.values faster (257382@main)
  • Web Assembly:
  • Implemented WASM GC packed array types (257597@main)
  • Media:
  • Added experimental support for AudioSession Web API (257552@main)
  • Added experimental WebCodecs AV1 support (257404@main)
  • Changed to use the dav1d decoder instead of libaom decoder (257357@main)
  • Fixed the progress bar continuing to move when playback is stopped (257403@main)
  • Fullscreen API:
  • Enabled the unprefixed version of the Fullscreen API (257658@main)
  • Added support for the ::backdrop pseudo-element on fullscreen elements (257337@main)
  • Implemented the unprefixed :fullscreen pseudo-class (257542@main)
  • Implemented ShadowRoot.fullscreenElement (257457@main)
  • Made the fullscreen API use the top layer (257456@main)
  • Made fullscreen elements match the :modal pseudo-class (257572@main)
  • Made requestFullscreen() consume user activation (257554@main)
  • HTML:
  • Added support for and honor attributes (257518@main)
  • Web API:
  • Added a non-breaking space at the the end of text when the next text has a leading space (257622@main)
  • Added an iframe depth limit (257550@main)
  • Added support to return an adjusted URL when accessed from JavaScript bindings (257490@main)
  • Improved validation performance (257417@main)
  • Made PushService aware of data store identifiers and push partitions (257669@main)
  • Fixed BroadcastChannel is not always computing correctly its origin (257551@main)
  • Fixed PDF print preview showing a blank preview with UI-side compositing (257667@main)
  • Removed deprecated uppercase URL attribute alias on WebSocket and EventSource interfaces (257467@main, 257553@main)
  • WebGL:
  • Fixed a video texture set to repeat getting clamped (257365@main)
  • Added support for creating WebGL contexts for OffscreenCanvas in a web worker (257541@main)
  • WebDriver:
  • Fixed Get Element Rect command to no longer round to integer values (257498@main)

New in Safari 16.4 Technology Preview 160 (Dec 15, 2022)

  • Web Inspector:
  • Elements Tab:
  • Added emulation toggles for prefers-reduced-motion and prefers-contrast CSS media features (257197@main)
  • Fixed corrupted styles when adding a new property to a rule with a commented-out property in the Styles sidebar (256410@main)
  • Storage Tab:
  • Fixed extensions showing a UUID instead of their name for cookie entries (256695@main)
  • CSS:
  • Added support for media queries level 4 including range queries (257252@main)
  • Fixed -webkit-radial-gradient parsing that treated a number of mandatory commas as optional (256468@main)
  • Fixed transition-property: none to disassociate CSS Transition from owning the element (256666@main)
  • Fixed border-image-* returning the initial keyword instead of the initial value when setting the border-image shorthand (257119@main)
  • Fixed @font-face src descriptor format parsing to only allow identifiers for specified formats (256382@main)
  • Fixed font shorthand to reset more longhand properties (256349@main)
  • Fixed legend tags not accepting the full range of display values (256841@main)
  • Rendering:
  • Added width and height content attributes to (257294@main)
  • Changed to not apply aspect ratio scaling to gradient background images that don't have a natural aspect ratio (256256@main)
  • Changed to use device pixel scaled backing store for with image-rendering: pixelated (256299@main)
  • Changed to not paint a focus ring for anonymous block continuations (257199@main)
  • Changed to use unclamped subgrid track sizes to compute track positions, so that gap is accounted for correctly (256621@main)
  • Fixed Grid track sizing to reset the override width as well as height to compute intrinsic sizing (256622@main)
  • Fixed incorrect clipping when a layer is present between the column and the content layer (256953@main)
  • Fixed pixel-moving CSS filters with clipping (256825@main)
  • Fixed placeholder text that does not disappear when inserting text without a user gesture (257210@main)
  • Fixed the incorrect static position of absolute-positioned elements inside relative-positioned containers (256722@main)
  • Fixed rendering for extreme border-radius (256943@main)
  • Fixed a positioned element with percentage padding to recalculate width when the containing block is changed (256315@main)
  • Web Animations:
  • Implement KeyframeEffect.iterationComposite (257059@main)
  • Fixed opacity to use unclamped values for from and to keyframes with iterationComposite (257033@main)
  • Implemented correct accumulation support for the filter property (256952@main)
  • Implemented correct additivity support for the filter property (256955@main)
  • Fixed to correctly accumulate and clamp filter values when blending with "none" (256976@main)
  • Fixed filter values containing a url() to animate discretely (256970@main)
  • Fixed support for blending mismatched filter lists (256975@main)
  • Fixed baseline-shift animation is incorrect (256934@main)
  • Fixed changing writing-mode or direction on an element that has an animation targeting a logical property to ensure animation resolution is scheduled (256667@main)
  • Fixed keyframes to be recomputed if the CSS variable that is used changes (256893@main)
  • Fixed word-spacing to support animating between percentage and fixed values (256951@main)
  • Fixed Animation.commitStyles() not changing the style attribute for individual CSS transform properties (256728@main)
  • SVG:
  • Changed the default for the x1, y1, and y2 attributes to 0% for LinearGradient (257032@main)
  • Media:
  • Changed to keep MediaKeySystemAccess alive in a createMediaKeys() async task (256442@main)
  • Changed to ensure current time is not removed during automatic eviction (256939@main)
  • Changed to not seek with no seekable range (256759@main)
  • Changed to explicitly close an RTCNetworkManager on document teardown (256319@main)
  • Fixed web audio rendering becoming garbled when switching from speakers to headphones and vice-versa (256712@main)
  • Fixed rendering artifacts when presenting fullscreen video (256251@main)
  • Fixed RGBA data VideoFrame copyTo (256534@main)
  • Fixed enabling subtitles when tracks are added after the video is loaded (256408@main)
  • Fixed the incorrect size of a video track's settings in the second MediaStream created when the aspectRatio constraint is applied (256433@main)
  • Improved the coded frame eviction algorithm (256441@main)
  • JavaScript:
  • Enabled resizable ArrayBuffer (257005@main, 256998@main, 256826@main)
  • Added JIT optimizations for ResizableArrayBuffers (257001@main)
  • Added support for Atomics.waitAsync (257061@main)
  • Added binding generator support for async iterable (257021@main)
  • Aligned Function#name behavior with spec (257114@main)
  • Relaxed Date parsing to accept narrow-no-break-space (256754@main)
  • Fixed the thrown error type for WebAssembly.Tag.getArg (256158@main)
  • Fixed WeakMap and WeakSet constructors to accept symbols (256758@main)
  • Fixed Array.prototype.indexOf constant-folding to account for non-numeric index (256590@main)
  • Fixed in operator parsing inside for statement destructuring (256497@main)
  • Implemented Array.fromAsync (257177@main)
  • Implemented growable SharedArrayBuffer (256524@main, 256766@main)
  • Implemented String#isWellFormed and String#toWellFormed (257250@main)
  • Improved resizable TypedArray's slice implementation's spec conformance (257018@main)
  • Updated resizable ArrayBuffer based on spec update (257178@main)
  • Wired memory allocation reporting to ArrayBuffer resize and grow (257042@main)
  • WebAssembly:
  • Added support for subtyping declarations (256243@main)
  • Changed call_ref to take a type index (256285@main)
  • Fixed incorrect text in WASM error message (256176@main)
  • Service Workers:
  • Changed to make sure nested worker gets controlled if matching a service worker registration (256637@main)
  • Changed to not use the service worker preload for modified requests (257110@main)
  • Fixed service worker download in case of preloads (256731@main)
  • Removed the "Frame load interrupted" warning in Web Inspector when clicking a link to download a file served by a service worker with a fetch event handler (256725@main)
  • Accessibility:
  • Fixed dynamic aria-disabled changes not updating enabled status for descendants (257159@main)
  • Fixed to include AXKeyShortcutsValue in accessibilityAttributeNames when there is an aria-keyshortcuts attribute (257274@main)
  • Fixed listed size announced by VoiceOver despite use of aria-setsize=-1 (256861@main)
  • Fixed a bug preventing Shadow DOM content from being exposed to accessibility clients when used in an aria-modal or dialog (256531@main)
  • Editing:
  • Fixed non-breaking space getting inserted instead of a normal space character between text nodes in contenteditable (257136@main)
  • Web API:
  • Enabled UserActivation API (257214@main, 256572@main)
  • Changed to only require a "transient" user activation for Web Audio rendering (256721@main)
  • Changed to not detach whitespace nodes when the previous sibling is an out-of-flow block (256602@main)
  • Changed to keep br element while replacing plain texts with content ending with newline (257205@main)
  • Changed to prevent hidden documents from locking the screen orientation (257019@main)
  • Changed to use 'self' as the permission policy for Web Share (256556@main)
  • Fixed clearing floats added dynamically to previous siblings (256238@main)
  • Fixed content downloaded with fetch() API when Content-Encoding: gzip is set is not decompressed (256755@main)
  • Fixed dedicated worker and shared worker global scope to use the response URL (256532@main)
  • Fixed elements with position: sticky that jitter inside a container with overflow-x: clip (256618@main)
  • Fixed broken preferred widths optimization involving subtree layout roots (256623@main)
  • Fixed CSS.supports behaviour with regards to !important and whitespace (257196@main, 257280@main, 257313@main)
  • Fixed CSSStyleValue.parse() and CSSStyleValue.parseAll() for shorthand CSS properties (256228@main)
  • Fixed form association behavior when a form and a control with form= are removed from a document together (256620@main)
  • Fixed form-association for (256629@main)
  • Fixed hidden buttons that can't be used as the submitter in an implicit submission (256813@main)
  • Fixed screen sharing when constraints passed by getDisplayMedia contains the ideal parameter (256458@main)
  • Fixed notification.close() (257108@main)
  • Fixed overlay regions sometimes getting stuck in the wrong place (256504@main)
  • Fixed clicking an email field on a sign-up form not allowing input until clicked a second time (256581@main)
  • Fixed WebSocket requests to include Sec-Fetch-Mode=websocket for FetchMetadata (256527@main)
  • Implemented input validation for CSSColorValues (256229@main)
  • Implemented messageerror event (256896@main)
  • Implemented support for StylePropertyMap.append() (257123@main)
  • Improved the speed of setting the value of (256596@main)
  • Simplified early dedicated worker termination (256949@main)
  • Updated the streams WebIDL to match the latest specifications (257279@main)

New in Safari 16.4 Technology Preview 159 (Dec 1, 2022)

  • WebAssembly:
  • Fixed error message for local.get (256176@main)
  • JavaScript:
  • Changed to allow variables with the same name as the class in its static block (256311@main)
  • Rendering:
  • Fixed floating boxes overlapping their margin boxes (256183@main)
  • Fixed rendering artifacts when presenting a fullscreen video (256251@main)

New in Safari 16.4 Technology Preview 158 (Nov 17, 2022)

  • Web Inspector:
  • Added support for editing @-rules in the Styles sidebar of the Elements tab (256043@main)
  • CSS:
  • Implemented CSS font-size-adjust property (255927@main)
  • Implemented font-variant-alternates functions, along with matching @font-feature-values at-rule (256002@main, 255677@main)
  • Implemented CSS property contain-intrinsic-size behind a flag (255971@main)
  • Changed to allow calc() with combined percentages and lengths for line-height (256095@main)
  • Changed to always use percentages for computed values of font-stretch, never keywords (256094@main)
  • Fixed font shorthand to not reject values that happen to have CSS-wide keywords as non-first identifiers in a font family name (255894@main)
  • Fixed font-style descriptor for @font-face to accept angle ranges in reverse order (255893@main)
  • Fixed font-style: oblique with calc() to allow out-of-range angles and clamp them for computed style (255925@main)
  • Fixed computed value CSS gradients to serialize colors in their computed form (256073@main)
  • Fixed text-shadow positioning on text with text-combine-upright (255892@main)
  • Fixed line-height to allow calc() with combined percentages and lengths (256095@main)
  • Rendering:
  • Changed to check for overflow content after trimming trailing content (256045@main)
  • Fixed a table cell overflowing its contents when it has inline children that change the writing-mode (255919@main)
  • Fixed elements with negative margins to not avoid floats when appropriate (256132@main)
  • Media:
  • Enabled AVIF image decoding for macOS Monterey and macOS Big Sur (255984@main)
  • Fixed “A MediaStreamTrack ended due to a capture failure” when selecting bluetooth headphones as audio input device (256091@main)
  • JavaScript:
  • Accelerated Array.prototype.slice on DirectArguments (256027@main)
  • Accelerated Array.prototype.concat when applied to the self array (256040@main)
  • WebCodecs:
  • Enabled WebCodecs by default (256060@main)
  • Added WebCodecsVideoFrame initial support for serialisation and transfer (255949@main)
  • Changed to schedule dequeue event when the encoder queue size decreases (255962@main)
  • Changed to set VPx decoder frame type based on given parameter (255963@main)
  • Changed to prevent garbage collecting an encoder or decoder with content being processed (256007@main)
  • Exposed decoded video frames colorSpace (256068@main)
  • Exposed encoder color space in decoder config (256052@main)
  • Flushed before reconfiguring the encoder (255957@main)
  • Implemented pixel buffer conversion for video frames produced by libwebrtc VPX decoders (255958@main)
  • Web API:
  • Aligned fetch header handling with fetch specification (256003@main)
  • Changed calling CSSStyleValue.parseAll() on a list-valued CSS property to split its value list (256070@main)
  • Changed CSSStyleValue.parse() to throw when passed an empty string as custom property value (256011@main)
  • Changed creating a shared worker connection to retry without providing a specific webprocess (255968@main)
  • Implemented input validation for CSSRGB constructor and setters (256024@main)
  • Optimized postMessage between two MessageChannel ports living in the same process (255948@main)

New in Safari 16.4 Technology Preview 157 (Nov 8, 2022)

  • Web Inspector:
  • Elements Tab:
  • Added support for event breakpoints to be case-insensitive and regular expression matching (255196@main)
  • Fixed disabling inline breakpoints unexpectedly removing them (255292@main)
  • Fixed inline breakpoints appearing for minified resources before they are pretty-printed (255200@main)
  • CSS:
  • Added support for @font-feature-settings and function values of font-variant-alternates (256002@main, 255677@main)
  • Added support for font-synthesis longhand properties (255171@main)
  • Added support for last baseline alignment for CSS Grid (255455@main)
  • Added support for last baseline alignment for Flexbox containers (255383@main)
  • Added support for lh and rlh units (255540@main)
  • Added margin when comptuing the baseline position for tables (255357@main)
  • Changed outline to follow border-radius (255314@main, 255300@main)
  • Changed to treat rem and rlh as absolute units for font size (255594@main)
  • Changed to allow the font-variant-east-asian shorthand property in any position (255134@main)
  • Changed to only preserve a scroll snap target if there are targets for both axes (255493@main)
  • Changed CSS Keyframe name handling to not allow CSS-wide keywords (255640@main)
  • Changed to use min-intrinsic size to compute min-content size for non-replaced flex items (255858@main)
  • Fixed the display property value of a computed style to be "none" instead of "inline" for an element without controls (255528@main)
  • Fixed font-style: oblique to allow angles equal to 90deg or -90deg (255875@main)
  • Fixed font-weight to be clamped to 1 as a minimum (255873@main)
  • Fixed the left-aligned contentEditable caret instead of centered when the :before pseudo-element is used (255333@main)
  • Fixed CSS 3D transform by matrix3d() with translations to take page zoom into account (255416@main)
  • Unprefixed font-size: -webkit-xxx-large (255602@main)
  • Updated @font-palette-values override-colors order (255604@main)
  • Rendering:
  • Fixed flickering while scrolling when the keyboard scrolling spring damping animation doesn't finish (255306@main, 255099@main)
  • JavaScript:
  • Added support for class static initialization blocks (255173@main)
  • Changed the default style of Intl.DurationFormat from "digital" to "short" (255255@main)
  • Fixed Intl.NumberFormat ignoring maximumFractionDigits with compact notation for currency and decimal (255691@main)
  • Improved Object.entries runtime function performance (255470@main)
  • Updated useGrouping handling for Intl.NumberFormat (255275@main)
  • WebCodecs:
  • Added support for WebCodecs encoder bitrate related parameters (255476@main)
  • Added support for WebCodecs video encoder flush (255785@main)
  • Added support for WebCodecs Validate VideoFrameInit algorithm (255786@main)
  • Added support for WebCodecs VideoFrame allocationSize (255313@main)
  • Added support for WebCodecsVideoEncoder (255316@main, 255262@main)
  • Added support for WebCodecsVideoDecoder (255215@main, 255138@main)
  • Added support for WebCodecs VideoFrame copyTo (255429@main)
  • Added support for WebCodecsVideoDecoder with VPx backend (255138@main)
  • Added support for AVC H.264 WebCodecsVideoEncoder and WebCodecsVideoDecoder (255430@main, 255422@main)
  • Added support for GPU-based WebCodecsVideoDecoder flush (255388@main)
  • Added cropping support to WebCodecsVideoFrame copyTo (255716@main)
  • Added initial implementation to VideoFrame (255259@main)
  • Added support for RGBX and BGRX pixel formats (255390@main)
  • Added WebCodecs VideoFrame support for createImageBitmap (255776@main)
  • Ensured VPx WebCodecs encoders and decoders are created asynchronously (255478@main)
  • Ensured the bitrate and framerate are set for VPx encoders (255666@main)
  • Fixed canvas to be able to draw a WebCodecsVideoFrame (255720@main)
  • Validated width, height, x and y for I420 and NV12 video frames (255489@main)
  • Web API:
  • Added support for CSSNumericValue.toSum() (255679@main)
  • Added support for CSSNumericValue.parse() (255791@main)
  • Added support for CSSTransformValue.toMatrix (255299@main)
  • Added support for EXT_provoking_vertex draft extension (255261@main)
  • Added support for the Sec-Fetch-Site header (255810@main)
  • Added support for cancel event support on (255394@main)
  • Added support for referrerpolicy in link headers (255354@main)
  • Added a log channel for IntersectionObserver (255197@main)
  • Added the class FilterTargetSwitcher (255802@main)
  • Changed to fire an error event when CSP blocks inline stylesheets (255744@main)
  • Changed to fire an error event when link preload fails synchronously (255740@main)
  • Fixed CSSPerspective.toMatrix() to throw an exception if its length is not compatible with a px unit (255876@main)
  • Fixed CSSTransformComponent.toMatrix() to flatten to two-dimenions if necessary (255290@main)
  • Fixed headers iteration to not happen on the cached headers list (255639@main)
  • Made onpointerlockchange and onpointerlockerror enumerable (255153@main)
  • Updated ResizeObserver and IntersectionObserver timing to match other browsers (255132@main)
  • Media:
  • Accept image/jpg for compatibility (255268@main)
  • Changed to enforce Low Power Mode and Optimize Video Streaming setting by tone mapping HDR video to SDR (255127@main)
  • Changed aspect-ratio to use lengths computed from presentational hints before the video loads (255743@main)
  • Changed to switch to an alternate element for AirPlay when necessary (255624@main)
  • Fixed the display able to go to sleep when the camera is on (255636@main)
  • Web Animations:
  • Fixed Animation.commitStyles() triggering a mutation even when the styles are unchanged (255129@main)
  • Fixed updating timing to invalidate the effect (255863@main)
  • Updated to account for iterationComposite when blending (255834@main)
  • HTML:
  • Added the display of a thumbnail of selected file for on macOS (255355@main)
  • Accessibility:
  • Fixed accessibility for the and elements when -webkit-appearance: none or appearance: none is set (255836@main)
  • Fixed accessibility to not limit navigation when focus is explicitly moved outside of a modal (255665@main)
  • Fixed a bug causing VoiceOver to double-read list markers and not output braille for list items (255276@main)
  • Security:
  • Fixed Cross-Origin-Embedder-Policy incorrectly blocking scripts on a cache hit (255302@main)
  • Privacy:
  • Capped cookie lifetimes to 7 days for responses from third-party IP addresses (255849@main)
  • Omitted document.referrer for third-party requests while in ephemeral mode (255649@main)
  • Safari Web Extensions:
  • Added support for the modifyHeaders action type in Declarative Net Request rules
  • Fixed Declarative Net Request rules not loading after an extension was turned off and then back on

New in Safari 16.4 Technology Preview 156 (Oct 20, 2022)

  • Web Inspector:
  • Elements Tab:
  • Fixed Computed details sidebar panel scrolling back to the top when is added to page (255001@main)
  • Fixed the DOM tree missing parts of the tree when inspecting iOS (254744@main)
  • Improved the visual hierarchy of the Layout details sidebar panel (254637@main)
  • Console Tab:
  • Added support for console snippets (254636@main)
  • CSS:
  • Changed to not consider min- or max-sizes when computing width as flex base size (255002@main)
  • Changed to omit the integer value for grid-lines when it's the default value (254821@main)
  • Changed to choose the closest snap target if neither are visible (254982@main)
  • Fixed focus to not take into account scroll margin for visibility check (254732@main)
  • Fixed text-align-last causing a table to take full space (254725@main)
  • Made resnap follow scroll snap target if necessary (254773@main)
  • Updated the named colors list to match CSS Color 4 (254840@main)
  • JavaScript:
  • Added support for all rounding modes in Temporal (Behind the --useTemporal flag) (255068@main)
  • Accelerated baseline String#replace performance (254659@main, 254717@main)
  • Implemented Intl.DurationFormat (254791@main)
  • Implemented Temporal.PlainDate#{since, until} (Behind the --useTemporal flag) (254780@main)
  • Optimized String#substring (255030@main)
  • Rendering:
  • Changed to avoid line breaks before whitespace content when line-break: after-white-space is present (254826@main)
  • Fixed content placement when first-line style is present in non-quirks mode (255069@main)
  • Fixed controls rendering for size=2 or size=3 (254698@main)
  • Fixed negative z-index layers from triggering unnecessary compositing of foreground layers (254746@main)
  • Media:
  • Adjusted buffering rate monitor to react faster (254781@main)
  • Implemented EncodedVideoChunk (254953@main)
  • Updated MediaSessionInfo media elements with a srcObject (254948@main)
  • Fixed returning animation from picture-in-picture to Element Fullscreen sometimes breaking (255041@main)
  • Web Animations:
  • Fixed additive and accumulative color blending to yield intermediary out-of-bounds values (254850@main)
  • Accessibility:
  • Ignored element while building accessibility tree when is hidden (254970@main)
  • Integrated ARIA element reflection in the Accessibility Tree (254905@main, 254985@main)
  • Implemented ARIA id-ref reflection for ElementInternals (254709@main)
  • Made custom element's default ARIA id-ref work with shadow DOM (254762@main)
  • Web API:
  • Enabled constructible and adoptable CSSStyleSheet objects (255067@main)
  • Enabled smooth keyboard scrolling by default (255031@main)
  • Added support for extended color animation interpolation (254960@main)
  • Added ImageBitmapRenderingContext support to OffscreenCanvas (254697@main)
  • Aligned the user-agent stylesheet for and with the HTML Spec (254710@main)
  • Consider Container Percentage Sizes When Determining Definite Cross Size (254758@main)
  • Convert HDR video frames to SDR when drawing to canvas (254973@main)
  • Changed to not suppress the click event on resize (254843@main)
  • Changed to recompute transforms on SVG containers if the bounds changed during layout (255060@main)
  • Exposed the Notification API to dedicated workers (254805@main)
  • Fixed smooth keyboard scrolling to account for fixed content (254963@main)
  • Fixed document.open() to abort all loads when the document is navigating (254699@main)
  • Fixed document.open() to remove the initial about:blank-ness of the document (254747@main)
  • Fixed FetchEvent to not start its navigation preload response load if the preload was already used (254992@main)
  • Fixed Clear-Site-Data: "cache" HTTP header to clear the back-forward cache (254798@main)
  • Fixed calculation of direction for text form control elements with dir="auto" (254943@main)
  • Fixed mutating keyframes via CSSOM to not set disabled properties (254998@main)
  • Fixed strokeStyle changes not being applied for successive stroke line operations (254889@main)
  • Fixed elements with background-attachment: fixed to behave like background-attachment: scroll inside transformed elements (255055@main)
  • Fixed getBoundingClientRect() returning the wrong value for , and its descendants for a vertical table (254918@main)
  • Fixed getComputedStyle() on a transform property to return the function list (254760@main)
  • Fixed click() for invisible elements to toggle the element (255073@main)
  • Fixed percentage-based translations for SVG (254656@main, 254777@main)
  • Fixed specified hue interpolation method for hues less than 0 or greater than 360 (254833@main)
  • Implemented import.meta.resolve() (254691@main)
  • Implemented importmaps (254987@main)
  • Implemented support for the Clear-Site-Data HTTP header (254745@main)
  • Made ElementInternals conditional on the form associated custom elements (254920@main)
  • Restricted transferSize, encodedBodySize, and decodedBodySize methods of PerformanceServerTiming and PerformanceResourceTiming to same-origin requests (254922@main)
  • Fixed SVG.currentScale to only set the page zoom for a standalone SVG (254787@main)
  • Prototyped declarative Shadow DOM (254964@main)
  • Prototyped streaming for declarative Shadow DOM (255020@main)
  • Safari Extensions:
  • Fixed an issue where browser.tabs sometimes returned an incorrect URL for pinned tabs.
  • Bug Fixes:
  • Fixed the Share Menu when sharing an image to show a preview of the image and a title (254976@main)

New in Safari 16.4 Technology Preview 155 (Oct 5, 2022)

  • Web Inspector:
  • Sources Tab:
  • Changed URL breakpoints to also pause when an HTML attribute is set that triggers a load (254488@main)
  • CSS:
  • Changed animation-* declarations in @keyframes to be a parse error (254468@main)
  • Enabled new perspective: 0 behavior of clamping to 1 (254420@main)
  • Fixed forced breaks in layout containment (254432@main)
  • Fixed contain: content on the body breaking scrolling (254506@main)
  • Fixed ::placeholder to not support writing-mode, direction, and text-orientation (254416@main)
  • Removed CSS display and float quirks on table and table cell elements (254475@main)
  • Rendering:
  • Fixed inline box decoration position when the content box is vertically shifted with text-underline-position: under in a vertical writing mode (254554@main, 254593@main)
  • Updated transforms on SVG shapes and groups when the root element size is changed (254538@main)
  • Stopped ignoring nowrap for table cells with nowrap="nowrap" and absolute widths (254505@main)
  • JavaScript:
  • Disabled ShadowRealm for now (the --useShadowRealm flag can enable it) (254483@main)
  • Implemented Temporal.PlainDate[Time].{equals, add, subtract} (Behind the --useTemporal flag) (254366@main)
  • Implemented with and round methods for TemporalPlainDate[Time] (Behind the --useTemporal flag) (254565@main)
  • Optimized eval call in DFG / FTL compilers (254367@main)
  • Media:
  • Added support for WebVTT-based extended audio descriptions (254502@main)
  • Changed to round the SourceBuffer removal range (254472@main)
  • Fixed incorrect fullscreen video frame in some cases (254462@main)
  • Scroll to Text Fragment:
  • Fixed Scroll To Text Fragment indicator to not show through popup layers (254494@main)
  • Fixed Scroll To Text Fragments to always be scrolled to the center of the frame (254477@main)
  • Fixed maintaining the Scroll to the Text Fragment until a user scroll happens (254403@main, 254507@main)
  • Fixed nodes with display: none to be considered invisible to search (254498@main)
  • Web API:
  • Enabled the Reporting API by default (254520@main)
  • Implemented nested Dedicated Workers (254597@main)
  • Implemented no-quirks mode for media, plugin, and UA-inline documents (254526@main)
  • Added support for Cross-Origin-EmbedderPolicy (COEP) violation reporting (254466@main)
  • Added support for PermissionStatus.onchange in workers (254490@main)
  • Fixed the screen size of fullscreen video based on the aspect ratio (254528@main)
  • Fixed erroneous forgiving selectors to not be reported as supported with CSS.supports("selector(...)") (254489@main)
  • Fixed parsing of negative age values in CORS prefetch responses (254410@main)
  • Fixed handling text documents to comply with modern HTML specs (254389@main)
  • Incorrect image srcset candidate chosen for cloned from (254361@main)
  • Fixed lazy-loaded images sometimes not loading (254471@main)
  • Fixed navigating a cross-origin iframe to the same URL to not replace the current HistoryItem (254563@main)
  • Fixed element.removeAttribute("style") to not cause a style-src CSP violation message (254409@main)
  • Fixed text selection on flex and grid box items (254602@main)
  • Fixed wheel events to not stop macOS smooth keyboard scroll (254561@main)
  • Loading:
  • Disallowed redirecting to data: or about: URLs (254619@main)
  • WebDriver:
  • Fixed automation session terminating during navigation process swap (254386@main)

New in Safari 16.0 Technology Preview 154 (Sep 22, 2022)

  • Web Inspector:
  • Sources Tab
  • Added support for inline breakpoints (254015@main, 254052@main, 254057@main, 254309@main)
  • Enhanced symbolic breakpoints to also pause for native functions (253999@main)
  • Elements Tab
  • Added "Scroll" labels in the element tree for scrollable elements (254061@main)
  • Added warnings in the Font details sidebar for synthesized boldness or obliqueness (254188@main)
  • Fixed DOM Tree to update when a top-level item in the DOM tree is added or removed (254062@main)
  • Prevented showing the Target in the Event badge popover (254018@main)
  • Timelines Tab
  • Fixed selecting timeline records from a coalesced record bar selecting the first record in the group, not the record nearest the cursor. (254056@main)
  • Settings
  • Added a setting to control whether nodes that are not rendered are de-emphasized (254022@main)
  • CSS:
  • Enabled :dir by default (254051@main, 254106@main, 253878@main, 253881@main, 253896@main)
  • Implemented overflow: clip for SVG elements (254295@main)
  • Implemented :has(~:dir(~)) (254017@main)
  • Fixed parsing of list-style CSS property shorthand (254282@main)
  • Fixed a bug that a disconnected subtree with lang content attribute will never match :lang pseudo class (253915@main)
  • Stopped inheriting text-decoration-thickness CSS property (254010@main)
  • JavaScript:
  • Fixed ShadowRealm test262 failures (253977@main)
  • Finished to and from methods for Temporal.PlainDate[Time] (Behind the --useTemporal flag) (253876@main)
  • Optimized Proxy [[Get]] operations (254092@main)
  • Optimized String#replace(String, String) (254156@main)
  • Optimizde String#replace with constant String via Boyer-Moore-Horspool search algorithm (254342@main)
  • Rendering:
  • Fixed incorrect bidi visual direction after forced line break (253872@main)
  • Fixed with border-radius not getting repainted correctly when the bounds change (254041@main)
  • Fixed border-radius clipping of composited layers (254253@main)
  • Fixed updating transforms on table sections (254351@main)
  • Reporting API:
  • Added support for generateTestReport in WebDriver (254122@main)
  • Hooked up to Content-Security-Policy 'report-to' directive (253966@main)
  • Refactored network send logic for Report-related code (254208@main)
  • Web API:
  • Added support for COOP navigation violation reporting (254291@main)
  • Added support for ElementInternals.role, ariaLabel, and ariaRoleDescription (254278@main)
  • Added support for PermissionStatus.onchange (254193@main)
  • Added support for InputEvent.isComposing (254131@main)
  • Added ReferrerPolicy to the PolicyContainer (254003@main)
  • Added generation of IndexedDB object serializers (254196@main)
  • Enabled Scroll To Text Fragment by default (253855@main)
  • Enabled SKAttributionEnabled by default (254328@main)
  • Changed to not parse or scroll to text fragments in iframe URLs (254073@main)
  • Fixed memory usage scaling for Compression Streams to handle out-of-memory conditions (253930@main)
  • Fixed deleting a button element leaving the style inside the button element (254285@main)
  • Fixed matching fancy quotes and apostrophes for Scroll To Text Fragment fragments (254275@main)
  • Fixed link elements to be able to fire more than one load or error event (254290@main)
  • Fixed String.prototype.includes incorrectly returning false when the string is empty and the position is past end of string (254319@main)
  • Fixed opening the share sheet to not clear the text selection (254136@main)
  • Fixed ConicGradient angle to start at the x-axis, not at the top (254038@main)
  • Fixed X-Frame-Options HTTP headers with an empty value being incorrectly ignored (254245@main)
  • Stopped painting a border for images with loading="lazy" before it loaded (253960@main)
  • Accessibility:
  • Implemented WebVTT-based audio descriptions with text-to-speech (253931@main, 254266@main)
  • Implemented the ARIA 1.3 mark role, which provides parity with the tag (254008@main)
  • Media:
  • Fixed AudioWorklet scripts to inherit their owner document's referrer policy (254306@main)
  • Fixed canPlayType for WebM VP8 on older Macs without VP9 (254013@main)
  • Fixed WebM files that fail to play (254219@main)
  • Fixed WebVTT styles not getting applied with in-band tracks (254109@main)
  • Intelligent Tracking Prevention:
  • Updated to wait longer before deleting website data for domains where a user interacted with a Web Push notification (254048@main)

New in Safari 16.0 Technology Preview 153 (Sep 8, 2022)

  • Web Inspector:
  • Sources Tab:
  • Added support for Symbolic Breakpoints (253374@main, 253791@main)
  • Elements Tab:
  • Added a way to control what badges are shown in the main DOM tree (253579@main)
  • Added Event badges for nodes that directly have event listeners in the main DOM tree (253727@main)
  • Changed the Computed panel to no longer show the Variables section when the selected element has no CSS variables (253562@main)
  • Changed the Computed panel to sort prefixed properties below non-prefixed properties (253789@main)
  • Changed the Computed panel to only show inline swatches that actually preview the value (253214@main)
  • Network Tab:
  • Fixed highlighting only the initiated resources when a row is hovered (253476@main)
  • CSS:
  • Added support for background images on ::first-line (253553@main)
  • Added right-to-left direction support for text-overflow: ellipsis (253689@main)
  • Implemented forced-colors media query (253290@main)
  • Fixed text-decoration location for superscripts when the text string contains both superscript and regular text (253406@main)
  • Fixed handling of layout and paint containment with internal ruby boxes (253354@main)
  • Fixed :has(:lang(~)) invalidation with dynamic changes (253764@main)
  • Fixed @supports to not work if "not", "or", or "and" isn't follow by a space (253194@main)
  • Fixed handling of font-variant: normal and font-variant: none shorthand (253731@main)
  • Fixed behavior of cursor: auto over links (253685@main)
  • Fixed color-scheme to not propagate to the viewport background if set on the (253565@main)
  • Fixed tiled layer flicker when an animation ends (253549@main)
  • Fixed the transferred min and max sizes to be constrained by defined sizes (253262@main)
  • Fixed pseudo-elements not treated as ASCII case-insensitive (253631@main)
  • Fixed the title of non-CSS stylesheets to be not preferred (253632@main)
  • Fixed input[type=search] to hide icons when appearance: textfield is set (253691@main)
  • Included aspect-ratio when calculating inline min-content size and add min-content block computation (253740@main)
  • Renamed initial value of color-scheme from auto to normal (253659@main)
  • Used align-content when calculating the static position of absolutely-positioned flexbox children (253389@main)
  • Used logical top, bottom, and height when computing the available height for an out-of-flow block (253312@main)
  • JavaScript:
  • Implemented import-assertion and JSON module (253234@main)
  • Implemented Temporal.PlainDateTime to the extent of the current PlainDate implementation (Behind the --useTemporal flag) (253623@main)
  • Fixed not generating import.meta object if it is not referenced (253636@main)
  • Optimized async and await and microtask queue (253651@main)
  • Optimized Promise.all (253716@main)
  • Added support for WebAssembly GC recursion groups (253491@main)
  • Rendering:
  • Changed to not generate text runs for empty text content (253569@main)
  • Fixed text-overflow: ellipsis to change the text content to render (253607@main)
  • Fixed text-overflow: ellipsis to not affect geometries (253650@main)
  • Fixed underline thickness to align with device pixels (253182@main)
  • Stopped propagating scroll-snap style from to viewport (253430@main)
  • Screen Capture:
  • Changed to reject the getDisplayMedia prompt if the system picker times out (253260@main)
  • Media:
  • Included explicit !important min, max properties, and explicit width and height for full-screen elements (253790@main)
  • Fixed MediaRecorder.stop() firing an additional dataavailable event with bytes after MediaRecorder.pause() (253529@main)
  • Fixed audio pitch changes on enabling or disabling the mic capture (253673@main)
  • Fixed screen recording in a background tab working for only about a minute (253769@main)
  • WebGL2:
  • Stopped applying the buffer offset twice in getBufferSubData (253175@main)
  • Web API:
  • Implemented the Imperative Slot API (253187@main, 253198@main, 253199@main, 253202@main, 253266@main, 253320@main, 253359@main, 253365@main, 253392@main, 253396@main, 253402@main)
  • Implemented full search for text directives for Scroll to Text Fragment spec (253383@main)
  • Added Set-Cookie as a forbidden header name (253325@main)
  • Added generic media query parser and evaluator (253298@main)
  • Added support to the Permissions API for dedicated workers (253447@main)
  • Added support to the Permissions API for Service Workers and Shared Workers (253752@main)
  • Added way to get parent inline box to the inline iterator (253304@main)
  • Added box-sizing: border-box to table in the User-Agent stylesheet (253581@main)
  • Fixed blob URLs with a fragment from opaque origins cannot be loaded (253498@main)
  • Fixed ignored charset of blobs (253458@main)
  • Fixed composited canvas element to update the layer configuration after creating a WebGL context (253231@main)
  • Fixed position elements should layout relative to transformed container (253809@main)
  • Fixed Navigator.share() rejecting with the wrong exception when called multiple times (253419@main)
  • Fixed iframe srcdoc with a quirky doctype to use no-quirks mode (253326@main)
  • Fixed input[type=search] preferred content width to not include decorations (253595@main)
  • Fixed Permissions.query to return “prompt“ for opaque origins (253785@main)
  • Fixed scheduling a navigation to a Blob URL to keep the URL alive until the navigation actually occurs (253435@main)
  • Fixed forms with a disabled submit button from being posted with the Enter key (253228@main)
  • Fixed the HTML parser to ignore starting tags in the "in head noscript" state (253489@main)
  • Fixed the HTML parser’s foster-parenting algorithm to not require foster parents to be elements (253504@main)
  • Fixed the HTML parser’s adoption agency algorithm to not reverse the order of nodes (253505@main)
  • Fixed an issue where data-x-2="" is not included in the dataset if it’s the only data attribute (253625@main)
  • Accessibility:
  • Added support for the ARIA 1.3 property aria-description (253184@main)
  • Fixed updating accessibility objects role after a dynamic contenteditable change (253630@main)
  • WebDriver:
  • Added support for Wheel input source and actions (253578@main)
  • Added support for “Get Computed Role” and “Get Computed Label” commands (253732@main)
  • Fixed automation hanging indefinitely when dismissing alerts

New in Safari 16.0 Technology Preview 152 (Aug 25, 2022)

  • Web Inspector:
  • Fixed stack traces to not include injected script host hooks (253022@main)
  • Changed to sort headers alphabetically in the Network tab (253138@main)
  • CSS:
  • Fixed logical viewport units in font-size (253087@main)
  • Fixed MediaQueryList.matches to reflect iframe’s resize for viewport-dependent media queries (253123@main)
  • Fixed the color CSS property value being ignored on elements (253074@main)
  • Fixed using the correct box-sizing when calculating block size (253064@main)
  • Made system colors respect inherited color-scheme values (253041@main)
  • Updated Container Queries to allow logical operators on the top-level without parenthesis (253035@main)
  • Accessibility:
  • Fixed display: contents elements being inserted in the wrong AX tree position when they have inline renderer siblings (253038@main)
  • Rendering:
  • Fixed empty generated content to not prevent margin collapsing (253079@main)
  • Fixed clearing inline elements with a block ::before following a floated element (253076@main)
  • Prevented background propagation on with any containment (253031@main)
  • JavaScript:
  • Added NoIndexing miss optimization (253120@main)
  • Aligned Date.UTC to the specification (253044@main)
  • Changed to no longer ensure length validity for TypedArray iteration (253153@main)
  • Enabled Atomics object unconditionally (253137@main)
  • Enabled and renamed Array#groupBy to Array#group and Array#groupByToMap to Array#groupToMap (253101@main)
  • Implemented Symbols as WeakMap keys (253135@main)
  • Web API:
  • Implemented Compression Streams API (253093@main)
  • Adopted Upgrade-Insecure-Request in SharedWorker handling (253167@main)
  • Changed to use EXIF orientation when creating an ImageBitmap from Blob (253004@main)
  • Deprecated window.styleMedia and removed its matchMedium() method (253168@main)
  • Fixed innerHTML and outerHTML setters to use the correct default namespace (253039@main)
  • Fixed element to not have a manifest IDL attribute (253053@main)
  • Fixed decoding empty formdata with fetch (253047@main)
  • Fixed cloning a textarea to not set the initial selection at the end of the text content (253070@main)
  • Fixed XML parser to invoke custom element reactions at correct timing (253122@main)
  • Fixed loads from a dedicated worker not getting intercepted by the service worker when the calling worker script was cached (253037@main)
  • Stopped killing service workers if they don't respond to subresource loads in a timely fashion (253037@main)

New in Safari 16.0 Technology Preview 151 (Aug 12, 2022)

  • Web Inspector:
  • Elements Tab:
  • Changed to grayscale nodes in the DOM tree that are not rendered (252653@main)
  • Rearranged Gradient Editor to be able to show the color component input fields (252971@main)
  • Sources Tab:
  • Added capturing of async stack traces for queueMicrotask (252543@main)
  • Expanded all existing sync stack traces to also show related async stack traces (252630@main)
  • Excluded internal functions from all stack traces (252914@main)
  • Network Tab:
  • Changed the Initiator column to be shown by default (252435@main)
  • Added a Path column (252827@main)
  • Added the ability for the shift key to highlight resources initiated by the hovered resource (252489@main)
  • Added an experimental feature to limit the bytes per second download speed of network tasks (252589@main)
  • WebDriver:
  • Added support for “Get Element Shadow Root”, “Find Element From Shadow Root”, and “Find Elements From Shadow Root” commands
  • CSS:
  • Enabled support for the color-mix() function (252716@main)
  • Enabled support for specifying the interpolation color space in CSS gradients (252716@main)
  • Added support for the scan media query (252717@main)
  • Added a basic implementation of :dir (252737@main)
  • Disallowed the content property on video element (252574@main)
  • Fixed not applying aspect-ratio if a grid item percentage width is resolvable (252819@main)
  • Fixed ensuring a containing block of a block box with height: fill-available is also fill-available is considered resolvable (252470@main)
  • Fixed table border radius to apply when the border color is transparent or semitransparent (252741@main)
  • Fixed containing blocks with non visible overflow to correctly clip fixed positioned descendants (252721@main)
  • Fixed visibility: collapse to correctly apply to Flexbox (252997@main)
  • Rendering:
  • Added dark mode support for plain text documents (252673@main)
  • Added a check for WebGL Extensions in getIndexedParameter() and getSamplerParameter() (252895@main)
  • Fixed and elements’ directionality when :dir attribute is used with auto or an invalid value (252779@main)
  • Changed to use the device pixel ratio scaled backing stores for unscaled bitmap content if the page is downscaling (252855@main)
  • Fixed SVG textPath rendering when a text element is referenced by a use element (252547@main)
  • Media:
  • Added support for legacy VP8 and VP9 codec names (252535@main)
  • Added missing default CSS style for text and background colors for WebVTT (252464@main)
  • Changed to not interrupt due to invisible autoplay if the HTMLMediaElement is paused (252735@main)
  • Fixed WebRTC calls without microphone capture becoming permanently muted by AudioSession interruptions like Siri (252907@main)
  • Fixed video-as-img losing its alpha channel (252836@main)
  • Fixed muting the microphone capture if starting the capture fails due to a low priority error (252642@main)
  • Fixed not restarting application-muted microphone tracks in case the audio unit gets unsuspended (252905@main)
  • Fixed RTCDtlsTransport to close when its peer connection gets closed (252948@main)
  • Fixed Canvas.getContext('2d').drawImage on a camera video stream when the tab is backgrounded (252738@main)
  • JavaScript:
  • Fixed Temporal.Duration#toString to use BigInt#toString for values beyond MAX_SAFE_INTEGER (Behind the --useTemporal flag) (252935@main)
  • Improved TypedArray.from performance (252976@main)
  • Improved TypedArray#indexOf and TypedArray#includes performance (252945@main, 252544@main)
  • Removed ordering check for Intl.NumberFormat, Intl.DateTimeFormat, and Intl.PluralRules range functions (252911@main)
  • Improved TypedArray#toSorted, TypedArray#toReversed, TypedArray#with and TypedArray#subarray performance (252911@main)
  • Improved TypedArray#slice performance (252847@main)
  • Removed TypedArray#toSpliced since it is dropped from the proposal (252664@main)
  • Fixed that generic iterator protocol function is invisible to Function's caller getter (252578@main)
  • Web API:
  • Aligned StorageEvent.initStorageEvent() with the HTML specification (252521@main)
  • Aligned XHR aborting with the specification (252611@main)
  • Changed to not perform smooth keyboard scrolling on containers with scroll snap (252663@main)
  • Changed to maintain the original Content-Type header on 303 HTTP redirect (252713@main)
  • Checked for strict-dynamic when checking host sources for CSP (252465@main)
  • Enabled lazy iframe loading by default (252848@main)
  • Exposed the sheet property on SVGStyleElement (252491@main)
  • Fixed alternate stylesheets not present in document.styleSheets (252781@main)
  • Fixed CSS.supports returning false for custom properties (252987@main)
  • Fixed a display: none HTMLMediaElement with a camera track as the source leaking video frames (252871@main)
  • Fixed getComputedStyle(img).height to return a string of a rounded int not a float (252583@main)
  • Fixed a visible line character in the space between paragraphs when using a double space while composing an email with Gmail in Safari (252683@main)
  • Fixed XHR error events to return zeros for loaded and total (252743@main)
  • Fixed password authentication in XHR (252696@main)
  • Fixed canvas drawImage to clip source image when the source rectangle is outside of the source image (252731@main)
  • Fixed dynamically inserted stylesheets to be accessible via document.styleSheets (252816@main)
  • Fixed link elements to be able to fire more than one load or error event (252943@main)
  • Fixed parsing link, vlink, and alink content attributes on the element (252992@main)
  • Fixed SVGDocument getElementById returning null when an SVG element is disconnected from documents (252478@main)
  • Fixed when a WebLock gets aborted via a Signal to reject its promise with the AbortSignal's reason (252503@main)
  • Fixed Service Workers in browser extensions to be able to load resources over a custom protocol (252585@main)
  • Fixed WorkerGlobalScope.isSecureContext to be based on the owner's top URL, not the owner's URL (252913@main)
  • Aligned CSS.supports with the specification to return false for descriptors (252720@main)
  • Implemented fingerprinting countermeasures for querying the permission state of the Notifications API (252969@main)
  • Stopped allowing trailing junk when parsing retry delay for EventSource (252885@main)
  • Fixed parsing of deeply nested phrasing content (252979@main)
  • Fixed removing srcdoc content attribute does not unload the document in iframe (252991@main)
  • Web Components:
  • Updated shadow DOM and dialog element focusing to the latest spec (252959@main)
  • Updated delegatesFocus to match the latest spec (252901@main)
  • Fixed custom element reaction callback timing when modifying ARIA attributes (252552@main)
  • Fixed custom element reaction callback timing when using WebAnimation.prototype.commitStyles (252553@main)
  • Accessibility:
  • Exposed suggestion, insertion, deletion roles and attributes (252516@main)
  • Enabled ARIA reflection attributes that refer to elements (252590@main)
  • Lockdown Mode:
  • Disabled web fonts in Lockdown Mode (252884@main, 252712@main)
  • Web Extensions:
  • Added browser.storage.session API for storing data in-memory that is not written to disk

New in Safari 16.0 Technology Preview 150 (Jul 28, 2022)

  • Web Inspector:
  • Elements Tab:
  • Changed CSS autocomplete so that the most commonly used property accounts for fuzzy-matching (252194@main)
  • Fixed property usage counts to ignore variables in CSS autocomplete (252195@main)
  • Make popover for resolved CSS variable values consistent with other popovers (252133@main)
  • Automatically hide the CSS documentation popover when navigating away (252175@main)
  • Sources Tab:
  • Provided an option for controlling whether local overrides entirely replace or have some passthrough (251884@main)
  • Network Tab:
  • Added integrity and referrerPolicy in "Copy as fetch" (251819@main, 251818@main)
  • Disabled context menu items for incomplete resources (251987@main)
  • Timelines Tab:
  • Fixed Screenshots timeline overview records to adjust their position when zooming in or zooming out (252148@main)
  • Layers Tab:
  • Fixed reasons for compositing for an element with clip-path and composited descendants (252354@main)
  • Search Tab:
  • Improved search performance for short queries on many sites (252279@main)
  • Device Settings and Develop menu:
  • Updated user-agent overrides to match options in Safari 16 (251881@main)
  • CSS:
  • Fixed specificity of :has() pseudo-classes (252140@main)
  • Renamed container-type value none to normal (252116@main, 252119@main)
  • Shadow DOM:
  • Fixed :focus pseudo-class failing to repaint on a shadow host when the focus moves from outside the page to inside a shadow tree (252261@main)
  • Fixed :focus-within pseudo-class not getting updated when the frame loses or gains focus (252324@main)
  • Fixed :lang pseudo-class to work across shadow boundaries (252099@main)
  • Fixed the :host() function pseudo-class to only accept a single compound-selector (252110@main)
  • Fixed vw units to get updated inside shadow trees as the frame is resized (252149@main)
  • JavaScript:
  • Adjusted ArrayBuffer size tracking only when full garbage collection happens (252368@main)
  • Adopted Intl.NumberFormat v3 spec change for useGrouping option (252013@main)
  • Fixed interpretation of the fractional part of an ISO8601 Duration string (251809@main)
  • Web Animations:
  • Added support for custom properties in Animation.commitStyles() (251858@main)
  • Added support for custom properties in JavaScript-originated animations (251856@main)
  • Web Share:
  • Disallowed sharing data: URLs (252398@main)
  • WebAuthn:
  • Added getPublicKey and getPublicKeyAlgorithm methods to AuthenticatorAttestationResponse (251844@main)
  • User handles that are too long or too short are now rejected (251938@main)
  • Empty RP ids are now rejected (252142@main)
  • Added support for authenticators over CCID (252425@main)
  • Fixed passing CBOR-encoded extensions along during assertions (252626@main)
  • Web API:
  • Designed an intentional way to invalidate platform font caches (251845@main)
  • Fixed PushManager in private browsing (251831@main)
  • Fixed IntersectionObserver stopping tracking when ⌘+ (Command-plus) is used to zoom in (251829@main)
  • Fixed ⇧⇥ (Shift-Tab) when focused in the middle of a contenteditable element (252029@main)
  • Fixed an issue where SameSite=Lax cookies were sometimes not sent on link navigations (252341@main)
  • Fixed SVGs loading an external file via ignoring the ServiceWorker when offline (252132@main)
  • Fixed video.currentSrc to not be reset when a new load errors (251899@main)
  • Fixed an issue where inserting an iframe erroneously performs a micro-task checkpoint. (252015@main)
  • Rendering:
  • Fixed padding on a flex-based horizontal scroller preventing the last item from being fully viewable (251770@main)
  • Fixed clipping of absolutely positioned descendants of a transformed element with overflow: hidden (252387@main)
  • Implemented aspect-ratio mapping for the canvas element (252001@main)
  • Reduced memory use for for non-animated compositing layers with zero opacity (251965@main)
  • Fixed re-inserting that previously rendered fallback content (251903@main)
  • Accessibility:
  • Fixed WebSpeech to correctly allow the use of selected voices (252346@main)

New in Safari 16.0 Technology Preview 149 (Jul 17, 2022)

  • Web Inspector:
  • Elements Tab:
  • Added support for forcing pseudo-class :focus-visible, :focus-within, and :target (251656@main, 251628@main)
  • Fixed empty space in the filter bar for the Fonts details sidebar (251704@main)
  • Extensions:
  • Fixed Web Inspector window becoming inactive when an extension tab is selected (251645@main)
  • Media:
  • Added support for AVIF images on macOS Ventura and iOS 16 (251850@main)
  • Added support for emitting a resize event from PiP window (251512@main)
  • Fixed a black screen appearing in a muted video element outside the viewport (251596@main)
  • Fixed autoplay for an HTMLMediaElement created while page is interrupted (251691@main)
  • Fixed autoplay when moving a media element from one document to another (251595@main)
  • Fixed WebM to handle a case where a single video frame is appended (251485@main)
  • Fixed video.currentSrc to not get reset when a new load error occurs (251654@main)
  • CSS:
  • Implemented the text-align-last property (251540@main)
  • Fixed styling of th elements when explicitly specifying text-align: inherit (251630@main)
  • CSS Container Queries:
  • Fixed container units in gradients (251680@main)
  • Fixed improper style sharing with container queries (251731@main)
  • Fixed rem units in queries (251734@main)
  • Rendering:
  • Fixed repainting rect not taking into account text-underline-offset (251477@main)
  • Fixed incorrect sizing of elements with visually hidden text inside (251483@main)
  • JavaScript:
  • Fixed Temporal regulateTime's constraints for milliseconds, microseconds, and nanoseconds (behind --useTemporal flag) (251556@main, 251698@main)
  • Fixed Temporal.Instant#round to treat the Big Bang (not the Unix epoch) as zero (behind --useTemporal flag) (251556@main)
  • Fixed Temporal.PlainTime#since to handle ceil and floor properly (behind --useTemporal flag) (251556@main, 251555@main)
  • Screen Sharing:
  • Fixed resuming screen sharing after it is paused (251618@main)
  • Web Animations:
  • Added support for custom properties in @keyframes rules (251733@main)
  • Invalidated animation keyframes using container units on when container size changes (251574@main)
  • WebAuthn:
  • Fixed CTAP2_ERR_USER_ACTION_TIMEOUT handling (251511@main)
  • Renamed "cable" transport to "hybrid" (251621@main)
  • Fixed upgrading a legacy platform credential to a passkey does not delete the legacy credential (251646@main)
  • Navigation Preload:
  • Changed to not route the navigation preload response body to the service worker if it can be avoided (251493@main)
  • Web API:
  • Added support for waiting for event in custom element (251718@main)
  • Fixed scheduling or firing an event when selection changes for select() and setRangeText() (251716@main)
  • Implemented PerformanceResourceTiming.workerStart in ServiceWorkers (251523@main)
  • Switched Web Share Permissions Policy to * (251487@main)
  • Security:
  • Fixed CORS checks to not unblock cookies (251478@main)

New in Safari 16.0 Technology Preview 148 (Jun 30, 2022)

  • Web Inspector:
  • Added “Copy as fetch” in a contextual menu for resources (251226@main)
  • Updated Open Resource dialog to support matching file paths (251155@main)
  • Elements Tab:
  • Added eyedropper to the color picker to allow picking a color from anywhere on the screen (251236@main)
  • Improved CSS autocompletion to suggest the most commonly used property, not the alphabetically first one (250994@main, 251171@main)
  • Layout
  • Fixed overlay color swatches to not allow format changes via context menu (251194@main)
  • Fixed overlay color swatches not updating the color of an overlay until the popover is dismissed (251248@main)
  • Sources Tab:
  • Blackbox breakpoint evaluations in the debugger by default (251170@main)
  • Fixed newly added header not appearing when adding it to a request local override (250821@main)
  • Fixed the cursor not being automatically placed where it was before when creating a local override while viewing a resource (251279@main)
  • Fixed popover not resizing when wrapping to a new line while editing a breakpoint action (251072@main)
  • Network Tab:
  • Added EventSource resource type (250672@main)
  • Fixed activity not getting marked as a previous session when the Network Tab is not selected (250902@main)
  • Timelines Tab:
  • Implemented Screenshots timeline (250535@main, 250938@main, 251169@main, 250939@main, 250971@main, 250937@main, 250935@main, 250927@main, 250928@main)
  • Added support for including images from console.screenshot in the Screenshots timeline (250942@main)
  • Audit Tab:
  • Allowed audits to simulate a user gesture (251241@main)
  • Replaced the "Export Audit" and "Export Result" buttons with a single button that has a picker (251295@main)
  • :has() pseudo-class:
  • Added support for invalidating :target pseudo-class (250483@main)
  • Added partial support for invalidating :in-range and :out-of-range (250839@main)
  • Fixed invalidation with scope breaking :is() or :not() (251130@main)
  • CSS Container Queries:
  • Fixed a bug in style caching with container units (251268@main)
  • Changed to update query container layout unconditionally when an ancestor style changes (251310@main)
  • CSS:
  • Added support for each-line keyword in text-indent (250978@main)
  • Changed to not allow unit-less values for CSS unprefixed perspective property (250582@main)
  • Fixed handling of text-align: match-parent on root element (251211@main)
  • Implemented :modal pseudo-class (250424@main)
  • Implemented ray() shape in offset-path (250437@main, 250776@main)
  • Implemented contain flag for ray() in offset-path (250776@main)
  • Updated logical *vi (inline) and *vb (block) viewport units to be based on the current element's writing-mode (250835@main)
  • Forms:
  • Made appearance: textfield behave like auto for most cases (250605@main)
  • Changed input.showPicker() to throw when the input element is readonly or disabled (250532@main)
  • Made input placeholder line-height user agent declaration !important (250414@main)
  • Made sure :active state is removed on keyup for radio button inputs (250734@main)
  • Removed the following values from the appearance property (250538@main, 250889@main, 250865@main, 250584@main, 250871@main)
  • caret
  • continuous-capacity-level-indicator
  • default-button
  • discrete-capacity-level-indicator
  • inner-spin-button
  • listitem
  • media-controls-dark-bar-background
  • media-controls-light-bar-background
  • progress-bar-value
  • rating-level-indicator
  • relevancy-level-indicator
  • sliderthumb-horizontal
  • sliderthumb-vertical
  • Animations:
  • Changed to dynamically toggle acceleration of offset animations depending on the ability of animations in the effect stack to be accelerated (250737@main)
  • Ensured that animations using offset properties correctly run on a composited layer (250687@main)
  • inert attribute:
  • Fixed the inert attribute to ignore display: contents elements with assistive technologies (251185@main)
  • Fixed the inert attribute to affect pseudo-elements (250446@main)
  • JavaScript:
  • Changed Temporal round and total methods to accept a string parameter (Temporal is behind the --useTemporal runtime flag) (250433@main)
  • Fixed Temporal.Duration#toString to never ignore fractionalSecondDigits (Temporal is behind the --useTemporal runtime flag) (250388@main)
  • Updated Temporal and Date to reject expanded year -000000 (Temporal is behind the --useTemporal runtime flag) (250432@main)
  • Rendering:
  • Fixed perspective to not be affected by transform-origin (250841@main)
  • Stopped assuming that an absolute positioned block box's height is always resolvable (251215@main)
  • Web API:
  • Allowed Service Workers to run for a little longer in the case of functional events (250635@main)
  • Fixed fetch event handling delays caused by other JavaScript work on the main thread (251183@main)
  • Made sure calling showNotification will extend the service worker lifetime (250583@main)
  • Media:
  • Fixed sequential WebVTT cues with the same contents getting dropped (250988@main)
  • Fixed audio playback rate speeding up for few seconds when using createMediaElementSource (250579@main)
  • Fixed capturing a canvas that is not in the DOM leading to erratic frame rates or no frame emission at all (250996@main)
  • Changed to trigger element fullscreen video extraction after the seeked event (251090@main)
  • Security:
  • Added support for Link nonces (250972@main)
  • Aligned Intelligent Tracking Prevention client side cookie cap with other script-writable storage (251397@main)
  • Fixed script-src-elem Content Security Policies in workers (250386@main)
  • Loading:
  • Fixed loading a very large image as an image document (251253@main)
  • WebDriver:
  • Fixed automated mouse movement to correctly fire mouse events (251457@main)
  • Fixed rapid session creation and deletion leading to a timeout in session creation

New in Safari 16.0 Technology Preview 147 (Jun 22, 2022)

  • Many of the new Safari 16 features are now available in Safari Technology Preview 147:
  • Live Text. Select and interact with text in videos or translate text in images on the web in macOS Ventura betas on Apple Silicon-based Macs.
  • Web technologies. Experience and test the HTML, CSS, JavaScript, and other web technologies that are available in Safari 16 Beta and included in previous Safari Technology Preview releases.
  • Web Push. Send notifications to people who opt-in on your website or web app with Safari Technology Preview on macOS Ventura betas.
  • Passkeys. Preview the new type of phishing-resistant credential that makes signing in to websites safer and easier. Available through Safari's WebAuthn platform authenticator. To learn more about passkeys, see Meet passkeys.
  • Improved Safari Web Extensions. Test out API improvements including the ability to open a Safari Web Extension popover programmatically.
  • Web Inspector Extensions. Build custom tooling or convert existing developer tools extensions to use in Web Inspector.
  • Flexbox Inspector. Use the new visualization overlay in Web Inspector to help you more quickly and easily understand the layout of elements with Flexbox. It marks both the free space and gaps between flex items to reveal how they affect the result.

New in Safari 15.4 Technology Preview 146 (May 26, 2022)

  • Web Inspector:
  • Elements Tab:
  • Fixed hovering over a node in the Layout panel to now highlight it on the page (r293189)
  • Fixed and elements appearing in the list of Flex containers (r293565)
  • Sources Tab:
  • Added ability for local overrides to entirely block a request (r293409)
  • Timelines Tab:
  • Fixed importing a timeline leaves the overview non-scrollable/non-zoomable until windows is resized (r293727)
  • Graphics Tab:
  • Improved display of GLenums and GLbitfield in WebGL canvas recordings. (r293541, r293706)
  • CSS:
  • Fixed ::first-letter when used in shadow content (r293497)
  • Fixed revert-layer in shadow tree contexts (r293725)
  • Fixed cascade rollback for deferred properties (r293485)
  • Related properties sharing a computed value (r293602)
  • Made word-wrap CSS property an alias of overflow-wrap (r293521)
  • Made -webkit-transform-style an alias of transform-style (r293524)
  • Unprefixed the -webkit-user-select CSS property (r293089)
  • Removed some unimplemented -webkit-appearance keywords (r293511)
  • Updated the user-agent stylesheet to include table { text-indent: initial } to conform with the HTML standard (r293322)
  • JavaScript:
  • Added ISO8601 based Temporal.PlainDate getters behind a flag (r293708)
  • Enabled change-array-by-copy (r293348)
  • Fixed WASM to throw consistent exceptions for memory.init and memory.copy (r293252)
  • Fixed JS stack traces to report the correct column number in CR-LF line ending style HTML files (r293672)
  • Forms:
  • Fixed setting the correct selection range for textarea when updating the default value (r293673)
  • Fixed constructed FormData object to not contain an entry for the submit button that was used to submit the form (r293444)
  • Fixed user-select: none to have no effect on editability (r293028)
  • Media:
  • Fixed the media controls overflow button flickering sometimes (r293658)
  • Fixed HTMLMediaElement getting multiple interruptions for invisible autoplay (r293609)
  • Fixed MediaSession.setPositionState() (r293488)
  • Rendering:
  • Fixed the quirk to only stretch the percent height body when it is the document element's child (r293647)
  • Made contain: layout on the html element change position: fixed behavior (r293209)
  • Scrolling:
  • Fixed smooth scrolling behavior when focusing a scroll container before beginning to scroll (r293260)
  • HTML:
  • Fixed always sending credentials to a different origin, ignoring crossorigin=anonymous (r293503)
  • Shared Worker:
  • Fixed resuming a suspended remote shared worker when a new SharedWorker object is created (r293173)
  • Service Worker:
  • Fixed Service Worker loads to not expose some ResourceTiming information (r293418)
  • Fixed Service Worker update to refresh imported scripts in addition to the main script (r293506)
  • Fixed Service Worker to not intercept embed- or object-related loads (r293417)
  • Fixed ServiceWorkerRegistration updates to fail if called from an installing Service Worker context (r293719)
  • Fixed URL.createObjectURL to not be exposed in Service Worker contexts (r293717)
  • Web API:
  • Fixed Web Locks held in a Worker not getting released on page refresh or exit (r293329)
  • Accessibility:
  • Changed to not expose ARIA roleDescription value on "generic" elements (e.g. div and span) unless an explicit role value is also defined (r293345)
  • Security:
  • Fixed mixing strict-dynamic and unsafe-inline Content Security Policies (r293603)
  • Set top origin of CORS preflight requests (r293591)

New in Safari 15.4 Technology Preview 145 (May 12, 2022)

  • Web Inspector:
  • Sources tab:
  • Allowed Response Local Overrides to map to a file on disk (r292084, r292120)
  • :has() pseudo-class:
  • Added invalidation support for the pseudo-classes :autofill (r292531); :placeholder-shown (r292523); :indeterminate, :read-only, :read-write, :required and :optional (r292466, r292582)
  • Container Queries and Containment:
  • Added CSSOM support (r292045)
  • Added support for contain: inline-size (r292394, r292416, r292465)
  • Added support for containment to disable the special handling of the HTML body element for overflow viewport propagation (r292127, r292157)
  • Corrected container selection for pseudo-elements (r292819)
  • Corrected container selection for ::slotted and ::part rules (r292635)
  • Disallowed invalid query range syntax (r292816)
  • Updated container shorthand order (r292759)
  • CSS Grid:
  • Added support for transitions and animations on grid-template-columns and grid-template-rows (r292432)
  • Fixed grid items that establish an independent formatting context to not be subgrids (r292524)
  • Implemented support for aligning baselines through subgrids (r292973)
  • CSS:
  • Added support for rendering url(), CSS basic shapes other than path(), and coord-box for offset-path (r292382)
  • Fixed scrollIntoView with scroll-snap-type on root element (r292812)
  • Fixed drop-shadow filter to work correctly in tiled backing layer (r292059)
  • Fixed issue with position: sticky within contain: paint (r292155)
  • Implemented units for CSS Typed OM (r292150)
  • calc() functions:
  • Added NaN propagation for min, max, clamp, and hypot (r292732)
  • Serialized top level min, max, hypot as calc() (r292893)
  • resize property:
  • Added support for block/inline CSS values (r292222)
  • Corrected minimum size computation to allow resizing below initial size (r292559)
  • Dialog Element:
  • Dialog element now adapts to dark mode by default (r292029)
  • JavaScript:
  • Allowed Wasm import from a JS Worker module behind the feature flag (r292799)
  • Changed ShadowRealm global object to have a mutable prototype (r292895)
  • Media:
  • Fixed full screen video progress bar flickering after dragging it (r292572)
  • Fixed MSE video not drawing onto canvas (r292811)
  • Fixed muted video that sometimes becomes paused when entering fullscreen (r292049)
  • WebAuthn:
  • Added support for all CTAP transports and remove gesture requirement for virtual authenticators (r292593)
  • Implemented getTransports() and getAuthenticatorData() (r292913)
  • Web API:
  • Removed the 1ms minimum for setTimeout (r291998)
  • Content Security Policy:
  • Improved compatibility of source matching (r292266)
  • Fixed WASM failing to execute after window.open (r292229)
  • Security:
  • Fixed incorrect CORP and COEP check in 304 responses (r292595)
  • Service Workers:
  • Added support for ServiceWorkerClients.openWindow (r291979)
  • Implemented ServiceWorkerWindowClient.navigate (r292459)
  • Exposed workers as service worker clients and implemented registration matching for dedicated workers (r292861)
  • Fixed ensuring the document gets controlled by its matching service worker registration during a COOP-based process swap (r292468)
  • Fixed Service-Worker-Navigation-Preload header not being sent when Navigation Preload is enabled (r292296)
  • Fixed ServiceWorker.postMessage() not working from inside iframes (r292905)
  • WebRTC:
  • Reduced perceived audio latency on streaming via WebRTC (r292563)

New in Safari 15.4 Technology Preview 144 (May 3, 2022)

  • Web Inspector:
  • Fixed page reloading and showing an empty inspector on pages with container queries (r291824)
  • Elements Tab:
  • Fixed $0 not being displayed for the selected node after switching to another tab (r291729)
  • Fixed unwanted extra dash when autocompleting CSS variable names in the Styles panel (r291740)
  • Fixed inline swatch popovers not being hidden when the inline swatch is removed (r291628)
  • Console Tab:
  • Fixed console.screenshot to no longer have extra transparent pixels at the bottom of viewport screenshots (r291519)
  • CSS:
  • Added Typed OM support for container units (r291524)
  • Fixed CSS cascade regarding logical properties (r291546)
  • Fixed incorrect handling of NaN inside calc() for top-level calculation (r291911)
  • Let revert-layer roll back to presentational hints (r291594)
  • Implemented border-image serialization (r291537)
  • Preserved repeat() notation when serializing grid-templates (r291956)
  • Reduce memory usage for large, sparse grids (r291952)
  • Handled finite value with infinite step in round() for calc() (r291841)
  • Fixed incorrect resolution of percentage grid-gaps within subgrids (r291953)
  • Web Animations:
  • Enabled support for mutable timelines by default (r291868)
  • JavaScript:
  • Changed Date.parse to stop returning numbers with fractional part (r291603)
  • Fixed class field initializer with extra parentheses (r291577)
  • WebAuthn:
  • Added getAssertion support for virtual HID authenticators (r291624)
  • Specified correct ASCPublicKeyCredentialKind in configureAssertionOptions (r291761)
  • Updated to pass along timeout to ASA and ignore timeout for conditional mediation requests (r291625)
  • Web API:
  • Added support for focused and visible ServiceWorkerWindowClient states (r291888)
  • Added a check for whether the origin can access storage in the Storage API (r291726)
  • Disabled custom storage paths for IndexedDB and LocalStorage by default (r291909)
  • Fixed PointerEvent.movementX to not always be 0 (r291886)
  • Fixed Context2D drawImage(img, x, y, w, h) to not throw IndexSizeError when width or height are 0 (r291748)
  • Fixed fetching a Blob URL with an unbounded Range header to correctly generate a Content-Range response header (r291622)
  • Implemented CSSNumericValue.mul, CSSNumericValue.div, CSSNumericValue.add, CSSNumericValue.sub, CSSNumericValue.max, and CSSNumericValue.min (r291597)
  • Implemented ServiceWorkerWindowClient.focus (r291938)
  • Accessibility:
  • Included initial accessibility support for display: contents (r291570)
  • Media:
  • Fixed a bug where clicking anywhere on the progress bar pauses some MSE video implementations (r291629)
  • Fixed video playback for HEVC-encoded video with a lot of b-frames and a wide sliding window (r291813)
  • Security Policy:
  • Fixed website policies not being respected when doing COOP-based process swap (r291606)
  • Web Extensions:
  • Fixed a crash clicking on Safari App Extension toolbar items

New in Safari 15.4 Technology Preview 143 (Apr 8, 2022)

  • Web Inspector:
  • Service workers are no longer terminated while they are being inspected. (r291467)
  • Elements Tab:
  • Added option in the Layout panel of the Details Sidebar for Flexbox overlays to show each item's CSS order and/or DOM index in the parent flex container (r290613)
  • CSS Container Queries:
  • Added support for nested container queries (r290257)
  • Added basic support for container units (r291474)
  • Changed to only apply inline-size containment when it is allowed (r291154)
  • Ensured container style changes are propagated to descendants (r291500)
  • Fixed getComputedStyle to update the style for invalid query containers (r290320)
  • Fixed offsetWidth, offsetHeight, and similar to update layout for container queries (r290380)
  • Implemented new container selection algorithm (r291098)
  • CSS Cascade Layers:
  • Added support for revert in @keyframes (r290457)
  • Added support for revert-layer in @keyframes (r290729)
  • Fixed revert on low-priority properties (r291260)
  • Let revert-layer in the lowest layer roll back to user styles (r290864)
  • Subgrid:
  • Fixed computing the correct containing block override size for items that are subgridded in one dimension only (r290577)
  • Converted grid direction to be relative to subgrid when accounting for extra margin (r290576)
  • Handled reverse flow direction when converting iterator coords for a subgrid (r290572)
  • Fixed subgrid items to always be stretched (r291464)
  • Fixed positioning of position: absolute items within nested grids (r290674)
  • CSS:
  • Implemented text-decoration as a shorthand (r290756, r291244)
  • Implemented logical properties for CSS overscroll-behavior (r290422)
  • Fixed background-clip: text to work with display: flex (r291303)
  • JavaScript:
  • Added CalendarDateTime parsing (r290248)
  • Fixed ShadowRealm unwinding (r290283)
  • Fixed Temporal.PlainDate to validate input range (r290282)
  • Rendering:
  • Fixed image alt text bi-directional reordering (r290734)
  • Fixed alt text position in right-to-left context (r290726)
  • Fixed table sizing when colgroup comes after tbody (r290512)
  • Fixed scrollbars disappearing when very long or wide (r290545)
  • Handled perpendicular containing blocks when computing available logical height (r290634)
  • Web Animations:
  • Added support for passing an optional timeline to Element.animate() (r290655)
  • Changed setting the composite property on a keyframe effect to invalidate the target style (r290741)
  • Fixed inherit values should trigger keyframe recomputation if any previous effect has changed that property (r290831)
  • Fixed keyframe values set to inherit to recompute their values when the inherited value changes (r290823)
  • Fixed animating fill and stroke to or from currentColor (r290898)
  • Fixed ::placeholder to not be a valid pseudo-element for a keyframe effect target (r290662)
  • Fixed animations on modal elements and ::backdrop to run more than once (r291282)
  • Fixed outline-width with transition to animate correctly (r290735)
  • Fixed text-emphasis shorthand to be animatable (r290895)
  • Fixed text-emphasis-color to support non-discrete animations (r290887)
  • Made changes to font-size recompute keyframes (r290730)
  • Added support for discrete animation to:
  • background-blend-mode (r291041)
  • clip-rule (r291042)
  • color-interpolation (r291008)
  • color-interpolation-filters (r291043)
  • counter-increment (r291090)
  • counter-reset (r291099)
  • dominant-baseline (r291068)
  • fill-rule (r291100)
  • font-family (r291040)
  • font-feature-settings (r291039)
  • font-kerning (r291037)
  • font-synthesis (r291103)
  • font-variant-alternates (r291104)
  • font-variant-caps (r291119)
  • font-variant-east-asian (r291109)
  • font-variant-ligatures (r291114)
  • font-variant-numeric (r291147)
  • font-variant-position (r291115)
  • grid-template-areas (r291122)
  • line-break (r290885)
  • marker-end (r291226)
  • marker-mid (r291227)
  • marker-start (r291228)
  • mask-clip (r291130)
  • mask-composite (r291159)
  • mask-mode (r291160)
  • mask-origin (r291148)
  • mask-repeat (r291161)
  • mask-type (r291158)
  • quotes (r291128)
  • scroll-behavior (r291129)
  • shape-rendering (r291171)
  • stroke-linecap (r291163)
  • stroke-linejoin (r291164)
  • text-anchor (r291166)
  • text-decoration-skip-ink (r290886)
  • text-emphasis-style (r290888)
  • text-rendering (r291157)
  • vector-effect (r291170)
  • SVG:
  • Fixed clamping animated values to the 0-1 range for:
  • fill-opacity (r290568)
  • flood-opacity (r290571)
  • stop-opacity (r290569)
  • stroke-opacity (r290570)
  • Scrolling:
  • Allowed history swipe in scroller with overscroll-behavior (r291497)
  • Fixed incorrect painting when scrolling a page with fixed backgrounds (r290785)
  • Fixed scroll animation when scroll snap scroller is navigated with the keyboard (r290548, r290625)
  • Fixed element with position: sticky after sticking, starting to move incorrectly when scrolling (r290812)
  • WebAuthn:
  • Added support for authenticatorSelection.residentKey (r291176)
  • Added fallback to attestation=none if requested but unavailable for platform authenticator (r290539)
  • Enabled using WebAuthn within cross-origin iframe elements (r291018)
  • Improved virtual authenticator support ( r291423 , r291321)
  • WebGL:
  • Fixed WebGL rendering incorrect results when using preserveDrawingBuffer (r291218)
  • HTML:
  • Enabled the inert attribute by default (r290587)
  • Web API:
  • Enabled the Permissions API by default (r291116, r290301)
  • Fixed mousemove events double-firing in Safari (r290743)
  • Fixed rendering when loading a USDZ as the main resource (r290562)
  • Fixed CORS preflight failing due to cache-control header (r290507)
  • Fixed PerformanceNavigationTiming Response Start being unavailable when using Service Worker Cache (r291441)
  • Fixed buffered flag not working in Paint Timing (r290247)
  • Fixed load event never firing after a form is submitted (r290841)
  • Fixed WebSocket.send() to synchronously update bufferedAmount (r290995)
  • Made input element UA shadow tree creation lazy (r290284)
  • Made pointer-events checks for SVG take in account inert subtrees (r290306)
  • Removed the 1ms minimum for setTimeout (r291476)
  • Media:
  • AudioContext will continue playing when minimizing or moving the macOS Safari window to the background (r291267)
  • Fixed scrambled output for some WebM videos with VP8 codec (r291216)
  • Implemented remote-inbound-rtp packetsLost (r290865)
  • Accessibility:
  • Updated WebSpeech API support (r291124)
  • File System Access:
  • Changed to throw an exception if a file or directory cannot be accessed in file system (r291014)
  • Disallowed empty name in FileSystemHandle (r290998)
  • Disallowed names that are not permitted by the underlying file system (r291057)
  • Fixed fetching website data that may get a wrong or missing record after migrating data to general storage directory (r290239, r290233)
  • Web Extensions:
  • Fixed cookie expiration dates so they are not off by 30 years

New in Safari 15.4 Technology Preview 142 (Mar 24, 2022)

  • Web Inspector:
  • Elements Tab:
  • Added overlay for visualizing CSS Flexbox container layouts (r290065, r290047, r289416, r289610, r289698, r289757)
  • Added indicators for layout context in element tooltips (r290112)
  • Sources Tab:
  • Fixed clicking to re-enable a breakpoint clearing automatic continue (r289669)
  • Fixed double-clicking a breakpoint icon to show the edit popover (r289670)
  • CSS Subgrid:
  • Enabled subgrid by default (r290111)
  • Added accounting for subgrid margin, border, and padding when sizing (r290096)
  • Added support for parsing subgrid in grid-template-columns and grid-template-row (r289722)
  • Changed to copy track sizes from the parent grid into subgrid (r290007)
  • Changed to inherit track count from the parent grid for subgridded axes and clamp item placement to that explicit grid (r289986)
  • Included subgrid items in the track sizing algorithm of the outer grid (r290077)
  • Implemented getComputedStyle for subgrids (r289993)
  • Fixed certain scenarios where grid may be empty (r289437)
  • Fixed recalculating styles when updating a grid gap value (r289241)
  • CSS Container Queries:
  • Enabled CSS Container Queries by default (r290025)
  • Added query container tracking so they can be invalidated on size change (r289457)
  • Added support for all size features (r289838)
  • Added support for full range notation in size queries (r290037)
  • Added support for range operators in size queries (r289789)
  • Changed size queries on unsupported axis to evaluate to unknown (r289890)
  • Implemented container name matching (r289617)
  • Implemented full query parser and evaluator (r289742)
  • Implemented inline-size containment (r289466)
  • Implemented container shorthand serialization (r289886)
  • Matched container queries correctly in non-rendered subtrees (r290205
  • CSS:
  • Enabled CSS Motion Path by default (r290071)
  • Enabled overscroll-behavior by default (r289683)
  • Changed transform: perspective(0) to not be considered an identity operation (r289903)
  • Changed to return none for the computed style of a mask when there are no mask images (r289377)
  • Fixed :focus-visible with a click on radio or checkbox labels (r289521)
  • Fixed contain: content in fullscreen (r289686)
  • Fixed incorrect absolute position layout when toggling contain (r289527)
  • Updated conversion to a color space with a smaller gamut to perform gamut mapping (r289396)
  • Updated an element with both -webkit-user-select: all and -webkit-user-drag: element to get a snapshot as when using only -webkit-user-drag: element (r289544)
  • Web Animations:
  • Enabled the KeyframeEffect.composite property (r290067)
  • Added composite accumulation support for transform properties (r289599)
  • Added support for logical properties in JS-originated animations (r289216)
  • Aligned animations with different, but compatible, frameRate values (r290121)
  • Allowed setting frameRate as an option passed to Element.animate() (r290123)
  • Allowed setting frameRate as an option passed to document.timeline.animate() (r290125)
  • Changed to properly handle interpolation of non-invertible matrices (r289862)
  • Changed to use the animation frameRate during animation resolution and scheduling (r290003)
  • Changed Animation.commitStyles() to use the non-animated style (r289453)
  • Fixed additive and accumulation interpolation to work correctly with implicit 0% and 100% keyframes (r289454)
  • Fixed animating from scale() to scale() translate() (r289732)
  • Fixed additive animations to prevent other animations from running accelerated (r289605)
  • Fixed recomputing keyframes when changing direction or writing-mode (r289426)
  • Fixed clearing computed keyframes when changing direction or writing-mode (r289226)
  • Fixed animations associated with a custom effect to appear in document.getAnimations() result (r290122)
  • Implemented parsing and animation support for offset shorthand (r289876)
  • Rendering:
  • Fixed tab characters and ch units to obey synthetic bold width adjustments correctly (r289609)
  • Forms:
  • Changed input elements to return an empty string for an invalid floating-point number that ends with "." (r290124)
  • Fixed selection method return values to match the spec (r289813)
  • Fixed light appearance text fields rendering invisible in Increased Contrast mode (r290054)
  • Fixed clicking an submitting the form with a null submitter (r289615)
  • Improved applyStep() to match the spec (r289465)
  • JavaScript:
  • Enabled Shadow Realms support by default (r290119)
  • Implemented Temporal.PlainDate behind a flag: __XPC_JSC_useTemporal=1 (r290209)
  • Optimized JSString’s atomization (r289359)
  • Shared Workers:
  • Added support for sharing Shared Workers (including across WebProcesses) (r289247)
  • Changed to fail synchronously when constructing a SharedWorker with a URL that is not same-origin (r289532)
  • Fixed self.location.href in Shared Workers in case of redirects (r289483)
  • Workers:
  • Changed worker scripts to always be decoded as UTF-8 (r289489)
  • Fixed WorkerGlobalScope.importScripts() to protect blob URLs that were passed in until the imports are done (r289236)
  • Fixed MIME type check for classic worker script fetches (r289672)
  • Fixed exceptions to be properly reported when initializing a worker as a module (r289479)
  • Dialog Element:
  • Fixed the Dialog element only animating once (r289498)
  • Exposed the correct role, subrole, and role description properties for the element (r289713)
  • Web API:
  • Added support for both versions of ScreenCaptureKit API (r289547)
  • Changed to use the system window and screen picker when available (r289696, r289701)
  • Fixed settling a fetch promise to be delayed in case the page is entering page cache (r289533)
  • Optimized DOM storage event dispatch (r290223)
  • Experimental Model Element:
  • Improved sizing on macOS (r289495)
  • Made standalone model documents interactive (r289666)
  • Web Extensions:
  • Added support for the browser.action.openPopup() and browser.browserAction.openPopup() API to open the extension popup for a specific window (this is a WECG proposal)
  • Added support for the optional_host_permissions manifest key in manifest_version 3 extensions (this is a WECG proposal)
  • Added support for browser.runtime.getFrameId() so it easier to get frame identifiers from content scripts (this is a WECG proposal)
  • Added support for the frameId option that can be passed to browser.tabs.sendMessage()
  • Fixed the number returned by parentFrameId for webNavigation and webRequest events to be -1 when it is the main frame
  • Fixed devtools.panels.onShown so the window object of the panel is sent to the listeners
  • Fixed devtools.panels.onShown to prevent it from firing multiple times per active panel change
  • Made the devtools API namespace only exposed to the devtools background pages

New in Safari 15.4 Technology Preview 141 (Mar 4, 2022)

  • Web Inspector:
  • Sources Tab:
  • Enabled automatic collapsing of blackboxed call frames (r288580)
  • Network Tab:
  • Collapsed resource type filter scope bar into a single button to save space (r288469)
  • Changed the Ignore Caches icon to be a button with a label so it's more visible and immediately understandable (r288533)
  • Moved the Group Media Requests and Preserve Log checkboxes into a single filter icon that shows a contextmenu with those options when clicked to save space (r288470)
  • Graphics Tab:
  • Added the display of more pseudo-elements than ::before and ::after (r288623)
  • Console Tab:
  • Moved the Preserve Log checkbox into a single filter icon that shows a contextmenu with those options when clicked to save space (r288702)
  • CSS:
  • Enabled support for overflow: clip (r288973)
  • Implemented CSS overscroll-behavior for asynchronous scrolling on macOS (r288777)
  • Fixed removal of not yet loaded CSS @import (r288879)
  • Fixed CSS Grid shorthand expansion of initial values (r288544)
  • Fixed scroll-margin-top on inline elements (r288947)
  • Forms:
  • Fixed the value not changing for stepUp() and stepDown() with out-of-range values (r289075)
  • Fixed grouping radio buttons with no form owner (r288734)
  • Used min as default value when min is greater than max for (r289209)
  • JavaScript:
  • Added support for the WASM branch hinting proposal (r288758, r288761)
  • Added support for the import assertion syntax behind a flag (r288473)
  • Fixed object literal to properly resolve a name clash between an accessor and a constant property (r289166)
  • Experimental Model Element:
  • Allowed disabling interaction (r288728)
  • Fixed mouse interaction flipped in the y-axis (r288610)
  • Fixed to not be draggable on macOS (r288723)
  • Payment Request:
  • Allowed additional payment method specific data to be passed to complete() (r288698)
  • Web Animations:
  • Fixed accelerated transform animations that start with a 1ms delay (r289211)
  • Fixed de-duplication for @keyframes rules to account for animation-composition (r288571)
  • Fixed the ability to redefine @keyframes (r288882)
  • Fixed using logical properties in the transition syntax (r289161)
  • Resolved logical properties when compiling the list of transition properties (r289167)
  • Web API:
  • Changed the HTMLMediaElement to dispatch the resize event asynchronously (r289108)
  • Changed to remove customElements when transitioning documents (r288450)
  • Fixed slow, CPU-bound file.stream() (r288463)
  • Fixed Geolocation API to callback with an error if the document is not fully active (r288707)
  • Fixed ServiceWorkerNavigationPreloader to only be used once (r288949)
  • Implemented AbortSignal.timeout() (r289058)
  • WebAuthn:
  • Allowed use of hardware-fixed credentials while using “Syncing Platform Authenticator” (r289059)
  • Added authenticator attachment to PublicKeyCredential (r288622)
  • Content Security Policy:
  • Fixed returned WebAssembly error type when blocked (r288992)
  • Fixed blocking image content in object elements (r288792)
  • Implemented wasm-unsafe-eval (r289022)

New in Safari 15.4 Technology Preview 140 (Feb 11, 2022)

  • Web Inspector:
  • Elements Tab:
  • Made CSS Alignment controls in the Styles Detail Sidebar accessible (r288385)
  • Sources Tab:
  • Added a contextual menu item to create a URL Breakpoint for resources initiated by script (r288029)
  • Fixed fully blackboxed stack traces to show the right top call frame (r288266)
  • Timelines Tab:
  • Added better names for newer CSS Animations, CSS Transitions, and Web Animations events (r287945)
  • :has() Pseudo-Class:
  • Added support for :has(:not(foo)) (r288303)
  • Avoided complex style invalidation with repeated DOM mutations (r288012, r287973)
  • Fixed computing specificity (r288196)
  • Changed to disallow nested :has() (r288111)
  • Changed to ignore :visited inside :has() (r288304)
  • CSS:
  • Added support for intrinsic sizes in flex-basis (r288113)
  • Added support for intrinsic sizes to the flex shorthand (r288184)
  • Added support for “missing“/"none" color components (r288143)
  • Added support for interpolating colors with “missing”/“none” components via color-mix() (r288427)
  • Added support for preloading of layered @import rules (r288099)
  • Changed interpolation mode for CSS gradients to default to OKLab if any non-legacy color syntax colors are used in the stops (r288071)
  • Changed to only apply automatic minimum block-size aspect-ratio rules to non-replaced elements (r288003)
  • Fixed the ::backdrop pseudo-element to react to associated element event listeners (r287878)
  • Fixed the CSS color() function to not clamp channels to the 0-1 range (r287838)
  • Fixed the height of flex items with aspect-ratio whenever the cross axis intrinsic size is larger than the viewport (r287976)
  • Fixed rounding of distributed free space to flexible tracks (r287977)
  • Fixed position: fixed layers to not allocate a backing buffer if all the children are offscreen (r288429)
  • Fixed setting content: normal on a ::marker to make the computed style return resolved values (r288054)
  • Web API:
  • Added support for FetchEvent.handled API for Service Workers (r287915)
  • Enabled form.requestSubmit() (r288179)
  • Fixed nextHopProtocol exposed regardless of Timing-Allow-Origin (r288219)
  • Fixed input.labels inside shadow DOM (r288162)
  • Fixed canvas functions that take colors as strings to support all the syntax that CSS supports (r288134)
  • Implemented HTMLScriptElement.supports(type) method (r287996)
  • Improved computation of Service Worker FetchEvent.resultingClientId (r288201)
  • Web Animations:
  • Added support for animation-composition CSS property (r288433)
  • Changed getKeyframes() for a CSS Animation to not use computed style for keyframes (r287835)
  • Fixed interpolation during animation of two empty transform lists to always yield "none" (r287917)
  • JavaScript:
  • Fixed Date functions' argument coercion (r288066)
  • Relaxed Date.parse requirement (r288411)
  • WebAssembly:
  • Fixed misc WebAssembly.Table issues (r288064)
  • Fixed misc issues in WebAssembly.Exception (r288065)
  • Fixed WebAssembly.Global's typename for "anyfunc" (r288049)
  • Dialog Element:
  • Added visibility: visible to modal dialogs in the user-agent stylesheet (r288233)
  • Fixed some overflow and clipping issues with modal dialogs (r288267, r287845)
  • HTML:
  • Fixed support for new lines in HTMLTextArea's placeholder text (r288005)
  • Fixed keeping the selected state of a select element when inserting a selected (r288174)
  • Prevented contenteditable anchors from being stuck (r288420)
  • Media:
  • Fixed gl.texImage2D upload of getUserMedia streams via element fails (r288025)
  • Fixed MediaStream canvas.captureStream() playback (r288435)
  • Fixed portrait video playback on HTML canvas elements (r288053)
  • Fixed no VP9-SVS video stream from remote peer on some devices (r287928)
  • Fixed “Add to Contact” menu item (r287959)
  • Tightened the focus check for getUserMedia (r288087)
  • WebAuthn:
  • Allowed single use of WebAuthn without user gesture for all relying parties (r287957)
  • Accessibility:
  • Exposed toggle buttons using role="button" as form controls (r288100)
  • Improved support for aria-owns in ARIA trees (r288117)
  • Content Security Policy:
  • Improved handling of multiple policies (r288132)
  • Privacy:
  • Fixed an issue where a website may be able to track sensitive user information (r288078)
  • SVG:
  • Fixed calculations of filterRegion and outsets of the referenced SVG filter (r288183)
  • Fixed referenced SVG filter always using sRGB color space for its result (r287982)
  • Scrolling:
  • Fixed sometimes not being able to scroll after using a builtin trackpad (r287997)
  • Web Extensions:
  • Fixed a crash when calling browser.webNavigation.getAllFrames() on an empty tab
  • Fixed Active tab permissions for a tab to get removed if a matching per-site permission changes to "Deny"
  • Fixed service worker background script errors to get reset each time they successfully load

New in Safari 15.4 Technology Preview 139 (Jan 27, 2022)

  • Web Inspector:
  • Elements Tab:
  • Added revert-layer to CSS autocompletion (r287636)
  • Supported CSS conic gradients in gradient editor and auto-completion (r287409)
  • Made gradient editor angle input readable in dark mode (r287408)
  • Sources Tab:
  • Added icon for collapsed blackboxed section (r287586)
  • Fixed expanding a grouping of blackboxed call frames to be persistent (r287590)
  • CSS:
  • Fixed CSS Cascade Layers specified in import rules can not be reordered on media query evaluation (r286972)
  • Fixed revert-layer to revert the style attribute to the regular author style for CSS Cascade Layers (r287018)
  • Fixed absolutely positioned children to be aligned using the margin box inside a flexbox (r287064)
  • Used the correct margins in computeInlinePreferredLogicalWidths in orthogonal flows (r286952)
  • Fixed :focus-visible not matching on accessKey focus after focusing something via mouse (r287563, r287662)
  • Fixed flexbox ignoring margins of absolute positioned children when align-items: flex-end or justify-content: flex-end (r287128)
  • Fixed drop-shadow filter to use the value of the color property when it has no specified color (r287817)
  • Fixed transform property to take into account transform reference box (r287606)
  • Fixed inline blocks that contain text with min-width, box-sizing: border-box to include the border in width calculation (r287779)
  • Fixed text-decoration color not changing back after input blur with outline removed (r287674)
  • Implemented text-combine-upright property (standard version of -webkit-text-combine) (r287487)
  • Made -webkit-text-combine an inherited property (r287451)
  • Unprefixed -webkit-print-color-adjust CSS property (r287712)
  • Removed non-standard -webkit-background-composite property (r287433)
  • Removed non-standard -webkit-margin-*-collapse properties (r287429)
  • :has():
  • Added style invalidation for :disabled, :enabled, :valid, and :invalid (r287445, r287551)
  • Fixed :has() matching wrong elements due to style sharing (r287362)
  • Fixed :has() selector invalidation issue with toggling :checked (r287363)
  • Used a bloom filter to quickly reject :has() selectors (r287091)
  • Web Animations:
  • Added support for the animation shorthand property in the computed style (r287535)
  • Changed reversing factor to be computed before canceling the previous transition (r287548)
  • Changed transitions without an explicit transition-property to not be considered (r287764)
  • Fixed animation shorthand to parse values in the right order (r287509)
  • Fixed animation shorthand to list all longhand values when serializing (r287534)
  • Fixed calling setKeyframes() on a running CSS Transition having no immediate effect (r287549)
  • Fixed changing the effect of a transition to no longer mark it as running (r287550)
  • Fixed getKeyframes() for a CSS Animation to not use computed style for keyframes (r287820)
  • Fixed getKeyframes() to ensure that all properties are present on 0% and 100% keyframes (r287518)
  • Fixed getKeyframes() to return an empty object when there are no animatable properties in @keyframes rule (r287517)
  • Fixed inserting a rule within a @keyframes rule should update animations (r287707)
  • Fixed inserting a new @keyframes rule to start animations that already used this name (r287769)
  • Fixed implicit keyframe for a CSS Animation to always use the underlying style (r287827)
  • Fixed interpolation for the filter property failing with a single keyframe (r287826)
  • Fixed translate() function in the transform property to remove trailing 0 value when parsing (r287822)
  • Rendering:
  • Changed to pre-layout orthogonal children to compute the preferred logical width inside a flexbox (r287263)
  • Fixed paint order of CSS text decorations (r286955)
  • Fixed incorrect percent-based height inside display: table child elements defined when combined with box-sizing: border-box and padding. (r287063)
  • Fixed aspect-ratio size calculation (r287023)
  • SVG:
  • Fixed SVG resource invalidation logic causing incorrect layout state (r287076)
  • WebAuthn:
  • Changed to allow get() for a same-site, cross-origin iframe (r286993, r287116)
  • Fixed authenticator to fallback to clientPIN after internal verification fails and is blocked (r287315)
  • Web API:
  • Added support for using a user-specified preference before using the system's preferred color scheme (r287030)
  • Fixed FormData constructed in the form's submit event listener to not include the submitter (r286988)
  • Fixed TextDecoder to detect invalid UTF-8 sequences early enough (r287024)
  • JavaScript:
  • Aligned Array.prototype.toLocaleString to ECMA402 definition (r287560)
  • Fixed Intl.PluralRules.selectRange input validation (r287546)
  • Fixed length of Intl.NumberFormat.formatRange and Intl.PluralRules.selectRange (r287543)
  • Content Security Policy:
  • Changed to always use UTF-8 encoded content when checking hashes (r287270)
  • Implemented CSP strict-dynamic for module scripts (r287756)
  • Media:
  • Added MediaRecorder support for the bitsPerSecond option (r287613)
  • Changed to prevent packing audio samples with discontinuity together (r287249)
  • Service Workers:
  • Added full support for Service Worker interception of fetch requests with FormData body (r287612)
  • Fixed FetchRequest.clone to not need to be called with the current context (r287532)
  • Web Extensions:
  • Added support for the redirect rule type in declarativeNetRequest, which requires host permissions to be granted for the host of the URL being redirected
  • Added support for declarativeNetRequest.getMatchedRules, which requires host permissions to be granted to view the URLs of blocked resources

New in Safari 15.4 Technology Preview 138 (Jan 21, 2022)

  • Web Inspector:
  • Elements Tab:
  • Added support for Cascade Layers in the Styles sidebar (r286558)
  • Added a swatch for align-items and align-self (r286875)
  • Added a swatch for justify-content, justify-items, and justify-self (r286885)
  • Added CSS variable names to property name completion list (r286890)
  • Added an option to group CSS variables by value type in the Computed sidebar (r286876)
  • Enabled fuzzy matching for CSS completions in the Styles sidebar (r286792, r286611)
  • CSS:
  • Enabled :focus-visible pseudo-class by default (r286783, r286776, r286775)
  • Enabled the resolution media query by default (r286874)
  • Enabled the CSS Contain property by default (r286828)
  • Changed to account for captions when flexing tables with specified sizes (r286593)
  • Fixed perspective() less than or equal to 1px to be clamped to 1px (r286591)
  • Fixed gap to work correctly when flex-direction: column-reverse is applied (r286654)
  • Fixed the serialization of CSSImportRule (r286668)
  • Unprefixed -webkit-mask (r286795)
  • Unprefixed CSS value text-align: -webkit-match-parent (r286803)
  • Updated color-mix() to support srgb-linear and alpha premultiplication (r286568)
  • Experimental Model Element:
  • Added load and error events to distinguish resource load from model readiness (r286836)
  • Media:
  • Fixed various issues with complicated rendering of VTT cues (r286743)
  • Web Animations:
  • Added a way to run scripted animations via CustomEffect (r286555)
  • Exposed a frameRate property to Web Animations (r286915)
  • WebAuthn:
  • Improved WebAuthn Level 2 standards compliance by supporting the displayName (r286746)
  • SVG:
  • Fixed transform-origin on SVG elements to take into account the transform reference box origin (r286942)
  • Web API:
  • Changed to group radio buttons with no form owner (r286855)
  • Fixed the range of to be reversible (r286581)
  • Fixed an that's been autofilled with obscured content to still be editable (r286814)
  • Implemented AbortSignal.throwIfAborted (r286904)
  • Improved value parsing and sanitization (r286869)
  • Restored navigator.hardwareConcurrency (r286550)
  • Fixed setting onselectionchange content attribute to add an event listener (r286898)
  • Service Workers:
  • Enabled NavigationPreloadManager by default (r286540)
  • Added support for ServiceWorker downloads (r286944)
  • Fixed "no-cache" network error (r286655)
  • Fixed same-site lax cookies not sent by fetch event handler after page reload (r286656)
  • WebRTC:
  • Closed WebRTC allocation sequence shared socket in case of sequence network failure (r286539)
  • WebAssembly:
  • Added preparation of WebAssembly.Memory imports in Wasm/ESM modules (r286703)
  • Web Extensions:
  • Added support for changed web_accessible_resources declaration with manifest_version 3
  • Fixed runtime.onMessage listeners not supporting Promise returns for the reply message
  • Show error messages for incorrect match patterns in web_accessible_resources
  • Show error message to devtools tabs in Web Inspector when inspecting unsupported targets
  • Show error message when the service worker background script fails to load
  • Bug Fixes:
  • Fixed an issue introduced in Safari Technology Preview 137 where pop-up windows wouldn’t open

New in Safari 15.4 Technology Preview 137 (Dec 21, 2021)

  • Web Inspector:
  • Elements Tab:
  • Enhanced autocomplete to support mid-line completions (r285851)
  • Styles:
  • Added a inline swatch for CSS align-content (r285983)
  • Layers Tab:
  • Fixed the position of composited layers with a box-shadow (r285839)
  • Console Prompt:
  • Fixed console script evaluation not working or being performed in an unexpected execution context after refresh or navigation (r286412)
  • Web Inspector Interface:
  • Enabled left docking when in left-to-right and right docking when in right-to-left mode (r285974)
  • CSS:
  • Enabled support for :has() pseudo-class by default (r286495, r286135, r286302, r286180, r286226, r286494, r286433, r286188, r286169, r286365)
  • Added support for new srgb-linear, xyz-d50 and xyz-d65 colorspaces (r286168)
  • Added support for oklab() and oklch() colors (r286191)
  • Added support for replaced elements with intrinsic ratio and no intrinsic size (r286206)
  • Added support for *vi (inline) and *vb (block) viewport units (r286458)
  • Added helper to add CSS property with implicit default (r285837)
  • Changed to not shrink tables bellow their intrinsic sizes (r286207)
  • Changed SVG images used as grid items to use the overriding logical width and height when defined to compute the logical dimensions (r286100)
  • Changed dynamic dv* viewport units to ignore the page scale (r286350)
  • Fixed :hover with descendant selector invalidating correctly in shadow trees (r286063)
  • Fixed rem in media queries to be calculated using font-size: initial, not root element font-size (r286123)
  • Fixed sticky th or td in table to stop at the specified top (r286417)
  • Implemented parsing and animation support for ray() shape accepted by offset-path (r286086)
  • Transferred size for grid item with an aspect-ratio and stretch alignment against the definite row (r285987)
  • Updated color-mix() to the latest spec (r286196)
  • JavaScript:
  • Added Intl.NumberFormat.formatRangeToParts for ICU 69~ platforms (r286255)
  • Implemented Date.prototype.toTemporalInstant() (r286149)
  • Revised JSON.parse atomize policy for performance and compatibility with the other engines (r285955)
  • Accelerated public class field initialization (r286251)
  • WebAssembly:
  • Fixed WebAssembly memory.fill out of bounds error message (r286092)
  • Experimental Model Element:
  • Added support for mouse-based manipulation of on macOS (r285986)
  • Added audio support (r286065)
  • Added support for controlling looping animations (r286066)
  • Added support for getting and setting the camera (r286019)
  • Added support for pausing and resuming animations (r286048)
  • Added support for seeking animations (r286068)
  • Accessibility:
  • Added accessibility attributes for (r286406)
  • Web API:
  • Added initial implementation for the Web Lock API (r286284)
  • Fixed Cross-Origin-Embedder-Policy: require-corp to not prevent loading of data-URL images (r285823)
  • Fixed empty controls not showing up in the urlencoded and text/plain enctypes (r285808)
  • Fixed empty represented incorrectly in FormData (r285861)
  • Fixed modal dialogs to make the root element unfocusable (r285791)
  • Fixed validity.valueMissing to not rely on the element's disabled state for inputs of type radio, file, or checkbox (r286413)
  • Fixed file inputs in non-multipart form submissions showing up as string values in the formdata event (r286427)
  • Implemented FileSystemFileHandle.getFile() (r285912)
  • Content Security Policy:
  • Fixed missing lineNumber and columnNumber in inline violation reports (r285800)
  • Implemented submitting samples in violation reports (r286150)
  • Fixed CSP DOM reporting which always used the document as the target (r286136)
  • Media:
  • Added support for more requestVideoFrameCallback metadata (r285984)
  • Fixed audio rate issues in WebRTC audio rendering when switching audio output (r285985)
  • Fixed video encoding and decoding for h.264 (r285928)
  • Apple Pay:
  • Changed PaymentRequest to validate payment method data on construction (r286452)
  • This can (and should) now be used instead of ApplePaySession.supportsVersion.
  • Web Extensions:
  • Added support for special matching characters (*, |, ||, and ^) in urlFilter of declarativeNetRequest rules instead of treating them as regex patterns
  • Added permission prompting inside Web Inspector for devtools extension tabs
  • Added support for CSS injections and removals of more than one file with browser.scripting

New in Safari 15.4 Technology Preview 136 (Dec 9, 2021)

  • CSS:
  • Added support for contain: paint (r285583)
  • Added support for the revert-layer value (r285624)
  • Added flex-basis: content support (r285709)
  • Fixed ::slotted element style to invalidate correctly in nested case (r285211)
  • Fixed ::slotted to not match an active (r285209)
  • Fixed :host::part(foo) selector to select elements inside shadow roots (r285262)
  • Fixed a mask or isolation to set transform-style to flat (r285482)
  • Fixed border-radius inline style to serialize with valid syntax (r285235)
  • Fixed font-synthesis inline and computed style to be in canonical order (r285383, r285384)
  • Fixed rendering bug with height: min-content, position: absolute, and box-sizing: border-box (r285495)
  • Fixed the default computed value for content to be none for ::before and ::after (r285621)
  • Implemented parsing and animation support for offset-path (r285343)
  • Implemented Scroll To Text Fragment directive parsing (r285528)
  • Implemented transform: perspective(none) (r285255)
  • Removed non-standard -webkit-border-fit CSS property (r285615)
  • Updated the content-size grid width before laying out a grid item with block constraints and aspect-ratio (r285497)
  • GPU Process:
  • Fixed enabling "media source inline painting" by default to work when using GPU Process for media (r285410)
  • JavaScript:
  • Implemented IntlNumberFormat v3 (formatRangeToParts is not implemented yet) (r285418)
  • Implemented Temporal.Instant (r285178)
  • Web API:
  • Implemented custom element definition's disable shadow flag (r285740)
  • Fixed the cssText property for a computed style to return an empty string (r285604)
  • Media:
  • Fixed showing languages and subtitles tracks button and menu for (r285216)
  • Web Animations:
  • Added support for composite operations for software animations (r285397)
  • Fixed accelerated animations with a single keyframe not accounting for prior forward-filling animations (r285728)
  • Fixed discrete animation of content property not working (r285423)
  • Improved additivity support when animating the transform property (r285631)
  • WebAuthn:
  • Implemented add_virtual_authenticator and remove_virtual_authenticator for WebDriver (r285267)
  • Private Click Measurement:
  • Fixed occasionally dropped attribution reports for Private Click Measurement (r285170)
  • Web Extensions:
  • Added support for manifest_version 3 and service_worker background scripts, while also supporting the option of using non-persistent background pages
  • Added support for script and style injection via the browser.scripting APIs
  • Added support for dynamic and session rules via the browser.declarativeNetRequest APIs
  • Fixed an issue with new tab pages not being remembered when switching from Favorites
  • Fixed an issue with long extension descriptions causing the title to be cut-off in Preferences
  • Enforces limits on the size and number of items in extension sync storage
  • Other Bugs:
  • Fixed opening local HTML files when the Develop menu was enabled (r285130)
  • Stopped using a timer to dispatch the source element's error event asynchronously (r285413)

New in Safari 15.4 Technology Preview 135 (Nov 17, 2021)

  • Web Inspector and Web Driver:
  • Fixed "testForLinkLabels" Accessibility audit to ignore anchors if aria-hidden (r284986)
  • Added support for the acceptInsecureCerts capability (r285164)
  • CSS:
  • Media queries affect Cascade Layer order (r284859)
  • Enabled accent-color by default (r284634)
  • Added support for small svw/svh/svmin/svmax, large lvw/lvh/lvmin/lvmax, and dynamic dvw/dvh/dvmin/dvmax viewport units (r284628)
  • Added flex-basis: content support (r284440)
  • Added support for contain: style for counters (r284642, r284755)
  • Added support for ::before and ::after pseudo elements after ::slotted (r284973)
  • Added support for more CSS properties for ::marker (r284519)
  • Allowed :is and :where after all pseudo elements (r285054)
  • Made :-webkit-any() a synonym of :is() (r285032)
  • Fixed ::part(foo):hover (r284865)
  • Serialized :part() argument as identifier (r284863)
  • Fixed :host invalidation when combined with pseudo classes in descendant position (r285100)
  • Prevented clamping flex base size with min-height, max-height, min-width, and max-width (r284397)
  • Fixed sizing of orthogonal elements with percentage margins (r284773)
  • Fixed -webkit-background-clip: text to paint correctly for inline box spanning multiple lines (r284380)
  • Fixed box-shadow and text-shadow to yield float values while interpolating (r284437)
  • Fixed CSS serialization affecting grid-auto-flow (r284876)
  • Fixed percentages on orthogonal replaced children (r284548)
  • Fixed the border-radius value from .style to be readable when it includes a var() (r285015)
  • Fixed opacity to flatten when combined with transform-style: preserve-3d (r285021)
  • Web API:
  • Enabled lazy image loading by default (r284995)
  • Added support for rel="noopener/noreferrer" on elements (r284749)
  • Exposed MediaCapabilities to Workers (r284443)
  • Fixed anchor.relList.supports("opener") to return true (r284745)
  • Fixed changing the src attribute of the element inside an ImageDocument to trigger a load (r284901)
  • Fixed document.open() and friends to use the correct document as a source for reset document's URL (r284758)
  • Fixed form navigations with target="_blank" to not have an opener (r284821)
  • Fixed form submission to be cancelled if the form gets detached from inside the formdata event handler (r284660)
  • Fixed JavaScript URL result to be treated as UTF-8 bytes (r284934)
  • Fixed Origin of opaque blob: URLs to be null instead of an empty string (r284478)
  • Fixed selection extend() with no ranges to trigger an exception (r285084)
  • Fixed the intrinsic size of a picture image inside a template (r284667)
  • Updated appearance of indicator (r284626)
  • Scrolling:
  • Fixed misplaced position: fixed content with async-scrollable iframes when switching tabs (r284738)
  • Rendering:
  • Ensured CanvasRenderingContext2D.drawImage(video) uses the right color space (r284439)
  • WebAuthn:
  • Changed to obtain consent to create a new credential when the platform authenticator is in excludedCredentials. This improves compliance with the WebAuthn spec (Step 3.1 of makeCredential). (r284413)
  • Media:
  • Added support for requestVideoFrameCallback API for MediaStreamTrack-based backends (r284528)
  • Fixed video appearing blank with only audio playing if video element isn't appended to the DOM tree (r284741)
  • Updated WebM with invalid size to fail to load with error (r284434)
  • WebRTC:
  • Decreased WebRTC latency by pulling data more often (r284860)
  • Changed to fallback to SW decoder in case of VP9-SVC (r284523)
  • Changed to always set the color space for incoming H.264/265 streams (r284433)
  • Ensured synchronized rendering of incoming audio tracks (r285027)
  • Fixed latent audio over peer connections when changing the output (r284674)
  • WebGL:
  • Fixed an issue where high-performance WebGL wasn't getting the correct GPU (r284669)
  • App Extensions:
  • Fixed an issue where App Extension toolbar items would not remember their position or stay removed from the toolbar
  • Web Extensions:
  • Fixed an issue where browser.storage.sync entries were saved into the browser.storage.local storage area. If unable to locate sync storage entries, check in the local storage area and do a one-time migration to the sync storage area

New in Safari 15.4 Technology Preview 134 (Oct 28, 2021)

  • Note: Tab Groups do not sync in this release.
  • Web Inspector:
  • Graphics Tab:
  • Added showing color space for canvases in the Graphics tab on the overview cards (r283572)
  • Styles Tab:
  • Changed to format style declarations after editing (r283723)
  • Other:
  • Added context menu support for the tab content view (r283859, r283921)
  • CSS:
  • Unprefixed -webkit-appearance and added support for the auto value (r283858, r284098)
  • Added support for the x resolution unit outside of image-set (r282396)
  • Added support for text-decoration-skip-ink (r282397)
  • Changed to consider overflow-wrap: anywhere when calculating min-content intrinsic sizes (r283493)
  • Fixed computed style for transform-origin on SVG boxes (r282379)
  • Fixed overflow to be computed with the actual logical bottom in CSS Grid (r282463)
  • Fixed RTL for an out of flow child in CSS Grid (r282340)
  • Fixed SVG linear gradients getting drawn incorrectly sometimes (r282443)
  • Fixed radial-gradient to accept calc() values that combine length and percent (r283561)
  • Implemented exp, and log functions in calc functions (r282795)
  • Implemented allowing NaN, infinity, and -infinity in calc (r283434)
  • Implemented atan, acos, asin, atan2 in calc functions (r283013)
  • Updated CSS Cascade Layers with recent spec change: unlayered styles are highest priority (r284182)
  • Updated transform-origin to not accept four lengths (r282359)
  • CSS Font Loading API:
  • Updated the implementation of the CSS Font Loading API to be closer to the spec and other browsers:
  • Fixed CSSFontFaceSrcValue.cssText to be quoted consistently with other browsers (r282442)
  • Scrolling:
  • Enabled support for ScrollOptions' ScrollBehavior and CSS scroll-behavior properties (r284029)
  • Moved smooth scroll animations to run on the scrolling thread (r283871)
  • Fixed scrollIntoView to not take into account sticky positioning offsets (r283546)
  • Fixed properly redrawing a sticky element inside another sticky element on scroll (r284084)
  • Rendering:
  • Enabled 2D canvas color space support on Apple platforms (r283541)
  • Updated converting an SVG image for canvas drawImage to choose an appropriate color space (r283531)
  • Dialog Element:
  • The element is now enabled by default (r284155), also including:
  • support for the CSS ::backdrop pseudo element
  • support for the top layer
  • support
  • The inert attribute is available for testing behind an experimental flag with the same name
  • WebAssembly:
  • Allowed WASM to use up to 4GB (r284330)
  • Implemented the WebAssembly exception handling proposal (r283852)
  • JavaScript:
  • Enabled unlinked Baseline JIT for performance (r283139)
  • Fixed Intl.DateTimeFormat#resolvedOptions not to return detailed information of formatting if dateStyle or timeStyle is set (r283460)
  • Fixed Intl.supportedValuesOf to populate emoji and eor for collation (r282897)
  • Fixed syntactic production for #x in expr (r282968)
  • Optimized JSON.parse object creation (r282468)
  • Optimized put-by-val with for-in (r283098)
  • Optimized JSON.stringify property enumeration (r282707)
  • Refined RegExp#compile based on regexp-legacy-features proposal (r283874)
  • Web API:
  • Enabled BroadcastChannel (r282426)
  • Implemented top-origin and frame-origin partitioning for BroadcastChannel (r282366)
  • Enabled Storage API by default (r284273)
  • Enabled FileSystemAccess and AccessHandle by default (r284131)
  • Implemented FileSystemSyncAccessHandle read() and write() (r284059)
  • Implemented the borderBoxSize and contentBoxSize parts of ResizeObserver (r282441)
  • Implemented CSP script-src-elem, style-src-elem, script-src-attr and style-src-attr directives (r284254)
  • Cached Web Audio PannerNode's azimuth, elevation, and coneGain for performance (r283740)
  • Changed to be draggable, similar to (r283563)
  • Updated the autofocus attribute behavior to match the latest specification (r283935)
  • Updated to preserve color space when creating ImageBuffers for ImageBitmaps (r282696)
  • WebGL:
  • Fixed image-rendering: crisp-edges for WebGL canvases (r282335)
  • Media:
  • Fixed the progress bar moving when playback stops (r282374)
  • Fixed createImageBitmap using a HLS video as source always returning a black image (r283585)
  • WebRTC:
  • Added support for WebRTC media capabilities (r284085, r284236)
  • Changed MediaCapabilities to enqueue a task to resolve promises (r284236)
  • Accessibility:
  • Exposed the URL attribute of elements (r283799)
  • Made PDFs loaded via accessible (r282358)
  • Updated role="math" elements to no longer be considered to have presentational children (r284246)
  • Private Click Measurement:
  • Allowed measurement of links in nested, cross-site iframes (r283593)
  • Web Extensions:
  • Allowed more directives to be included in the content_security_policy of an extension’s manifest, such as the sandbox directive

New in Safari 14.2 Technology Preview 133 (Oct 1, 2021)

  • Note: Tab Groups do not sync in this release.
  • CSS:
  • Added support for the x resolution unit (r282396)
  • 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)
  • Added support for text-decoration-skip-ink (r282397)
  • Added support for input-security (r282750)
  • Changed URLs in CSS variables to be resolved against the base URL of the stylesheet, not the document (r282403)
  • Fixed incorrect stacking order with an absolutely positioned and negative z-index 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 computed style for transform-origin on SVG boxes (r282379)
  • 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 overflow to be computed with the actual logical bottom in CSS Grid (r282463)
  • Fixed RTL for an out of flow child in CSS Grid (r282340)
  • Fixed an interoperability issue in margin collapsing with overflow: hidden elements (r282085)
  • Fixed linear gradient getting drawn incorrectly sometimes (r282443)
  • Updated transform-origin to not accept four lengths (r282359)
  • CSS Cascade Layers:
  • Added initial support for CSS Cascade Layers available in the Experimental Features menu:
  • 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 CSSFontFaceSrcValue.cssText to be quoted consistently with other browsers (r282442)
  • 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)
  • Accessibility:
  • Fixed blank braille display in contenteditable elements when the field is followed by another element (r281920)
  • Made PDFs loaded via accessible (r282358)
  • JavaScript:
  • 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)
  • Optimized JSON.stringify for objects (r282707)
  • Optimized JSON.parse object creation (r282468)
  • Web API:
  • 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 BroadcastChannel (r282426)
  • 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, r282366)
  • Implemented the borderBoxSize and contentBoxSize parts of ResizeObserver (r282441)
  • 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)
  • Updated to preserve color space when creating ImageBuffers for ImageBitmaps (r282696)
  • WebRTC:
  • 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)
  • Media:
  • Fixed the progress bar moving when playback stops (r282374)
  • 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)
  • WebGL:
  • Fixed image-rendering: crisp-edges for WebGL canvases (r282335)
  • 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

New in Safari 14.2 Technology Preview 132 (Sep 17, 2021)

  • Note: Tab Groups do not sync in this release.
  • Web Inspector:
  • Elements Tab:
  • Fixed CSS Changes sidebar to update live (r281441)
  • Fixed showing style rules declared after a rule whose selector has over 8192 components (r281354)
  • Changed to not show contextual documentation popup in the Changes panel (r281139)
  • Miscellaneous:
  • Adjusted tab bar style to be consistent between docked and undocked layouts (r281182)
  • CSS:
  • Fixed CSS keyframe animations to respect edges in four-value background-position (r281683)
  • Fixed sticky position to not use transformed position to compute the offset (r281446)
  • Improved sticky positioning when applied to inline items(r281185)
  • Prevented snapping to offscreen snap areas in unidirectional scrolls (r281189)
  • Unprefixed -webkit-backface-visibility (r281009)
  • JavaScript:
  • Added Intl Enumeration APIs (r281513)
  • Enabled Array#findLast method (r281369)
  • Enabled String#at and TypedArray#at (r281370)
  • Extended Intl TimeZoneName Option (r281371)
  • Fixed Intl.DateTimeFormat incorrectly parsing patterns with 'h' literal (r281688)
  • Implemented Temporal.Calendar behind the flag (--useTemporal) (r281788)
  • Implemented Intl Locale Info extension (r281374)
  • Implemented Intl.DisplayNames V2 (r281375)
  • Made polymorphic-keyed put-by-value faster (r281615)
  • Web API:
  • Added Cross-Origin-Embedder-Policy support for Blob URLs (r281055)
  • Added onsecuritypolicyviolation on GlobalEventHandlers (r281569)
  • Enabled PerformanceNavigationTiming API by default (r281111)
  • Fixed including outer selector when matching ::slotted() (r281692)
  • Fixed document.hasFocus() returning true for unfocused pages (r281228)
  • Fixed Geolocation API to callback with an error if the document is not fully active (r281520)
  • Fixed setting window.location.href to an invalid URL to throw a TypeError (r281472)
  • Fixed SubmitEvent.submitter property to be set for (r281770)
  • Fixed Web Share CanShare() to be called after transient activation check (r281126)
  • Implemented Crypto.randomUUID() (r281206, r281284)
  • Implemented self.reportError() (r281756)
  • WebRTC:
  • Added support for RTCDtlsTransport (r281225)
  • Added support for RTCPeerConnection.canTrickleIceCandidates (r281298)
  • Rendering:
  • Fixed caret to respect text background color (r281685)
  • Fixed incorrect repaint when inline level box style change triggers line height change (r281136)
  • Changed synthetic bold additional advances to be applied after shaping (r281687)
  • Media:
  • Fixed nexttrack and previoustrack MediaSession handlers (r281013)
  • Web Extensions:
  • Added support for externally_connectable for sending messages to extensions from web pages
  • Added a drop shadow around color extension icons when the tab is using a theme color from the web page
  • Added an error message when declarative net request is used and the declarativeNetRequest permission is not specified in the extension manifest

New in Safari 14.2 Technology Preview 131 (Sep 2, 2021)

  • Note: Tab Groups do not sync in this release.
  • Web Inspector:
  • Elements:
  • Added CSS keyword completions for standard logical properties (r280588)
  • Console:
  • Fixed missing execution context dropdown for contexts added after page load (r280989)
  • Network:
  • Fixed sorting the Transfer Size column for failed requests changing the ordering of requests continually (r280566)
  • CSS:
  • Changed to consider all snap areas at a given snap offset when snapping (r280527)
  • Fixed aspect ratio for replaced elements (r280471)
  • Implemented the clip value for overflow (r280509)
  • Web API:
  • Added initial support for Cross-Origin-Embedder-Policy (COEP) (r280953)
  • Added initial support for Cross-Origin-Opener-Policy (COOP) (r280504, r280881, r280582)
  • Fixed Blob URLs changing after loading (r280824)
  • Fixed clicking an HTMLLinkElement to not trigger a navigation (r280479)
  • Fixed inaccurate Document.baseURI for iframe srcdoc documents (r280855)
  • Fixed the document's fallback base URL to be deduced from its creator when the URL is “about:blank” (r280491)
  • Fixed to create a window without opener (r280933)
  • Fixed meta HTTP refresh to not navigate if the document has sandboxed automatic features browsing context flag set (r280870)
  • HTMLElement.innerText setter should convert new lines to (r280482, r280541)
  • HTMLMetaElement http-equiv should not be processed in shadow trees (r280913)
  • HTMLStyleElement should create its style sheet even if its media attribute is invalid (r280910)
  • Implemented support for element cancel event (r280703)
  • Stopped changing invalid baseURLs from loadData or loadHTMLString to “about:blank” (r280562)
  • Stopped evaluating elements moved between Documents during fetching (r280924)
  • JavaScript:
  • Renamed Temporal.now to Temporal.Now (r280506)
  • Fixed super-Latin1 white space and line terminator after regular expression literal getting misinterpreted as flags (r280825)
  • Improved RegExp performance by introducing Boyer-Moore search (r280452)
  • Made legacy RegExp constructor properties (e.g. RegExp.$1) accessors (r280460)
  • Platform Features:
  • Fixed the start drag on image when the first piece of text inside the image is selected with Live Text (r280872)
  • Fixed the translate popover becoming detached from webpage after scrolling (r280690)
  • Media:
  • Fixed enter fullscreen animation interfering with auto-hiding menu bar (r280976)
  • Fixed media element to autoplay when going from background to foreground if it is initially not in viewport (r280920)
  • Web Audio:
  • Added WebM container support for Vorbis and Opus (r280573, r280416)
  • Fixed audio buffer that may contain more frames than decoded (r280948)
  • WebRTC:
  • Enabled WebRTC relay by default (r280908)
  • Enabled WebRTCPlatformUDPSocketsEnabled feature by default (r280545)
  • Introduced an experimental feature to toggle WebRTC socket proxying (r280523)
  • Payment Request:
  • Fixed issue where additionalShippingMethods was not used when paymentMethodType was provided (r280459)
  • WebCrypto:
  • Added console logging to encourage the use of authenticated encryption (r280790)
  • Accessibility:
  • Added support for aria-selected value changes in table cells (r280633)
  • Rendering:
  • Fixed dynamically changing HTMLStyleElement.type to change the rendering accordingly (r280909)

New in Safari 14.2 Technology Preview 130 (Aug 19, 2021)

  • Web Inspector:
  • Elements:
  • Fixed selecting a sibling node using navigation breadcrumbs (r280037)
  • CSS:
  • Changed to use the correct block-size to resolve min-content (r280023)
  • Changed to pass the full target point when selecting a snap offset (r280171)
  • Changed images as grid items to use the overridingLogicalWidth when defined to compute the logical height (r280024, r280078)
  • Ignored the aspect-ratio of a replaced element if stretch alignments are applied to both axes (r280022)
  • JavaScript:
  • Implemented Array.prototype.findLast and Array.prototype.findLastIndex behind a runtime flag (--useArrayFindLastMethod) (r279937)
  • Media:
  • Added support for MediaError.message (r279978)
  • Added webm/opus container support for Web Audio (r280416)
  • Fixed hanging when entering PiP from element fullscreen (r280358)
  • Fixed SourceBuffer.abort() doesn't go back to state WAITING_FOR_SEGMENT properly (r279904)
  • Fixed video pausing after scrubbing with the Touch Bar (r280330)
  • Web API:
  • Fixed document.referrer value missing a trailing slash (r280342)
  • Fixed FetchResponse.formData() to not reject the promise if the body is null and the MIME type is "application/x-www-form-urlencoded" (r280046, r279969)
  • Fixed getBoundingClientRect() to return the correct rectangle on elements inside a multi-column container (r280017)
  • Fixed HTMLImageElement.decoding to reflect the decoding content attribute, limited to only known values (r280047)
  • Fixed Sync XHR “load” event always having total/loaded=0 (r279967)
  • Implemented SubmitEvent interface (r279979)
  • IndexedDB:
  • Fixed IDBFactory.databases to return correct results (r280410)
  • Implemented IDBTransaction.commit() (r280053)
  • Implemented IDBTransaction.durability (r280415)

New in Safari 14.2 Technology Preview 129 (Aug 5, 2021)

  • Web Inspector:
  • Added contextual documentation for CSS properties (r279510)
  • Changed the sidebar panel and navigation bar to layout asynchronously during resize (r279790)
  • Elements Tab
  • Fixed Details sidebar navigation items wrapping to a second line (r279613)
  • Added support for function value completions in the Styles sidebar (r279422)
  • Autocomplete var() and attr() values in the Styles sidebar (r279502)
  • Sources Tab
  • Fixed the Scope Chain sidebar panel to not strip repeating whitespace from strings (r279294)
  • CSS:
  • Changed to not clamp flex base size with min-height, max-height, min-width, and max-width (r279271)
  • Changed :link and :visited pseudo-class selectors to not match elements (r279818)
  • Changed to match the CSS specification which prohibits numbers with a trailing decimal point (e.g. "1.px") (r279429)
  • Fixed the CSS parser "consume declaration" algorithm to handle whitespace correctly (r279358)
  • Fixed CSS style sheets loaded by HTMLLinkElement to fall back correctly when the charset is an invalid encoding name (r279383)
  • Improved computation of intrinsic sizes of flex items with aspect ratio (r279286)
  • Included container's writing mode to get grid item's margin (r279278)
  • Unprefixed :autofill pseudo-class (r279457)
  • Scrolling:
  • Changed scroll-snap-align to use the box's writing-mode when the box is larger than the snap-port (r279714)
  • Fixed CSS scroll snap to allow scrolling to the middle of snap areas that overflow the snap-port (r279364)
  • Fixed layouts during scroll causing jittery scrolling when dragging the scrollbar (r279564)
  • Rendering:
  • Added support for rendering resources (r279451)
  • Fixed the scrollbar being hidden when the scroller has a negative z-index child (r279748)
  • WebAssembly:
  • Added support for (ref null? $t) type constructor (r279265)
  • Web API:
  • Fixed ReadableStream.getReader to throw a proper exception when the parameter is of the wrong type (r279472)
  • Fixed 'data:application/javascript' URLs for Worker (r279602)
  • Fixed WebGL toDataURL image being upside down if premultipliedAlpha=false (r279424)
  • Platform Features:
  • Fixed extraneous spaces when copying or translating Chinese and Japanese in Live Text (r279609)
  • Fixed misaligned Live Text selection on some images (r279751)
  • IndexedDB:
  • Fixed transaction to be inactive during structured clone (r279686)
  • Fixed IDBIndex.keyPath to keep returning the same object (r279669, r279683)
  • Media:
  • Fixed WebM loads hanging if the server sends only small amount of data (r279375)
  • Fixed SourceBuffer.abort() to go back to state WAITING_FOR_SEGMENT properly (r279542)
  • WebGL:
  • Fixed WebGL content to be able to use the discrete GPU (r279303)
  • WebCrypto:
  • Added support for Elliptic Curve P-521 (r279688)
  • Fixed deriveBits() failing if the length is not a multiple of 8 for ECDH algorithm (r279723)
  • Fixed SubtleCrypto to only be exposed to secure contexts (r279642)

New in Safari 14.2 Technology Preview 128 (Jul 22, 2021)

  • Web Inspector:
  • Elements Tab:
  • Unused inherited CSS variables are now hidden by default in the Styles panel (r278607)
  • CSS variable names are no longer converted to all lowercase in the Computed panel (r278848)
  • CSS:
  • Added support for 12 CSS list-style-type values along with other list style fixes (r279165)
  • Fixed CSSOM "set a CSS declaration" for logical properties (r279044)
  • Fixed new snap containers always snapping to the first scroll position (r278862)
  • Fixed Scroll snap offsets interpreted as scroll positions in a scrollable area (r278868)
  • Fixed flex items staying invisible after initial layout (r278659)
  • Fixed text-decoration: underline not applied to web component (r278602)
  • Stopped computing the min or max sizes of flex items twice (r278865)
  • JavaScript:
  • Ignored Intl.NumberFormat feature options when linked-ICU is old (r278697)
  • Optimized JSON.parse with small data by changing Identifier pool mechanism (r278971)
  • Optimized valueOf call via ToPrimitive (r279053)
  • Fixed that Window should behave like a legacy platform object without indexed setter (r278585)
  • Live Text:
  • Added a mechanism to regenerate text in an image element when it changes dimensions (r278747)
  • Changed mouse events to trigger text recognition only if the cursor is moving (r279059)
  • Text selection inside image elements should not be cleared upon resize (r278775)
  • Media:
  • Reworked handling buffer full in SourceBuffer (r278603)
  • Performance API:
  • Implemented performance.timeOrigin (r278665)
  • Web API:
  • Adjusted fetch port blocking for ports 990, 989 (r279099)
  • Fixed Document’s execCommand() and queryCommand() to throw an exception on non-HTML or non-XHTML documents ** (r278974)
  • Fixed EventSource.constructor to not throw an exception when the URL parameter is an empty string (r278763)
  • Implemented width and height attributes on source elements of (r279108)
  • Improved specification compatibility for the outerHTML setter (r278821)

New in Safari 14.2 Technology Preview 127 (Jul 2, 2021)

  • CSS:
  • Added discrete animation support for grid-template-columns and grid-template-rows (r278173)
  • Added support for calc() on components inside relative color syntax colors (r278261, r278304)
  • Added support for "relative color syntax" for color() (r278364)
  • Added additional target luminance keywords for color-contrast() (r278262)
  • Fixed the height of an empty table inside an orthogonal flex parent (r277777)
  • Fixed will-change: position to only create a containing block for position: absolute elements (r277579)
  • Made will-change: transform-style create a containing block (r277566)
  • Fixed percent calculations for padding-top and padding-bottom when the parent has padding (r278194)
  • Scrolling:
  • Fixed scroll snapping in non-horizontal writing modes (r278350)
  • Fixed layout issue handling changes to scroll-snap properties (r278193)
  • Improved scrolling performance when background-attachment: fixed is used inside a position: fixed layer (r278419)
  • Improved how the current document scroll position is maintained on full page zoom (r277775)
  • JavaScript:
  • Added support for Ergonomic Brand Checks proposal (e.g. #x in object) behind the--usePrivateIn flag (r277926)
  • Fixed private static method in class-scope (r278510)
  • Optimized Function.prototype.toString (r278462)
  • Optimized in with non-identifier via non ad-hoc IC (r278445)
  • Media:
  • Added MediaSession.callActionHandler (r278222)
  • Fixed MediaSession action handlers to be treated as having a user gesture (r277588)
  • Fixed macOS WebM Format Reader returning enabled for tracks that do not have samples (r278155)
  • Added support for H.264 profiles in MediaRecorder (r278158)
  • WebRTC:
  • Changed to tighter bitrate allocation rules for WebRTC H.264 software encoder (r278272)
  • Web API:
  • Added support for creating, accessing, and setting non-sRGB ImageData via canvas (r277569)
  • Added support for dispatching wheel events with ctrlKey on pinch gestures, which is commonly used for zooming embedded maps (r277772)
  • Fixed the value of a color input to update visually when using setAttribute (r277778)
  • Accessibility:
  • Fixed increased contrast not detected in the browser until an additional setting is applied (r277971)
  • Fixed accessibility caption styles to always reflect the selection (r277874)
  • Rendering:
  • Enabled to be a flex container (r278280)
  • Changed grid track size to reject a unit-less length (r277868)
  • Fixed incorrect selection when a tall float element is present (r278379)
  • Fixed incorrect text selection when crossing a flex item boundary (r278411)

New in Safari 14.2 Technology Preview 126 (Jun 18, 2021)

  • Streamlined tab bar. Use Tab Groups to save and organize your tabs. Experience the new design. Test your site. Experiment with theme-color.
  • Live Text. Select and interact with text in images on the web in macOS Monterey betas on M1 Macs.
  • Improved Safari Web Extensions. Try out the support for declarativeNetRequest, which expanded to 150K content blocking rules and non-persistent background pages for improved performance.
  • Quick Notes. Add links and Safari highlights to remember important information or ideas on the web in macOS Monterey betas.
  • WebGL 2. Try out the improved 3D graphics performance of WebGL running on top of Metal via ANGLE.
  • Web technologies. Experience and test the HTML, CSS, JavaScript, and other web technologies that are available in Safari 15 Beta and included in previous Safari Technology Preview releases.

New in Safari 14.2 Technology Preview 125 (May 27, 2021)

  • Web Inspector:
  • Remote Inspection
  • Fixed an issue that prevented remotely inspecting iOS and iPadOS devices
  • Sources Tab
  • Added support for panning and zooming image resources (r277279)
  • Audit Tab
  • Fixed edits not saving if the text input was still focused when leaving Edit mode (r276616)
  • Fixed default and new test cases showing minified source (r276680, r277212)
  • CSS:
  • Added parsing for @counter-style descriptors (r276488)
  • Added support for CSS display 2-value syntax (e.g. display: inline flex ) (r276293)
  • Added support for inline-{start/end} values to float & clear CSS properties (r276216)
  • Changed to not use margins when computing aspect ratio cross sizes (r277371)
  • Changed invalid media query keyword values to not be parsable (r277039)
  • Fixed treating border and padding correctly for box-sizing: border-box with aspect-ratio (r276745)
  • Fixed flex item construction to not affect sibling flex item height computation (r277222, r277435)
  • Fixed percent children to resolve against the flex basis on a fully inflexible item with fixed flex-basis (r276634)
  • Fixed table layout disregarding the overriding width in CSS Flexbox (r276572)
  • Fixed logical shorthands with var() (r276837)
  • Fixed using a modifier key on an element causing it stop matching :focus-visible (r276698)
  • Fixed CSS custom properties on pseudo-elements background gradients that caused infinite layout and high CPU load (r277112)
  • Fixed position for orthogonally positioned element with writing-mode: vertical-rl (r277391)
  • Improved parsing and computed style of the rotate CSS property (r276554)
  • Shared style resolvers between author shadow trees with identical style (r276882)
  • Web Animations:
  • Added discrete animation support for border-image-repeat (r276465)
  • Fixed interpolation of stroke-dasharray in the discrete case (r276643)
  • Fixed interpolation of page-break- ** properties (r276638). Fixed animation of the visibility CSS property between hidden and collapse (r276639)
  • Fixed interpolation of the clip CSS property (r276552)
  • Fixed interpolation of the rotate CSS property (r276231)
  • Support interpolation of the background-repeat shorthand (r276553)
  • WebAssembly:
  • Added call_ref instruction (r276896)
  • Storage:
  • Improved local storage size estimation for quota limitation (r276689)
  • Web API:
  • Fixed picture element to ignore any img descendant that is not a direct child (r276679)
  • Fixed blob contentType being ignored when it contained a charset (r276986)
  • Implemented .requestSubmit() (r277257)
  • Implemented FontFace in Workers for OffscreenCanvas (r276450)
  • Implemented ShadowRoot.prototype.delegatesFocus attribute (r276585)
  • Avoided error for a fetch body stream when its request or response is stopped (r277028)
  • Changed to not compute image aspect ratios from width and height attributes for lazy loaded images (r276521)
  • Fixed Notification.requestPermission() to return a Promise (r277420)
  • Rendering:
  • Fixed computed style for the translate CSS property to use px for the z value (r276551)
  • Fixed will-change CSS property to create a containing block when the one of the specified properties may create one (r276627)
  • Fixed sizing of CSS backgrounds affected by background-size and EXIF orientation (r276984)
  • WebRTC:
  • Fixed color gamut in WebRTC when using VPx software decoder (r276478)
  • Set audio transceiver nMax to 1 (r276717)

New in Safari 14.2 Technology Preview 124 (May 9, 2021)

  • Web Inspector:
  • Added autocomplete for experimental CSS Color values: hwb, lch, lab, color-mix, color-contrast (r275310)
  • Changed grid overlay track size labels to show implicit auto value and no computed size (r275559)
  • Fixed grid layout labels that were getting drawn outside the viewport (r275128)
  • Fixed CSS Grid overlay track sizes when inline styles are applied to the element (r275293)
  • Fixed a bug with more than two timeline recordings not showing a timescale (r275337)
  • Fixed grid overlay areas appearing offset from their actual areas when the grid container has a border set (r275529)
  • Fixed grid overlay to honor writing modes and RTL layout direction. (r275519)
  • Fixed grid overlay line numbers showing implicit tracks with negative line numbers (r275558)
  • Improved grid overlay label appearance (r275560)
  • Removed the duplicate Box Model section from Layout panel in Elements Tab (r275545)
  • CSS:
  • Accounted for cover and contain when interpolating background-size (r275202)
  • Accounted for hanging and each-line when blending text-interpolation (r275224)
  • Added support for animating the vertical-align CSS property (r275160)
  • Animated pseudo element style resolved against wrong parent style (r275277)
  • Fixed interpolation of the caret-color CSS property (r275092)
  • Computed style for a border-radius corner should never be 0px when the provided width isn't 0px (r275273)
  • Enabled hanging and each-line keywords for the text-indent CSS property (r275199)
  • Fixed align-content issues in Flexbox (r275416)
  • Fixed max-height percentages getting wrongly resolved for replaced grid items in nested percentage flexboxes (r275758)
  • Fixed min and max widths of grid affected by ancestor (r275754)
  • Fixed initial horizontal scrollbar position when vertical scrollbar is on the left (r275811)
  • Fixed max-content on tables with percentage cell widths (r275462)
  • Improved interpolation of the shape-outside CSS property (r275015)
  • Prevented negative heights in CSS Grid (r274933)
  • Supported animation of the tab-size CSS property (r274939)
  • Updated CSS Color 5 color-mix() implementation to match the latest draft spec (r274947)
  • JavaScript:
  • Fixed Intl.Locale to not assume is8Bit (r274784)
  • Fixed Object.freeze(this) at the global scope to not lose a reference to a WatchpointSet (r274882)
  • Fixed RegExp interpreter not to match against non-BMP characters with multiple dots (r274806, r274945)
  • Fixed incorrect Array toString() if join() is not callable (r275544)
  • Web API:
  • Enabled the ability to prevent scrolling in Element.focus() (r274812)
  • Implemented AbortSignal.abort() (r274773)
  • Propagated user gestures through requestAnimationFrame just like setTimeout (r275187)
  • ServiceWorker should save module scripts (r275751)
  • Rendering:
  • Fixed aspect-ratio to recompute on hover (r275377)
  • Implemented text rendering on OffscreenCanvas in a Worker (r275420)
  • Wheel Events:
  • Allowed wheel events to trigger high frequency DisplayLinks (r275440)
  • Web Driver:
  • Fixed SendKeys on returning element not found in some cases (r275050)
  • WebGL
  • Enabled Metal ANGLE backend for WebGL (r274927)
  • WebRTC:
  • Implemented RTCDataChannel transfer (r274758)
  • WebCrypto:
  • Fixed WebCrypto to support AES-GCM 0 byte encryption (r275535)
  • Scrolling:
  • Fixed scrolling momentum with scroll-snap-type: x mandatory when the scroller scrolls vertically (r274853)
  • Fixed scroll-snap-stop: always not respected during momentum scrolling (r274726)
  • Web Extensions:
  • Allow wss:// URL in content_security_policy to allow extension pages to use WebSocket connections

New in Safari 14.2 Technology Preview 123 (Apr 27, 2021)

  • Web Inspector:
  • Make the border color of the grid badge match to the corresponding outline (r273992)
  • Save and restore user-defined CSS Grid overlay colors (r273912)
  • CSS:
  • Changed to consider intrinsic sizes as automatic whenever the block axis of the flex item is the flexible box main size (r273955)
  • Fixed orthogonal items with percentage sizes in Flexbox (r273958)
  • Fixed position: sticky behavior in a table with dir=RTL (r273982)
  • Web API:
  • Removed the Origin header if the navigation request goes from POST to GET (r273905)

New in Safari 14.1 Technology Preview 122 (Mar 12, 2021)

  • Web Inspector:
  • Elements Tab:
  • Added badges for CSS Grid container elements (r273097)
  • Layout details sidebar panel
  • Implemented grid overlay options (r272918, r272948, r273098, r273155, r273164, r273185, r273847)
  • Show a list of CSS Grid container elements in the Layout sidebar panel (r272934, r272976, r273502)
  • Audits Tab:
  • Fixed clicking the "Start" button in the content area placeholder text (r273900)
  • Animations:
  • Changed CSS properties that disallow negative values to not animate to negative values (r273001)
  • Changed blending of border-image-width to be discrete between auto values and other types (r273635)
  • Fixed border-image-outset to handle float values (r273478)
  • Fixed border-image-slice blending to account for the fill keyword (r273625)
  • CSS:
  • Changed min-content and max-content keywords to behave as an initial value in block axis (r273206)
  • Changed CSS grid to not allow negative heights (r273470)
  • Fixed min- and max- widths of grid affected by ancestor (r273435)
  • Changed the initial value for border-image-outset to 0 (r273882)
  • Implemented :focus-visible (r273812, r272983)
  • Implemented the first case in Definite and Indefinite Sizes specifications in section 9.8 for flexbox (r273072)
  • Fixed runtime-disabled CSS features still appearing enabled via CSS.supports() (r273385)
  • Removed support in the CSS parser for -khtml- prefixed CSS values (r273637)
  • Removed support for pos and pixel prefixed CSS values (r273627)
  • CSS Color:
  • Added experimental support for CSS Color 5 color-contrast() (r273683)
  • Added experimental support for CSS Color 5 color-mix() (r273244)
  • Added experimental support for CSS Color 5 Relative Color Syntax (r273127)
  • Changed color(lab ...) to serialize as color(lab ...) not lab() according to latest CSS Color 4 spec (r273211)
  • Fixed lab() and lch() colors to clamp out-of-bound values at parse time (r272909)
  • Fixed lch() colors to serialize as lch() (r273078)
  • CSS Aspect Ratio:
  • Added support for aspect-ratio on flexbox items (r273193)
  • Changed an aspect-ratio that ends with forward slash to be treated as invalid (r273068)
  • Fixed aspect-ratio showing in computed styles when disabled (r273314)
  • Changed to take box-sizing into account in replaced element intrinsic sizing for aspect-ratio (r273753)
  • JavaScript:
  • Enabled private methods (r273125)
  • Implemented private static methods (r273107)
  • Implemented top-level-await (r273225)
  • Implemented RegExp Match Indices (r273086)
  • Implemented GC verifier (r273138)
  • Added support for modules in Workers and Worklets (r273203)
  • Added support for modules in Service Workers (r273224)
  • Avoided performing toObject for options in new Intl constructors to align them to a new spec change (r273153)
  • Reduced promise reaction memory usage when there are multiple reactions (r273718)
  • Optimized object-reset expression (r273135)
  • Optimized Promise#then by avoiding function allocations in major case (r273605)
  • Micro-optimized for-in (r273766)
  • Threw TypeError when getFunctionRealm hits revoked Proxy (r273661)
  • Threw TypeError when TypedArray’s [[DefineOwnProperty]] failed (r273750)
  • Fixed delete with index for module namespace object when arbitrary module identifiers use index (r273816)
  • WebAssembly:
  • Extended wasm type with type index (r273813)
  • Implemented non-trapping float to int conversion (r272933)
  • Web API:
  • Enabled Paint Timing (r273221, r273220)
  • Changed window proxy of detached iframe doesn't respect updates to global values (r273901)
  • Fixed devicemotion and deviceorientation events to work in third-party iframes with Feature-Policy allowing it (r273444)
  • Media:
  • Fixed media segment getting incorrectly dropped when using negative timestampOffset or when source buffer appendWindow is set in MSE (r273461)
  • Fixed audio that stops playing when backgrounding a page that is playing and capturing audio (r273069)
  • WebRTC:
  • Added support for WebRTC priority (r273550)
  • Fixed MediaRecorder.stop() to work correctly when recording has been paused (r272911)
  • Added support for BigInt as media-stream encryption key (r273158)
  • Accessibility:
  • Added the ability for an embedded accessibility image description in an image file to be reported if available (r273214)
  • Fixed VoiceOver announces grid as having "0 columns" causing VoiceOver to not enter the grid (r273715)
  • Fixed VoiceOver incorrectly announcing groups in ARIA tree instances as empty (r273328)
  • Scrolling:
  • Fixed scroll snapping when dragging scrollbars (r273690)

New in Safari 14.1 Technology Preview 121 (Feb 26, 2021)

  • Web Inspector:
  • Sources:
  • Collapsed blackboxed call frames in the Call Stack section (r272371)
  • CSS:
  • Added support for aspect-ratio on grid items (r272307)
  • Added support for logical variants of scroll-padding and scroll-margin (r272035)
  • Added support for color(a98-rgb ...), color(prophoto-rgb ...), color(rec2020 ...), color(xyz ...), hwb() as part of CSS Color 4 (r271992, r272125, r272123, r272311, r272344)
  • Added support for percentages when parsing color(srgb ...) and color(display-p3 ...) per-spec (r271866)
  • Changed sRGB to XYZ conversion matrix values to match values in the latest spec (r272498)
  • Fixed max-height percentages that are wrongly resolved for replaced grid items (r272309)
  • Fixed grid item to fill the grid area for stretch or normal self alignment (r272308)
  • Fixed animation of rotate or scale property to correctly account for static translate property (r272201)
  • Fixed font-stretch to apply to system-ui (r272073)
  • Fixed the nested grid container which has a replaced item with max-height incorrectly getting width(0px) (r272338, r272711)
  • Implemented scroll-snap-stop for scroll snapping (r272610)
  • Handled aspect-ratio: auto m/n for replaced elements (r272360)
  • Handled min-width: auto or min-height: auto for aspect-ratio (r272718)
  • Handled zero aspect-ratio width or height (r271948)
  • Made auto && use content box-sizing (r272569)
  • GPU Process:
  • Enabled audio capture in GPUProcess by default (r272735)
  • Enabled audio capture for speech recognition in GPUProcess (r272434)
  • Enabled GPU WebRTC codecs in GPUProcess by default on macOS (r272496)
  • Enabled video capture in GPUProcess by default on macOS (r272810)
  • Fixed not loading when the URL ends with .php causing some tests to time out (r272750)
  • Fixed implementation of WebGL power preference and discrete/internal GPU selection with ANGLE (r271880)
  • Media:
  • Added intermediate volume icon states between "mute" and "max" (r272375)
  • Changed media controls to show the total duration, only switching to time remaining when clicked (r272373)
  • Changed MediaStream-backed video elements to not compute the mediaType based on track muted states (r272583)
  • Connected MediaSession with MediaRemote and NowPlaying (r272445, r272589)
  • Fixed sound on YouTube after switching back to foreground (r272829)
  • Fixed playback of WebM/Opus generated from Chrome MediaRecorder (r272822)
  • Fixed Picture-in-Picture video pauses when scrolling on Twitter (r271870)
  • Updated media controls time scrubber styles (r272352, r272438)
  • Updated media controls to use new SF Symbols (r272339)
  • Web API:
  • Fixed the return key binding for date inputs conflicting with pressing return to submit a form (r272495
  • Fixed selecting a date on datetime-local inputs unexpectedly adding second and millisecond fields (r272368)
  • Fixed rendering a pattern with an SVG image (r272549)
  • Forbid "|" in URL hosts (r271899)
  • Reduced the overhead of HTMLDocumentParser in innerHTML setter (r272622)
  • JavaScript:
  • Added @ in Error#stack even if function name does not exist (r272139)
  • Added Atomics support for BigInt64Array and BigUint64Array behind a runtime flag (JSC_useSharedArrayBuffer=1) (r272341)
  • Adjusted properties order of host JS functions (r272099)
  • Changed Object.assign to throw for property creation on non-extensible target (r272411)
  • Handled milliseconds in Date’s timezone without floating point rounding (r272127)
  • Implemented BigInt64Array and BigUint64Array (r272170, r272215)
  • Implemented private methods behind flag (JSC_usePrivateMethods=1)(r272580)
  • Made JSON.parse faster by using table for fast string parsing (r272570)
  • WebAssembly:
  • Implemented WebAssembly.instantiateStreaming and WebAssembly.compileStreaming (r271993)
  • Implemented streaming compilation/instantiation for the Blob type (r272221)
  • Updated WebAssembly.Global to support Funcref and Externref (r272071, r272081, r272119)
  • Enabled Wasm bulk-memory and reference-types (r272074)
  • Accessibility:
  • Exposed focusable elements even if the element or ancestor has aria-hidden=true (r272390)
  • Fixed long narrow tables to not be made into data tables unnecessarily (r272024)
  • Speech Recognition:
  • Used the user media permission prompt for Speech Recognition (r272165)

New in Safari 14.1 Technology Preview 120 (Feb 12, 2021)

  • Web Inspector:
  • Elements:
  • RTL content inside elements is reversed and unreadable (r271458)
  • Font details sidebar panel:
  • Improved line wrapping of table row titles (r271528)
  • Updated fractional variation axis ranges and default values to not be rounded (r271620)
  • Changed the “Historical Figures” section name to “Alternate Glyphs” (r271612)
  • Sources:
  • Allowed breakpoint actions to be evaluated as a user gesture (r271373)
  • Console:
  • Fixed bidi confusion when evaluation result has RTL text (r271726)
  • Scrolling:
  • Changed slow-scrolling reasons to not propagate across frame boundaries (r271508)
  • Fixed scroll-chaining to trigger before the complete end of overscroll (r271730)
  • Fixed scroll-padding to affect paging operations (r271788)
  • Fixed scroll-snap points to be triggered during programmatic scroll (r271439)
  • CSS:
  • Added relayout for grid items when definiteness changes (r271745)
  • Fixed incorrect scroll-snap-align parsing (r271480)
  • Handled shapeMargin becoming NaN (r271738)
  • Implemented logical border-radius (r271447)
  • Included aspect-ratio in percentage resolution (r271375)
  • Supported transferred min/max block size for aspect-ratio (r271554, r271648)
  • Optimized :hover and :active style invalidation for deep trees and descendant selectors (r271584)
  • Updated font when resolving letter-spacing: calc(...) values (r271688)
  • Reversed transform animation not applied alongside other transform animations (r271524)
  • JavaScript:
  • Fixed super accesses on arrow functions defined as a class field (r271420)
  • Web API:
  • Accelerated HTMLInputElement creation (r271672)
  • Changed to use the event loop to set the page title (r271514)
  • Changed a non-integer tabindex to match the element behavior as if the tabindex was omitted (r271523)
  • Disabled the context menu item and menu bar item to toggle automatic spelling correction where autocorrect="off" (r271459)
  • Fixed elements in a table getting incorrectly selected in JavaScript (r271635)
  • Included an origin identifier when writing promised image data to the drag pasteboard (r271685)
  • Media:
  • A video element needs to ignore the request to enter/exit fullscreen before the current fullscreen mode change is completed (r271377)
  • Allowed MediaStream and non MediaStream backed videos to play together (r271698)
  • Changed to prevent two pages in the same process to not play media stream backed video elements at the same time (r271670)
  • Fixed videos not playing on Facebook Stories (r271725)
  • Fixed picture-in-picture video subtitles that stop updating when Safari is backgrounded (r271737)
  • Fixed playback failure on marketwatch.com (r271531)
  • Fixed Netflix controls to correctly fade out after entering fullscreen (r271656)
  • Fixed Facebook pausing video in picture-in-picture during scroll (r271470)
  • Introduced a MediaSessionGroupIdentifier (r271643)
  • Updated buttons of the media permission prompt (r271485)
  • WebRTC:
  • Enabled WebRTC VP9 profile 0 by default (r271641)
  • Disabled verification timer in case of capture suspension (r271749)
  • Changed to notify capture state immediately on page close (r271640)
  • Web Audio:
  • Addressed WebRTC live Opus audio stream stutters (r271575)
  • Accessibility:
  • Implemented aria-braillelabel and aria-brailleroledescription (r271416)
  • Fixed AT-synthesized key events for common user actions such as increment or decrement (r271760, r271536)
  • Payment Request:
  • Changed to use the first item in shippingOptions even when it's not selected (r271735)
  • Fixed constructor to throw an error if the same payment method is provided more than once (r271734)
  • Fixed issue where the shippingOption of the PaymentResponse is null after updateWith (r271703)
  • Speech Recognition:
  • Made SpeechRecognition permission error more informative (r271381)
  • Updated media state for active speech recognition as it uses audio capture (r271636)
  • Private Click Measurement:
  • Enabled output logs by default, including to Web Inspector (r271473)
  • Bug fixes:
  • Fixed "Blocked Plug-in" instead of showing a PDF (r271650)
  • Fixed combinations of nested perspective and transforms causing blurry layers on retina displays (r271388)
  • Fixed SVG reference filter chain with errors applying only some of the filters and producing incorrect output (r271785)
  • Removed explicit clamp to SRGB for Lab colors on CG platforms that support wide color (r271712)

New in Safari 14.1 Technology Preview 119 (Jan 29, 2021)

  • Web Inspector:
  • Elements:
  • Enabled independent Styles details sidebar panel in the Elements Tab by default (r271319)
  • Improved the visibility of values by de-emphasizing range information in the Font details sidebar panel (r271329)
  • Timelines:
  • Added a banner to the JavaScript Allocation timeline when new heap snapshots are added that are immediately filtered (r271236)
  • Speech Recognition:
  • Enabled SpeechRecognition by default (r270854)
  • Added webkit- prefix to SpeechRecognition (r270868)
  • Added availability check of speech recognition service before requesting permissions (r271031)
  • Changed to fail speech recognition when the page is muted for audio capture (r271154)
  • Implemented recognizer for SpeechRecognition (r270772)
  • Stopped speech recognition if page becomes invisible (r271169, r271205)
  • CSS:
  • Added support for aspect-ratio on positioned elements (r271061)
  • Changed to take aspect-ratio into account for percentage resolution (r271293)
  • Fixed an issue where toggling pointer-events on prevented child elements from scrolling (r270849)
  • Fixed CSS Scroll Snap when the user scrolls via the keyboard (r270838)
  • Fixed :focus to match inside the focus event (r271146)
  • Fixed the default namespace getting ignored inside non-type selectors for :is() and :not() (r270955)
  • Fixed width: max-content with box-sizing: border-box to leave space for padding (r271003)
  • Implemented ::file-selector-button pseudo-element (r270784)
  • Prevented layout overflow from being computed incorrectly inside Flexbox and breaking sticky positioning (r271053)
  • Scrolling:
  • Fixed scrolling issues when scrolling on only one axis is enabled (r271090)
  • Sibling element wheel event regions can be wrong (r271054)
  • JavaScript:
  • Fixed non-enumerable property to shadow inherited enumerable property from for-in (r270874)
  • Fixed Intl.DateTimeFormat#formatRange to generate the same output to Intl.DateTimeFormat#format if startDate and endDate are "practically-equal" (r271224)
  • Implemented arbitrary-module-namespace-identifier-names (r270923)
  • Improved performance of Object rest and spread (r271343)
  • Media:
  • Used low-power audio buffer sizes for more output devices (r270943)
  • Updated the video element to ignore requests to enter or exit fullscreen before the current fullscreen mode change is completed (r271341)
  • WebAssembly:
  • Added support for memory.copy, memory.init, and data.drop behind flag (r270948)
  • Added support for memory.fill behind flag (r270855)
  • Added support for type-annotated select behind flag (r270827)
  • Updated WebAssembly instance's exports object (r271112)
  • Updated WebAssembly multi-value to iterate iterable result from JS function first before converting values (r271113)
  • Updated WebAssembly Table/Memory/Global to allow inheritance (r271115)
  • Implemented WebAssembly BigInt handling (r271168)
  • Web Animations:
  • Fixed animation issue on sibling elements caused by style sharing (r270837)
  • Accessibility:
  • Fixed aria-orientation getting ignored on input[type="range"] (r271166)
  • Implemented prefers-contrast: more (r270823)
  • Updated list heuristics to include linked lists inside navigation containers (r270896)
  • Web API:
  • Adjusted date input placeholder color based on specified text color (r270875)
  • Corrected the intrinsic size stored for SVG images (r271129)
  • Fixed "Open with Preview" menu item in PDF context menus on Big Sur (r270946)
  • Fixed some issues with PDFs as . (r270998)
  • Fixed Service Worker inspection (r271294)
  • Changed text fields to not be translated while typing (r271262)
  • Bug Fixes:
  • Fixed text content alignment inside an inline-block element (r271284)
  • Fixed inline block baseline with clipped overflow (r271348)

New in Safari 14.1 Technology Preview 118 (Jan 7, 2021)

  • Web Inspector:
  • Elements:
  • Added an experimental Font details sidebar panel for showing information about the currently used font of the selected node (r270637)
  • Sources:
  • Added support for intercepting and overriding network requests (r270604)
  • CSS:
  • Implemented Definite and Indefinite Sizes in flexbox (r270578)
  • Corrected cases in which box-sizing was border-box and didn't use the content box to compute size based on aspect ratio (r270617)
  • Fixed preserving aspect ratio when computing cross size of flexed images in auto-height flex container (r270288)
  • Added support for aspect-ratio on replaced and non-replaced elements (r270551, r270618)
  • Changed text-decoration-color animation not to be discrete (r270597)
  • Changed getComputedStyle rounding lineHeight to nearest pixel (r270248)
  • Changed to trigger web font loads earlier (r270590)
  • Scrolling:
  • Made only the first wheel event in a gesture to be cancelable (r270425)
  • JavaScript:
  • Enabled "at" methods (r270550)
  • Changed get and set for object literal and class to not be escaped (r270487)
  • Accepted escaped keywords for class and object property names (r270481)
  • Aligned %TypedArray% constructor/slice behavior with the specification strictly (r270552, r270371)
  • Added a JSC API to allow acquiring the JSLock to accelerate performance (r270659)
  • Removed unnecessary JSLock use from various JSC APIs (r270665)
  • Aligned [[DefineOwnProperty]] method of mapped arguments object with the specification strictly (r270664)
  • Changed Reflect.preventExtensions not throwing if called on WindowProxy or Location (r270702)
  • WebGL:
  • Fixed rasterizer discard interfering with implicit clears in WebGL 2 (r270253)
  • Media:
  • Implemented WebVTT VTTCue region attribute (r270738)
  • Private Click Measurement:
  • Exposed an API for enabling or disabling Private Click Measurement (r270710)
  • WebRTC:
  • Added support for RTCRtpSender::setStreams (r270486)
  • Enabled use of new socket API for WebRTC TLS connections by default (r270680)
  • Fixed ICE not resolving for turns relay candidates rooted in LetsEncrypt CA (r270626)
  • Improved RTCRtpSender and RTCRtpReceiver transforms support (r270641, r270290, r270294, r270507, r270532)
  • Introduced an experimental flag specific to VP9 profile 2 (r270256)
  • Web API:
  • Changed to allow blob URLs with fragments (r270269)
  • Fixed lazy loaded iframe to not lazy load when scripting is disabled (r270300)
  • Changed Reflect.preventExtensions to not throw if called on WindowProxy or Location (r270702)
  • Changed sessionStorage to not be cloned when a window is opened with rel=noopener (r270273)
  • Updated the list of blocked ports according fetch specification (r270321)
  • Accessibility:
  • Fixed VoiceOver not announcing the aria-checked state for ARIA treeitem (r270333)
  • Extensions:
  • Fixed the onClicked listener not being called for page actions

New in Safari 14.1 Technology Preview 117 (Dec 11, 2020)

  • Web Inspector:
  • Elements:
  • Added the option to "Edit Breakpoint..." or "Reveal Breakpoint" in Sources Tab (r269337)
  • Extra closing parenthesis added after var in styles panel (r269201)
  • Network:
  • Fixed background color of rows from previous session (r269127)
  • Truncated data URLs in the Resources sidebar and Headers panel (r269075)
  • Search:
  • Prevented stealing focus from the search field when shown (r269074)
  • Sources:
  • Changed the default breakpoint action to be evaluate (r269547)
  • Console:
  • Exposed console command line API to breakpoint conditions and actions (r269023, r269044)
  • Fixed using Show JavaScript Console in an empty tab in Safari Technology Preview (r270060)
  • Other Changes:
  • Updated styles to use CSS properties with neutral directionality (r269166)
  • CSS:
  • Added support for discrete animations of many CSS properties (r269812, r269333, r269357, r268792, r268718, r268726)
  • Added support for animations on more pseudo-elements (such as :marker) (r269813)
  • Added support for more properties on ::marker (r269774)
  • Added parse support for aspect-ratio CSS property (r269641)
  • Made CSS font shorthands parsable within a worker (r269957)
  • Changed images as flex items to use the overridingLogicalHeight when defined to compute the logical width (r270073)
  • Changed images as flex items to use the overridingLogicalWidth when defined to compute the logical height (r270116)
  • Changed background-size to not accept negative values (r269237)
  • Fixed issues with percentage height on grid item replaced children when the grid item has a scrollbar (r269717)
  • Serialized aspect ratio with spaces around the slash (r268659)
  • JavaScript:
  • Enabled static public class fields (r269922, r269939)
  • Enabled static and instance private class fields (r270066)
  • Implemented Intl.DateTimeFormat.formatRangeToParts (r269706)
  • Implemented Intl.ListFormat (r268956)
  • Aligned %TypedArray% behavior with recent spec adjustments (r269670)
  • Implemented @@species support in ArrayBuffer#slice (r269574)
  • Fixed toLocaleDateString() resolving incorrect date for some old dates (r269502)
  • Resurrected SharedArrayBuffer and Atomics behind a flag (JSC_useSharedArrayBuffer=1) (r269531)
  • Web Assembly:
  • Added wasm atomics instructions, partially behind a flag (JSC_useSharedArrayBuffer=1) (r270208)
  • Fixed opcodes for table.grow and table.size (r269790)
  • Implemented shared WebAssembly.Memory behind a flag (JSC_useSharedArrayBuffer=1) (r269940)
  • Implemented i32 sign-extension-ops (r269929)
  • Web API:
  • Added proper garbage collection to ResizeObserver (r268860)
  • Changed Worklet.addModule() to reject promise with an AbortError when the network load fails (r270033)
  • Changed event targets to be cleared after dispatch if the target pointed to a shadow tree (r269546)
  • Changed WebSocket constructor to not throw when the port is blocked (r269459)
  • Fixed toggling dark mode to update the scrollbar appearance in overflow: scroll elements (r269437)
  • Fixed navigator.clipboard to be exposed on *.localhost pages (r269960)
  • Fixed auto-focus of text input to not select text (r269587)
  • Fixed Canvas drawImage to not raise an IndexSizeError on empty sources (r270126)
  • Fixed getIndexedParameter indexing crash (r270160)
  • Fixed text getting clobbered when assigning to input.defaultValue (r269528)
  • Fixed to fire click events after dispatchEvent (r269452)
  • Fixed the space between minute and meridiem fields in time inputs being too large (r270148)
  • Fixed window.event to not be affected by nodes moving post-dispatch (r269500)
  • Improved exception messages when AudioContext.suspend() / resume() promises are rejected (r268999)
  • Promises returned by our DOM API have the caller's global instead of the callee's (r269227)
  • Removed unneeded whitespace between content and (r268958, r269036)
  • Speech Recognition:
  • Added audio capture for SpeechRecognition (r270158)
  • Added a default action for SpeechRecognition permission request (r269918)
  • Implemented basic permission check for SpeechRecognition (r269810)
  • WebRTC:
  • Added WebRTC SFrame transform (r269830)
  • Added infrastructure for WebRTC transforms (r269764)
  • Added support for RTCPeerConnection.onicecandidateerror event (r270101)
  • Added support for RTCRtpScriptTransform (r270107)
  • Added support for VP9 Profile 2 (10-bit color) in WebRTC (r268971)
  • Increased camera failing timer to 30 seconds (r269190)
  • Media:
  • A video element may fail to enter picture-in-picture from fullscreen (r268816)
  • Added handling trackId changes across Initialization Segments in MSE (r269121)
  • Added addOutput() and removeOutput() utility functions to AudioSummingJunction (r268820)
  • Added skeleton implementation of Media Session API (r268735)
  • Changed to ensure WebAudio API throws exceptions with useful error messages (r268812)
  • Changed AudioBuffer channels to be neuterable and detachable (r269108)
  • Fixed an infinite loop in sample eviction when duration is NaN in MSE (r270106)
  • Fixed Web Audio continuing to play when navigating off the web page via an iframe (r268893)
  • Fixed poor resampling quality when using AudioContext sampleRate parameter (r270141, r270157)
  • Fixed AudioBuffer.getChannelData(x) to keep returning the same JavaScript wrapper for a given channel (r269081)
  • Fixed AudioContext.suspend() to not reject promise when the audio session is interrupted (r269039)
  • Fixed transparent video poster image to keep element transparent once the first frame is preloaded (r269407)
  • Fixed fetching an audio worklet module using a data URL (r270046)
  • Improved the speed of audio and video element creation up to 50x faster (r269077)
  • Web Animations:
  • Ensured animation updates are not scheduled when there are no styles to update (r269963)
  • Fixed KeyframeEffect.pseudoElement to return a valid string when targeting ::marker or ::first-letter (r269623)
  • Fixed accelerated animations of individual transform properties to apply rotate before scale (r269527)
  • Scrolling:
  • Changed programmatic scroll to stop rubberbanding (r269373, r269559)
  • Changed to update scrolling geometry immediately for programmatic scrolls (r269558)
  • Scroll Snap:
  • Fixed scroll snap specified on :root (r269506)
  • Fixed scroll-snap on root aligning to the body margin edge, not the viewport edge (r269622)
  • Made axis in scroll-snap-type required (r268665)
  • Made scroll-margin independent of scroll snapping and applied it when scrolling to anchors (r269144)
  • Made scroll-padding independent of scroll-snap and have it affect scrollIntoView (r270023)
  • Stopped creating implicit snap points at scrollmin and scrollmax (r268856)
  • Private Click Measurement:
  • Added persistence for pending ad clicks and attributions so they survive browser restart (r270136)
  • Changed to accept ad click data when the link opens a new window (r269129)
  • Changed attribute and JSON key names according to the W3C conversation (r269886)
  • Switched to JSON report format (r269489)
  • Web Driver:
  • Added handling for surrogate pairs in keyboard actions (r269421)
  • Added support for a sequence of character key presses (r269035)
  • Added handling HTTPS configuration for WebDriver tests (r268723)
  • Fixed elements in Shadow DOM incorrectly marked as stale (r268867)

New in Safari 14.1 Technology Preview 116 (Nov 20, 2020)

  • Web Extensions:
  • Added support for non-persistent background pages
  • Fixed browser.tabs.update() to accept calls without a tabId parameter
  • Fixed browser.tabs.update() to allow navigations to a URL with a custom scheme
  • Web Inspector:
  • Sources:
  • Added support for creating a local override from resources that failed to load
  • Added a + to the Local Overrides section in the navigation sidebar to streamline creating custom local overrides
  • Fixed issue where event breakpoints were not editable after being added
  • Fixed issue where line-based JavaScript breakpoints were not added on reload
  • Fixed issue where the Sources Tab had wrong icon when paused
  • Web Audio API:
  • Enabled AudioWorklet API by default
  • Added implementation for AudioWorkletGlobalScope.registerProcessor()
  • Added implementation for AudioWorkletGlobalScope's currentFrame, currentTime, and sampleRate attributes
  • Changed to use AudioWorkletProcessor to process audio
  • Changed calling AudioContext.resume() right after AudioContext.suspend() to be a no-op
  • Changed AudioWorkletGlobalScope to perform a microtask checkpoint after each rendering quantum
  • Fixed parameters argument for AudioWorkletProcessor.process() to be spec-compliant
  • MediaRecorder:
  • Enabled video capture by default on macOS
  • Added support for MediaRecorder bitrate getters
  • Added support for MediaRecorder pause and resume
  • Added support for respecting enabled and muted tracks
  • Added support for BlobEvent.timecode
  • Fixed MediaRecorder .stop to not throw in Inactive state
  • Made sure to fire the correct set of events in case MediaRecorder stream has track changes
  • CSS:
  • Added support for the individual transform properties translate, rotate, scale, including accelerated animation
  • Fixed flex-grow property to be animatable
  • Fixed CSS image-orientation: none to be ignored for cross-origin images
  • CSS transform computed style should not reflect individual transform properties
  • Added painting CSS highlights over images
  • Fixed clip-path: path() ignoring page zooming
  • Fixed background-clip: var(--a) invalidating -webkit-background-clip: text when --a: text
  • Rendering:
  • Respect the font size when presenting the dropdown when custom fonts are used
  • JavaScript:
  • Changed arguments.callee to become ThrowTypeError if the function has a complex-parameter-list (spec-term)
  • Changed BigInt constructor to be constructible while it always throws an error
  • Fixed Array.prototype.sort's sortBucketSort which accessed an array in an invalid way leading to incorrect results with indexed properties on the prototype chain
  • Improved the essential internal methods for %TypedArray% to adhere to spec
  • WebAuthn:
  • Removed the alg field from the attestation statement
  • Media:
  • Fixed AirPlay menu not showing up when the AirPlay button is clicked
  • Improved computation of default audio input and output devices
  • Web API:
  • Allowed passive mouse wheel event listeners to not force synchronous scrolling
  • Implemented Blob.stream
  • Updated FileReader.result to return null if it isn't done yet
  • Improved xhr.response conformance to the specification
  • URL Parsing:
  • Aligned URL setters to reasonable behaviors of other browsers
  • Changed to parse "#" as a delimiter for fragment identifier in data URIs
  • Changed to fail parsing URLs with hosts containing invalid punycode encodings
  • Fixed UTF-8 encoding in URL parsing
  • Storage Access API:
  • Enabled per-page storage access scope
  • Accessibility:
  • Fixed accessibility on Presidential Executive Order pages
  • WebDriver:
  • Fixed WebDriver Input clear/value commands when the target is inside a Shadow DOM

New in Safari 14.1 Technology Preview 115 (Oct 23, 2020)

  • Web Audio:
  • Enabled the modern unprefixed WebAudio API
  • Changed AnalyserNode to downmix input audio to mono
  • Changed AnalyserNode's getByteFrequencyData() and getFloatFrequencyData() to only do FFT analysis once per render quantum
  • Changed AudioBufferSourceNode to update grain parameters when the buffer is set after rendering has started
  • Updated AudioParam.setValueCurveAtTime() to have an implicit call to setValueAtTime() at the end
  • Updated AudioParams with automations to process timelines
  • Fixed BiquadFilterNode's lowpass and highpass filters
  • Fixed Web Audio API outputting silence for 302 redirected resource
  • Made AudioBufferSourceNode loop fixes
  • Changed to properly handle AudioParam.setTargetAtTime() followed by a ramp
  • Improved AudioBufferSourceNode resampling
  • JavaScript:
  • Fixed BigInt to work with Map and Set
  • Enabled Intl.DateTimeFormat dayPeriod
  • Updated Intl rounding behavior to align with specifications update
  • Updated functions to consistently enumerate length property before name property
  • Updated Array.prototype.sort to be consistent with specifications
  • Web API:
  • Performance.navigation and Performance.timing are incorrectly exposed to workers
  • Update User Timing interfaces to User Timing Level 3
  • Fixed visibilitychange:hidden event to fire during page navigations
  • Media:
  • Added support for HTMLMediaElement.setSinkId
  • CSS:
  • Changed to clear the override width to properly compute percent margins in CSS Grid
  • Implemented the CSS math-style property
  • WebAuthn:
  • Changed to not set the UV option if the authenticator doesn't support it
  • Selection API:
  • Fixed selectAllChildren to return InvalidNodeTypeError when passed a DocumentType node
  • Improved VisibleSelection, FrameSelection, and DOMSelection to preserve anchor and focus
  • WebRTC:
  • Updated toRTCIceProtocol to handle ssltcp candidates

New in Safari 14.1 Technology Preview 114 (Oct 9, 2020)

  • Web Inspector:
  • Elements Tab:
  • Changed to grey out properties that aren't used or don't apply
  • Changed to hide non-inheritable properties when viewing inherited rules
  • Changed to not show inline swatches for properties that aren't used or don't apply
  • Sources Tab:
  • Changed to allow event breakpoints to be configured
  • Changed to evaluate breakpoint conditions before incrementing the ignore count
  • Changed to allow DOM breakpoints to be configured
  • Changed to allow special JavaScript breakpoints to be configured
  • Changed to allow URL breakpoints to be configured
  • Network Tab:
  • Fixed WebSockets to be reported as type websocket
  • Fixed issue where response content was not shown for 304 responses from XHR requests
  • Timelines Tab:
  • Fixed duplicate "Timeline Recording 1" on open
  • Fixed re-enabling the JavaScript Allocations timeline to show previously captured heap snapshots in the table
  • Fixed the record button disappearing when interface is narrow
  • Fixed the Stop Recording button to actually stop the recording
  • Audit Tab:
  • Allow audits to be created and edited in Edit mode in Web Inspector
  • Miscellaneous:
  • Fixed issue where the docking buttons wouldn’t work when docked if the window is too small
  • JavaScript:
  • Added Intl.DateTimeFormat dateStyle and timeStyle
  • Added Intl.Segmenter
  • Added a syntax error for async function in a single-statement context
  • Added Object.getOwnPropertyNames caching and accelerated Object.getOwnPropertyDescriptor
  • Aligned legacy Intl constructor behavior to spec
  • Applied Intl.DateTimeFormat hour-cycle correctly when timeStyle is used
  • Enabled Intl.DisplayNames
  • Changed to not allow let [ sequence to appear in an ExpressionStatement context
  • Changed to allow new super.property syntax
  • Changed to allow new import.meta() syntax
  • Changed to use locale-sensitive grouping for grouping options in IntlRelativeTimeFormat
  • Implemented Intl.DateTimeFormat dayPeriod
  • Implemented Intl Language Tag Parser
  • Implemented Intl.DateTimeFormat.prototype.formatRange
  • Implemented unified Intl.NumberFormat
  • Fixed an invalid early error for object literal method named proto
  • Fixed implementation of the class "extends" clause incorrectly using proto for setting prototypes
  • Fixed Performance and PerformanceNavigation interfaces missing toJSON operations
  • Updated Intl.Collator to take a collation option
  • Updated Array.prototype.push to always perform Set in strict mode
  • Updated Promise.prototype.finally to perform PromiseResolve
  • Date and Time Inputs:
  • Added editing to
  • Updated date inputs to contain editable components
  • Updated date picker appearance to match system date pickers
  • Updated date picker when the inner control is edited
  • Updated date pickers to respect the document's color scheme
  • Updated date/time inputs to focus the next editable component when entering a separator key
  • Updated date/time inputs to preserve focus on value change
  • Updated date/time inputs to not use user-specified formats to prevent fingerprinting
  • Web Audio:
  • Added AudioParam.automationRate attribute
  • Added proper support for AudioContextOptions.sampleRate
  • Allowed direct creation of replacement codec
  • Changed AudioParam.value setter to call setValueAtTime(value, now)
  • Changed AudioParam.linearRampToValueAtTime() formula to match specification
  • Changed AudioBufferSourceNode to use final values for playbackRate and detune
  • Fixed AnalyserNode.getFloatFrequencyData() to fill array with -Infinity when input is silent
  • Fixed AudioBufferSourceNode.start() behavior when the offset is past the end of the buffer
  • Fixed AudioBufferSourceNode.start() ignoring when parameter when the pitch rate is 0
  • Fixed AudioContext not rendering until an AudioNode is constructed
  • Fixed AudioDestinationNode.maxChannelCount always returning 0
  • Fixed AudioParam.linearRampToValueAtTime() and exponentialRampToValueAtTime() having no effect when there is no preceding event
  • Fixed BiquadFilterNode.getFrequencyResponse() to return NaN for out-of-bounds frequencies
  • Fixed the types of Panner.setPosition() and setOrientation() parameters to not be unrestricted float
  • Dropped non-standard AudioBuffer.gain
  • Made AudioParam.cancelScheduledValues() standards compliant
  • Improved interpolation algorithm in OscillatorNode
  • Introduced StereoPannerNode Interface
  • Stopped performing "de-zippering" when applying gain
  • MediaRecorder:
  • Enabled MediaRecorder by default on macOS
  • End of media capture should not be reported before 3 seconds of the start of capture
  • MediaRecorder timeslice parameter causing internal error on longer videos
  • Paint Timing:
  • Enabled paint timing by default
  • WebGL:
  • Enabled WebGL2 by default
  • Added WebGL and WebGL2 context support to OffscreenCanvas
  • WebGL goes in a bad state where glContext.createProgram() returns null
  • CSS:
  • Fixed text-transform inheritance to ::marker
  • Changed to set available column space before grid items prelayout
  • Added support for flow-relative shorthand and offset properties
  • Changed to allow indefinite size flex items to be definite with respect to resolving percentages inside them
  • Changed to not skip flexboxes with auto height for percentage computations in quirks mode
  • Changed to use min-content size for intrinsic maximums resolution
  • Fixed min-height: auto not getting applied to nested flexboxes
  • Fixed :visited color taken on a non-visited link when using CSS variables
  • Fixed CSS revert to serialize as "revert", not "Revert"
  • Updated to safely handle overly-long CSS variable values
  • Web API:
  • Aligned length properties of function prototypes with specificcations
  • Updated ReadableStream.pipeTo implementation to match specifications
  • Updated Web Share API to prevent non-HTTP(S) URLs
  • Aligned ISO-8859-{3,6,7,8,8-I} and windows-{874,1253,1255,1257} encodings with specifications
  • Changed XML documents in iframes to not inherit encoding from the parent frame
  • Changed Element to not set an attribute inside its constructor
  • Changed new URL("#") to throw an error
  • Fixed consecutive requestAnimationFrame callbacks that may get passed the same timestamp
  • Fixed XHR.timeout getting affected by long tasks
  • Fixed taking too long to fetch images from memory cache
  • Implemented encodeInto() TextEncoder method
  • Updated the URL fragment percent encode set
  • Lazy Loading:
  • Implemented lazy iframe loading
  • Fixed lazy image load painting
  • Media:
  • Fixed the PiP window getting closed when the video element is removed from the DOM
  • Fixed an HDCP error for all streams on Netflix
  • Fixed element preventing screen from sleeping even after playback finishes
  • WebRTC:
  • Added RTCRtpSynchronizationSource.rtpTimestamp
  • Exposed RTCPeerConnection.restartIce
  • Safari is not able to hear audio when using WebRTC in multiple tabs
  • Rendering:
  • Fixed animations invalidating too often
  • Fixed flickering on sedona.dev
  • Fixed the cut off scrollbar on Facebook posts with lots of comments has cut off scrollbar that couldn't scroll to the bottom
  • Changed to handle fonts that lie about being monospaced
  • Fixed programmatic selection of text in a text field that causes the highlight overlay to spill out
  • Fixed overflow: scroll rubber-banding getting interrupted by post-layout scrolling
  • Fixed a flash when closing a webpage
  • Text Rendering:
  • Changed letter-spacing to disable ligatures
  • Scrolling:
  • Fixed vertical scrolling getting stuck when a horizontal scroller is under the mouse
  • Fixed select element scrolling after scrolling the page
  • Back-Forward Cache:
  • Added support for third-party domains to get stored for back-forward navigations
  • Storage Access API:
  • Allowed requests for storage access from nested iframes

New in Safari 14 (Sep 17, 2020)

  • Safari 14.0 introduces new features, even faster performance, and improved security.
  • New tab bar design shows more tabs on screen and displays favicons by default
  • Customizable start page allows you to set a background image and add new sections
  • Privacy Report shows cross-site trackers that are being blocked by Intelligent Tracking Prevention
  • Removes support for Adobe Flash for improved security
  • Some features may not be available for all regions, or on all Apple devices.

New in Safari 14.0 Technology Preview 113 (Sep 10, 2020)

  • Web Inspector:
  • Adapted Web Inspector’s user interface and styling to better match macOS Big Sur
  • Timelines Tab:
  • Fixed background colors for odd and even items in Dark Mode in the Timelines tab
  • Media & Animations timeline shouldn't shift when sorting
  • Web Audio:
  • Added constructor for GainNode
  • Added constructor for BiquadFilterNode
  • Added constructor for ConvolverNode
  • Added constructor for DelayNode
  • Added constructor for AudioBuffer
  • Added constructor for AnalyserNode
  • Added support for suspending and resuming an OfflineAudioContext
  • Added constructor for the MediaElementAudioSourceNode interface
  • Aligned AudioListener with the W3C specification
  • Aligned BiquadFilterNode.getFrequencyResponse() with the specification
  • Fixed BiquadFilterNode's lowpass filter
  • Fixed missing length attribute on OfflineAudioContext
  • Fixed missing baseLatency attribute on the AudioContext interface
  • WebRTC:
  • Added support for MediaRecorder bitrate options
  • Rendering:
  • Updated to avoid triggering redundant compositing updates when trying to run a steps() animation on transform
  • Fixed inconsistent spacing of Chinese characters in Safari for macOS Big Sur
  • Media:
  • Enabled H.264 low latency code path by default for macOS
  • Fixed the picture-in-picture button disappearing in the fullscreen YouTube player after starting a new video in a playlist
  • CSS:
  • Changed to apply aspect ratios when computing flex-basis
  • Fixed updating min-height: auto after an image loads when the image has a specified height and width
  • Fixed @font-face font-weight descriptor to reject bolder and lighter
  • Fixed the CSS specificity of :host() pseudo-classes
  • WebDriver:
  • Fixed window.print to not invoke native UI
  • Accessibility:
  • Added VoiceOver access to font styling at insertion point
  • Loading:
  • Fixed font loads quickly followed by navigations failing indefinitely
  • Web API:
  • Implemented Canvas.transferControlToOffscreen and OffscreenCanvasRenderingContext2D.commit
  • Implemented createImageBitmap(ImageData)
  • Implemented PerfomanceObserverInit.buffered
  • Fixed text input autocorrect="off" attribute getting ignored on macOS
  • Gamepad API:
  • Added a special HID mapping for the Google Stadia controller
  • Added HID mapping for the Logitech F310/F710 controllers.
  • Translation:
  • Fixed table data incorrectly translated in some articles on wikipedia.org
  • Fixed leading and trailing spaces to be ignored when comparing content

New in Safari 14.0 Technology Preview 112 (Aug 19, 2020)

  • Web Inspector:
  • Changed the default tab order to display most commonly used tabs first
  • Changed the background, text, and border colors to match the OS
  • Changed to only show scrollbars when needed
  • Fixed issue where a failed initial subresource load would break the Sources Tab
  • Fixed the ability to save files that are base64 encoded
  • Prevented blurring the add class input when a class is added in the Styles sidebar of the Elements tab
  • Extensions:
  • Fixed pop-up dialog sizing for percentage height values applied to
  • Added support for replacing a Safari App Extension with a Safari Web Extension by specifying the SFSafariAppExtensionBundleIdentifiersToReplace key in the NSExtension element in your Safari Web Extension Info.plist file. The value for the key should be an array of strings, each of which is the bundle identifier on a Safari App Extension you want to replace.
  • CSS:
  • Fixed align-content in grid containers with small content area
  • Fixed the CSS clip-path being applied to the view-box coordinates
  • Fixed scroll snap when using RTL layout
  • JavaScript:
  • Implemented Intl.DisplayNames
  • Changed eval?.() to be an indirect eval
  • SVG:
  • Added support for SVG element's rel and relList attributes
  • Media:
  • Added behaviors for YouTube to offer HDR variants to devices which support HDR
  • Adopted AVPlayer.videoRangeOverride
  • Added HDR decode support in software-decoded VP9
  • Fixed becoming unresponsive after playing a video from a YouTube playlist in picture-in-picture mode
  • WebRTC:
  • Added OfflineAudioContext constructor
  • Fixed scaleResolutionDownBy on RTCRtpSender
  • Web API:
  • Added support for the type attribute to PerformanceObserver
  • Changed date and time input types to have a textfield appearance
  • Changed to propagate the user gesture through Fetch API
  • Fixed highlight color to update after being set it system preferences
  • Fixed datalist dropdown scrollbar position to match the visible region
  • Made mousemove event cancelable
  • Text Manipulation:
  • Changed text manipulation to not extract non-breaking spaces
  • Fixed article headlines being split across multiple lines after translating
  • Storage:
  • Changed to allow IndexedDB in third-party frames

New in Safari 14.0 Technology Preview 111 (Jul 30, 2020)

  • Web Inspector:
  • Added an error message if unable to fetch shader source in the Canvas tab
  • Fixed Heap Snapshot Object Graph view not getting populated in some cases when inspecting a JSContext
  • Updated the title bar of undocked Web Inspector to be white in macOS Big Sur
  • Web Extensions:
  • Fixed chrome.tabs.update() so it does not open a new tab for safari-web-extension URLs
  • Fixed chrome.tabs.create() so it passes a valid tab object to the callback for relative extension URLs
  • Scrolling:
  • Fixed content changes not triggering re-snapping with scroll snap after a scroll gesture
  • Fixed scrolling pages with non-invertable transforms in children of an overflow: scroll element
  • Fixed stuttery scrolling by ensuring a layout-triggered scroll snap does not happen if a user scroll is in progress on the scrolling thread
  • Rendering:
  • Fixed high CPU usage on Bitbucket search results pages
  • Web API:
  • Fixed autocapitalize="words" capitalizing every word's second character
  • Multiplexed the HID and GameController gamepad providers on macOS
  • Removed the concept of "initial connected gamepads"
  • Storage Access API:
  • Added the capability to open a popup and get user interaction so we can call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
  • Accessibility:
  • Implemented user action specifications for Escape action
  • Text Manipulation:
  • Fixed text manipulation to ignore white spaces between nodes

New in Safari 14.0 Technology Preview 110 (Jul 19, 2020)

  • WebRTC:
  • Added a functional WebRTC VP9 codec
  • Allowed registering VP9 as a VT decoder
  • Added support for freeze and pause receiver stats
  • Added MediaRecorder.onstart support
  • Changed MediaRecorder to support peer connection remote video tracks
  • Enabled VTB required low latency code path
  • Fixed MediaRecorder.stopRecorder() returning an empty Blob after first use
  • Fixed MediaRecorder.start() Method ignoring the timeslice parameter
  • Fixed RTCDataChannel.bufferedAmount to stay the same even if channel is closed
  • Updated the max width and height for mock sources
  • Web Authentication:
  • Improved UI for PIN entry for security keys
  • Web Animations:
  • Keyframe animation with infinite iteration count doesn't show up in the Animations timeline
  • Web API:
  • Changed to require a to be connected before it can be submitted
  • Fixed window.location.replace with invalid URLs to throw
  • Fixed the behavior when setting url.search="??" (two question marks)
  • Changed to allow selecting HEIF images if the 'accept' attribute includes an image MIME type that the platform can transcode
  • Added referrerpolicy attribute support for
  • Allow setting empty host/hostname on URLs if they use file scheme
  • Allow the async clipboard API to write data when copying via menu action or key binding
  • Media:
  • Changed to check for mode=“showing” to consider a text track as selected in the tracks panel
  • CSS:
  • Changed to allow indefinite size flex items to be definite with respect to resolving percentages inside them
  • Changed to not include scrollbar extents when computing sizes for percentage resolution
  • Fixed pointer events (click/hover/etc) passing through flex items, if they have negative margin
  • Layout:
  • Changed to resolve viewport units against the preferred content size
  • Rendering:
  • Fixed overlapping content when margin-right is present
  • Fixed content sometimes missing in nested scrollers with border-radius
  • Accessibility:
  • Fixed honoring aria-modal nodes wrapped in aria-hidden
  • Implemented relevant simulated key presses for custom ARIA widgets for increment and decrement
  • Bug Fixes:
  • Fixed the indeterminate progress bar animation periodically jumping in macOS Big Sur
  • JavaScript:
  • Enabled RelativeTimeFormat and Locale by default
  • Configured option-offered numberingSystem in Intl.NumberFormat through locale
  • Changed Intl.Collator to set usage:"search" option through ICU locale
  • Fixed Promise built-in functions to be anonymous non-constructors
  • Fixed incorrect TypedArray.prototype.set with primitives
  • Storage Access API:
  • Added the capability to call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
  • Text Manipulation:
  • Updated text manipulation to exclude text rendered using icon-only fonts
  • Added a new text manipulation heuristic to decide paragraph boundary
  • Security:
  • Enabled referrer policy attribute support by default
  • Changed image crossorigin mutations to be considered "relevant mutations"
  • Web Inspector:
  • Added a tooltip to the icon of resources replaced by a local override explaining what happened
  • Allow selecting text of Response (DOM Tree) in Network tab
  • Adjusted the height of title area when Web Inspector is undocked to match macOS Big Sur

New in Safari 14.0 Technology Preview 109 (Jun 26, 2020)

  • Safari Technology Preview Release 109 is now available for download for macOS Catalina. With this release, Safari Technology Preview is now available for betas of macOS Big Sur. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS. Safari Technology Preview is currently only available for Intel-based Macs.
  • This release includes new Safari and WebKit features that will be present in Safari 14. The following Safari 14 features are new in Safari Technology Preview 109:
  • Safari Web Extensions. Extensions written for Chrome, Firefox, and Edge that use the WebExtension APIs can be converted to Safari Web Extensions using Xcode 12.
  • Privacy Report. See the trackers that Intelligent Tracking Prevention prevented from accessing identifying information.
  • Improved tab management with tab previews. Tabs feature a new space-efficient design that lets you view more tabs on-screen and preview tabs to find the one you’re looking for.
  • Website icons in tabs. Icons in tabs are turned on by default in Safari 14.
  • Password breach notifications. On macOS Big Sur, Safari will notify users when one of their saved passwords in iCloud Keychain has shown up in a data breach; requesting a password change uses the well-known URL for changing passwords (https://example.com/.well-known/change-password), enabling websites to specify the page to open for updating a password.
  • Domain-bound codes. On macOS Big Sur, added support to Security Code AutoFill for domain-bound, one-time codes sent over SMS; in the following 2FA SMS, Safari only offers to fill the code on example.com, and no other domain.
  • Web Authentication. Added a Web Authentication platform authenticator using Touch ID, if that capability is present (macOS Big Sur-only). Added support for PIN entry and account selection on external FIDO2 security keys.
  • Adobe Flash is no longer supported in Safari.
  • In addition to these new Safari 14 features, this release covers WebKit revisions 262502-263214 and Password Manager Resources version 10e3fca9.
  • Web API:
  • Changed the file picker of the file element to show the selection filter
  • Changed to disallow XHR+Fetch responses when a response contains invalid header values
  • Changed image referrerpolicy mutations to be considered "relevant mutations"
  • Fixed empty dataTransfer.types when handling the dragstart event
  • Fixed a case of being unable to select an item from dropdown
  • Made ReadableStream robust against user code
  • CSS:
  • Fixed align-content to apply for a single line
  • Fixed pseudo-elements (::after) in shadow roots to animate
  • Fixed CSS custom properties for specific border properties
  • Web Animations:
  • Fixed animating font-size values with em units
  • SVG:
  • Fixed Document.currentScript to work for SVGScriptElements
  • Fixed multiple SVG filters unexpectedly lightening the image using linearRGB
  • IndexedDB:
  • Added support for IDBFactory databases method
  • Scrolling:
  • Fixed horizontally scrolling elements that are broken when revealed by toggling visibility
  • Layout:
  • Changed to not apply the special anchor handling when the anchor content is visible after clamping
  • Fixed inserted text placeholder to vertically align to top and behave like a block-level element when it has 0 width
  • Media:
  • Fixed a YouTube video that gets stuck after rapidly tapping on touchbar’s picture-in-picture button
  • Added a quirk to allow starting AudioContext if document was interacted
  • WebRTC:
  • Improved SCTP cookie generation
  • Back-forward Cache:
  • Stopped allowing pages served over HTTPS with Cache-Control: no-store into the back-forward cache
  • JavaScript:
  • Added support for private class fields
  • Added "el" (Greek) to our maintained available locales list
  • Changed Logical Assignment to perform NamedEvaluation of anonymous functions
  • Changed JSON.stringify to throw stack overflow error
  • Changed RegExp.prototype getters to throw on cross-realm access
  • Changed super to not depend on proto
  • Fixed AsyncGenerator to await return completions
  • Made errors an own property of AggregateError instead of a prototype accessor
  • Editing:
  • Fixed text form controls to prevent scrolling by a pixel when the value is the same length as the size
  • Fixed observing a newly displayed element inside previously observed content
  • Fixed text manipulation to exclude characters outside of the unicode private use area
  • Fixed editing to handle nested item boundary elements
  • Fixed to not re-extract elements whose children have been manipulated
  • Fixed first and last unit in a paragraph to not contain only excluded tokens
  • Accessibility:
  • Changed element to no longer map to ARIA contentinfo role
  • Apple Pay:
  • Added new values for -apple-pay-button-type
  • Web Inspector:
  • Changed text inputs to not spellcheck or autocomplete
  • Fixed an issue where XHRs with the same URL as the main resource were not shown in the Sources Tab
  • Improved the performance of resizing the Scope Chain panel in the details sidebar of the Sources Tab
  • Web Driver:
  • Fixed Automation.computeElementLayout to return iframe-relative element rects when the coordinate system is “Page”
  • Fixed WebDriver on non-iOS ports that cannot perform ActionChain which has scrolling down to the element and click it

New in Safari 13.2 Technology Preview 108 (Jun 12, 2020)

  • Web Inspector:
  • Network:
  • Fixed updating statistics when filtering
  • Fixed gaps around the "An error occurred trying to load this resource" message
  • Storage:
  • Prevented requesting the list of IndexedDB database names multiple times for the same security origin
  • Graphics:
  • Added support for the id (name) of the animation if it exists
  • Fixed populating text editors in the Keyframes section when the Animation panel sidebar in the details sidebar is first shown
  • Miscellaneous:
  • Fixed ⌘G to not override the current query of the find banner if it's visible
  • Accessibility:
  • Fixed SVG text node's with content getting described as "empty group" even if it's not empty
  • Fixed ignoring images with an empty alt attribute
  • Web API:
  • Fixed to require being connected in order to navigate
  • Fixed the pageshow event only firing the first time the back button is pressed
  • Fixed Array.prototype.splice not setting the length of the returned object if not an Array
  • Fixed incorrect location.origin in blob workers
  • Implemented ParentNode.prototype.replaceChildren
  • CSS:
  • Changed the calculation to compute the hypothetical cross size of each item in flexbox to use fit-content, not max-content
  • Changed to allow indefinite size flex items to be definite with respect to resolving percentages inside them
  • Fixed dynamically setting position: absolute in a grid item to trigger a relayout of that element
  • Fixed tables as flex items to obey the flex container sizing
  • Fixed styling ::selection for a flex container
  • Prevented grid-template-rows from serializing adjacent
  • Prevented putting out-of-flow boxes in anonymous flex items or grid items
  • JavaScript:
  • Fixed BigInt operations to handle exceptions correctly
  • Scrolling:
  • Fixed scrolling on a mercurynews.com article
  • Fixed stuttery overflow scrolling in slow-scrolling regions
  • Fixed rendering artifacts when scrolling overlays
  • Rendering:
  • Fixed incorrect clipping of absolute and fixed elements inside stacking-context composited overflow: hidden
  • Async Clipboard API:
  • Added support for reading "image/png" on ClipboardItem
  • Fixed DataTransfer.prototype.files containing multiple files when pasting a single image with multiple representations
  • Web Animations:
  • Avoided starting CSS Transitions for a property when a CSS Animations or JavaScript-originated animation is running for the same property
  • Fixed SVG animations to not stop when other animators are still running
  • Media:
  • Fixed Picture-in-Picture API issues under stress tests
  • Fixed scrubbing video on www.judiciary.senate.gov ( r262169)
  • Fixed fullscreen animation missing a few frames at beginning
  • Fixed transition between encrypted and clear codecs throwing an error
  • Fixed video freezing when attaching a local MediaStream to multiple elements
  • Made setting fullscreen mode more robust under stress tests

New in Safari 13.2 Technology Preview 107 (May 29, 2020)

  • Web Inspector:
  • Network:
  • Adjusted the spacing of the navigation items so that none are hidden when previewing a resource
  • Sources:
  • Added showing the name of the Worker if it exists as the title of its main resource
  • Fixed source mapping issue when combining single-child directory chains
  • Fixed restoring global DOM, URL, or event breakpoints incorrectly enabling all breakpoints
  • Supported CSS pretty printing when a url() is nested inside a url()
  • Timelines:
  • Fixed the memory stacked area graph to not extend beyond the "stopping time" marker
  • Storage:
  • Fixed requesting the list of IndexedDB database names multiple times for the same security origin
  • Fixed double-clicking on a cookie field to start editing that cookie
  • Layers:
  • Ensured that the text at the bottom of the details sidebar doesn’t overlap
  • Console:
  • Added showing EventTarget listeners as an internal property
  • Added showing Worker name as an internal property
  • Miscellaneous:
  • Accessibility:
  • Fixed Left/Right arrow keys to collapse/expand details sections
  • Remote Inspection:
  • Provided a way to turn on or off ITP debug mode and AdClickAttribution debug mode
  • Dropped support for iOS 8.x, iOS 9.x, and iOS 10.x
  • Web API:
  • Changed the initial value of transform-box to be view-box to fix some SVG animations
  • Fixed computing the correct perspective matrix on a box with borders and overflow: hidden
  • Fixed incorrect location.origin in blob workers
  • Fixed Object.prototype.toString to match standards
  • XML external entity resources should only be loaded from XML MIME types
  • CSS:
  • Changed the cursor to update during the rendering steps, rather than on a 20ms timer
  • Fixed the computed min-width and min-height for auto depending on the box
  • Fixed ::selection styling for a flex container
  • Fixed disappearing content with CSS parallax on an overflow scroll
  • Rendering:
  • Fixed repaint issues when the login field collapses on music.apple.com
  • Fixed text clipped when rendered with fonts which have a negative line gap metric
  • Fixed table sizing when max-width is used
  • Scrolling:
  • Fixed tapping on the trackpad in a to flash the scrollers
  • Fixed a that sometimes becomes non-scrollable
  • Fixed overflow scrollbars not growing when hovered
  • Fixed find not always scrolling search results into view
  • Fixed composited scrolling interfering with the propagation of perspective
  • Fixed scrollbars flickering in RTL scrollable regions
  • Media:
  • Changed to ignore a poster set after playback begins
  • Fixed media controls tracks menu showing "Auto" selected instead of the track selected via the JavaScript API
  • IndexedDB:
  • Improved the accuracy of IndexedDB estimated write size computation
  • Fixed a bug that could cause IndexedDB log files to grow without bound
  • JavaScript:
  • Implemented Intl.Locale
  • Implemented BigInt.asIntN and BigInt.asUintN
  • Enabled logical assignment operators
  • Ensured IntlCollator.prototype.resolvedOptions returns relevant locale extension keys in alphabetical order
  • Web Animations:
  • Fixed the animation engine to not wake up every tick for steps() timing functions
  • Fixed animations with a single keyframe not getting accelerated
  • Fixed calling reverse() on an accelerated animation having no effect
  • Coordinated "update animations and send events" procedure across multiple timelines
  • Fixed Document.getAnimations() to only consider document connection and not timeline association
  • Fixed the animation of font-size using rem values
  • Async Clipboard API:
  • Enabled clipboard API access when pasting from a menu item or key binding
  • DataTransfer.files contains multiple files when pasting a single image with multiple representations
  • Fixed cut and paste from Google Doc to Notes in several (non-Latin) languages
  • Preserved character set information when writing to the pasteboard when copying rich text
  • Accessibility:
  • Implemented accessibility of HTML 5.1 Drag & Drop
  • CSS Grid:
  • Cleared the override width for computing percent margins
  • Changed to not create renderers for whitespace nodes
  • Changed to treat percentages as auto for the minimum contribution
  • Fixed auto repeat with multiple tracks and gutters
  • Bug Fixes:
  • Added quirk for cookie blocking latch mode aolmail.com redirecting to aol.com under aol.com
  • Changed to enforce a URL cannot have a username, password, or port if its host is null
  • Changed XML external entities to require an XML MIME type to be loaded
  • Fixed the playhead in Touch Bar continuing when loading stalls
  • Fixed the search field on mayoclinic.org clipping the submit button
  • Fixed setting a host on a URL when no port is specified
  • Limited the HTTP referer to 4KB

New in Safari 13.2 Technology Preview 106 (May 15, 2020)

  • Web Inspector:
  • Sources:
  • Ensured “Step Over” only steps through comma expressions if they not nested
  • Storage:
  • Fixed third-party cookie display
  • Added support for selecting multiple local storage entries
  • Miscellaneous:
  • Updated find dialog to populate the search string from the system find pasteboard
  • Fixed the filter bar in the navigation sidebar to respect the global search settings
  • Async Scrolling:
  • Enabled async frame and overflow scrolling by default on macOS
  • Fixed an overflow that's hidden on one axis to be scrollable on that axis
  • Web Animations:
  • Fixed applying keyframe easings to transforms
  • Changed to guarantee assigning an element to effect.target keeps the element alive, even without other references to it
  • Implemented jump-* functions for steps() timing functions
  • CSS:
  • Added support for :where() pseudo class
  • Fixed :is() and :where() to not allow pseudo-elements when parsing
  • Fixed border-radius failing to clip composited iframe contents
  • JavaScript:
  • Enabled BigInt
  • Changed BigInt constructor to accept larger integers than safe-integers
  • Added support for Intl.RelativeTimeFormat
  • Redesigned for-of iteration for arrays
  • WebRTC:
  • Updated getDisplayMedia to respect aspect ratio with max constraints
  • Web API:
  • Fixed the visibilitychange event to bubble per spec
  • Media:
  • Changed to ensure a remote track event gets unmuted after the track event is fired
  • Fixed audio session category to be set incorrectly after changing video source with MSE
  • Fixed video elements to return to an incorrect position when exiting fullscreen
  • Rendering:
  • Fixed flickering header when scrolling articles with fixed position elements
  • Fixed content disappearing in a CSS-based parallax implementation
  • Fixed a blank header on a site by changing to not use stale containing block width value while computing preferred width
  • Fixed oversized caret and selection rects in text fields
  • Bug Fix:
  • Enabled using credentials for same-origin CSS mask images

New in Safari 13.2 Technology Preview 105 (Apr 24, 2020)

  • CSS:
  • Added Selectors Level 4 specificity calculation for pseudo classes
  • Added support for font-relative lh and rlh unit frp, CSS Values Level 4 specification
  • Corrected the computed style for outline-offset when outline-style is none
  • Fixed bad style sharing between sibling elements with different part attributes for CSS Shadow Parts
  • Implemented the CSS Color Level 4 behavior for inheritance of currentColor
  • Prevented caching definite height against perpendicular flex items
  • JavaScript:
  • Fixed Intl.DateTimeFormat patterns and fields
  • Implemented BigInt.prototype.toLocaleString`
  • Updated Intl to allow calendar and numberingSystem options
  • Implemented logical assignment operators
  • Updated canonicalizeLocaleList to gracefully throw OOM error if the input and error message is too large
  • Updated module's default cross-origin value should be "anonymous"
  • Media:
  • Made a change to update ScreenTime as playback state changes
  • Filtered some capture device names
  • Added support for applying a frameRate limit when the request stream is from Camera
  • Web Animations:
  • Added support for pseudoElement on KeyframeEffect and KeyframeEffectOptions
  • Fixed computing transition-property correctly when transition-duration is set to inherit
  • Accessibility:
  • Fixed smart invert to handle the picture elements on foxnews.com
  • Rendering:
  • Fixed drawing an image srcRect and imageRect to be in the same orientation of destRect
  • Fixed a missing gradient banner on fastclick.com
  • Web API:
  • Fixed querySelector("#u0000") to match an element with ID U+FFFD
  • Fixed scroll snap in subframes when async overflow scroll is enabled
  • Fixed zoom changes to not affect ResizeObserverSize
  • Updated CanvasRenderingContext2D.drawImage to ignore the EXIF orientation if the image-orientation is none
  • Updated documentFragment.getElementById() not work for empty-string IDs
  • Updated baseURL for a module script to be the response URL, not the request URL
  • Web Inspector:
  • Elements Tab:
  • De-indented items in the Variables section in the Computed sidebar panel so that wrapped content doesn't line up with --
  • Sources Tab:
  • Added support for copying selected call frame(s) in the Call Stack section
  • Added a "Step" button that continues execution to the next expression in the current call frame
  • Treated comma sub-expressions as separate statements to provide more intuitive formatting, additional breakpoint opportunities, and better stepping functionality
  • Storage Tab:
  • Provided a way to delete multiple localStorage or sessionStorage entries
  • Allowed cookies to be set with no value
  • Fixed an issue where cookies weren’t shown on pages that have subframes that have been denied access to cookies
  • Console Tab:
  • Ensured that long strings are not truncated when passed to console functions
  • Search Tab:
  • Added a setting that controls whether search field is populated with the current selection when using the global search shortcut ⇧⌘F
  • Miscellaneous:
  • Increased the auto-inspect debugger timeout delay to account for slower networks/devices

New in Safari 13.2 Technology Preview 104 (Apr 9, 2020)

  • Web Inspector:
  • Elements:
  • Created a visual editor for box-shadow
  • Network
  • Change "Preserve Log" to be the last navigation item to be hidden at small widths
  • Ensure that the method is escaped when using “Copy as cURL”
  • Sources:
  • If the hovered object is a DOM node, highlight it when hovering the title in the object preview popup
  • Storage:
  • Added support for editing cookies
  • Console:
  • Show logs for Intelligent Tracking Prevention Debug Mode and Ad Click Attribution Debug Mode in the Console
  • Added a console message when legacy TLS is used
  • Miscellaneous:
  • Added a new WebSocket icon
  • Added the keyboard shortcut for showing the Search Tab and Settings Tab to the titles of their respective tab tab items
  • Fixed a bug where the tab bar thought it was too wide causing a tab bar item to be hidden
  • Fixed a bug where the currently focused node was changed when detaching into a separate window
  • Prevent disabled buttons from being focusable
  • Web API:
  • Added HTTP3 as an experimental feature
  • Avoided querying pasteboard strings while dragging content over a potential drop target
  • Added label text to suggested values for a element
  • Fixed dropdown suggestions table able to be scrolled too far
  • Fixed a change event getting dispatched when a gets changed without focus
  • Fixed event listeners registered with the once option that get garbage collected too soon
  • Fixed the name of X-Content-Type HTTP header in console logging
  • Fixed a bug that could cause elements to disappear with combinations of transforms and overflow
  • Fixed function passed to addEventListener may get garbage collected before the event listener is even added
  • Prevented Force Touch preview on file:/// URL works while clicking on the URL is blocked
  • Removed synchronous termination of service workers
  • Sanitized the suggested download filename
  • Updated Intl.NumberFormat.prototype.format to preserve a sign of -0
  • Updated to make sure a preflight fails if response headers are invalid
  • Updated to consider the referrer-policy in the append Origin header algorithm
  • CSS:
  • Add support for :is()
  • Fixed changes in grid or elements inside the grid affecting margin on other elements in the grid
  • Web Animations:
  • Marked promises as handled when rejected
  • Fixed onwebkit{animation, transition}XX handlers missing from Document
  • Intersection Observer:
  • Fixed Intersection Observer intersections when zoomed in
  • Media:
  • Changed HTMLTrackElement to be pending while it is waiting for LoadableTextTrack request
  • Fixed animated PNG issue where it would play the frames one time more than the image loopCount
  • WebRTC:
  • Added initial support for WebRTC HEVC
  • Applied video rotation at the source level if WebRTC sink ask so
  • Fixed RTCRtpSender of kind video to have a null dtmf attribute
  • Fixed audio failing to capture stream if the AudioSession gets interrupted
  • Replaced the host candidate IP address in SDP with the corresponding mDNS name
  • Supported inserting text or dictation alternative by simulating keyboard input
  • Supported resolution of IPv6 STUN/TURN addresses
  • WebAuthn:
  • Improved title and text used in prompts
  • Bug Fixes:
  • Fixed getting stuck in a loading state when seeking on hulu.com
  • Safari extensions:
  • Added support for restoring extension tabs across launches of Safari

New in Safari 13.2 Technology Preview 103 (Mar 27, 2020)

  • Web Inspector:
  • Merged the toolbar and tab bar to save vertical space
  • Redesigned resource and action identifier icons
  • Allowed the use of dark mode theme independently from the system-wide theme
  • Annotated tabs so that they are properly recognized as such
  • Changed to not re-cycle through items in the Styles or Computed details sidebar panel when pressing tab
  • Fixed clicking a button navigation item to focus it, allowing for subsequent keyboard navigation
  • Supported expanding and collapsing details sections with the spacebar or “enter” key
  • Supported cycling through scope bar items by pressing tab
  • Web API:
  • Aligned garbage collection for XMLHttpRequest objects with the specification
  • Aligned Fetch ‘request Origin header’ behavior with the specification
  • Changed the case of an activating service worker getting terminated to go to an activated state
  • Changed to load async scripts with a low priority
  • Changed to accept a Document as an explicit root
  • Implemented wildcard behavior for Cross-Origin-Expose-Headers
  • CSS:
  • Made the style invalidation accurate for user-action pseudo classes
  • Changed to avoid full style resolution on Element::focus()
  • Page loading:
  • Changed fixed sized SVG content to be taken into account when computing visually not empty status
  • Changed layers going from visually empty to non-empty to immediately trigger layer unfreezing
  • Back-Forward Cache:
  • Added quirk to disable to back-forward cache on docs.google.com
  • JavaScript:
  • Updated custom element caching to be aware of different worlds
  • Bug Fixes:
  • Fixed leaking DocumentTimeline and CSSTransition objects on CNN.com
  • Fixed icloud.com notes text in titles and headings is distorted
  • Fixed maps.google.com not loading properly with screen flickering when zooming

New in Safari 13.2 Technology Preview 102 (Mar 6, 2020)

  • Web Inspector:
  • Fixed VoiceOver to read the selected panel tab
  • Updated resource, type, and timeline icons for both light and dark modes
  • Web API:
  • Changed the disk cache policy to allow resources larger than 10MB to be cached
  • Defered execution of async scripts until the document is loaded
  • Fixed value sanitization for input[type=text] to not truncate the value at a control character
  • Fixed new FontFace() to not throw when failing to parse arguments
  • Implemented EventTarget constructor
  • Set User-Agent in preconnect requests
  • IndexedDB:
  • Improved the speed of index cursor iteration when there are a lot of index records from different object stores
  • Changed to prefetch cursor records on client side
  • Apple Pay:
  • Added support for Apple Pay buttons with custom corner radii
  • Web Animations:
  • Ensured CSS Transition and CSS Animation events are queued, sorted and dispatched by their timeline
  • Ensured animations that lose their effect don't schedule an animation update
  • Fixed repeated animations on pseudo elements failing to run after a while
  • Fixed style changes due to Web Animations to not trigger CSS Transitions
  • CSS:
  • Improved performance of track sizing algorithm for spanning items
  • Rendering:
  • Changed to not fire timers when there is a pending rendering update
  • Fixed a white flash that can occur if JavaScript forces an early layout
  • Web Driver
  • Fixed Automation.setWindowFrameOfBrowsingContext to accept negative origin values

New in Safari 13.2 Technology Preview 101 (Feb 20, 2020)

  • Web Inspector:
  • Added a special breakpoint for controlling whether debugger statements pause in the Sources tab
  • Changed to encode binary web socket frames using base64
  • Fixed elements closing tag showing reversed in RTL mode
  • Fixed the bezier editor popover to be strictly LTR
  • Fixed dragging handles in the easing popover selecting sidebar text
  • Updated some cookie table column headers to not be localizable
  • Media:
  • Corrected TextTrack sorting with invalid BCP47 language
  • Fixed AirPlay sometimes stopping after 60 minutes of playback
  • Apple Pay:
  • Redacted billing contact during payment method selection
  • JavaScript:
  • Added support for BigInt literal as PropertyName
  • Web Animations:
  • Fixed accelerated animations freezing on a render tree rebuild
  • Fixed an event loop cycle between an animation finishing and it being removed from GraphicsLayerCA
  • Fixed an issue where out-of-view transitions could trigger high memory use
  • Prevented playing an accelerated animation that was canceled before it was committed
  • WebAuthn:
  • Changed authenticatorGetAssertion to be sent without pinAuth if user verification is discouraged
  • WebRTC:
  • Aligned getDisplayMedia() with standards specifications
  • Fixed not processing newly gathered ICE candidates if the document is suspended
  • CSS:
  • Fixed CSS rules with the same selector from several large stylesheets getting applied in the wrong order
  • Rendering:
  • Fixed pages that trigger a redirect sometimes getting left blank
  • Web API:
  • Disallowed setting base URL to a data or JavaScript URL
  • Fixed highlight text decorations to work with all decoration types and colors
  • Implemented OffscreenCanvas.copiedImage
  • Added standard gamepad mapping for GameControllerGamepads
  • Tightened up stylesheet loading
  • Fixed quantifiers after lookahead assertions to be syntax errors in Unicode patterns only
  • Fixed identity escapes to be syntax errors in Unicode patterns only
  • IndexedDB:
  • Fixed iteration of cursors skipping records if deleted
  • Back-forward Cache:
  • Updated to remember if legacy TLS was used in the back-forward cache

New in Safari 13.2 Technology Preview 100 (Feb 20, 2020)

  • Web Inspector:
  • Added links to Web Inspector Reference documentation
  • Renamed the Canvas Tab to be the Graphics Tab, and included basic information and graphical representations of all Web Animation objects that exist in the inspected page
  • Allowed developers to evaluate arbitrary JavaScript in isolated worlds created by Safari App Extensions via the execution context picker in the Console
  • Web Animations:
  • Added support for the options parameter to getAnimations()
  • Changed animations to run accelerated even if other animations targeting the same element are not accelerated
  • Fixed changing the delay of an accelerated animation to correctly seek
  • Fixed a leak of CSS Animations when removing its animation-name property
  • Separated setting a timeline’s current time from updating its animations
  • Updated all DocumentTimeline objects when updating animations
  • WebAuthn:
  • Fixed User Verification (UV) option present on a CTAP2 authenticatorMakeCredential while the authenticator has not advertised support for it
  • Media:
  • Added support for allow="fullscreen" feature policy
  • Changed EME to only emit an array of persistent-usage-records when more than one record is discovered
  • Corrected VTT Cue Style handling to match the specification
  • Fixed decoder glitches when watching videos on CNN.com
  • Fixed AirPlay placard not visible when AirPlay is entered in fullscreen mode
  • Fixed video sound sometimes continuing to play in page cache
  • Fixed HTMLMediaElement to not remove the media session at DOM suspension time
  • Web API:
  • Added finite timeout when synchronously terminating a service worker
  • Fixed :matches() to correctly combine with pseudo elements
  • Fixed automatic link replacement via “Smart links” to emit insertLink input events
  • Disabled Service Workers before terminating an unresponsive service worker process
  • Implemented “create a potential-CORS request”
  • Implemented transferable property of OffscreenCanvas
  • Improved performance speed of index records deletion in IndexedDB
  • Made pasteboard markup sanitization more robust
  • Used Visible Position to calculate Positions for highlights
  • CSS:
  • Fixed EXIF orientation ignored for some CSS images
  • Fixed elements no longer stay fixed with elastic overscroll
  • WebRTC:
  • Added support for MediaRecorder.requestData
  • JavaScript:
  • Fixed DateMath to accept more ISO-8601 timezone designators even if they are not included in ECMA262 to produce expected results in the wild code
  • WebGL2:
  • Implemented sub-source texImage2D and texSubImage2D

New in Safari 13.1 Technology Preview 99 (Jan 23, 2020)

  • Legacy Plug-Ins:
  • Removed support for Adobe Flash
  • Web Inspector:
  • Elements:
  • Enabled the P3 color picker
  • Added RGBA input fields for the P3 color picker
  • Added support for manipulating the value with the arrow keys in the color picker
  • Added color() suggestion when editing a CSS property that accepts color values
  • Sources:
  • Allowed editing of style sheets injected by Safari App Extensions
  • Console:
  • Ensured that the clear button is always visible, even at smaller widths
  • Web API:
  • Added support for using valid non-zero width and height attributes to become the default aspect ratio of
  • Added a check to ensure Service Workers terminate after a period of time when thread blocking
  • Aligned Range.intersectsNode() with the DOM specification
  • Changed attributes to be processed on srcdoc attribute removal
  • Changed .naturalWidth to return the density-corrected intrinsic width
  • Changed with non-CSS type to not be retrieved
  • Changed Object.keys to throw if called on a module namespace object with uninitialized binding
  • Changed Object.preventExtensions to throw if not successful
  • Changed Document.createAttribute() to take in a localName, not a qualifiedName
  • Changed the supported MIME types for image encoding to be supported image MIME types
  • Denied Notification API access for non-secure contexts
  • Fixed dispatchEvent() to not clear the event’s isTrusted flag when it returns early
  • Fixed String.prototype.replace() incorrectly handling named references on regular expressions without named groups
  • Fixed URL parser in Fetch not always using UTF-8
  • Fixed encoding entities correctly in element during XML serialization of text
  • Removed the low priority resource load for sendBeacon to reduce failure rates
  • Updated Fetch to Handle empty Location value
  • Cookies:
  • Fixed document.cookie to not do a sync IPC to the network process for iframes that do not have storage access
  • CSS:
  • Added support for image-set() standard syntax
  • Added support for rendering highlights specified in CSS Highlight API
  • Implemented a network error when fetching a linked stylesheet resource fails
  • Improved performance by invalidating only affected elements after media query evaluation changes
  • Fixed rejected changes between similar unprefixed and prefixed gradient syntax
  • Excluded implicit CSS grid tracks from the resolved value
  • Media:
  • Enabled HDR Media Capabilities by default
  • Fixed specification violation in Font Loading API
  • Ignored URL host for schemes that are not using host information
  • Implemented “create a potential-CORS request”
  • Implemented transceiver setCodecPreferences
  • Made text track loading set same-origin fallback flag
  • Fixed MediaKeySession.load() failing
  • WebRTC:
  • Removed the certificate info checks related to getUserMedia
  • Payment Request:
  • Converted the payment method data IDL in the PaymentRequest constructor
  • Web Animations:
  • Stopped creating CSS Animations for elements
  • JavaScript:
  • Fixed invalid date parsing for ISO 8601 strings when no timezone given
  • Fixed RegExp.prototype[Symbol.replace] to support named capture groups
  • Web Share API:
  • Added support for a user gesture to allow using the Web Share API even when preceded by an XHR call
  • WebDriver:
  • Reimplemented the “Execute Async Script” command with Promises to match the specification
  • Fixed handling of session timeouts for values higher than MAX_INT
  • Fixed scripts being executed in the wrong page context after a history navigation
  • IndexedDB:
  • Improved performance by removing the timer for pending operations in IDBTransaction

New in Safari 13.1 Technology Preview 98 (Jan 9, 2020)

  • Web Inspector:
  • Elements:
  • Removed the “Show/Hide Shadow DOM” navigation item
  • Restricted showing paint flashing and compositing borders to the Web Inspector session
  • Ensure that a bezier swatch is shown for CSS timing function keywords
  • Fixed hovering over an invalid value while holding ⌘ to change the color of the text
  • Fixed the Classes input to not display on top of other content
  • Network:
  • Fixed pressing ⌘F when no network item is selected to focus the filter bar
  • Sources:
  • Fixed non-regex local overrides to not apply to resources that only contain the URL instead of completely matching the URL
  • Storage:
  • Added support for filtering IndexedDB stores and indexes
  • Audit:
  • Fixed selected item before entering edit mode not being reselected after exiting edit mode
  • Fixed importing a result with DOM nodes that don’t match the inspected page appearing as empty lines
  • Console:
  • Ensure copying an evaluation result does not include the saved variable index
  • Search:
  • Added basic “No Search Results” text with a clickable help navigation item that reveals and focuses the navigation sidebar search input when there is no active search
  • Web Animations:
  • Enabled Web Animations CSS Integration, a new implementation of CSS Animations and CSS Transitions, by default
  • Fixed layout of element children with forwards-filling opacity animation that can be incorrect after removal
  • Implemented Animation.commitStyles()
  • Media:
  • Enabled the Generic Text Track Cue API
  • Rendering:
  • Ensured transparency layers are properly ended when only painting root background
  • Fixed an issue where elements could jump to the wrong position after some compositing-related style changes
  • Web API:
  • Implemented OffscreenCanvas.convertToBlob
  • Changed setting toString or valueOf on a cross-origin Location object to throw a SecurityError
  • Fixed an incorrect association of the URL object with the port value
  • Prevented synchronous XHR in beforeunload and unload event handlers
  • CSS:
  • Changed to not perform range checking for calc() at parse time
  • Changed media queries in img sizes attribute to evaluate dynamically
  • Implemented the clamp() function
  • Improved computed values of calc() functions to match the specification
  • Changed calc() to not do range checking at parse time
  • JavaScript:
  • Changed Object.prototype.isPrototypeOf() to check if the passed in value is a non-object first
  • WebRTC:
  • Added protection for WebRTC network monitoring to wait forever in edge cases
  • Fixed audio elements that resumed playback after getUserMedia
  • Clipboard API:
  • Added sanitization for HTML and image data written using clipboard.write
  • Browser Changes:
  • Changed to issue the load sooner on swipe back/forward navigation
  • Re-disabled TLS 1.0 and TLS 1.1 by default
  • WebAssembly:
  • Changed to validate and generate bytecode in a single pass

New in Safari 13.1 Technology Preview 97 (Dec 19, 2019)

  • Resize Observer:
  • Enabled Resize Observer by default
  • WebAuthn:
  • Added UI with instructions for authenticating with a security key while authenticating
  • Added support for legacy Google NFC Titan security keys
  • Web Animations:
  • Enabled Web Animations CSS Integration, a new implementation of CSS Animations and CSS Transitions, by default
  • Added support for AnimationEvent.pseudoElement
  • Fixed retargeted transitions targeting accelerated properties that do not stop the original transition
  • Fixed the easing property for a CSS transition effect
  • Fixed the transform property always none for getKeyframes() output of a CSS Animation
  • Fixed layout of element children with forwards-filling opacity animation that can be incorrect after removal
  • Fixed getKeyframes() to return the right timing function for declarative animations
  • Implemented Animation.commitStyles()
  • Web Inspector:
  • Elements:
  • Added support for multiline CSS property values
  • Added support for highlighting nodes that match CSS rules with pseudo-selectors
  • Added color picker support for P3 color space
  • Fixed an issue where copying multiple DOM nodes would only copy the last selected DOM node
  • Fixed aqua and fuchsia not being detected as CSS colors
  • Outlined sRGB-safe areas on the P3 color picker
  • Sources:
  • Added a context menu item to reveal the local override when a resource is loaded from it
  • Added support for matching local overrides based on URL pattern in addition to exact match
  • Changed to prefer non-blackboxed scripts when showing a source code location link
  • Changed to fire Node Removed breakpoints whenever the DOM node is removed from the main DOM tree, not just when it’s removed from it’s parent
  • Fixed “Toggle Visibility” context menu item to work for elements inside a shadow tree
  • Made the default content of the Inspector Bootstrap Script a comment that explains how it works
  • Moved the “Local Override…” creation item from the Breakpoints section options menu to the Create Resource menu
  • Made call frames from blackboxed scripts visually distinct
  • Timelines:
  • Added a marker for when a stop was requested
  • Added a timeline that shows information about any recorded CSS animation/transition
  • Labeled ResizeObserver callbacks in the JavaScript & Events timeline
  • Layers:
  • Enabled the Layers Tab by default
  • Console:
  • Defaulted to focusing the console prompt if no other content is focused after opening Web Inspector
  • Fixed an issue where the saved result value was still being shown after navigating
  • Settings:
  • Enabled line wrapping by default
  • Rendering:
  • Fixed image flashing with transform: rotate animation
  • Implemented accelerated video-to-texture upload path for ANGLE backend for WebGL
  • Back-Forward Cache:
  • Added site-specific back-forward cache quirk to work around an issue on vimeo.com
  • Fixed WebAnimation to never prevent entering the back-forward cache
  • Fixed PaymentRequest and PaymentResponse to not prevent entering the back-forward cache
  • Fixed UserMediaRequest to not prevent entering the back-forward cache
  • Made MediaStream and MediaStreamTrack back-forward cache friendly
  • SVG:
  • Added the orient property of the interface SVGMarkerElement
  • Added percentage support for fill-opacity, stroke-opacity, stop-opacity, and flood-opacity
  • Changed properties that take to not accept 3 values
  • Disabled SVG shapes should not be hit
  • Fixed SVGGeometryElement.getPointAtLength to clamp its argument
  • Fixed opacity to always serialize as a number
  • Clipboard API:
  • Added some infrastructure to resolve ClipboardItems into pasteboard data for writing
  • Added support for Clipboard.readText()
  • CSS:
  • Added support for the Q unit
  • Changed to not perform range checking for calc() at parse time
  • Changed CSS Transitions and CSS Animations properties to treat unit-less 0 as an invalid value for times
  • Changed media queries in img sizes attribute to evaluate dynamically
  • Fixed CSS grid line name positions after auto repeat with no line names
  • Fixed -webkit-font-smoothing: none not antialiasing subsequent elements
  • Fixed ::before and ::after elements not filling their grid cell when the container has display: contents
  • Fixed calc() serialization to match the specifications
  • Implemented the CSS clamp() function
  • Remote Playback API:
  • Enabled Remote Playback API by default
  • Ensured the MediaRemote callback always called
  • Media:
  • Batched multiple EME key requests into one request and response
  • JavaScript:
  • Added BigInt support for ++ and --
  • Fixed Intl.DateTimeFormat to return resolvedOptions in the correct order
  • Optimized Promise runtime functions
  • Implement String.prototype.replaceAll
  • Picture-in-Picture Web API:
  • Enabled the Picture-in-Picture API by default
  • Added support for the :picture-in-picture CSS pseudo-class for video elements in picture-in-picture mode
  • Fixed picture-in-picture events to fire when entering or exiting the picture-in-picture mode
  • WebAssembly:
  • Created a WebAssembly interpreter
  • Support WebAssembly.Global
  • Web API:
  • Added fullscreen style support for reddit.com
  • Changed the file input to fire an input event before the change event
  • Changed hidden framesets to provide default edgeInfo value
  • Fixed .setAttribute("value") to update the value
  • Fixed some captcha images rendering as a blank white space
  • Fixed content sometimes disappearing for a with controls and clipping
  • Fixed a bug where focusing a shadow host which delegates focus will properly skip inner shadow hosts that delegate focus
  • Fixed getComputedStyle returning auto for zIndex property even after it has been set on non-positioned elements
  • Fixed very slow tile rendering due to event region painting in Google Docs spreadsheets
  • Fixed an incorrect association of the URL object with the value port
  • Fixed notification permissions not getting remembered for origins without a port
  • Fixed VeryHigh priority loads

New in Safari 13.1 Technology Preview 96 (Dec 11, 2019)

  • Web Animations:
  • Enabled the Web Animations JavaScript API by default
  • WebAuthN:
  • Implemented AuthenticatorCancel
  • SVG:
  • Added auto behavior to the width and height properties of the SVG element
  • Added bounding-box keyword to pointer-events
  • Fixed SVGElement to conform with SVG2
  • Loaded event must be fired only for the SVG structurally external elements and the outermost SVG element
  • Removed the viewTarget property of SVGViewElement
  • Web API:
  • Added strictness to request’s Content-Type
  • Changed XMLHttpRequest.responseXML url to be the HTTP response URL
  • Changed String.prototype.matchAll to throw on non-global regex
  • Fixed a bad is array assertion JSON.parse
  • Fixed setting border-radius on element clipping the top and left sections of the video
  • Ignored document.open or document.write after the active parser has been aborted
  • Made requestIdleCallback suspendable
  • CSS:
  • Added content-box and stroke-box to the transform-box property
  • Added support for gradients using stops with multiple positions
  • Fixed a crash when parsing gradients with multi-position color stops
  • Clipboard API:
  • Implemented ClipboardItem.getType()
  • Implemented navigator.clipboard.read()
  • CSS Shadow Parts:
  • Changed :part rules to be able to override the style attribute
  • JavaScript:
  • Removed wasmAwareLexicalGlobalObject
  • Picture-in-Picture API:
  • Implemented EnterPictureInPictureEvent support
  • Added runtime logging for the Picture-in-Picture API
  • Media:
  • Added support for callbacks for manifest events
  • Service Worker:
  • Fixed MP4 video element broken with Service Worker
  • Back-Forward Cache:
  • Prevented putting pages that have not reached the non-visually empty layout milestone into the back-forward cache
  • Fixed Notification to not prevent entering the back-forward cache
  • Fixed AudioContext to not prevent entering the back-forward cache
  • Fixed FetchResponse to not prevent entering the back-forward cache
  • Fixed XMLHttpRequest to not prevent entering the back-forward cache
  • Web Inspector:
  • Elements:
  • Added clickable icons for each CSS rule that distinguish the rule’s type
  • Fixed $0 being shown for the wrong node when selecting elements in a user agent shadow tree
  • Fixed the selection color dimmed when inside a shadow tree
  • Replaced color wheel with square HSB color picker
  • Sources:
  • Fixed the content of the function definition popover sometimes getting cut off
  • Changed the function/object preview popover to keep the name sticky to the top
  • Provided a way to inject “bootstrap” JavaScript into the page as the first script executed
  • WebDriver:
  • Fixed the Element Click endpoint triggering a click at an incorrect y-coordinate

New in Safari 13.1 Technology Preview 95 (Oct 31, 2019)

  • Shadow DOM:
  • Added support for ShadowRoot.delegateFocus
  • Images:
  • Added image/apng as a supported mime type for images
  • Fixed a bug with filter outsets that caused black lines on images on wikipedia
  • WebRTC:
  • Removed unified plan runtime flag
  • Clipboard API:
  • Implemented getType() for ClipboardItems created from bindings
  • Refactored custom pasteboard writing codepaths to handle multiple items
  • Refactored Pasteboard item reading functions
  • Supported writing multiple PasteboardCustomData with SharedBuffers to the pasteboard
  • Added support for programmatic paste requests on macOS
  • Picture-in-Picture Web API:
  • Implemented HTMLVideoElement.requestPictureInPicture() and Document.exitPictureInPicture()
  • Service Workers:
  • Changed to reject a response body promise in the case of a failure happening after the HTTP response
  • Prevented timeout for a load intercepted by a Service Worker that receives a response
  • Back-Forward Cache:
  • Fixed pages frequently failing to enter the back-forward cache due to frames with a quick redirect
  • Fixed back-forward cache after doing a Favorites navigation
  • Fixed clearing website data for a given session to not shut down cached processes for other sessions
  • Fixed DOMCacheStorage to not prevent pages from entering the back-forward cache
  • Web Inspector:
  • Sources:
  • Enabled the new Sources Tab by default, which merges the Debugger Tab and Resources Tab into a single UI
  • Added support for automatically creating an image or font local override when dragging content over a non-overridden resource
  • Debugger:
  • Added support for pattern-based script blackboxing by URL in the Settings Tab
  • Prevented source mapped resources from being blackboxed
  • Elements:
  • Included a filter option in the Computed details sidebar for condensing all related longhand properties into their respective shorthand properties

New in Safari 13.1 Technology Preview 94 (Oct 17, 2019)

  • CSS Shadow Parts:
  • Added support for the ::part() pseudo element from CSS Shadow Parts
  • Web Animations:
  • Fixed removing an element to only cancel its declarative animations
  • Storage Access API:
  • Changed document.hasStorageAccess() to return true when the cookie policy allows access and false otherwise, for third parties not blocked by ITP
  • WebRTC:
  • Changed to allow suspending RTCPeerConnection when not connected
  • Media:
  • Updated MediaDevices to require a secure context
  • JavaScript:
  • Changed toExponential, toFixed, and toPrecision to allow arguments up to 100
  • CSS Grid:
  • Preserved auto repeat() in getComputedStyle() for non-grids
  • Web API:
  • Accepted two values in the overflow shorthand
  • Allowed using WebGL 2 when USE_ANGLE=1
  • Changed the default statusText of Response to an empty string
  • Changed CSS ellipse() to accept 0 or 2
  • Changed Service Worker Fetch events to time out
  • Corrected clip-path mapping
  • Changed Fetch API no-CORs check to take into account same-origin
  • Changed radio button groups to be scoped by shadow boundaries
  • Fixed a newly inserted element to get assigned to a named slot if slot assignments had already happened
  • Fixed AbortSignal to always emit the abort signal
  • Fixed JSON.parse to correctly handle array proxies
  • Made table’s clientWidth and clientHeight include its border sizes
  • Updated attachShadow to support attaching a shadow root to a main element
  • Updated Fetch data URL HEAD request to result in empty response body
  • Updated radial gradients to reject negative radii
  • Updated ImageBitmap to be serializable
  • Web Inspector:
  • Elements:
  • Fixed issue where properties were always shown as invalid if they didn’t match the selected node
  • Resources:
  • Fixed issue where newlines were being unexpectedly added inside template string expressions
  • Include local resource overrides in the Open Resource dialog
  • Debugger:
  • Prevent blackboxing of scripts that haven’t finished loading or failed to load
  • Canvas:
  • Made it more obvious that the cards in the Overview are clickable
  • Show “No Preview Available” instead of an empty preview for WebGPU devices
  • Support editing of WebGPU render pipelines that use the same shader module for vertex and fragment
  • Fixed issue where clicking on the Overview path component didn’t work
  • Dark Mode: Minor dark mode style fixes
  • Settings:
  • Enable the image transparency grid by default and create a checkbox for it
  • WEBDRIVER:
  • Fixed an issue that prevented sudo safaridriver --enable from working correctly
  • back-forward Cache:
  • Allowed pages served over HTTPS with Cache-Control: no-store header to enter the back-forward cache
  • Allowed pages using EventSource to enter the back-forward cache
  • Allowed pages using FontFaceSet to enter the back-forward cache
  • Allowed pages using IDBIndex to enter the back-forward cache
  • Added basic back-forward cache support for RTCPeerConnection
  • Changed IDBTransaction and IDBObjectStore to not prevent a page from entering the back-forward cache
  • Fixed pages that frequently fail to enter the back-forward cache due to pending loads
  • Fixed pages using WebGLRenderingContext to enter the back-forward cache
  • Fixed pages with Web Workers to enter the back-forward cache
  • Fixed pages using PendingImageBitmap to enter the back-forward cache
  • Fixed ServiceWorkerContainer to never prevent a page from entering the back-forward cache
  • Fixed XMLHttpRequest sometimes preventing pages from entering the back-forward cache
  • Fixed IDBRequest to not prevent a page from entering the back-forward cache
  • Fixed provisional and scheduled loads in subframes to not prevent a page from entering the back-forward cache
  • Fixed RTCDataChannel to not prevent entering back-forward cache except if in an open state
  • Made fixes to allow youtube.com to enter the back-forward cache on macOS
  • Improved Service Worker support for back-forward cache
  • IndexedDB:
  • Added size estimate for key path when estimating task size
  • Fixed wrapping CryptoKeys for IndexedDB during serialization
  • Included size of index records in size estimate of put/add task
  • Updated size to actual disk usage only when estimated increase is bigger than the space available

New in Safari 13.1 Technology Preview 93 (Oct 4, 2019)

  • Resource Timing:
  • Updated to report performance entries with all HTTP status codes
  • SVG:
  • Added auto behavior for rx and ry to the SVG and elements
  • Fixed SVG to reset the element to its first animation frame if its fill is set to "remove"
  • Fixed SMIL animations of SVG element having no effect
  • Web API:
  • Added support for sync-xhr feature policy
  • Changed to use the same parser for and Refresh HTTP header
  • Fixed Node.replaceChild()’s pre-replacement validation order
  • Fixed parsing Access-Control-Expose-Headers correctly
  • Fixed preserving Content-Type to be preserved on responses created from DOMCache
  • Fixed Date.prototype.toJSON to properly execute
  • Fixed HTMLVideoElement with a broken poster image to take a square dimension
  • Fixed a case where the Intersection Observer intersection ratio becomes larger than 1
  • Fixed cropped dropdown shadow for
  • Fixed blocking insecure WebSocket URL connection attempts by Workers on secure pages
  • Fixed posting a message to a redundant Service Worker should fail silently instead of throwing
  • Improved CSP inheritance semantics
  • Provided a prototype for AR QuickLook to trigger processing in the originating page
  • Removed gopher from the list of special schemes in URLParser
  • Web Inspector:
  • Elements:
  • Prevented showing the Changes details sidebar panel when selecting text nodes
  • Resources:
  • Added support for pretty printing HTML content
  • Added support for pretty printing XML-like content
  • Canvas:
  • Added GPUDevice content previews and device configuration
  • Added a list of any GPURenderPipeline/GPUComputePipeline, including the content of any GPUShaderModule, for the associated GPUDevice
  • Console:
  • Added a “Show More” button to see more than 100 items in arrays / collections
  • Decreased the amount of horizontal space used by autocompletion bubbles
  • Improved autocompletion typing performance by avoiding global forced layouts
  • Miscellaneous:
  • Changed to allow undocked Web Inspector windows to be dragged around by the title text
  • Accessibility:
  • Exposed misspelling ranges for editable content to accessibility clients.
  • Apple Pay:
  • Added support for telling websites why a session was cancelled
  • Cleaned up handling of summary items and payment method updates
  • JavaScript:
  • Added missing syntax errors for await in function parameter default expressions
  • WebGPU:
  • Ensured structs and arrays with pointers as fields are disallowed
  • Removed null from the standard library
  • Web Authentication:
  • Added support for more than two FIDO protocol versions
  • WebDriver:
  • Fixed a bug that caused safaridriver —enable to not take effect immediately in some cases.

New in Safari 13 (Sep 25, 2019)

  • General:
  • New Features:
  • Added Desktop-class Browsing to Safari for iPad. Safari for iPad displays the same desktop websites as Safari for macOS, and provides the same capabilities. In addition it has more keyboard shortcuts, a download manager with background downloads, and support for top productivity websites.
  • Added opt-in dark mode support for websites in Safari for iOS.
  • Added support for aborting Fetch requests.
  • Authentication and Passwords:
  • New Features:
  • Updated Safari to prompt the user to change weak passwords when signing into a website. Requesting a password change uses the well-known URL for changing passwords, enabling websites to specify the page to open for updating a password.
  • Added support for FIDO2-compliant USB security keys with the Web Authentication standard in Safari on macOS.
  • Added support for Sign in With Apple to Safari and to WKWebView.
  • Security and Privacy:
  • New Features:
  • Added a permission API on iOS for DeviceMotionEvent and DeviceOrientationEvent.
  • Changed the behavior for third party iframes to prevent them automatically navigating the page.
  • Updated Intelligent Tracking Prevention to prevent cross-site tracking through referrer and through link decoration.
  • Improved the privacy of local WebRTC data connections with mDNS ICE candidates.
  • Increased the security for WebKit sandboxes on iOS and macOS.
  • Layout and Rendering:
  • New Features:
  • Added support for one-finger accelerated scrolling to all frames and overflow:scroll elements eliminating the need to set-webkit-overflow-scrolling: touch.
  • Changed the default behavior on iPad for wide web pages with responsive meta-tags that require horizontal scrolling. Pages are scaled to prevent horizontal scrolling and any text is resized to preserve legibility.
  • Added support for CSS conic gradients.
  • Performance:
  • New Features:
  • Reduced the initial rendering time for webpages on iOS.
  • Added automatic support for Fast Tap to desktop websites on iPad.
  • Reduced load time up to 50% for webpages on watchOS.
  • Reduced the amount of memory used by JavaScript, including for non-web clients.
  • Improved the MotionMark graphics performance benchmark score by 10%.
  • Web API:
  • New Features:
  • Added support for the __Secure- and __Host- cookie prefixes in beta 3.
  • Improved iPad hardware keyboard support for websites including focus navigation and scrolling with the arrow keys.
  • Added support for the Pointer Events API enabling consistent access to mouse, trackpad, touch, and Apple Pencil events.
  • Added support for the Visual Viewport API for adjusting web content to avoid overlays, such as the onscreen keyboard.
  • Added support for programmatic paste with user consent to Safari for iOS.
  • Updated editing callouts to avoid in-page controls.
  • Added intelligent whitespace to editable WebViews and editable areas of webpages.
  • Payment Request API:
  • New Features:
  • Added support for Apple Pay on the Web to WKWebView. Note that using script injection APIs, such as WKUserScript or evaluateJavaScript(_:completionHandler:) disables Apple Pay for that view.
  • Media:
  • New Features:
  • Added support for the decodingInfo() method of the Media Capabilities API for checking supported codecs, efficiently supported codecs, and optional codec features including alpha.
  • Added the ability to Safari for macOS to share your screen with others using only web technologies. Plug-ins are no longer required.
  • Updated Safari for iPad to support Media Source Extensions.
  • Added support for the navigator.mediaDevices property of the Media Capture and Streams API to SFSafariViewController.
  • Resolved Issues:
  • Transparency in video with an alpha channel now works correctly for all supported video formats.
  • Safari App Extension API:
  • New Features:
  • Added an API for page navigation notifications.
  • Added support for associated Safari App Extensions receiving blocked content notifications from Content Blocker Safari Extensions.
  • Web Inspector and Tools:
  • New Features:
  • Added Safari WebDriver to iOS.
  • Added importing and exporting of recorded timeline data.
  • Added the CPU Usage Timeline for analyzing and improving the power efficiency of websites.
  • Added the Audit tab for running tests against web content including a built-in accessibility audit, importing and exporting results, and creating custom audits.
  • Added the Changes sidebar in the Elements tab to track CSS changes in the Styles sidebar.
  • Added the Device Settings menu to override developer-related Safari settings when Web Inspector is connected to an iOS device.
  • Added a Security tab to the resources view of the Network tab to review certificates and TLS settings.
  • Increased the performance of Web Inspector for large sites.
  • Removed Features:
  • Removed support for WebSQL.
  • Removed support for Legacy Safari Extensions.
  • Disabled -webkit-overflow-scrolling: touch on iPad. All frames and scrollable overflow areas now use accelerated one-finger scrolling without changing stacking.
  • Disabled frame flattening on iOS. Frames now render in the same way as a desktop browser.
  • AuthenticationServices Framework:
  • New Features:
  • Added ASAuthorizationController to implement Sign In with Apple and to use a system-provided sign-in account picker for accounts stored in iCloud Keychain.
  • Added ASWebAuthenticationSession to the SDK for macOS.
  • Added support for using web browsers other than Safari to ASWebAuthenticationSession on macOS. For more information, see ASWebAuthenticationSessionWebBrowserSessionManager.
  • WebKit Framework:
  • New Features:
  • Added API to control desktop and mobile content modes.
  • JavaScriptCore Framework:
  • New Features:
  • Added an API for loading ES6 modules.
  • LinkPresentation Framework:
  • New Features:
  • Added LinkPresentation to the SDKs, enabling presentation of web links and better share sheet integration.

New in Safari 13 Technology Preview 92 (Sep 19, 2019)

  • JavaScript:
  • Fixed Math.round() which produced a wrong result for value prior to 0.5
  • Made Promise implementation faster
  • WebGPU:
  • Fixed matrices to have correct alignment
  • Implemented GPUUncapturedErrorEvent
  • Implemented SampleLevel(), SampleBias(), and SampleGrad() in WSL
  • Updated several interface and enum names to match specifications
  • SVG:
  • Fixed fragment-only URL url(#fragment) to be resolved against the current document regardless of the HTML element
  • Fixed SMIL animations of SVG element
  • Made a change to get the value of the href attribute or the xlink:href attribute of SVG animation elements to get the animation target element
  • Images:
  • Changed to respect EXIF orientations by default when images are rendered
  • Web API:
  • Fixed copying and pasting two paragraphs with a newline between them resulting in a stray paragraph with newline inside
  • Fixed cancelled transitions on Google image search leaving content with opacity: 0 sometimes
  • Fixed document.fonts.ready resolving too quickly
  • Fixed responseXML for XMLHttpRequest in some cases returning null if a valid Content-Type ends with +xml
  • Made tabIndex IDL attribute reflect its content attribute
  • Updated HTMLImageElement::decode() to return a resolved promise for decoding non-bitmap images
  • Updated geolocation.watchPosition() and geolocation.getCurrentPosition() to return PERMISSION_DENIED when the context is not secure
  • Service Workers:
  • Added missing origin check for Service-Worker-Allowed header
  • Added support for postMessage buffering between the Service Worker and window
  • Dropped support for registration resurrection
  • WebRTC:
  • Added support to RTCDataChannel.send(Blob)
  • Fixed audio sometimes failing to be captured in WebRTC
  • IndexedDB:
  • Changed to cache prepared SQLiteStatement in SQLiteIDBCursor to improve performance
  • Changed to use the SQL COUNT statement for count operations to improve performance
  • Updated the size of the database when the database operation is completed
  • Web Inspector:
  • Network:
  • Provided a way to view XML, HTML, and SVG resource responses as a DOM tree
  • Debugger:
  • Added support for async event listener stack traces in Workers
  • Added support for event breakpoints in Worker contexts
  • Allow script resources to be blackboxed, which will prevent the debugger from pausing in that script
  • Resources:
  • Provide a way to override the content of resources loaded over the network with local content in Web Inspector
  • Fixed issue where links to CSS resources didn’t map to the right line after pretty printing if the line is after a multiline comment
  • Fixed issue where the closing } of nested @media weren’t indented
  • Dark Mode:
  • Fixed jarring white box-shadows in the Overview Timeline View in dark mode
  • Miscellaneous:
  • Fixed import file pickers sometimes not importing
  • Accessibility:
  • Fixed children cache to be re-computed if the tab index is removed
  • Security:
  • Disabled TLS 1.0 and TLS 1.1 in WebSockets

New in Safari 13 Technology Preview 91 (Sep 5, 2019)

  • Security:
  • Disabled legacy TLS 1.0 and TLS 1.1
  • JavaScript API:
  • Added a public API for unhandled promise rejections
  • Added support for hashbang in ESNext
  • Implemented optional chaining in ESNext
  • Implemented StaticRange constructor
  • Fixed Date.prototype.toJSON to not throw an exception if toISOString returns an object
  • Fixed more missing exception checks in String.prototype
  • Fixed a bad error message when for-await-of is used in a non-async function
  • Fixed ProxyObject to not allow access to its target’s private properties
  • Updated the Promise constructor to check argument before `Construct?“
  • Updated Promise.prototype.finally to accept non-promise objects
  • JavaScript Performance:
  • Changed to avoid looking up the join function each time Array.prototype.toString is called
  • Ensured x?.y ?? z is fast
  • Media:
  • Fixed firing webkitpresentationmodechanged twice when exiting picture-in-picture
  • Updated to stop MediaDevices timer when stopping MediaDevices
  • Fixed removing fullscreen element in a requestAnimationFrame() callback after requestFullscreen() leaving fullscreen in an inconsistent state
  • Disabled devices should not be taken into account when searching for a capture device
  • Web API:
  • Started to expose Geolocation interfaces (GeolocationPosition, GeolocationPositionError, and GeolocationCoordinates) on the global Window object
  • Fixed Emoji with variation selectors to be rendered in emoji style, not text style
  • Changed SVG elements to become focusable when focus and key event listeners are added
  • Changed the default tab index of output and fieldset to be -1
  • Rendering:
  • Fixed drawing an animated image to a canvas via drawImage to draw the first frame
  • Pointer Events:
  • Fixed removing the capture element preventing future pointer events from being dispatched on macOS
  • WebDriver:
  • Fixed mouse buttons to be correctly printed in SimulatedInputDispatcher logging
  • Web Inspector:
  • Elements:
  • Fixed issue where “Copy Rule” menu item copied commented out properties incorrectly
  • Changed to automatically enable the event listener when setting a breakpoint on it in the Node details sidebar
  • Changed the DOM tree to always be LTR, even in RTL mode
  • Network:
  • Changed the Headers pane to always be LTR, even in RTL mode
  • Resources:
  • Added syntax highlighting for more CSS media queries
  • Added syntax highlighting for JavaScript BigInt
  • Added pretty printing support for more modern JavaScript language features
  • Fixed a CodeMirror issue where tabs were still used even when the “Prefer indent using” setting is set to “Spaces”
  • Debugger:
  • Added a global breakpoint for pausing in the next microtask
  • Fixed an issue where the Assertion Failures breakpoint didn’t work when inspecting a JSContext
  • Console:
  • Implemented queryHolders Command Line API function
  • Updated console.dir to start out expanded when given an object
  • Created additional Command Line API functions for other console methods
  • Changed the Console to always be LTR, even in RTL mode
  • Sources (Experimental):
  • Fixed an issue where the gear icon would move to the second line when the navigation sidebar is narrow
  • Fixed an issue where the “No Filter Results” message was displayed on top of all of the other content, preventing any interaction
  • Gave Origins their own icon in the navigation sidebar
  • Moved the resource type scope bar to be next to the filter in the navigation sidebar
  • Provided a way to create an arbitrary Inspector Style Sheet
  • Layers (Experimental):
  • Fixed the background of the 3D area not updating when transitioning to/from Dark Mode
  • WebGPU:
  • Added unary plus
  • Changed enums to not be shadowed by local variables
  • Fixed WebGPU layers not showing up sometimes
  • Implemented GPUErrors for and relax GPUBuffer validation rules
  • Made operator== native and added bool matrices
  • Updated matrices to have constructors that take a flattened list of scalars
  • Updated vertex shader and fragment shader to be able to come from two different programs

New in Safari 13 Technology Preview 90 (Aug 22, 2019)

  • Web API:
  • Fixed ping loads to not prevent page caching
  • Prevented autofocus for cross-origin iframes
  • Prevented navigations of frames about to get replaced by the result of evaluating javascript: URLs
  • Updated Element.outerHTML to link missing attribute prefixes in some cases in HTML documents
  • Updated the wrapper for navigator.geolocation to not become GC-collectable once its frame is detached
  • Media:
  • Fixed an issue where muted elements could block the display from sleeping
  • WebRTC:
  • Fixed incorrect this in negotiationneeded event
  • WebGPU:
  • Changed WebGPU to not force discrete GPU
  • Improved WHLSL compile-time performance
  • Removed char, short, and half types
  • Web Inspector:
  • Elements:
  • Added a way to disable or set a breakpoint on all event listeners for a given DOM node or event type in the Node details sidebar panel
  • Added showing @supports CSS groupings in the Styles details sidebar panel
  • Added experimental quick-action icon buttons to each CSS rule in the Styles details sidebar panel
  • Added display of radius values in Box Model section of the Computed details sidebar panel
  • Fixed an issue where CSS variable swatches were not shown for var() with a fallback in the Styles details sidebar panel
  • Fixed some RTL issues in the Computed details sidebar panel
  • Moved psuedo-selector rules before inherited rules in the Styles details sidebar panel
  • Moved the Box Model section to the top of the Computed details sidebar panel
  • Resources
  • Fixed brotli-compressed resources to correctly show as being compressed in the Resources details sidebar
  • Fixed to properly handle CSS comments with an escape character when pretty printing
  • Debugger:
  • Added a global breakpoint for “All Events” which will pause whenever any event listener is about to be fired
  • Timelines:
  • Made Heap Snapshots searchable
  • Fixed an issue where Develop > Start Timeline Recording didn’t work when focused on a detached Web Inspector window
  • Console:
  • Changed to always show all navigation items in the header area of the split console
  • Fixed issue where the execution context picker didn’t update when switching to the inferred context from auto
  • Provided a way to set an alias for previous console evaluation values (e.g. $0, $1, …, $99) in case the inspected page has variables with the same name
  • Renamed queryObjects console command line API to queryInstances for clarity
  • Supported console.screenshot with dataURL strings
  • Overlay:
  • Changed to show page width and height information
  • Settings:
  • Added an Engineering pane to expose useful settings for WebKit engineers
  • Bug Fixes:
  • Fixed dragging an image from Safari to Notes to correctly appear

New in Safari 13 Technology Preview 89 (Aug 8, 2019)

  • JavaScript:
  • Implemented nullish coalescing with the ?? operator for ESNext
  • Web API:
  • Added referrerpolicy attribute support for elements
  • Changed window.openDatabase to be overridable
  • Fixed an IndexedDB error where the starting version change transaction may be neglected
  • Fixed the ability to unbold selected text when the system font is used
  • Made storing cross-origin top-level prefetches in HTTP cache optional
  • Moving right by word boundary right before an object element followed by a element hangs
  • Removed support for beforeload on link=prefetch
  • Compatibility:
  • Fixed Daring Fireball long press highlights that were unnecessarily inflated due to false illegibility
  • Fixed contextual menu actions for YouTube videos
  • Accessibility:
  • Exposed the aria-label attribute for elements
  • Media:
  • Enabled a WebRTC debug mode without encryption
  • Fixed support for FLAC-in-MP4
  • Web Inspector:
  • Added support for console.screenshot with detached (not in main DOM tree) and elements
  • Added support for console.screenshot with ImageData and ImageBitmap
  • Added a “Show Grid” navigation item for the Images collection in the Resources tab
  • Added an indicator/separator around items in the Images collection in the Resources tab
  • Add special case for about:blank resources to show “Resource has no content” message
  • Fixed display of application/xml content for XHR requests
  • Fixed issues toggling multiple breakpoints when they’re collapsed into one line
  • Fixed Command-X (⌘X) to cut selected properties in the Styles sidebar
  • Made the Changes panel in the Elements Tab render with LTR text direction
  • WebGPU:
  • Implemented errors for GPURenderPipeline creation
  • Added descriptive error messages in WHLSL
  • Changed checker to setError() when a property access node can’t commit its base type in WHLSL
  • Changed to return the zero-value enum in the enum-from-integer constructor when the integer is not a valid enum value in WHLSL
  • Made enums work in WHLSL
  • Updated matrix memory layout to match HLSL by laying out columns linearly in WHLSL

New in Safari 13 Technology Preview 88 (Aug 8, 2019)

  • JavaScript:
  • Enabled Intl.PluralRules and Intl.NumberFormatToParts by default
  • WebRTC:
  • Registered a MediaStreamTrack as media producer only if it is a capture track
  • Web API:
  • Fixed XHR CORS requests getting logged twice on the server
  • Pointer Events:
  • Updated to respect pointer capture when dispatching mouse boundary events and updating :hover
  • Rendering:
  • Changed to avoid extra backing store on elements with overflow: scroll and visibility: hidden
  • Changed to trigger a compositing update when a video element is changing
  • Accessibility:
  • Added accessibility announcement notifications to show, dismiss and selection change for the datalist suggestions view
  • Exposed HTML datalist accessibility
  • Enhanced support of aria-haspopup per ARIA 1.1 specification.Implemented support for ARIA roles: insertion, deletion, subscript, superscript, and time
  • Fixed ignored role="presentation" on HTML elements for VoiceOver
  • WebGL:
  • Hooked up WebGL’s back buffer in ANGLE backend on macOS
  • WebGPU:
  • Added most of the remainder of the standard library
  • Implemented GPUError and error scopes
  • Made the destructor of VariableDeclaration non-virtual
  • Optimized the lexer
  • Removed the phase resolveCallsInFunctions
  • Web Inspector:
  • Added support for pasting copied DOM nodes in the Elements tab
  • Fixed dismissing a blank property to no longer cause the rule to appear in the Changes panel
  • Fixed an issue where unbalanced quotes or parenthesis weren’t displayed as properly closed after editing values
  • Updated descendant DOM breakpoints be enabled, disabled, or deleted from a collapsed parent
  • Bug Fixes:
  • Fixed paste from Notes into Excel 365 spreadsheet
  • Fixed video playback on xfinity.com/stream on macOS Catalina

New in Safari 13 Technology Preview 87 (Jul 11, 2019)

  • Web API:
  • Changed openDatabase to return an empty object when WebSQL is disabled
  • Added an experimental behavior to prevent a 5 second delay for initial paint on pages that are using Google’s anti-flicker optimization when content blockers are enabled
  • Web Sockets:
  • Added support for sending blob messages when using web sockets platform APIs
  • Payment Request:
  • Changed to set state to Closed when show() is called during an active session
  • Experimental Web Shading Language (WHLSL):
  • Implemented arrays
  • Rendering:
  • Fixed incorrect clipping with overflow: scroll inside overflow: hidden with border-radius
  • Fixed the preview of a element to match the element bounds
  • WebGPU:
  • Made WebGPU enabled only on Mojave and later
  • Web Inspector:
  • Implemented console.countReset
  • Implemented console.timeLog
  • Added additional demo audits for other WebInspectorAudit functions
  • Enable the Show Shadow DOM navigation item by default in the Elements tab
  • Known Issues:
  • Open tabs are blank on initial launch after upgrading to Safari Technology Preview 87 and loading all tabs from the last session. To correct this behavior, reload open tabs or relaunch Safari Technology Preview.

New in Safari 13 Technology Preview 86 (Jun 27, 2019)

  • Pointer Events:
  • Added support for chorded button interactions
  • Updated to fire pointerout and pointerleave events after firing pointercancel
  • JavaScript:
  • Added support for String.prototype.matchAll)
  • Changed to throw a TypeError exception if Proxy’s set trap returns falsy value
  • Fixed JSON.parse to throw a syntax error when called without arguments
  • Web Assembly:
  • Added support for Anyref tables, Table.get and Table.set for Anyref only
  • Added support for multiple tables
  • Added support for Table.size, grow and fill instructions
  • Fixed float64 “select” on ARM64 devices
  • WebRTC:
  • Updated mediaDevices.enumerateDevices() to list the system default audio devices with deviceId as “default”
  • Web API:
  • Fixed IntersectionObserver rootMargin detection failure when root is an element
  • Updated to avoid generating a new XSLT-based document when already changing the document.
  • CSS:
  • Implemented tab-size with units
  • Included touch-action in the computed styles list
  • Security:
  • Added wildcard to Access-Control-Allow-Methods and Access-Control-Allow-Headers
  • Changed blob URLs to inherit CSP policy from their parent
  • Changed data URLs to inherit their CSP policy from their parent
  • Experimental Web Shading Language (WHLSL):
  • Enabled compute shaders
  • Implemented array references
  • Implemented loop expressions
  • Implemented out-of-bounds and nullptr behavior
  • Supported matrices
  • WebGPU:
  • Removed GPUBuffer.setSubData and implemented GPUDevice.createBufferMapped
  • Web Inspector:
  • Included JavaScript call trees when exporting or importing Timeline recordings
  • Improved the performance of the CSS pretty printer by using a Worker
  • Split the General panel in the Settings tab into sub panels
  • Ensured that indent type and size settings are respected everywhere that there’s a CodeMirror editor
  • Added support for respecting case sensitive or regex global settings when searching in a resource
  • Changed to ensure that adding a DOM, Event, or URL breakpoint is enabled globally
  • Added support for multiline keys when using “Copy Path to Property”
  • Fixed an issue where longhand CSS properties that were overridden by shorthands didn’t have a strikethrough
  • Fixed an issue where query parameters in the Network tab would truncate if the value contained a =
  • Fixed an issue where the Inspector Style Sheet was missing when grouping resources by path

New in Safari 13 Technology Preview 85 (Jun 13, 2019)

  • Pointer Events:
  • Updated to ensure that capturing data managed by the PointerCaptureController gets cleared upon navigation
  • Changed compatibility mouse events to be able to be prevented while the pointer is pressed
  • Exposed navigator.maxTouchPoints
  • Changed to only allow pointer capture if the pointer is in the active buttons state
  • Changed to not prevent mouseover, mouseout, mouseenter, and mouseleave events while the pointer is down
  • Changed toElement and fromElement on PointerEvent to be null
  • Changed mouseenter and pointerenter events to be fired from the bottom up
  • Editing:
  • Fixed inserting a newline in contenteditable add one character, not two
  • Media:
  • Added an option to mute audio capture automatically when page is not visible
  • Allowed for resizing camera video feeds to very small resolutions
  • Fixed createAnswer() SDP Rejected by setLocalDescription()
  • Fixed playing one video at a time for multiple videos with audio, and the autoplay and playinline attributes
  • Changed to hide MediaCapabilities.encodingInfo() when the platform does not support it.
  • CSS:
  • Changed precedence for min-width to always win over max-width
  • Fixed font-optical-sizing to apply the correct variation value
  • Updated to include searching sub-selectors when determining the property whitelist for selector
  • Updated to preserve CSS Grid repeat() notation when serializing declared values
  • Web API:
  • Fixed bounding client rect for an inline element in Intersection Observer
  • Implemented feature policy self, none, and * parsing
  • Implemented imagesrcset and imagesizes attributes on link rel=preload
  • Implemented Promise.allSettled
  • Fixed programmatic scroll in right-to-left overflow with async scrolling enabled
  • Added support for preferred presentation size when pasting an image
  • Made the computed width of non-replaced inline return computed style
  • JavaScript:
  • Implemented support for Numeric Separators
  • Implemented opwide16 and opwide32 and introduced 16-bit version bytecode
  • Fixed InferredValue to not be a JSCell
  • Reduced metadata footprint
  • Changed createListFromArrayLike to throw a type error if the value is not an object
  • WebAssembly:
  • Added support for anyref in globals
  • Web GPU:
  • Updated vertex buffers and Input State API
  • WHLSL:
  • Enforced variable lifetimes
  • Implemented property resolver
  • Improved the speed of parsing and lexing the standard library
  • Web Inspector:
  • Exposed a way to get the current Audit version from within an Audit
  • Allowed arbitrary JSON data to be returned as part of the result of an Audit
  • Changed CSS modifications to be shared for rules that match multiple elements
  • Updated the debugger navigation sidebar to always reveal the active call frame when hitting a breakpoint
  • Moved the overlay rulers to the opposite vertical or horizontal side if they intersect the highlighted nodes so that no content is obstructed
  • Added a setting to show overlay rulers and guides whenever element selection is enabled

New in Safari 13 Technology Preview 84 (Jun 6, 2019)

  • Refreshed Favorites Design. The Favorites page has been visually refreshed, and now includes Show More and Show Less actions.
  • Switch to Tab from Smart Search Field. The Smart Search Field now offers switching to an already-open tab when a search query matches the title or URL of an open tab.
  • Warnings for Weak Passwords. When signing into a website with a weak password, Safari will prompt you to visit the website in a new tab to upgrade the password to an Automatic Strong Password. Safari uses the well-known URL for changing passwords (/.well-known/change-password), allowing websites to take users directly to their change password pages. The password list in Safari Preferences has also been updated to flag weak passwords.

New in Safari 12.2 Technology Preview 84 (Jun 6, 2019)

  • Refreshed Favorites Design. The Favorites page has been visually refreshed, and now includes Show More and Show Less actions.
  • Switch to Tab from Smart Search Field. The Smart Search Field now offers switching to an already-open tab when a search query matches the title or URL of an open tab.
  • Warnings for Weak Passwords. When signing into a website with a weak password, Safari will prompt you to visit the website in a new tab to upgrade the password to an Automatic Strong Password. Safari uses the well-known URL for changing passwords (/.well-known/change-password), allowing websites to take users directly to their change password pages. The password list in Safari Preferences has also been updated to flag weak passwords.

New in Safari 12.2 Technology Preview 83 (May 30, 2019)

  • Fixed isPrimary property of pointercancel events to match previous events for that pointer
  • Fixed calling preventDefault() on pointerdown to prevent “compatibility” mouse events
  • Storage Access API:
  • Changed to only consume the user gesture when the user explicitly denies access and made document.hasStorageAccess() return true when the feature is off
  • Rendering:
  • Implemented backing-sharing in compositing layers, allowing overlap layers to paint into the backing store of another layer
  • Changed layers painting into shared backing to contribute to overlap
  • Changed to repaint when the set of backing-sharing layers changes
  • Fixed rendering of backing-sharing layers with transforms
  • Fixed layer bounds for sharing layers that paint with transforms
  • Fixed layer-related flashing with composited overflow: scroll
  • Fixed overflow: scroll that becomes non-scrollable to stop being composited
  • Fixed content disappearing when the scroller hosting a shared layer becomes non-scrollable
  • Fixed rendering issues when layer contents become non-opaque
  • Service Workers:
  • Changed to terminate a service worker instance when its SWServer is destroyed
  • Changed a service worker process to app nap when all of its clients app nap
  • CSS:
  • Implemented line-break: anywhere
  • Implemented a modern “clearfix” with display: flow-root
  • Implemented page-break-* and -webkit-column-break-* as legacy-shorthands.
  • Fixed font-optical-sizing applying the wrong variation value
  • Updated CSS grid when changing auto repeat type
  • Updated to use max size to compute auto repeat CSS grid tracks
  • WebRTC:
  • Defined a media buffering policy
  • Allowed sequential playback of media files when initial playback started with a user gesture
  • Fixed video stream freezing when the front camera orientation changes
  • WebDriver:
  • Fixed the in-view center point for elements larger than the viewport
  • Web API:
  • Changed to preserve DOM selection after clicking a button that hides itself on mousedown
  • Limited the number of prefetches of a given page
  • Web Inspector:
  • Changed the user gesture toggle to also force a user interaction flag
  • Fixed the colors in the network table waterfall container for Dark Mode
  • Fixed context menu items in the DOM tree when not clicking directly on the node representation in the Elements tab
  • Fixed Storage tab crashes when adding new local storage or session storage entries
  • Fixed the CPU timeline and Memory timeline bars sometimes incorrectly drawing and jumping around while scrolling
  • Made it easier to switch to a DOM node in the Elements tab from a returned DOM node in the Audit tab

New in Safari 12.2 Technology Preview 82 (May 16, 2019)

  • Web API:
  • Enabled Fetch Keep Alive by default
  • Changed to resolve the percentage values of inset properties against proper box.
  • Changed to use the normal loading path for ping loads
  • Fixed propertyRegistry() to be overridden for SVGFEFloodElement and SVGFEMergeElement
  • Fixed programmatic scrolling with async overflow scroll
  • Marked U+01C0 as a homograph of U+006C
  • Updated WebKit to rely more on ICU’s UTF-8 support
  • JavaScript:
  • Fixed crash when opening the inspector when using already in-flight generators and async functions
  • Changed setting a frame src attribute to not run a JavaScript URL synchronously
  • Media:
  • Changed WebAudio Node JS wrappers to not be collected if events can be fired
  • Updated getDisplayMedia to require a user gesture
  • Updated XMLHttpRequest to propagate user gestures for media playback
  • Storage:
  • Made a change to stop IndexedDB transactions to release locked database files when network process is ready to suspend
  • Updated to terminate Service Worker processes that use too much CPU
  • Updated to terminate unresponsive Service Worker processes
  • CSS:
  • Fixed font-weight: 1000 to be parsed successfully
  • Fixed transform sometimes being left in a bad state after an animation
  • Accessibility:
  • Fixed the hit-point of a link that spans multiple lines
  • Web Inspector:
  • Updated support for dragging a node to the console to log the node
  • Added support for recording actions performed on WebGL 2 contexts
  • Web Driver:
  • Used a more informative key to indicate automation availability
  • Web Authentication:
  • Added a check to require a call to WebAuthN from a focused document
  • WebGPU:
  • Moved gpu API entry point from window to navigator
  • Browser Changes:
  • Changed unchecking “Allow websites to ask for permission to send notifications” to also disable prompting for HTML5 notifications

New in Safari 12.2 Technology Preview 81 (May 2, 2019)

  • Dark Mode:
  • Renamed supported-color-schemes to color-scheme
  • Standardized the separator
  • JavaScript:
  • Added support for incremental bytecode cache updates
  • WebRTC:
  • Allowed the MediaSource API to be enabled via website policy
  • Prevented restarting WebRTC stats timer if backend is stopped
  • Supported RTCDataChannel blob binaryType
  • Added support for parsing FairPlayStreaming PSSH boxes.
  • Media:
  • Updated AudioSession route sharing policy
  • Fixed layout issues occuring when entering full screen mode
  • Layout:
  • Added @page margin support
  • Fixed synthesized baseline for CSS Grid and CSS Flex
  • Accessibility:
  • Removed deprecated Accessibility Object Model events
  • Web API:
  • Changed requestAnimationFrame to execute before the next frame
  • Changed visited link hash to be computed only once
  • Fixed link clicks in PDFs to not send referrer headers
  • Storage:
  • Changed to clear cache storage structures before removing all related files
  • Delayed initialization of quota users until the first quota request
  • Fixed blob type not getting stored correctly in IndexedDB when IDBObjectStore has autoIncrement and keyPath options
  • Security:
  • Changed to Ignore X-Frame-Options header when frame-ancestors CSP directive is present
  • Implemented remembering device orientation permission for the duration of the browsing session
  • Web Inspector:
  • Added line and column numbers with source location when logging CSP messages to the console
  • Added support for drag-and-drop to import files in the Canvas and Audit tabs
  • Added support for drag-and-drop to import HAR archives in the Network tab
  • Added support to show Worker imported scripts in the Open Quickly dialog even if Web Inspector is opened after the Worker was created
  • Changed to prevent starting property selection when pressing the right mouse button in the Styles sidebar
  • Changed to show a resource in the Debugger even if an extension script throws a parse error
  • Changed to include the number of Network Requests in the Statistics section of the CPU Usage timeline
  • Ensured that object previews with Promises don’t add unnecessary catch handlers that prevent rejectionhandled events from being fired in the Console
  • Ensured that tracking stops for the CPU Usage Timeline when disconnecting Web Inspector
  • Fixed an issue where navigating to a resource sometimes shows a different resource
  • Made starting and stopping a recording more consistent and reliable in the Timelines tab
  • Provided a more obvious way to return to the overview when viewing imported recordings in the Canvas tab
  • Updated to preserve multiple selection in the Elements tab when switching tabs
  • Updated to disable special breakpoints when they are deleted in the Sources tab
  • WebDriver:
  • Added hooks to make it possible to easily run WPT WebDriver web server by itself
  • Fixed JavaScript evaluation failures if a dialog is shown
  • Fixed enter fullscreen error handling code
  • Fixed the Set Cookie endpoint to correctly set subdomain cookies
  • Web GPU:
  • Implemented support for indexed drawing
  • Prevented narrowing conversions during Metal function calls on 32-bit platforms
  • Privacy Preserving Ad Click Attribution:
  • Added the privacy preserving Ad Click Attribution API as an experimental feature

New in Safari 12.2 Technology Preview 80 (Apr 18, 2019)

  • WebGPU:
  • Updated setBlendColor, setViewport, setScissorRect in GPURenderPassEncoder
  • Replaced unsigned longs in WebGPU with uint64_t
  • Standardized WebGPU object reference counting and creation logic
  • Removed WebMetal experimental feature in favor of WebGPU
  • Web API:
  • Implemented ResizeObserver
  • Added support for “noreferrer” window feature to window.open()
  • Added support for .contentWindow
  • Changed window.closed to true immediately when close() is invoked
  • Changed to close the service worker database on network process suspension
  • Changed Fetch to allow used body replacement in Request constructor
  • Fixed HTML fragment serialization to not strip whitespace from URL attribute values
  • Made someWindow.frames, someWindow.self, someWindow.window always return someWindow, even without a browsing context
  • Removed conditional parsing of content in the HTML parser
  • Fixed the loadstart event for XMLHttpRequestUpload to be correctly initialized
  • Fixed getBoundingClientRect returning an empty rect on a collapsed range
  • Fixed the select element not showing a popup if the element lost focus while the popup was previously shown
  • Pasting a table from Confluence strips table cell content
  • Updated to ensure resetting the storage quota takes into account third party origins
  • SVG Animation:
  • Fixed SVG Animation (SMIL) on or to work correctly on the second run
  • Media:
  • Added support for muting screen capture and camera/microphone independently
  • CSS:
  • Implemented white-space: break-spaces value
  • Removed functionality for -apple-trailing-word
  • Allowed FontFace names which start with a number
  • Accessibility:
  • Prevented elements with labels and no accessible contents from getting exposed as empty AXGroups
  • Changed to automatically compute accessibility labels for Apple Pay buttons
  • Web Inspector:
  • Added support for showing WebGPU contexts in the Canvas Tab
  • Added support for showing the resource initiator in the summary of the headers in the Network Tab
  • Adjusted the energy impact thresholds in the CPU Usage Timeline
  • Ensured that the Script Profiler debugging thread is not counted as part of the page usage in the CPU Usage Timeline
  • Disabling a breakpoint for a specific event listener no longer removes it from the list of breakpoints
  • Prevented breakpoints for attribute modifications from firing when breakpoints are disabled
  • Prevented single clicks from following links in text editors that are not read-only
  • Safari Extensions:
  • Legacy Safari Extensions (.safariextz files) are no longer supported. Safari App Extensions and Content Blockers, which can take advantage of powerful native APIs and frameworks as well as web technologies, can be distributed with apps in the App Store or from developers’ websites. You can learn more at developer.apple.com/safari/extensions/.

New in Safari 12.2 Technology Preview 79 (Apr 4, 2019)

  • Web Authentication:
  • Implemented FIDO AppID extension
  • Accessibility:
  • Implemented support for new meter ARIA role
  • Service Workers:
  • Changed to use a ServiceWorker process per registrable domain
  • Browser Changes:
  • Blocked all plugins smaller than 5px × 5px
  • CSS:
  • Fixed CSS grid container baseline alignment for orthogonal items
  • Fixed a single leading space not being considered as a word break even when word-break: break-all is set
  • Web API:
  • Changed to use smaller default storage quotas for third-party frames
  • Fixed Intl.DateTimeFormat to obey 2-digit hour
  • Fixed toggling display: contents to display: none failing to hide the element
  • Web Inspector:
  • Added support for import and export of timeline recordings in the Timelines tab
  • Added support for HAR import in the Network tab
  • Added a toggle to switch between live activity and Imported HAR resource collections in the Network tab
  • Added a HAR extension for resource priority in the Network tab
  • Added a HAR extension for serverIPAddress port number in the Network tab
  • Added icons for WebGL2 contexts in the Canvas tab
  • Added support for style attribute changes to get tracked in the Changes sidebar
  • Added support for a way to filter out all Console messages, evaluations, or results
  • Added support for ::-webkit-scrollbar* rules being shown in the Styles sidebar
  • Added a flattened Timeline overview that shows all records, one per line in the Timelines tab
  • Changed to show when preventDefault() was called on an event or not in the Timelines tab
  • Changed to support DOM searches to be case sensitive in the Search tab
  • Fixed the WebGL action icon to not invert when selected in the Canvas tab
  • Fixed changes to CSS resources only taking effect once editing stops
  • Fixed getEventListeners to work for any EventTarget in the Console
  • Fixed pausing in an inline script on a page with a URL query creating an Extra Script in the Debugger tab
  • Fixed selecting a node in a different frame to automatically switch the Console prompt’s execution context
  • Fixed HAR Export duplicating blocked time and send time if there was no DNS or Connect block in the Network tab
  • Fixed Page Weight indicator clearing on pages with zero length resources
  • Fixed canvas being rendered twice per frame in the Canvas tab
  • Fixed collapsing a section not shrinking the space used by that section in the Source tab
  • Fixed disabled breakpoints banner to be sticky in the Sources tab
  • Fixed group by path names to not use the resource file name in the Sources tab
  • Fixed editing the selector to not hide the rule in the Styles sidebar
  • Fixed the “jump to effective property” button not hiding after overridden property becomes effective in the Styles sidebar
  • Fixed export on about:blank causing the suggested filename to contain a colon and silently fail in the Timelines tab
  • Gave long thread names a tooltip if they could be truncated in the CPU Usage timeline
  • Included window as part of any event listener chain in the DOM
  • Provided $event in the Console when paused on an event listener
  • Provided a way to capture a screenshot of a node from within the page32
  • Provided a way to get the contents of resources for audits in the Audit tab
  • Provided option to group by path in the Sources tab
  • Reduced the intensity of the orange overlay color for dark mode in the CPU Usage timeline

New in Safari 12.1 Technology Preview Release 78 (Mar 21, 2019)

  • Pointer Events:
  • Enabled support for Pointer Events by default
  • Added support for Pointer Events on macOS
  • Web Inspector:
  • Enabled the CPU Usage timeline by default
  • Added an Energy Impact section to the CPU Usage timeline
  • Added Statistics and Sources sections to the CPU Usage timeline
  • Added CPU Usage categorization per-thread and per-worker
  • Added support for system accent color throughout the user interface
  • Added node contextual menu items for event listeners sorted by node in the Elements tab
  • Added support for shift-clicking a variable swatch to replace the text with the variable’s value in the Styles sidebar
  • Added support for Control-Space to toggle the auto-completion menu in the Styles sidebar
  • Added a go-to button for overridden CSS properties to jump to the effective property in the Styles sidebar
  • Added the version number in the UI of the Audit tab
  • Added export Canvas recording as HTML in the Canvas tab
  • Changed to remove event listeners once a recording is ready in the Canvas tab
  • Changed to stop showing the auto-stop UI when not inspecting a page in the Timelines tab
  • Changed enabling “Stop when page loads” toggle to stop any active recording if the load event has already occurred in the Timelines tab
  • Changed to allow image collections to be filtered by type in the Sources tab
  • Changed breakpoints to be disabled when an audit is running
  • Changed to not enable breakpoints when the source location changes in the Debugger tab
  • Changed to highlight the node when hovering event listeners sorted by node in the Elements tab
  • Fixed color swatches for valid inputs with leading or trailing whitespace in the Canvas tab
  • Fixed DOM, URL, and Event breakpoints to grey out when all breakpoints are disabled in the Debugger tab
  • Fixed the ability to select records in the bottom 16px of the timeline overview graph
  • Fixed unreadable text in bezier curve editor numeric input fields in dark mode
  • Fixed popover colors when transitioning to and from dark mode
  • Fixed DOM event breakpoints firing when breakpoints are disabled
  • Fixed frequent flashing of DOM node attributes in the Elements tab
  • Fixed the keyboard shortcut for the Settings tab on non-US keyboards
  • Fixed no results when opening to Search tab
  • Improved handling past recordings in the Timelines tab
  • Updated to only show changes for the given node in the CSS Changes sidebar
  • WebDriver:
  • Fixed string not getting terminated with a null character
  • Web API:
  • Adjusted XMLHttpRequest Content-Type handling
  • Added support for the referrerpolicy attribute
  • Implemented further CORS restrictions
  • Accessibility:
  • Added remote search support for keyboard focusable element search type
  • Media:
  • Removed HEVC as a codec requiring hardware support

New in Safari 12.1 Technology Preview Release 77 (Mar 7, 2019)

  • WebRTC:
  • Fixed getUserMedia with an ideal deviceId constraint to always select the correct device
  • Made navigator.mediaDevices SecureContext
  • Web API:
  • Fixed WebSocket to not fire events after being stopped
  • Fixed Same-Site Lax cookies to be sent with cross-site redirect from a client-initiated load
  • Updated the MIME type parser
  • CSS Grid:
  • Changed to handle indefinite percentages in fit-content()
  • Accessibility:
  • Fixed HTML5 tag to be read as an ARIA Landmark to VoiceOver
  • Fixed incorrectly mapping the element to progressbar
  • Media:
  • Fixed setting fullscreen pseudo-classes outside of root when entering fullscreen from inside of a shadow root
  • Changed inline WebVTT styles to start with ::cue
  • Web Inspector:
  • Added emulation of user gestures from Web Inspector console
  • Added built-in accessibility tests to the Audit tab
  • Added a macOS user-agent option in the device settings menu
  • Added an experimental setting to merge Resources and Debugger tabs into a single Sources tab
  • Changed how selected items are tracked in trees and tables to improve performance
  • Changed Command-/ (⌘/) to toggle the edited property in the Styles sidebar
  • Changed typing ; to not focus on the next property when there’s open parenthesis or open comment in the Styles sidebar
  • Changed clicking a CSS property or selector to always select its text in the Styles sidebar
  • Fixed all actions after an offscreen path modification getting marked as offscreen path errors in the Canvas tab
  • Fixed an issue where taking a second Canvas recording wouldn’t select the Initial State of the new recording
  • Fixed clearing the selection when dragging a selection outside of the selected element in the Console
  • Fixed the dim appearance of commas in CSS selectors for dark mode
  • Fixed the DOM Content Loaded blue marker for dark mode
  • Fixed the Network Overview Graph segments box shadow for dark mode
  • Fixed node-specific event breakpoints to get cleared or recalculated on navigation
  • Fixed highlighting a node when hovering inside an object preview
  • Fixed the navigation sidebar showing “No Search Results” when a slow search is in progress
  • Fixed Scripts Timeline loading indicator margins in right-to-left mode
  • Fixed valid values in style attributes getting reported as unsupported property values in the Styles sidebar
  • Improved the Scripts timeline on-going-recording in dark mode
  • Improved categorization of JavaScript Class instances in the Heap Snapshot instances view
  • Provided a way to avoid a Timeline recording auto-stop on reload
  • Provided a way to make searches case-sensitive or use a regular expression
  • Bug Fixes:
  • Fixed a bug that caused loading on some sites to hang in Safari Technology Preview
  • Safari app Extensions:
  • Made the window.safari object available in frames opened to safari-extension:// resources

New in Safari 12.1 Technology Preview Release 76 (Feb 21, 2019)

  • Dark Mode:
  • Fixed overflow element scrollbar for dark mode content
  • WebRTC:
  • Fixed RTCRtpSender.getCapabilities("video") before initial offer breaking VP8
  • Web API:
  • Simplified and streamlined code that creates an appropriate document based on MIME type
  • Aligned with Fetch on data: URLs
  • CSS:
  • Fixed scroll-snap-align to be honored on a child with non-visible overflow
  • Rendering:
  • Added basic scrollability for async overflow scrolling
  • Fixed first paint getting blocked by async or deferred scripts
  • Fixed jumpy async overflow scrolling if the main thread is busy
  • Fixed rendering for async overflow scroll with border-radius
  • Payment Request:
  • Updated to allow requiring a phonetic name for shipping contacts
  • Media:
  • Updated inline WebVTT styles to start with ::cue
  • Updated to always stop ducking audio after audio capture ends
  • Web Inspector:
  • Added the ability to Import and Export Heap Snapshots
  • Added context menu items to copy a resource’s HTTP request or response data
  • Added keyboard shortcut to the Export button tooltip in the Audit tab
  • Added icons for media event types
  • Fixed selection getting broken after deleting the selected node
  • Fixed the Memory timeline starting from zero when both CPU and Memory timeline are enabled
  • Fixed missing resource data for the document on reload in the Resources tab
  • Fixed timeline Detail views to reset properly when a new time range selection contains nothing in the Timelines tab
  • Fixed timeline graphs that have drawing issues with multiple discontinuities in the Timelines tab
  • Fixed timeline time range selection to show duration alongside start and end in the Timelines tab
  • Fixed clicking on an empty space in the overview to deselect any selected record bar in the Timelines tab
  • Reduced the time spent updating related resources in the Details sidebar of the Resources tab when loading a page with lots of resources
  • Updated the Styles sidebar to automatically close unbalanced quotes and parenthesis when editing values
  • Updated the Styles sidebar with an easier way to select a single line
  • Browser Changes:
  • Added a “Reset All to Defaults” option in the Experimental Features menu of the Develop menu

New in Safari 12.1 Technology Preview Release 75 (Feb 7, 2019)

  • WebRTC:
  • Enabled Screen Capture
  • Updated track sources to be unmuted whenever re-enabled after setDirection changes
  • Updated Screen Capture to correctly handle rotation for local video playback
  • Intelligent Tracking Prevention:
  • Added the ability to enable and disable Intelligent Tracking Prevention Debug Mode in the Develop menu
  • Web Authentication:
  • Changed the nonce in the CTAP kInit command to weak random values
  • Media:
  • Allowed elements not in the DOM to AirPlay
  • Accessibility:
  • Added support for returning relative frames for accessibility
  • Changed the AXSelected attribute on RadioButton to not be settable
  • Layout:
  • Fixed the position of layers nested inside of composited overflow-scroll
  • Updated animations to only trigger layer re-compositing when necessary
  • Web API:
  • Implemented PerformanceObserver.supportedEntryTypes
  • Fixed a bug where sendBeacon to a previously-unvisited HTTPS domain would always fail
  • Improved Fetch data: URL handling to align with standards
  • WebDriver:
  • Added support for running subtests
  • Added support for simulating single touches to Automation.performInteractionSequence
  • Updated Automation.computeElementLayout to return Visual Viewport-aware coordinates
  • Updated POST commands to require a valid parameters object
  • Web Inspector:
  • Added Changes sidebar panel to Elements tab
  • Added support for CSS Color 4 color syntaxes
  • Added supports key to test/group for compatibility in the Audit tab
  • Added a mechanism for Web Inspector to edit page settings on a remote target
  • Added a mechanism for Web Inspector to edit page WebRTC settings on a remote target
  • Added a mechanism for Web Inspector to edit the user agent of a remote target
  • Added grouped CSS rules by resource to the Changes sidebar panel
  • Added a CPU usage timeline in the Timelines tab
  • Added new mechanisms for getting related Accessibility nodes and properties for a given node for audits in the Audit tab
  • Changed the style of the device settings override popover content
  • Changed the Elements tab to toggle visibility for all selected nodes
  • Enabled computed style cascades by default in the Styles sidebar
  • Excluded Debugger Threads from CPU usage values in Web Inspector
  • FIxed a bug that prevented audits from being imported in the Audit tab
  • Improved Dark Mode appearance within Memory timeline
  • Improved invalid Audit and Recording JSON error messages
  • Updated the Memory Timeline View to be responsive when resizing
  • Updated the Audit tab to ensure that each test run creates its own injected objects
  • Updated the Network waterfall column to redraw when adding or removing new columns
  • Updated Web Inspector to show the uncaught exception view for unhandled promise rejections
  • CSS:
  • Updated CSS Grid to properly handle static positions of absolute-positioned inside grid items
  • Implemented flow-relative inset properties
  • Implemented flow-relative margin, padding and border shorthands
  • Changed to reject unitless length quirk in the inset shorthand
  • Browser Changes:
  • Removed support for the expired Do Not Track standard to prevent potential use as a fingerprinting variable.
  • Bug Fixes:
  • Fixed snapshots removed too late after swiping back on Twitter
  • Fixed history navigations to twitter.com that were leading to a 403 HTTP error
  • Fixed a loading hang that could occur on history navigation
  • Updated the MIME-type parser

New in Safari 12.1 Technology Preview Release 74 (Jan 24, 2019)

  • Fetch API:
  • Implemented abortable fetch
  • Web Animations:
  • Changed to compute animation effect timing properties in batch
  • Web Authentication:
  • Changed the nonce in the CTAP kInit command to weak random values
  • Imported U2F command and response converters from Chromium
  • Added support for U2F HID Authenticators on macOS
  • WebRTC:
  • Enabled MDNS ICE candidate support by default
  • Media:
  • Changed elements to not enter “paused” state when playing to the end over AirPlay
  • Defined page media state flags for display capture
  • Changed to deactivate audio session whenever possible
  • CSS:
  • Added support for new rgb() and rgba() syntax described in the CSS Color Level 4 specifications
  • Added support for calc() expressions in gradient color stops
  • Changed absolute positioned items to reference implicit grid lines
  • Web API:
  • Added an override of the session configuration for cookieAcceptPolicy
  • Enabled visual viewport API by default
  • Changed to no longer trigger a main frame load when doing a history navigation if the source and destination history items are clones
  • Fixed Bulgarian TLDs to not punycode-encode URLs with Bulgarian Cyrillic characters
  • Fixed an issue where view is unresponsive for 5 seconds after swiping back on sites like quoteunquoteapps.com
  • Fixed the parsed protocol of JavaScript URLs with embedded newlines and carriage returns to match the parsed protocol in Chrome and Firefox
  • Fixed unwanted page navigation after showing and dismissing contextual menu with control-click
  • Service Workers:
  • Fixed Service Worker fetch handler that resulted in a bad referrer
  • Updated Service Worker fetch to obey its referrer policy
  • JavaScript:
  • Optimized Object.prototype.toString
  • Accessibility:
  • Updated the accessibility string for the HTML tag to use “separator” instead of “rule”
  • Web Inspector:
  • Added a Setting toggle for Source Maps
  • Added the ability to allow audits to be enabled or disabled in the Audits tab
  • Added the ability for audits to determine whether a give node has event listeners when running an audit
  • Added the ability for audits to query for all nodes with a given computed Accessibility role when running an audit
  • Changed to automatically disable breakpoints when running an audit in the Audit tab
  • Changed the Network tab to show secure connection details per-request
  • Changed to use the save sheet instead of a dialog when clicking the “Export” button in the Network tab
  • Extended XHR breakpoints to work with Fetch
  • Fixed the color picker to accurately show color when the saturation value is not 100%
  • Fixed support for “white” as a recognized color keyword
  • Fixed text field and completion popover fonts to match in the Events breakpoint popover
  • Fixed showing completions for events that start with “DOM” when typing uppercase “DOM” in Event breakpoints
  • Fixed vertical alignment of group titles in the Settings tab
  • Fixed read-only properties from being able to be deleted in the Styles sidebar
  • Fixed pressing down key on an empty value field discarding the completion popover in the Styles sidebar
  • Fixed selection becoming lost in the Styles sidebar when Web Inspector is blurred
  • Fixed undo to prevent it reverting all changes at once in the Styles sidebar
  • Implemented queryObjects Command Line API
  • Included globalThis in default JavaScript completions
  • Prevented starting a selection when clicking on a property that is being discarded in the Styles sidebar
  • WebDriver:
  • Changed element click and other commands to appropriately handle user prompts
  • Updated the Create Window implementation to support the newest specification
  • Storage:
  • Fixed IndexedDB storage of Crypto keys in private browsing mode
  • Fixed deleting IndexedDB databases to ensure open databases are not missed
  • Made “Disable Web SQL” on by default
  • Security:
  • Fixed CSP violation reports to bypass CSP checks

New in Safari 12.1 Technology Preview Release 73 (Jan 10, 2019)

  • Web API:
  • Fixed navigator.userAgent in service workers to correctly reflect the customUserAgent set by the client
  • Fixed offsetLeft and offsetParent to adjust across shadow boundaries
  • Fixed an incorrect value for key property in keydown and keyup events generated holding Control (⌃) key
  • Removed support for
  • JavaScript:
  • Added support for globalThis
  • Added support for BigInt in JSON.stringify
  • Implemented support for BigInt ValueDiv into DFG
  • Implemented DFG and FTL support for typeof in BigInt
  • Implemented the “well-formed JSON.stringify” proposal
  • Optimized Object.keys by caching key results
  • CSS:
  • Fixed percentages in relative offsets for CSS grid items
  • Fixed thick overlines and line-throughs growing in the wrong direction
  • Fixed CSS variables to work for colors in the border property
  • Prevented attempting to animate invalid CSS properties
  • Updated CSS Properties and Values API to use new cycle fallback behavior
  • Updated repeated background images with zero size to display the background color
  • Media:
  • Changed EME MediaKeySystemConfiguration distinctiveIdentifier and persistentState to default to optional
  • Changed inline WebVTT styles should override styles from Captions settings in System Preferences
  • Updated PiP video to switch tabs before returning video to inline
  • Changed playing a media element synchronously after setting srcObject to succeed without user gesture
  • Fixed a flicker when exiting element-fullscreen
  • WebRTC:
  • Ensured the first video frame of a MediaStream is rendered
  • Fixed the MediaStream calculation of width or height when constraints contain only one of them
  • Ensured that an ended event fires on MediaStreamTrack when a USB camera is unplugged
  • Made RTCRtpSender.setParameters activate specific encodings
  • Made sure getSenders() and getReceivers() do not return closed transceiver senders or receivers
  • Implemented non-timeslice mode encoding for MediaRecorder
  • Made sure RTCRtpTransceiver.stopped is true when a remote description with the corresponding m section rejected is applied
  • Web Animations:
  • Changed Web Animations to ensure an animation’s finished state only occurs once when updating animations
  • Web Authentication:
  • Changed userPresence to always be true
  • WebGPU:
  • Implemented WebGPUBindGroupLayoutDescriptor and its supporting dictionaries
  • Added basic implementation of vertex buffers with Metal Shading Language in WebGPU
  • Web Inspector:
  • Enabled the display of m3u8 content as text in the Network tab
  • Ensured that localized strings in default audits respond to locale changes in the Audit tab
  • Fixed clipping of “Clear Filters” button in short windows in the Audit tab
  • Fixed descriptions of default tests in the Audit tab
  • Provided localization support for the display of “percentage passed” results in the Audit tab
  • Fixed autoformat for minified JavaScript
  • Fixed alignment of path view in the Canvas tab
  • Fixed initial focus state of the recording auto-capture input in the Canvas tab
  • Fixed selected text color when Inspector window is inactive in dark mode
  • Fixed colors of ThreadTreeElement status icon when hovered in dark mode
  • Fixed background color of Type profiler popovers in dark mode
  • Improved readability for tables containing object previews in dark mode
  • Fixed which element gets selected after pressing an arrow key after undoing deletion of a DOM node in the Elements tab
  • Fixed Charles Proxy errors when opening some HAR files exported from Safari
  • Fixed disappearing reload button after changing more than one setting
  • Fixed the spacing of “E” icon on the debugger dashboard
  • Fixed the rendering of column sort controls for dark mode in the Layers tab
  • Increased the default column width for some localizations in the Layers tab
  • Fixed the alignment of experimental setting editors for some localizations in the Settings tab
  • Fixed a problem in the Styles sidebar where focus was lost when the inspector is blurred
  • Fixed shift-clicking a color-swatch to change formats in the Styles sidebar
  • Fixed data corruption when toggling selected properties in the Styles sidebar
  • Improved the usability of the Computed styles sidebar when the panel is narrow
  • Made the “esc” key select the entire property when editing the name or value in the Styles sidebar
  • Prevented table selection from becoming corrupted when deleting selected cookies
  • Fixed labelling of Intersection Observer callbacks in the Timelines tab

New in Safari 12.1 Technology Preview Release 72 (Dec 20, 2018)

  • Web Authentication:
  • Added support for CTAP HID authenticators on macOS
  • CSS Painting API:
  • Added CSS Painting API support for multiple worklets.
  • Changed the CSS Painting API to pass this to the paint callback, and repaint when properties change.
  • Updated the CSS Painting API to allow image values in inputProperties
  • Updated the CSS Painting API to scale the display list when drawing
  • Web API:
  • Changed CSS subresource loads to not be observable from resource timing if the stylesheet is opaque
  • Changed overflow scrolling layers to be self-painting
  • Changed to prevent computing animated values when there is no relevant animation
  • Fixed XMLHttpRequest to prevent removing spaces from content-types before processing
  • Fixed HEAD requests becoming changed to GET requests after 301, 302, and 303 redirects
  • Fixed document.lastModified to work for non-rendered documents
  • Fixed IndexedDB with binary data (Uint8Array) and autoIncrement key in store
  • Modernized version checks for same site cookie support
  • Restricted the DeviceMotion and DeviceOrientation APIs to secure contexts
  • WebRTC:
  • Added support for firing the devicechange event when more capture device information is revealed when getUserMedia is granted by user
  • Fixed the devicechange event to not fire in frames that can’t access capture devices
  • Changed scaled video frames to be resized in letterbox mode
  • Fixed DataChannels created asynchronously to open properly
  • Fixed calling getUserMedia in a link that was opened with target="_blank" to work properly the second time
  • Fixed the case of a sender created through addTransceiver whose track is populated using addTrack
  • Web Inspector:
  • Enabled selection of multiple properties by default in the Styles sidebar
  • Fixed $0 being shown for all selected elements in the Elements tab
  • Fixed jumping from Computed to Styles to correctly select the property in the Elements tab
  • Fixed the overlay bounds rulers to match the element when the page is scrolled
  • Fixed disclosure triangles for RTL to be flipped and aligned right
  • Fixed the selection of properties of read-only rules in the Styles sidebar
  • Updated the selected DOM node scope highlight to improve contrast in the Elements tab
  • Updated ⌘A to select all visible nodes in the Elements tab
  • Fixed “Add Default Audits” shown when there are no filter results in the Audit tab
  • Fixed empty results folder shown after clearing filters in the Audit tab
  • Fixed navigating while tests are running to properly stop and clear all results in the Audit tab
  • Fixed the sidebar briefly showing “No Filter Results” before populating default audits in the Audit tab
  • Updated to save the expanded state of test groups in the Audit tab
  • Updated test tree elements to start out collapsed in the Audit tab
  • Updated tests to support async operations in the Audit tab
  • Web Share API:
  • Fixed the share overlay to properly stick to the Safari window
  • Media:
  • Fixed the lifetime of the HTMLMediaElement to be properly handled in asynchronous actions
  • JavaScript:
  • Enabled .mjs content when loaded from file://
  • Added BigInt support for logic operations
  • Implemented BigInt support for >
  • Service Workers:
  • Fixed updating a service worker during a navigation load sometimes causing the load to fail

New in Safari 12.1 Technology Preview Release 71 (Dec 6, 2018)

  • Dark Mode:
  • Enabled Dark Mode CSS Support by default in the Experimental Features menu
  • Added experimental support for a supported-color-schemes CSS property
  • Updated prefers-color-scheme media query matching to better match the draft spec
  • Changed the default document background and text colors in dark mode and when dark is listed as a supported-color-schemes on the document or body element
  • Added support for forcing color scheme (dark or light mode) in Web Inspector’s Elements tab
  • Web Animations:
  • Enabled Web Animations by default in the Experimental Features menu
  • Intersection Observer:
  • Enabled Intersection Observer by default in the Experimental Features menu
  • Web Authentication:
  • Added Web Authentication as an experimental feature with support for USB-based CTAP2 devices
  • Web API:
  • Fixed click event and touch event listeners on the body element
  • Fixed input element gaining focus when a selectstart event listener on the document prevents the default action
  • Fixed phantom focus events and blur events firing when clicking between text input fields with addEventListener
  • Fixed Content-Type parameter values to allow empty quoted strings
  • Changed CSS Painting API to pass size, arguments, and input properties to the paint callback
  • SVG:
  • Fixed incorrectly sized monospace text when an SVG is included as an
  • Fixed SVG element inside a shadow tree to be able to reference an element in the same tree
  • Fixed updating href on textPath to properly update its rendering
  • CSS:
  • Unprefixed text-decoration CSS3 properties
  • Fixed normal-flow-only flex items to correctly respect z-index
  • Fixed overlays with -webkit-overflow-scrolling:touch to become scrollable after added text makes it taller
  • Rendering:
  • Made compositing updates incremental
  • Changed to update the transform of a composited layer when the layer also needs repainted
  • Fixed the caret disappearing at the end of a password field when the caps lock indicator is shown
  • Fixed invisible dotted underlines that skip descenders
  • Added support for dynamic pseudo-classes on elements with display: contents
  • Fixed positioned text underlines that can look like a strike-through
  • Intelligent Tracking Prevention:
  • Enabled a cap on partitioned cache max age
  • WebRTC:
  • Required for an iframe to use getDisplayMedia
  • Added support for RTCRtpCodecParameters.sdpFmtpLine
  • Added support for transportStats and peerConnectionStats
  • Enabled setting RTCRtpTransceiver.direction
  • Fixed RTCPeerConnection.getTransceivers to always expose all transceivers
  • Web Inspector:
  • Added support for the tab bar to automatically add a new Audit tab for running page audits when enabled in Web Inspector Experimental settings
  • Added default tests to the Audit tab
  • Added support for drag-and-drop for importing Audits in the Audits tab and Recordings in the Canvas tab
  • Changed to not start the Canvas tab with auto-capture enabled
  • Added support for the copy keyboard shortcut and context menu to the Cookies table
  • Fixed the Debugger Popover to work when paused in a Worker
  • Fixed Elements tab to allow selecting and deleting multiple DOM nodes
  • Fixed missing minimum sizes in Network graphs that could cause no graph to be shown
  • Added secure certificate details per-request in the Network tab
  • Added a button to show the system certificate dialog in the Network tab
  • Fixed a potential issue for watch expressions that never show results
  • Added support for ⌘A (Command-A) to select all properties in the Styles sidebar
  • Added support for ⇧Click (Shift-click) on a property to extend the selection in the Styles sidebar
  • Fixed inline swatches when multiple properties selection is enabled in the Styles sidebar
  • Changed Pressing ⇥ (Tab) or ↩ (Enter) to start editing the focused property in the Styles sidebar
  • Added support to allow expanding properties to show list of overridden values in the Computed sidebar
  • Fixed the experimental Computed sidebar in Dark Mode
  • Updated tables to recalculate scrollable height when resized
  • Updated tables to support Select All ⌘A (Command-A)
  • Updated tables to support extending the row selection with the ⇧ (Shift) key
  • Updated tables with no selection to select the first or last row when pressing the down or up arrow key
  • Added a Media timeline in the Timelines tab
  • Updated TreeOutline to re-use multiple-selection logic from Table
  • Updated TreeOutline to prevent selecting the first child of an expanded element when pressing the right arrow key
  • Added a button to clear filters with “No Filter Results” in the Navigation sidebar
  • Made the “Reload Web Inspector” button more reliable when toggling experimental features
  • CSS Grid:
  • Fixed absolute positioned child getting incorrectly sized when using auto-fit, generating spurious collapsed tracks
  • Fixed align-self:center and position:sticky to work together
  • Fixed grid container sizing under min-content height
  • Implemented Baseline Alignment for grid items
  • Media:
  • Fixed frame re-ordering preventing iframes from getting enqueued
  • Enabled external playback for video in element fullscreen
  • Fixed SourceBuffer to prevent throwing an error when appending a second init segment after changeType()
  • Payment Request:
  • Fixed canMakePayment() to not consider serialized payment method data
  • JavaScript:
  • Added BigInt support into ValueAdd

New in Safari 12.1 Technology Preview Release 70 (Nov 16, 2018)

  • Web Animations:
  • Implemented getTiming() and updateTiming()
  • Implemented Animation.updatePlaybackRate()
  • Changed to not reset pending tasks when setting a null effect
  • Made document.getAnimations() return declarative animations in the correct order
  • Updated the API to allow the auto composite value
  • Updated the Web Animations API to remove all of the ReadOnly interfaces
  • Intersection Observer:
  • Added support to allow cross-document intersection observing
  • Fixed isIntersecting computation when 0 is not a threshold
  • Updated to account for CSS zoom when computing client rects
  • CSS:
  • Added CSS Custom Properties API Support for syntax="*" and with proper cycle handling
  • Fixed container to update when the prefers-color-scheme media query changes
  • Fixed CSS grid elements with justify-content:space-around that have extra whitespace
  • Implemented text-underline-offset and text-decoration-thickness
  • WebRTC:
  • Added support for sender and receiver getCapabilities
  • Added onremovetrack support for RTCPeerConnection removed tracks
  • Changed MediaRecorder to fire dataavailable event when all tracks are ended and stop() is called
  • Fixed calling sender.replaceTrack() twice producing a new transceiver and its corresponding m= section
  • Fixed sender.replaceTrack() fails with InvalidStateError if the transceiver.direction is “inactive”
  • Fixed RTCTrackEvent.streams should be SameObject
  • Updated to prevent revealing device IDs until the user has granted permission to capture
  • Updated enumerateDevices to not expose devices that are not available to getUserMedia
  • Updated to prevent prompting the user again after denying a getDisplayMedia request
  • Rendering:
  • Fixed requestAnimationFrame causing bad location of position:fixed inside overflow:auto and iframe
  • Fixed overlays with -webkit-overflow-scrolling:touch to become scrollable after added text makes it taller
  • Web Inspector:
  • Added low-power video playback enter and exit events in Timelines and Network waterfalls
  • Added support to show save and restore stack for recorded 2D Canvases
  • Added missing context menu items for links in the Styles sidebar
  • Added support to toggle selected properties by pressing Space or ⌘/ (Command-/) in the Styles sidebar
  • Added support for multiple selection and multiple deletion of cookie records
  • Created a setting for auto-recording newly created contexts in the Canvas tab
  • Implemented copying and deletion of multiple properties in the Styles sidebar
  • Updated to capture changes to (i.e., canvas size) that would affect the recorded context in the Canvas tab
  • Storage:
  • Added a storage limit for IndexedDB
  • Changed IndexedDB to allow storing RTCCertificate
  • Media:
  • Fixed MediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L60.B0') getting improperly rejected
  • Payment Request:
  • Changed the errorFields of PaymentResponse.retry() to be optional
  • Security UI:
  • Added a warning in the Smart Search field when loading non-secure pages

New in Safari 12.1 Technology Preview Release 69 (Nov 16, 2018)

  • CSS:
  • Enabled Conic Gradients by default
  • Web API:
  • Enabled the element by default
  • Added new image type for the CSS Paint API
  • Changed the CSS Painting API to give a 2D rendering context
  • Changed the CSS Painting API to parse paint() and store paint callbacks
  • Changed Web Animations to not create a DocumentTimeline to suspend or resume animations
  • Intersection Observer:
  • Handled zero-area intersections
  • Dark Mode:
  • Changed to use a dark appearance scrollbar when the page background is dark or the document supports dark mode
  • JavaScript:
  • Implemented BigInt support for ^
  • Media:
  • Added support for MediaKeyEncryptionScheme
  • Updated to be able to adapt between H.264 streams with and without EditList
  • Updated TextTrack cues to be updated more often than every 250ms
  • Fixed timestampOffset to prevent introducing floating-point rounding errors to incoming samples
  • Fixed the WebVTT region parameter and value to be separated by :
  • Web Inspector:
  • Added corner rounding to the network timing blocks in the Network tab waterfall
  • Changed to more aggressively snap timing blocks together in the Network tab
  • Fixed CSP JSON request payload without a MIME-type to be pretty-printed
  • Added fullscreen enter and exit events in the Timelines and Network waterfalls
  • Fixed the Quick Open dialog to show named scripts that appear in the Debugger sidebar
  • Fixed the Quick Open dialog for line and column to have a caret indicate the position
  • Fixed malformed popovers for function source code
  • Prevented the Canvas tab from listening for “space” key press when the tab is not visible
  • Improved Canvas Recording loading speed when the “Frame” tree element is expanded
  • Updated the Canvas tab to show a warning when the path moves offscreen
  • WebRTC:
  • Changed MediaRecorder to fire a stop event when all tracks are ended
  • Changed to handle MDNS resolution of candidates through libwebrtc directly
  • Payment Request:
  • Implemented MerchantValidationEvent.methodName
  • Implemented PaymentResponse.retry()
  • Updated PaymentRequest.canMakePayment() to resolve to true whenever Apple Pay is available
  • Storage:
  • Added a deprecation warning to the console for Web SQL
  • Fixed iteration of cursors skipping records if updated or deleted in IndexedDB

New in Safari 12.1 Technology Preview Release 68 (Oct 25, 2018)

  • Web API:
  • Fixed the Document and Window objects to lose their browsing context as soon as its iframe is removed from the document
  • Fixed incorrect input.checked when parsing its children
  • Fixed window.navigator and window.performance to not become null after the window loses its browsing context
  • Fixed incorrect garbage collection of JavaScript node wrappers held by MutationObserver and MutationRecord
  • Changed to restrict browsing context lookup by name to frames that are related to one another
  • Changed anchor target to be ignored on activation when the download attribute is set
  • Changed target="_blank" on anchors to imply rel="noopener"
  • Enabled support
  • WebRTC:
  • Added VP8 support to WebRTC
  • Added support for IceCandidate stats
  • Added support for reporting “display composited video frames” through the VideoPlaybackQuality object
  • Added support for RTCPeerConnection.generateCertificate
  • Added support for RTCConfiguration.certificates
  • Implemented error handler of MediaRecorder
  • Media:
  • Added support for inline WebVTT styles
  • Changed to use nanoseconds as MaximumTimeScale
  • Changed to only report the supported WebGL version
  • CSS:
  • Added prefers-color-scheme media query support for styling dark mode content
  • Changed to resolve inset properties to computed style when there is over-constrainment
  • Rendering:
  • Fixed slow tiling for CSS gradients
  • JavaScript:
  • Added BigInt support for the bitwise | operator
  • Web Inspector:
  • Added the ability to go directly from an event in the overview view to the specialized timeline for that event
  • Added support for showing redirect requests in the Network and Timelines tabs
  • Added table support for multiple selection and ⌘ Click (Command-Click) behavior
  • Changed to use the iframe name attribute for FrameTreeElement
  • Changed to allow multiple canvases to be recorded at the same time
  • Created a special Network waterfall for media events
  • Exposed Server Timing response headers in the Network tab
  • Fixed the Canvas recording sidebar scroll position after switching tabs
  • Fixed the color contrast of the disabled Record button in the Canvas tab
  • Fixed capturing previously saved states and adding them to the recording payload in the Canvas tab
  • Fixed previews to be removed when the parent view is hidden in the Canvas tab
  • Fixed clicking the initiator link in the Network tab table to automatically switch to the Preview section
  • Fixed dark mode contrast issues
  • Fixed style editor warnings to not look like errors in dark mode
  • Fixed unreadable text when hovering over CSS properties while holding the ⌘ (Command) key in dark mode
  • Fixed the “goto arrow” color for the selected DOM breakpoint tree element in dark mode
  • Fixed the detail view to be correctly shown after sorting the Network table
  • Fixed the detail view reverting to “Response” when new requests are added in the Network tab
  • Fixed the Open Resource dialog to show the path to the resource to disambiguate resources with the same name
  • Fixed the toolbar getting hidden when Web Inspector is docked to side
  • Fixed ⌃G (Control-G) to not wipe the line when jumping to the line in a CSS file
  • Grouped media network entries by the node that triggered the request
  • Indented all network entries when “Group by Node” is enabled
  • WebDriver:
  • Fixed a bug where some key combinations such as ⌘A (Command-A) can cause the WebDriver session to hang
  • Fixed a crash when a WebDriver session is terminated while waiting for simulated inputs to be handled
  • Fixed a hang when creating a WebDriver session for Safari Technology Preview (macOS Mojave only)
  • Payment Request:
  • Changed to abort requests after details settle when the user cancels
  • Apple Pay:
  • Fixed new shipping methods getting ignored when updating after the shippingaddresschange event
  • Changed payment authorization results with ApplePayErrors to never be considered final
  • Web Animations:
  • Fixed setting animation-name:none after a fill:forwards animation has completed to correctly revert to the unanimated style
  • WebCrypto:
  • Changed ECDSA to be able to handle invalid signature inputs

New in Safari 12.1 Technology Preview Release 67 (Oct 25, 2018)

  • Pointer Events:
  • Added PointerEvent in the Experimental Features menu
  • Ensured PointerEvent is not visible when disabled
  • WebRTC:
  • Added RTCCodecStats support
  • Changed to allow IP mismatch for local connections on localhost
  • Cleaned up change handling for RealtimeMediaSource settings
  • Fixed video track clone to preserve original property
  • Implemented sender and receiver getStats
  • Updated constraints supported by getDisplayMedia
  • Media:
  • Enabled H.264 Simulcast
  • Enabled Modern Encrypted Media API by default in the Experimental Features menu
  • Added WebM sanitization in EME
  • Introduced the concept of CDMInstanceSession for EME
  • Changed to use some tolerance when deciding whether a frame should be appended to the decode queue in MSE
  • Fixed a comparison with an uninitialized greatestDecodeDuration in MSE
  • Fixed an unwanted erased sample from the decode queue in MSE
  • Fixed WebVTT cue alignment
  • Updated the WebVTT parser according to new region syntax
  • CSS:
  • Fixed item alignment next to collapsed tracks with gutters in CSS Grid
  • Restricted the total combined size of backdrop filters
  • Fixed CSS reference filter with feDisplacementMap buffer corruption on Retina displays
  • Fixed updating feMorphology filter in CSS when the element moves
  • Fixed a garbled rendering of an image when feConvolveMatrix is applied to it on a Retina display
  • Started implementing CSS Custom Properties and Values
  • Implemented initialValue support for CSS Custom Properties and Values API
  • Made overflow:overlay a synonym for overflow:auto
  • Fixed in quirks mode to have margin-block-end:1em
  • JavaScript:
  • Implemented BigInt support for bitwise & operation
  • Optimized Array#indexOf in the C++ runtime
  • Optimized Array#lastIndexOf in the C++ runtime
  • Web Animations:
  • Fixed accelerated animations to get suspended
  • Fixed endlessly calling DocumentTimeline::updateAnimations()
  • Ensured renderers with accelerated animations have layers
  • Shadow DOM:
  • Added the support for users to select content across shadow boundaries
  • Added the support for copying content across shadow boundaries
  • Web API:
  • Fixed custom elements in a reaction queue losing its JavaScript wrapper and becoming an HTMLUnknownElement
  • Fixed elements enqueued in mutation observers losing its JavaScript wrappers
  • Changed Image.proto to be a Function.prototype not an HTMLElement.prototype
  • Fixed radio inputs and checkbox inputs to fire “click”, “input”, and “change” events in order when clicked
  • Simplified authentication code
  • Changed document.open() to not propagate URLs to non-fully active documents
  • Changed document.open() to throw errors for cross-origin calls
  • Changed to strip the fragment from the document URL during document.open() URL propagation
  • Fixed no-op document.open() calls to ensure no side effects
  • Dropped support for the cross-origin-window-policy header
  • Apple Pay:
  • Added support for granular errors in PaymentDetailsUpdate
  • Removed the “in-store” button type
  • Web Inspector:
  • Fixed an issue that caused Web Inspector’s tabs to be hidden when docked to the side
  • Fixed an issue that caused dock buttons to disappear when Web Inspector goes fullscreen
  • The Debugger tab now has one unified section for all breakpoint types
  • Fixed the light background on new watch expression popover in Dark Mode
  • Fixed image resources without content getting shown when the Images folder is selected
  • Removed the Legacy Style Editor
  • Removed the Visual Style CSS details sidebar panel
  • Reworked the Computed panel in the Styles sidebar panel to match the styles of the Rules panel
  • Added an experimental setting for multi-property selection
  • Changed to start editing property names and values on mouseup instead of mousedown in the Styles sidebar
  • Web Driver:
  • Fixed an issue wherein sending a Tab key press could sometimes shift focus out of web content and hang the WebDriver session
  • Fixed an issue that caused safaridriver to immediately abort on launch
  • Fixed an issue where the Perform Actions command failed if a keyboard input source specified a tick containing a “pause” value without a “key” value
  • Storage:
  • Fixed an WebSQL issue preventing the user from granting a quota increase if the JavaScript provides an expected usage value that is too low

New in Safari 12.1 Technology Preview Release 66 (Sep 27, 2018)

  • Web Share API:
  • Implemented the Web Share API
  • Conic Gradients:
  • Added support for Conic Gradients
  • Fixed angle interpretation for Conic Gradients
  • Fixed color stop blending in Conic Gradients for stops past the first stop
  • WebRTC:
  • Enabled WebRTC Unified Plan as an Experimental Feature
  • Exposed RTCRtpSender.setParameters
  • Introduced a backend for RTCRtpTransceiver
  • Shadow DOM:
  • Fixed :first-child, :last-child, :nth-child, and :nth-of-type to work on shadow root’s children
  • Fixed mouseenter and mouseleave events to get dispatched when there is a capturing event listener for a slot ancestor
  • CSS:
  • Added support for double-position gradient color stop syntax
  • Web Inspector:
  • Updated the bezier curve editor for Dark Mode
  • Changed to generate CSSKeywordCompletions from backend values
  • Fixed imported recordings that are unable to be viewed after navigation
  • Fixed opening Web Inspector with a selected element that might immediately scroll that element off screen in the DOM Tree outline
  • Changed to record actions performed on ImageBitmapRenderingContext
  • Fixed Source View to scroll to show the line when a breakpoint is hit inside of a in an HTML resource
  • Fixed a Location popover triggering for a hidden Location column when clicking a row in the Script Events grid of the Timelines tab
  • Web API:
  • Fixed XMLHttpRequest open() to throw a SYNTAX_ERR exception if the method is empty or the URL cannot be resolved
  • Fixed overrideMimeType to not update the Content-Type header in the XMLHttpRequest response
  • Apple Pay:
  • Updated to dispatch a paymentmethodchange event when the payment method changes
  • Renamed the -apple-pay-button-type value checkout to check-out
  • JavaScript:
  • Fixed Symbol.prototype.description to handle a null Symbol
  • Media:
  • Added Media Capabilities API as an Experimental Feature
  • Added support for HEVC codec types in Media Capabilities
  • Fixed track.onmute not getting called for a remote MediaStreamTrack when its counter part track is removed from the peer connection
  • Updated to include supported frame rates in video capture presets
  • Simplified logic when changing RealtimeMediaSource settings
  • Changed the middle value to center in WebVTT for consistency with CSS
  • Web Animations:
  • Fixed a failure that occurred when interrupting an accelerated CSS transition on a composited element in-flight
  • Fixed accelerated animations to correctly respect positive delay values
  • Web Assembly:
  • Optimized JavaScript to Web Assembly call by removing Vector allocation
  • Password AutoFill:
  • Automatically submit login forms when filling credentials with Password AutoFill
  • On MacBook Pro with Touch Bar, require authentication with Touch ID to fill passwords into web pages; this can be changed in Safari’s AutoFill preferences

New in Safari 12.0 (Sep 18, 2018)

  • Icons in Tabs. Enable in Preferences to identify tabs visually with website icons.
  • Automatic Strong Passwords. Safari now automatically generates strong, unique passwords when signing up for accounts or changing passwords on websites.
  • 3D & AR Model Viewer. View 3D models or jump into an AR viewing experience in Safari on iOS 12.
  • New Platforms:
  • Web Pages on watchOS. View web pages and HTML messages from Mail and Messages on watchOS 5 with Apple Watch Series 3.
  • Password AutoFill:
  • Added support for automatically generating strong, unique passwords in account creation and change password scenarios.
  • Added support for generating passwords that are compatible with website password format requirements with the passwordrules attribute.
  • Added support for suggesting user names during sign-up flows in Safari.
  • Use the username, current-password, and new-password values for the autocomplete attribute (e.g. ) to help Safari understand your credential-related forms.
  • Security Code AutoFill (new in Safari 12 on macOS 10.14 and iOS 12):
  • Added support for filling security codes delivered over SMS.
  • Tag text fields using the one-time-code value of the autocomplete attribute (e.g. ) to ensure that Security Code AutoFill is offered.
  • Use text messages with a numeric sequence near the word “code” (e.g. “Your secure login code is: 123456”).
  • Media:
  • 3D & AR Model Viewer on iOS:
  • Added support for viewing USDZ AR models embedded in websites.
  • Fullscreen API on iOS for iPad:
  • HTML elements can be viewed in fullscreen on iPad.
  • CSS and Text Features:
  • Font Collections:
  • Added support for font collections in WOFF2 and TTC files.
  • OpenType SVG:
  • Added support for defining letterforms in OpenType fonts using SVG.
  • font-display
  • Added support for the font-display CSS property to declaratively control web font loading behaviors.
  • Updated HSL and HSLA Syntax:
  • Improved HSL and HSLA parsing to match the CSS Color Module Level 4 specification.
  • Security and Privacy:
  • Intelligent Tracking Prevention 2.0:
  • Improved Intelligent Tracking Prevention to permanently partition cookie access in third-party contexts, add a user prompt to the Storage Access API, detect bounce trackers and purge their website data, identify tracker collusion, and send origin-only headers for third-party tracker requests.
  • Added support for specifying cookies that shouldn’t be sent for cross-site requests.
  • cross-origin-window-policy:
  • Added support for cross-origin-window-policy to defend against Cross Site Script Inclusion attacks.
  • cross-origin-resource-policy:
  • Added support for cross-origin-resource-policy to defend against Cross Site Script Inclusion attacks.
  • Updated X-Frame-Options and CSP:
  • Updated X-Frame-Options and CSP frame-ancestors to give authors stronger defenses against cross-site framing.
  • Web Inspector and Tools:
  • WebGL Shader Debugging:
  • Added support for debugging WebGL shaders in the Canvas tab.
  • Updated WebDriver:
  • Safari WebDriver now implements the protocol as defined by the W3C WebDriver specification.
  • Safari Extensions:
  • Deprecated .safariextz-style Safari Extensions:
  • Support for .safariextz-style Safari Extensions installed from the Safari Extensions Gallery is deprecated with Safari 12 on macOS. Submissions to the Safari Extensions Gallery will no longer be accepted after December 2018. Developers are encouraged to transition to Safari App Extensions.
  • Disabled canLoad Safari Extensions on first launch:
  • Safari Extensions that make use of the canLoad event will be disabled on first launch and users will be notified with a warning that their use is harmful to performance. These extensions can be enabled in Safari Extensions preferences. Developers are encouraged to move to Content Blocker Extensions.
  • Removed Support for Developer-signed .safariextz Safari Extensions:
  • Support for developer-signed .safariextz Safari Extensions in Safari 12 on macOS has been removed. They no longer appear in Safari preferences and cannot be enabled. On first launch users will receive a warning notification and these extension will not load.
  • Legacy NPAPI Plug-ins:
  • Removed support for running legacy NPAPI plug-ins other than Adobe Flash.

New in Safari 12.1 Technology Preview Release 65 (Sep 11, 2018)

  • Storage Access API:
  • Made a change to maintain access through same-site navigations of an iframe
  • Updated the Storage Access API prompt to show the eTLD+1s, not the full host names
  • Media:
  • Fixed scrubbing video with Touch Bar on YouTube to prevent video playback freezing
  • Fixed muted elements not updating their Now Playing status when unmuted
  • Apple Pay:
  • Added Web Inspector auto-complete keywords for -apple-pay-button-style and -apple-pay-button-type
  • Changed to allow $0 totals
  • Changed PaymentRequest.show() to reject when an unsupported ApplePayRequest version is specified
  • Introduced Apple Pay JS v4
  • Introduced new values for -apple-pay-button-type
  • Payment Request:
  • Added an onpayerdetailchange event handler to PaymentResponse
  • Implemented the MerchantValidationEvent constructor
  • Removed PaymentAddress.languageCode
  • Shadow DOM:
  • Changed to compose click events from click()
  • Fixed the focus navigation order in slot fallback contents
  • Fetch API:
  • Made a change to stop checking the Request.integrity value in no-CORS mode
  • Service Workers:
  • Fixed undefined self.isSecureContext in Service Workers
  • Web API:
  • Added getModifierState to MouseEvent
  • Web Inspector:
  • Added auto-completion for event breakpoints
  • Added support for breakpoints for timers and animation-frame events
  • Fixed deleting multiple event breakpoints by repeatedly hitting delete
  • Fixed the color picker to allow entering decimal numbers for opacity
  • Fixed typos in some compositing reasons
  • Fixed the Search bar being too narrow in some localizations
  • Fixed console.inspect(sessionStorage) to correctly show the Session Storage content view if the Storage tab was previously unvisited
  • Fixed console.log() to show the passed string when a certain format is used
  • Fixed the JSContext Inspector to correctly show Scripts in the Resources tab
  • WebGL 2:
  • Updated WebGL 2 implementation to handle READ_FRAMEBUFFER and default framebuffer specification conformance
  • Web Assembly:
  • Updated Web Assembly to parse wasm modules in a streaming fashion
  • Safari extensions:
  • Messages from a Safari App Extension to its content script are now delivered to the correct page after a back or forward navigation

New in Safari 12.1 Technology Preview Release 64 (Aug 30, 2018)

  • Custom Elements:
  • Fixed the custom element constructor to use HTMLElement in new.target’s realm
  • Fixed custom element to invalidate its style when :defined rule starts to apply
  • Changed invoking custom element reactions after constructing and inserting a custom element
  • Changed to perform a microtask checkpoint before creating a custom element
  • Web API:
  • Added the content-length header to the Fetch safe-list
  • Disallowed navigations when page cache updates the current document of the frame
  • Fixed navigator.sendBeacon to work in pagehide callbacks
  • Fixed elements that change from hidden to visible to properly display its content if its URL has a fragment identifier
  • Media:
  • Added Experimental Feature support for SourceBuffer.changeType()
  • Fixed an issue causing video playback to use more power
  • Skipped validation of ideal constraints when selecting matching getUserMedia devices
  • JavaScript:
  • Added support for a “name” option for dedicated workers
  • Added support for unhandled promise rejections in a Worker
  • Changed Date.UTC to not return NaN with only year parameter
  • Changed Array.prototype.sort to throw a TypeError if the parameter is a not callable object
  • Storage Access API:
  • Changed to use eTLD+1s, not full host names, when granting storage access
  • Web Inspector:
  • Added support for breakpoints on arbitrary event names
  • Added Initiator information in the Network table
  • Allowed breakpoints to be set for specific event listeners
  • Allowed recording processing to be stopped midway in the Canvas tab
  • Created icons for recordings and shaders in the preview tile of the Canvas tab
  • Fixed console.log to prevent firing getters for deep properties
  • Fixed the contrast of the error and warning text widget for the source code text editor in Dark Mode
  • Fixed XHR content sometimes showing as an error even though the load succeeded
  • Fixed ⌘G to work as expected when the find banner is focused
  • Provided a default icon for all actions in the Canvas tab
  • Prevented tables from centering rows when scrolling them into view
  • WebDriver:
  • Changed top not handle prompts that appear while running scripts
  • Included all capabilities in the new session response
  • Stopped trying to set the caret when focusing a non-text element in the send keys command
  • CSS:
  • Implemented flow-relative margin, padding, border and sizing properties
  • Updated the behavior of percentage row tracks and gutters in CSS Grid)
  • WebGL:
  • Fixed WebGL contexts to be updated when the display configuration is changed
  • Bug Fix:
  • Fixed color wells to appear pressed when presenting a color picker
  • Safari Push Notifications:
  • A user gesture, such as a mouse click, is now required to request the user’s permission to send Safari Push Notifications
  • Safari Reader:
  • Allowed videos served from youtube-nocookie.com to display and play in Safari Reader

New in Safari 12.0 Technology Preview Release 63 (Aug 16, 2018)

  • Known Issue:
  • Adobe Flash content does not load on macOS Mojave
  • Dark Mode:
  • Fixed the appearance of the Smart Search Field in Dark mode on macOS Mojave
  • Stability:
  • Fixed a Safari Technology Preview application crash that could happen when waking one’s Mac from sleep
  • Fixed a Safari Technology Preview application crash that could happen when navigating between web pages
  • Custom Elements:
  • Fixed document.open and document.write to throw errors while the HTML parser is synchronously constructing a custom element
  • Implemented customElements.upgrade()
  • Fixed erroneous garbage collection for properties set on window.customElements
  • Changed innerHTML to not synchronously create a custom element
  • Made HTML parser immediately execute custom elements reactions after synchronously constructing a custom element
  • Fixed the crash that occurs when a custom element reaction callback throws an exception
  • Media:
  • Prevented creating composited layers for renderers unless they are part of the fullscreen subtree
  • Fixed switching tabs to not close the picture-in-picture window
  • Web Animations:
  • Fixed accelerated animations to respect a positive delay value
  • Fixed transitions added immediately after element creation to work as expected
  • Fixed animation stopping with object-fit:contain on an animated 2D canvas
  • Web API:
  • Fixed navigator.sendBeacon to work in pagehide event callbacks
  • Fixed setting the table layout to fixed causing incorrect cell width calculations
  • Accessibility:
  • Fixed returning nothing for various previous text marker APIs from one or node to another
  • Web Inspector:
  • Fixed inconsistent background color for the JavaScript Debugger breakpoint editor in Dark Mode
  • Fixed the contrast for the disabled breakpoints banner in Dark Mode
  • Fixed a white background for the Search sidebar panel text field in Dark Mode
  • Fixed the source code text editor thread indicator widget contrast in Dark Mode
  • Included a full URL tooltip when hovering the name in the Network Tab
  • Internationalization API:
  • Changed the Internationalization API to ignore encoding when parsing BCP 47 language tag from an ISO 15897 locale string passed via LANG
  • WebGL 2:
  • Added support for compilation of GLSL ES version 300 shaders
  • SVG:
  • Changed to allow href attribute without xlink on SVG elements

New in Safari 12.0 Technology Preview Release 62 (Aug 1, 2018)

  • Known Issues:
  • This release of Safari Technology Preview for macOS Mojave betas does not render text properly in the Smart Search Field when in Dark Mode.
  • This release of Safari Technology Preview for macOS Mojave betas does not have a usable WebDriver implementation; safaridriver hangs when processing the New Session command.
  • Intelligent Tracking Prevention:
  • Added an experimental ITP Debug Mode to be used only when actively debugging, not to remain enabled
  • JavaScript:
  • Changed to canonical language tags in the Internationalization API
  • Fixed the Generator and AsyncGeneratorMethod prototype
  • Fixed the JSON.stringify replacer to use isArray instead of JSArray checks
  • Fixed the iterator of Array.keys() to return the object in the correct order
  • Fixed JavaScript URL to provide the correct result when frame is navigated
  • Changed JSON.stringify to emit properties included in the prototype chain for entries in the second array argument
  • Media:
  • Changed to require the document to be visible for fullscreen video
  • Disabled all network caching for HLS streams.
  • Fixed the transition for the first Picture-in-Picture from Fullscreen
  • Changed HLS resources with remote sub-resources to taint media elements
  • Improved WebGL selection of GPU driving the current display
  • Rendering:
  • Fixed newly added float elements to trigger full layout on the block
  • Dark Mode:
  • Improved the visibility of spelling and grammar markers in Dark Mode
  • Web API:
  • Limited editing selections to within Shadow DOM boundaries
  • Web Inspector:
  • Made several color and contrast improvements for Dark Mode
  • The experimental Layers Tab visualization no longer selects a layer on mousedown
  • Fixed recent regressions in presentation of execution/basic block highlights and type token positions
  • SVG:
  • Implemented support for margin-box as reference box and box shape
  • Added full support for -webkit-clip-path on SVG elements
  • Web Animations:
  • Changed to discrete interpolation between font-styles with a keyword value
  • Changed to discrete interpolation between lengths with an auto value
  • CSS:
  • Added support for calc() in CSS Grid gutter properties
  • IndexedDB:
  • Fixed the ability to remove the database file of a sub-frame
  • Accessibility:
  • Fixed pressing tab to highlight items on a webpage when voiceover enabled

New in Safari 12.0 Technology Preview Release 61 (Jul 19, 2018)

  • CSS:
  • Fixed -webkit-clip-path offset for clipPath references
  • Turned CSS Animation Triggers off by default
  • Updated clip-path box mapping to unified box
  • Dark Mode:
  • Made the focus ring color honor the system accent color
  • Prevented inverting text color for selections when not in dark mode
  • Web API:
  • Enabled Link Preload by default in the Experimental Features menu
  • Fixed cookie creation time exposed to Objective-C
  • Fixed find in page to find low (German) quotes
  • Fixed return values for DOMMatrix.invertSelf() when used on a non-invertible matrix
  • Implemented support for Element.toggleAttribute
  • Improved window.event compliance: Should not be set when target is in shadow tree
  • Promoted the Secure Context API from an experimental feature to always on
  • Updated the Element API to use qualifiedName to comply with standards
  • Service Workers:
  • Made fetch() use “same-origin” credentials by default
  • Fixed fetching several times in a row
  • Media:
  • Disabled autoplay when the element is suspended
  • Fixed video flicker which sometimes happened when playing to AppleTV
  • Changed to reject getUserMedia promise if capture fails
  • WebRTC:
  • Fixed delay and video lag caused by enabling and disabling a MediStreamTrack
  • Web Assembly:
  • Stopped using tracePoints in JavaScript/WASM entry
  • Web Inspector:
  • Fixed copy from Search results content view
  • Fixed the “Open Link” context menu action
  • Fixed the resource search field in dark mode
  • Fixed the Debugger content view to properly update when the left sidebar is collapsed
  • Enabled control-dragging to pan the 3D render in the Layers inspector
  • Accessibility:
  • Added a subrole for meter elements on macOS
  • Fixed setValue on text controls to send out key events

New in Safari 11.1.2 (Jul 9, 2018)

  • SECURITY FIXES:
  • Safari:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2018-4279: Ruilin Yang, Xu Taoyu (xia0yu.win)
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: Processing maliciously crafted web content may lead to an unexpected Safari crash
  • Description: A memory corruption issue was addressed with improved memory handling.
  • CVE-2018-4270: found by OSS-Fuzz
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: A malicious website may exfiltrate audio data cross-origin
  • Description: Sound fetched through audio elements may be exfiltrated cross-origin. This issue was addressed with improved audio taint tracking.
  • CVE-2018-4278: Jun Kokatsu (@shhnjk)
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: A type confusion issue was addressed with improved memory handling.
  • CVE-2018-4284: Found by OSS-Fuzz
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: A malicious website may be able to cause a denial of service
  • Description: A race condition was addressed with additional validation.
  • CVE-2018-4266: found by OSS-Fuzz
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed with improved memory handling.
  • CVE-2018-4261: Omair working with Trend Micro's Zero Day Initiative
  • CVE-2018-4262: Mateusz Krzywicki working with Trend Micro's Zero Day Initiative
  • CVE-2018-4263: Arayz working with Trend Micro's Zero Day Initiative
  • CVE-2018-4264: found by OSS-Fuzz, Yu Zhou and Jundong Xie of Ant-financial Light-Year Security Lab
  • CVE-2018-4265: cc working with Trend Micro's Zero Day Initiative
  • CVE-2018-4267: Arayz of Pangu team working with Trend Micro's Zero Day Initiative
  • CVE-2018-4272: found by OSS-Fuzz
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: Processing maliciously crafted web content may lead to an unexpected Safari crash
  • Description: Multiple memory corruption issues were addressed with improved input validation.
  • CVE-2018-4271: found by OSS-Fuzz
  • CVE-2018-4273: found by OSS-Fuzz
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: A spoofing issue existed in the handling of URLs. This issue was addressed with improved input validation.
  • CVE-2018-4274: an anonymous researcher
  • WebKit Page Loading:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.6
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2018-4260: xisigr of Tencent's Xuanwu Lab (tencent.com)

New in Safari 12.0 Technology Preview Release 60 (Jul 4, 2018)

  • Known Issues:
  • Safari Technology Preview Release 60 will crash on launch on macOS Mojave Developer Beta 1. Users should upgrade to macOS Mojave Developer Beta 2 to avoid the crash.
  • After updating to Safari Technology Preview Release 60, the homepage preference and the Develop menu preference will be lost.
  • Web Animations:
  • Changed CSS Animations to take precedence over CSS Transitions
  • Ensured animations are updated prior to requestAnimationFrame callbacks
  • Implemented the starting of CSS Transitions according to the standards specifications
  • Dark Mode:
  • Fixed input form controls with a white background in dark mode
  • Fixed the white corner between vertical and horizon scrollbars in dark mode
  • Web Inspector:
  • Fixed all non-Same-Site cookies getting marked as Same-Site Strict in the Storage tab
  • Fixed the Box Model section to have dark background in dark mode
  • Fixed color outline that was too dark in dark mode
  • Fixed font guideline colors that were too bright in dark mode
  • Fixed media query names that were unreadable in dark mode
  • Fixed network headers colors are too dim in dark mode
  • Media:
  • Fixed the AirPlay picker to use the correct theme in dark mode
  • CSS:
  • Fixed CSS background-color style to no longer affect natively rendered text fields
  • Exposed more semantic system colors
  • WebRTC:
  • Changed RTCRtpSender.replaceTrack(null) to stop the real-time source but keep the track
  • Security:
  • Changed CSP to apply checks before content blocker checks for network loads to match cache load behavior
  • Validated Cross-Origin-Resource-Policy for resources cached in the MemoryCache
  • Plug-ins:
  • Fixed plug-in process crashing that affected Flash on macOS Mojave betas
  • Intelligent Tracking Prevention:
  • Improved classification of redirect collusion to a prevalent resource
  • WebDriver:
  • Fixed key actions to support multiple pressed virtual keys
  • Included correct key code with synthesized NSEvents used for keystrokes
  • Accessibility:
  • Fixed focus to follow the text cursor when zoom is enabled

New in Safari 12.0 Technology Preview Release 59 (Jun 21, 2018)

  • Known Issues:
  • This release of Safari Technology Preview for macOS Mojave betas does not render text properly in the Smart Search Field when in Dark Mode
  • Users running this version of Safari Technology Preview on macOS Mojave Developer Beta 2 will need to login to websites when restarting the application, or may require logging in again on some websites when launching a new window
  • Intelligent Tracking Prevention 2.0:
  • Enabled the latest version of Safari’s privacy protection “Intelligent Tracking Prevention.” For technical details, see the WebKit blog post.
  • Web Animations:
  • Enabled Web Animations as an experimental feature by default
  • Added support for handling relative length units such as em, vw, and vh
  • Fixed a bug causing WebAnimation objects to never get destroyed
  • Payment Request:
  • Removed currencySystem member
  • JavaScript:
  • Added Symbol.prototype.description getter
  • Implemented + and - unary operation
  • Implemented support for % operation
  • Implemented support for < and > relational operation
  • Implemented support for =< and >= relational operation
  • Implemented support for addition operations
  • Fixed the Array.prototype.concat fast case when a single argument is a Proxy object
  • Fixed Date.parse() to properly handle input outside of ES spec limits
  • Fixed Array.prototype.sort to reject null comparator
  • Renamed Array#flatten to flat
  • Editing:
  • Fixed not displaying spelling errors in the middle of an inserted paragraph
  • Storage Access API:
  • Changed Storage Access API calls to handle the absence of an attached frame
  • Security:
  • Enabled Cross-Origin-Resource-Policy by default
  • Changed the NetworkCORSPreflightChecker to set the preflight request User-Agent header
  • Changed Accept request header values to be more tightly checked in the case of a CORS load
  • Fixed the Referrer-Policy response header to not be ignored
  • Renamed Cross-Origin-Options HTTP header to Cross-Origin-Window-Policy
  • Renamed Cross-Origin-Resource-Policy:same to same-origin
  • Migrated From-Origin to Cross-Origin-Resource-Policy
  • Service Workers:
  • Added Accept-Encoding:identity to Range requests
  • Fixed ServiceWorker registration to store any script fetched through importScripts
  • Fixed HTTP Header values validation to not be too strict
  • Improved error messages when FetchEvent.respondWith has a rejected promise
  • Prevented starting service worker fetch when there is substitute data
  • Updated Fetch code to provide more useful exception messages
  • Compatibility:
  • Fixed page reloading when viewing photos in Google Drive due to exceeding canvas memory limits
  • Fixed memory management when zooming and scrolling on some websites
  • Link drag image is inconsistently unreadable in dark mode
  • WebRTC:
  • Added an option to restrict communication to localhost sockets
  • Web API:
  • Changed PopStateEvent to not be cancelable by default
  • Media:
  • Changed media elements outside of fullscreen to not be considered main content
  • Changed to exit fullscreen when JavaScript alerts are presented
  • Changed automatic picture-in-picture to use the main content heuristic
  • Changed to stop playing in the background when automatic picture-in-picture is disabled
  • Enabled subsampling for progressive JPEG images
  • Fixed incorrectly sized captions in picture-in-picture mode
  • Fixed regions outside of the fullscreen window becoming exposed during zoom operations
  • Fixed fullscreen element clipping by an ancestor
  • Web Inspector:
  • Added Same-Site cookie annotations
  • Fixed copying a link address in the Elements tab
  • Fixed popovers getting dismissed while attempting to move the cursor inside
  • Fixed the tab picker becoming briefly visible when the TabBar is initially shown
  • Prevented text in “Add New Class” from being auto-capitalized
  • Accessibility:
  • Exposed the rel attribute to voiceover
  • Fixed VoiceOver to announce when a details element is expanded when using role group
  • Fixed setValue on contenteditable to preserve whitespace
  • Fixed VoiceOver to announce fieldset description from aria-describedby when focusing inputs
  • Implemented support for new blockquote, caption, and paragraph ARIA roles
  • iCloud Keychain Password Manager:
  • Added support for loading https://example.com/.well-known/change-password when a user indicates they’d like to change a password that is reused in Safari’s Passwords preferences, falling back to loading example.com if that load fails

New in Safari 12.0 Technology Preview Release 58 (Jun 7, 2018)

  • This release covers the same revisions of WebKit from Safari Technology Preview 57, but includes new Safari and WebKit features that will be present in Safari 12. The following Safari 12 features are new to Safari Technology Preview 58:
  • Icons in Tabs. You can enable showing website icons in tabs in Safari’s Tabs preferences.
  • Automatic Strong Passwords. Safari automatically generates strong, unique passwords when signing up for accounts or changing passwords on websites. New to Safari 12 and Safari Technology Preview 58, generated passwords can be customized using the passwordrules attribute. See Apple’s Password Rules Validation Tool for more information.
  • Many more WebKit features in Safari 12 are present in this release of Safari Technology Preview and have been in past releases. You can read more about these changes and many others in What’s New in Safari 12.

New in Safari 11.2 Technology Preview Release 58 (Jun 7, 2018)

  • This release covers the same revisions of WebKit from Safari Technology Preview 57, but includes new Safari and WebKit features that will be present in Safari 12. The following Safari 12 features are new to Safari Technology Preview 58:
  • Icons in Tabs. You can enable showing website icons in tabs in Safari’s Tabs preferences.
  • Automatic Strong Passwords. Safari automatically generates strong, unique passwords when signing up for accounts or changing passwords on websites. New to Safari 12 and Safari Technology Preview 58, generated passwords can be customized using the passwordrules attribute. See Apple’s Password Rules Validation Tool for more information.
  • Many more WebKit features in Safari 12 are present in this release of Safari Technology Preview and have been in past releases. You can read more about these changes and many others in What’s New in Safari 12.

New in Safari 11.1.1 (Jun 1, 2018)

  • SECURITY FIXES:
  • Safari:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: A malicious website may be able to cause a denial of service
  • Description: A denial of service issue was addressed with improved validation.
  • CVE-2018-4247: François Renaud, Jesse Viviano of Verizon Enterprise Solutions
  • Safari:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2018-4205: xisigr of Tencent's Xuanwu Lab (tencent.com)
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Visiting a maliciously crafted website may lead to cookies being overwritten
  • Description: A permissions issue existed in the handling of web browser cookies. This issue was addressed with improved restrictions.
  • CVE-2018-4232: an anonymous researcher, Aymeric Chaib
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: A type confusion issue was addressed with improved memory handling.
  • CVE-2018-4246: found by OSS-Fuzz
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: A race condition was addressed with improved locking.
  • CVE-2018-4192: Markus Gaasedelen, Nick Burnett, and Patrick Biernat of Ret2 Systems, Inc working with Trend Micro's Zero Day Initiative
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Processing maliciously crafted web content may lead to an unexpected Safari crash
  • Description: A memory corruption issue was addressed with improved input validation.
  • CVE-2018-4214: found by OSS-Fuzz
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2018-4188: YoKo Kho (@YoKoAcc) of Mitra Integrasi Informatika, PT
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed with improved memory handling.
  • CVE-2018-4201: an anonymous researcher
  • CVE-2018-4218: Natalie Silvanovich of Google Project Zero
  • CVE-2018-4233: Samuel Groß (@5aelo) working with Trend Micro's Zero
  • Day Initiative
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: A buffer overflow issue was addressed with improved memory handling.
  • CVE-2018-4199: Alex Plaskett, Georgi Geshev, Fabi Beterke, and Nils of MWR Labs working with Trend Micro's Zero Day Initiative
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Visiting a maliciously crafted website may leak sensitive data
  • Description: Credentials were unexpectedly sent when fetching CSS mask images. This was addressed by using a CORS-enabled fetch method.
  • CVE-2018-4190: Jun Kokatsu (@shhnjk)
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.4
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: An out-of-bounds read was addressed with improved input validation.
  • CVE-2018-4222: Natalie Silvanovich of Google Project Zero

New in Safari 11.2 Technology Preview Release 57 (May 31, 2018)

  • JavaScript:
  • Added support for Intl.NumberFormat().formatToParts()
  • Changed to throw SyntaxErrors for runtime generated regular expressions with errors
  • Implemented BigInt support for *, /, and == operations
  • Improved specification compliance for Internationalization APIs
  • Improved the speed of Object.assign for final objects
  • Animations:
  • Exposed Web Animations CSS integration as an experimental feature
  • Fixed a bug where animation-play-state:paused causes very high cpu load because of a style invalidation loop
  • Storage Access API:
  • Extended the lifetime of cookies on successful user approval
  • Security:
  • Added initial support for the Cross-Origin-Options HTTP response header
  • Changed Cross-Origin-Options:deny and Cross-Origin-Options:allow-postmessage to prevent getting navigated by cross-origin scripts
  • Changed X-Frame-Options:SAMEORIGIN to check all ancestor frames
  • Media:
  • Enabled the modern EME API by default
  • Fixed media continuing to load after rendered invisible (e.g. removed from DOM; scrolled off screen)
  • Improved NowPlaying using the element "title" attribute when available
  • Accessibility:
  • Changed the accessiblility name provided for a node to simplify the whitespace when using innerText
  • Excluded hidden nodes which are not directly referenced from participating in name or description content
  • Ensured listbox and combobox roles embedded in labels participate in name calculation
  • Exposed the primary screen height through the AX API
  • Fixed a bug with VoiceOver causing scrolling focus jumping
  • Fixed VoiceOver to manually focus or read dialog paragraph description text inside the modal in role=dialog elements with aria-modal=true
  • WebDriver:
  • Fixed a crash that happens if a browsing context’s cookies are requested prior to an initial navigation
  • If the network or storage process crashes, terminate the automation session to avoid undefined behavior
  • Automation.getBrowsingContext now returns the same window origin as window.screenX and window.screenY
  • Web Inspector:
  • Added rulers and guides to the Canvas tab
  • Changed the Canvas tab to not automatically select a recording when viewing a canvas
  • Improved the placement logic for the element details popover that is shown during Inspect Element mode
  • Calculating the visual effect of each Canvas action is now off by default for performance reasons.

New in Safari 11.2 Technology Preview Release 56 (May 17, 2018)

  • JavaScript:
  • Implemented Intl.PluralRules
  • WebAssembly:
  • Added support for stream APIs
  • Web API:
  • Fixed document.open() event listener removal to be immediate
  • Fixed DHTML drag operations to report the number of files in the operation
  • Fixed window.postMessage(), window.focus(), and window.blur() unexpectedly throwing a TypeError
  • Serialized font-variation-settings with double-quotes to match standards
  • Stopped using the id of an as fallback if its name attribute is not set
  • Security:
  • Added support for the WHATWG proposed From-Origin:same and From-Origin:same-site response headers with nested frame origin checking as an off by default experimental feature
  • Fixed CSP referrer for a document blocked due to a violation of its frame-ancestors directive
  • Fixed CSP status-code for a document blocked due to a violation of its frame-ancestors directive
  • Fixed CSP to pass the document’s referrer
  • Fixed CSP to only notify Web Inspector to pause the debugger on the first policy to violate a directive
  • Fixed a bug causing first-party cookies to be blocked on redirects
  • CSS:
  • Fixed CSS filters which reference SVG filters to respect the color-interpolation-filters of the filter
  • Fixed feTurbulence to render correctly on a Retina display
  • Fixed shape-outside and filter styles occuring twice in the result of getComputedStyle
  • Rendering:
  • Changed font collection fragment identifiers to use PostScript names
  • Fixed selecting text on a webpage causing the text vanish
  • Fixed hiding then showing an of type image to ensure the underlying image is displayed
  • Media:
  • Changed MediaStreams that are playing to allow removing some of its tracks
  • Updated text track cue logging to include cue text
  • Web Inspector:
  • Improved the user experience in Canvas tab to show progress bars while processing actions in a new recording
  • Ensured that tabbing through the last section of rules in the Styles editor wraps back to the first section of rules
  • Fixed Console drawer resizing when the console prompt has more than one line of code
  • Fixed unsupported properties that sometimes don’t get warnings just after adding them
  • Updated the Canvas tab to determine functions by looking at the prototype

New in Safari 11.2 Technology Preview Release 55 (May 4, 2018)

  • CSS:
  • Added support for calc() in webkit-gradient and cross-fade
  • Changed :active pseudo class to deactivate when using pressure sensitive trackpad
  • Omitted the default value when serializing font-feature-settings
  • Updated HSL and HSLA parsing to match CSS Color 4
  • Web API:
  • Enforced content-type for tags
  • Fixed input.webkitEntries to work as expected when a folder contains accented chars
  • Setting event.returnValue to true is now a no-op
  • Rendering:
  • Fixed animated GIFs with finite looping to loop the expected number of times
  • Fixed the position of the caret in empty table cells
  • Accessibility:
  • Added the accessibility events to the HTML attribute names so AOM works with DOM Level 1 events
  • Fixed a hang when triggering an alert from an AOM increment event
  • JavaScript:
  • Fixed function.prototype.caller to not return generator bodies
  • Web Driver:
  • Fixed simulated mouse interactions to not be done until the associated DOM events have been dispatched
  • Web Inspector:
  • Fixed selecting and copying text from a Network tab popover
  • Media:
  • Added allSamplesInTrackEnqueued event
  • WebRTC:
  • Fixed a WebRTC data channel issue for non-ASCII characters.
  • Security:
  • Changed to use CSP and content blockers for sync XHR
  • Bug Fixes:
  • Fixed an issue that would sometimes incorrectly rule out PDF as a mime type that can be showed
  • Fixed an issue with Command-clicking web app links on icloud.com

New in Safari 11.2 Technology Preview Release 54 (Apr 19, 2018)

  • Clipboard API:
  • Fixed copying a list from Microsoft Word to TinyMCE when mso-list is the first property
  • Prioritized file promises over filenames during drag and drop
  • Beacon API:
  • Fixed Beacon redirect responses to be CORS validated
  • Web API:
  • Implemented createImageBitmap(Blob)
  • WebRTC:
  • Added a special software encoder mode when a compression session is not using a hardware encoder and VCP is not active
  • Added experimental support for MDNS ICE candidates in WebRTC data channel peer-to-peer connections
  • Web Inspector:
  • Fixed the errors glyph to fully change to blue when active
  • Tinted all pixels drawn by a shader program when hovering over a tree element in the Canvas Tab

New in Safari 11.2 Technology Preview Release 53 (Apr 5, 2018)

  • Service Workers:
  • Changed to use one service worker process per security origin
  • Changed to use the same SWServer for all ephemeral sessions
  • Fixed promptly terminating service worker processes when they are no longer needed
  • Included the security origin in the service worker process name
  • WebRTC:
  • Added support for VCP encoder on macOS and iOS
  • Fixed the RTCPeerConnection constructor to throw an exception for bad configuration parameters
  • Fixed setting SenderTrack to null calling removeTrack with RTCRtpSender
  • Loading:
  • Fixed CSS mask images to be retrieved using potentially CORS-enabled fetch
  • Fixed loading the stylesheet when changing the element rel attribute from preload to stylesheet
  • Rendering:
  • Fixed invalidating descendants for :nth-child and :nth-of-type pseudo classes only when needed
  • Fixed positioning for text with letter spacing
  • Media:
  • Added Fullscreen API as an Experimental Feature
  • Prevented SVG root from being skipped while marking percentage height descendants dirty
  • Accessibility:
  • Fixed the table row count when role="row" is added to in DOM
  • CSS:
  • Fixed CSS Grid auto repeat tracks computation with definite min sizes
  • Web API:
  • Added a query and fragment exception to the History API’s unique origin restriction
  • Web Inspector:
  • Changed “Force Print Media Styles” to not persist across Web Inspector sessions
  • Changed to not show checkboxes for invalid properties in the Styles sidebar
  • Fixed the ability to add a new class by editing the class attribute in the DOM tree outline
  • Fixed an instance of the main WebGL canvas having no reported size in the Canvas Tab
  • Fixed a recording initiated by the user to properly show immediately on completion
  • Fixed session dividers not being added when Console tab is not visible
  • Fixed flashing when switching between nodes in the Styles sidebar
  • Fixed losing focus when editing a property while a page is being loaded
  • Prevented the Shift-Command-Left Arrow (⇧⌘←) and Shift-Command-Right Arrow (⇧⌘→) keys from switching tabs when focused on color picker text fields
  • Removed redundant tooltips

New in Safari 11.1 (Mar 30, 2018)

  • HIGHLIGHTS:
  • Service Workers. Implement background scripts for offline web applications and faster web pages.
  • Payment Request. Provide a consistent user payment experience in Safari using a standards-based API.
  • Security Improvements. Improved protection against memory corruption and code execution attacks.
  • Web Inspector Updates. New designs for the Network Tab and the Styles sidebar in the Elements Tab.
  • WEB APIS:
  • Updated root document touch event listeners to use passive mode improving scrolling performance and reducing crashes.
  • Service Workers:
  • Added support for background scripts that can proxy network requests.
  • Added debugging for Service Workers to the Web Inspector.
  • Payment Request API:
  • Added a standards-based payment API to provide a consistent mechanism for users to make Apple Pay payments to merchants.
  • HTMLImageElement.decode():
  • Added API for synchronous or asynchronous download of images for displaying on a web page.
  • Directory Upload:
  • Added the File and Directory Entries API for developers to upload the structure and contents of directories.
  • Beacon API:
  • Added an API to send a web server asynchronous non-blocking requests. For information on the Beacon API, see https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API.
  • Floor level geolocation:
  • Added Coordinates.floorLevel to the WebKit iOS Geolocation API.
  • display:contents:
  • Added support for the contents value of the CSS display property which uses the boxes of the children of an element instead of the box of the element when calculating layout.
  • Added some ECMAScript 2018 features:
  • Enabled rest properties for object destructuring assignment and spread properties for object literals.
  • Added named capture groups for Regular Expressions. For more information, see https://github.com/tc39/proposal-regexp-named-groups.
  • Added Unicode properties escapes for Regular Expressions. For more information, see https://github.com/tc39/proposal-regexp-unicode-property-escapes.
  • Add the Regular Expression DotAll flag, see https://github.com/tc39/proposal-regexp-dotall-flag.
  • Updated the Clipboard API:
  • Improved standards compliance of the Clipboard API.
  • Added the DataTransfer interface to support JavaScript getting and sending rich text. For information on the DataTransfer interface, see https://html.spec.whatwg.org/multipage/dnd.html#datatransfer.
  • MEDIA:
  • Video as an Image asset:
  • Support video content in tags.
  • EME in iOS:
  • Added support for Encrypted Media Extensions in Safari on iOS.
  • Updated WebRTC and Media Capture:
  • Added support for allow="camera".
  • Improved standards compatibility and stability.
  • TEXT FEATURES:
  • font-display:
  • Added support to CSS to declare how a font face is loaded and displayed.
  • WEB APPS:
  • Web App Manifest:
  • Added support for websites declaring how web apps behave and appear when using “Add to Home Screen”.
  • New in Safari 11.1 - Server pre-connect:
  • Pre-connect to a server for the likely next page using .
  • SECURITY AND PRIVACY:
  • Website Not Secure Warnings:
  • Added display of “Website Not Secure” warnings when the user focus moves to a password or credit card form on an insecure page.
  • Sub-resource Integrity:
  • Added file verification for resource files to prevent modification of the file during delivery. For more information, see https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity.
  • Storage Access API:
  • Added a new sandbox API for requiring user consent to use first-party cookies that originate from a third-party.
  • Updated Intelligent Tracking Prevention:
  • Enhanced consistency of cross-site tracking protection behaviors.
  • Updated the User-Agent String Policy:
  • Changed the updating policy to to only continue updating the OS version number and Safari version number.
  • WEB INSPECTOR AND TOOLS:
  • Canvas Debugging:
  • Added a Canvas Tab for debugging a 2D canvas contained in a web page.
  • Updated Network Tab design:
  • Improved the clarity and usability of the Network Tab.
  • Updated Styles sidebar design:
  • Improved the usability of the Styles sidebar.
  • Added new WebDriver APIs:
  • Added support for testing file uploads, WebRTC behavior, and a new command that opens Web Inspector.
  • PASSWORD AUTOFILL:
  • Password AutoFill for Apps in Web Views:
  • Added Password AutoFill for web content shown in WKWebView and UIWebView.
  • New in Safari 11.1 – Removed Password AutoFill on Page Load:
  • Disabled AutoFill at page load to prevent sharing information without user consent.
  • SAFARI EXTENSIONS:
  • Extension Support for Safe Browsing
  • Added new Content Blocker action type to show the Safe Browsing warning page

New in Safari 11.2 Technology Preview Release 52 (Mar 22, 2018)

  • Legacy NPAPI Plug-ins:
  • Removed support for running legacy NPAPI plug-ins other than Adobe Flash
  • Service Worker:
  • Changed Fetch event release assert to take into account the fetch mode
  • Changed to not use a Service Worker in the case of document redirection if it will be already served by AppCache
  • Fix loads for a Document controlled by a Service Worker to not use AppCache
  • Updated Service Worker to respect IndexedDB and DOM cache partitioning
  • Loading:
  • Added support for preconnect link headers
  • Fixed converting a load to a download to work with async policy delegates
  • Prevented DNS prefetching from being re-enabled
  • JavaScript:
  • Fixed handling undefined global variables with the same name as an element ID
  • Made Number.isInteger an intrinsic
  • CSS:
  • Added new CSS env() constants for use with fullscreen
  • Fixed ::selection CSS stroke-color and stroke-width to be applied to selected text in text fields
  • Web API:
  • Fixed HTML pattern attribute to set u flag for regular expressions
  • Fixed replaceState causing back and forward navigation problems on a page with
  • Fixed document.open to cancel navigation policy check in addition to cancelling the existing provisional load
  • Accessibility:
  • Added more accessibility events support
  • Dispatched accessiblesetvalue event
  • Fixed keyboard focus to follow the VoiceOver cursor into web content or within web content
  • Fixed WebKit running spell checker even on non-editable content text
  • Web Driver:
  • Fixed clicking on a disabled option element to not produce an error
  • Fixed stale elements not getting detected when removed from the DOM
  • Fixed failed provisional loads causing “Navigate To” command to hang
  • Fixed script evaluations via WebDriver to have a user gesture indicator
  • Web Inspector:
  • Changed Canvas Tab to scroll into view and inspect an element if Canvas has a DOM node
  • WebAssembly:
  • Added cache for memory address and size on an instance
  • Media:
  • Fixed the webkitfullscreenchange event to fire at the same time as :-webkit-full-screen pseudo selector changes
  • Bug Fix:
  • Fixed copying a table from the Numbers app and pasting into iCloud Numbers

New in Safari 11.2 Technology Preview Release 51 (Mar 8, 2018)

  • Accessibility:
  • Added accessibleclick event
  • Security:
  • Disallowed cross-origin subresources from asking for credentials
  • Prevented blocking authentication challenges to navigated resources
  • Loading:
  • Fixed provisional loads that might get committed before receiving the decidePolicyForNavigationResponse response
  • Service Workers:
  • Fixed the ability to download resources loaded from Service Workers
  • Rendering:
  • Changed to handle all SVG writing modes
  • Styles:
  • Improved the speed of descendent selector invalidation by using a selector filter
  • Web Inspector:
  • Added support to show or hide the navigation sidebar panel based on the current view
  • Fixed hiding the completion popover when switching panels in the Styles sidebar
  • Bugs:
  • Added support for scrolling a non-editable web-selection and start autoscroll when near screen edges

New in Safari 11.2 Technology Preview Release 50 (Feb 22, 2018)

  • Service Workers:
  • Added support for cache storage of blob responses
  • Changed to queue a microtask when a waitUntil() promise is settled
  • Delayed service worker process creation until actually needed
  • Delayed saving service worker registrations to disk until after the activation succeeds
  • Fixed issue with IndexedDB databases not persisting inside Service Workers
  • Fixed issue where service workers jobs would sometimes not get processed anymore
  • Fixed clearing a registration to properly null out its workers before setting their state to "redundant"
  • Fixed clearing all service worker registrations to wait for importing the service worker registration to finish
  • Started nulling out registration.installing before setting service worker state to “redundant” when install fails
  • Web App Manifest:
  • Changed to default Web App Manifest scope to the containing directory of the start URL when 'scope' is not specified
  • Payment Request:
  • Changed show() to take an optional PaymentDetailsUpdate promise
  • Fixed payment sheet not dismissing when calling complete() with result "unknown" or "fail"
  • Web API:
  • Implemented createImageBitmap(HTMLVideoElement)
  • Rendering:
  • Corrected invaliding style for sibling combinators on class change
  • Fixed rendering SVG images with same size as WebGL texture
  • Fixed computing inline-block baseline for vertical-lr
  • Web Inspector:
  • Added listing of Canvases, Programs, and Recordings to the sidebar
  • Fixed the Canvas tab tree selection abruptly changing when selecting a recording frame
  • Fixed pasting multiple properties to create properties instead of causing a bad property in the Styles Sidebar
  • Fixed the completion popover not hiding when switching panels in the Styles Sidebar
  • Fixed typing a value and quickly moving focus away sometimes displaying an outdated value in the Styles Sidebar
  • Updated the Elements tab to have “Jump to Layer” functionality
  • Web Driver:
  • Changed cookies returned by automation to have expiry time in seconds
  • Changed to not return an error if resizing or moving a window has no effect
  • Prepended a dot to the domain when missing in the addCookie command
  • Accessibility:
  • Fixed Accessibility getting notified when a web process cancels suspension
  • Deferred attribute computation until needed
  • Deferred focus notifications for UI elements
  • JavaScript:
  • Changed to throw an exception when using structured cloning on a Symbol
  • Fixed an incorrect case of variable resolution to consult the global lexical environment first before the global object

New in Safari 11.2 Technology Preview Release 49 (Feb 8, 2018)

  • Service Workers:
  • Changed Service Workers restored from persistent storage to have “activated” state
  • Changed to terminate Service Workers that are unresponsive
  • Prevented Service Worker registrations restored from disk from being reused when the JavaScript calls register() again
  • Fetch:
  • Added support for ConsumeData callback when chunk data is received for Fetch response
  • Changed opaque being-loaded responses to clone their body
  • Filtered out Fetch headers from an opaque response
  • Fixed Fetch redirect to be compatible with “no-cors” mode
  • Fixed Fetch response to copy its URL from the request if it is null
  • Set integrity Fetch options for loading scripts and CSS
  • Intelligent Tracking Prevention:
  • Blocked cookies for prevalent resources without user interaction
  • Ensured ServiceWorker loading and requests are correctly cleared by Intelligent Tracking Prevention
  • Introduced debug mode as experimental feature
  • CSS:
  • Added support for percentages in column-gap
  • Added support for parsing calc() in CSS media queries
  • Adopted CSS WG recommended syntax changes to remove "left" and "right" in block/cross-axis alignment properties
  • Adopted CSS WG recommended syntax changes requiring overflow-position to precede self-position or content-position in the css-align property
  • Adopted support for a recent specification change removing "baseline" as a valid value for the ‘justify-content’ property
  • Fixed computing the scroll position of position:fixed elements when the scale is greater than 1
  • Preserved original image and picture element colors when invert colors is on
  • Rendering:
  • Fixed the overflow of formulas for display mathematics
  • Optimized building the non-fast scrollable region with multiple iframes
  • SVG:
  • Fixed the feMorphology SVG filter to allow the radius on one axis to be 0 and still apply the effect
  • JavaScript:
  • Implemented trimStart and trimEnd
  • Relaxed line terminators in String to make JSON subset of JavaScript
  • Web Inspector:
  • Changed clicking on a path component that has no siblings to now select it
  • Changed the Layers tab to use a statically positioned layer details panel instead of a moving popover
  • Changed the Styles sidebar to always display CSS rules left-to-right, even when Web Inspector uses RTL layout
  • Fixed an issue that caused the Canvas Tab to display multiple “waiting for frames” messages
  • Fixed an issue that cause the record button on a Canvas Tab canvas to sometimes not appear on hover
  • Fixed a bug that caused the Network Tab sort indicator to hide when a sorted column is hidden and re-shown
  • Fixed the Network Tab’s table columns to no longer shake when scrolling at non-default zoom levels
  • Fixed a data corruption issue triggered by updating values in the Styles Sidebar quickly
  • Fixed the Styles sidebar to stop throwing exceptions when tabbing past commented out properties
  • Fixed the Resource Tab detail sidebar to wrap super long URLs better
  • Fixed Window resizing when the Web Inspector is detached from the browser
  • Prevented showing “Displayed Columns” when right-clicking in a table header if all columns are required
  • Improved the behavior of the Cookies table in the Network Tab at narrow widths
  • Improved Navigation Bar layout at narrow heights
  • Media:
  • Added support of multi keys from different sessions in CDMinstanceClearKey
  • Changed to resign the NowPlaying status when no media element is eligible
  • Changed to use existing RGB colorspace instead of creating a new one
  • Fixed cues for WebVTT served via HLS
  • Storage:
  • Added a deprecation warning to the Console when AppCache is used
  • Added console messages for cache storage errors like Quota
  • Changed to not use the storage process when loading a main resource if there is no Service Worker registered
  • Changed to not use the storage process when registering a Service Worker client if there is no Service Worker registered
  • Ensured Cache API will resolve caches.open promises in the same order as called
  • Fixed DOMCache data not getting properly removed when clearing data for a given origin
  • Increased default cache storage quota to 50MB
  • Security:
  • Added a policy check for targeted windows when navigating to a JavaScript URL
  • Added CSP post checks for Service Worker responses
  • Disabled access to Service Workers and the Cache API in sandboxed frames without the allow-same-origin flag
  • Updated frame-ancestor directive to match Content Security Policy Level 3
  • Accessibility:
  • Added support for ARIA active-descendant
  • Added a way for VoiceOver to uniquely identify a web session
  • Implemented support for Graphics ARIA roles: graphics-document, graphics-object, and graphics-symbol
  • Prevented SVG AAM mapping from overriding ARIA role attribute in the case of SVG root
  • Bug Fixes:
  • Fixed the GitHub login at forums.swift.org by ensuring redirections for subresource loads can change Service Worker controllers
  • Fixed blob conversion and sanitization for Microsoft Word for Mac 2011
  • Prevented a disallowed user-installed font from being used if its PostScript name is specified

New in Safari 11.2 Technology Preview Release 48 (Jan 25, 2018)

  • Password AutoFill:
  • Disabled Automatic AutoFill of user names and passwords at page load to prevent sharing information without user consent
  • Storage Access API:
  • Enabled the Storage Access API by default
  • Changed to remove access for all frames under a page when the page is closed
  • SVG:
  • Fixed SVG lighting filter lights to use the correct coordinate system
  • Fixed feLighting that has a filter primitiveUnits="objectBoundingBox"
  • Service Workers:
  • Added CSP support to Service Workers
  • Changed to use no-cache fetch mode when loading main documents with location.reload()
  • Changed WebProcess to pass the registration identifier and not the worker identifier for fetch events
  • Changed to use Service Workers for documents with data URLs or blob URLs
  • Changed behavior to cancel pending script loads when the Service Worker is being terminated
  • Cleared the Cache volatile storage as a memory optimization.
  • Exposed redirect mode as “manual” for navigation loads in Service Workers
  • Enabled User Timing and Resource Timing for Service Workers
  • Fixed fetch events getting sent to a Service Worker before its state is set to “activated”
  • Fixed navigator.onLine inside Service Workers
  • Implemented the “main fetch” default referrer policy setting
  • Made Service Workers behave correctly with regards to Page Cache
  • Stopped exposing fetch and extendable events to window
  • CSS:
  • Fixed ::first-letter to select the correct grapheme pairs
  • Fixed a blank pages except for inner iframes when pending stylesheets cause style.isNotFinal() to be true
  • Fixed image-rendering to affect the scaling of border-image
  • Fixed the special list-item counter to start from the correct number for ::before and ::after
  • Improved text appearance on some CSS spec pages
  • Web API:
  • Changed redirected iframes loading with request.redirect=follow to fail
  • Fixed setting window.opener to null to disown its opener
  • Implemented createImageBitmap(ImageBitmap)
  • Implemented Cache API partitioning based on ClientOrigin
  • Made elements with zero width or height focusable
  • Rendering:
  • Fixed constant frame dropping during Flash video playback
  • Fixed clipping copyTexImage2D and copyTexSubImage2D
  • Fixed a visual flash caused by using font-display:fallback
  • Fixed data URL fonts that are split in the middle of an alphabet from causing random letters to disappear
  • Web Inspector:
  • Added support for JSX (React) syntax highlighting
  • Added a content menu to the main Tab bar for showing and hiding tabs
  • Fixed the “Log Value” context menu sometimes being unavailable
  • Fixed typing a “space” in the quick console triggering a Canvas recording
  • Fixed fuzzy Capture Element screenshots
  • Fixed the Find banner sometimes not working when already populated and shown for first time on a resource
  • Fixed the “find next” and “find previous” within a resource content view does bouncing highlight when the editor scrolls
  • Fixed Layers sidebar to hide popovers when it is collapsed
  • Fixed the Export HAR context menu in the Network tab
  • Fixed DOM Tree Element selection in RTL mode
  • Fixed clicking on white space after a property sometimes placing a blank property at the wrong index in the Styles sidebar
  • Fixed long values causing bad wrapping in the Styles sidebar
  • Fixed pressing the down key to select the first item from completion list when focusing on an empty value
  • Fixed Command-G (⌘G) and Shift-Command-G (⇧⌘G) text search after closing the find banner
  • Fixed the Debugger tab to restore the selected resource on reload
  • Improved performance when dragging the recording slider in the Canvas tab
  • Improved inspector launch time, especially for systems with many fonts
  • Made the Console’s Execution Context picker stand out when it is non-default
  • Prevented properties from being semitransparent or crossed out while editing in the Styles sidebar
  • Web Driver:
  • Implemented the Get Timeouts command
  • Accessibility:
  • Changed the style of video elements when invert colors is on to preserve normal video colors
  • Implemented the updated CSS3 Speech for the speak and speak-as properties
  • WebRTC:
  • Changed RTCController to disable ICE candidate filtering in case of getUserMedia based on the RTCPeerConnection origin
  • Updated WebRTC to close sockets that are marked as defunct
  • JavaScript:
  • Applied poisoning to pointers in JavaScriptCore
  • Fixed for-in caching when indexed properties are added to properties on the prototype chain
  • Fixed Array storage operations that sometimes do not update the indexing mask correctly
  • Removed the arguments and caller properties for bound functions in Object.getOwnPropertyNames
  • WebAssembly:
  • Added poison to JavaScript object’s secrets
  • Bug Fixes:
  • Changed the History state to be updated during client redirects with asynchronous policy decisions
  • Forbid “” in the host name of a URL
  • Prevented recording dynamic spelling corrections while in an ephemeral browsing session
  • Reduced the precision of “high” resolution time to 1ms

New in Safari 11.0.3 (Jan 24, 2018)

  • SECURITY FIXES:
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13.3
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed with improved memory handling.
  • CVE-2018-4088: Jeonghoon Shin of Theori
  • CVE-2018-4089: Ivan Fratric of Google Project Zero
  • CVE-2018-4096: found by OSS-Fuzz

New in Safari 11.1 Technology Preview Release 47 (Jan 11, 2018)

  • Storage Access API:
  • Enabled allowing requests from non-sandboxed
  • Implemented frame-specific access in the document.cookie layer
  • Made document.hasStorageAccess() retrieve the current status from the network process
  • Refactored XPC for access removal to go straight from the web process to the network process
  • Service Workers:
  • Added support for response blob given to fetch events
  • Changed extracting a body of type Blob to set the Content-Type to null instead of an empty string
  • Changed to use “error” redirect mode for fetching service worker scripts
  • Changed the Service Worker script fetch request to set the Service-Worker header
  • Changed Service Worker to not clean HTTP headers added by the application or by Fetch specification before Service Worker interception
  • Fixed the default scope used when registering a service worker
  • Fixed the Service Worker Registration promise sometimes not getting rejected when the script load fails
  • Fixed Service Worker served response tainting to keep its tainting
  • Fixed scopeURL to start with the provided scriptURL
  • Fixed self.importScripts() to obey updateViaCache inside service workers
  • Fixed Fetch handling to wait for the Service Worker’s state to become activated
  • Fixed SameOrigin and CORS fetch to fail on opaque responses served from a Service Worker
  • Fixed memory cache to not reuse resources with a different credential fetch option
  • Prevented searching for service worker registration for non-HTTP navigation loads
  • Supported Service Worker interception of a request with blob body
  • Media:
  • Enabled picture-in-picture from an inline element on suspend
  • Fixed playing media elements which call “pause(); play()” getting the play promise rejected
  • Implemented
  • Rendering:
  • Fixed elements animated on-screen that are sometimes missing
  • Fixed setting the fePointLights color
  • Fixed the color of the bottom right pixel of feDiffuseLighting
  • Fixed SVG lighting colors to be converted into linearSRGB
  • Updated the SVG use element’s shadow trees explicitly before the style recall
  • Web Inspector:
  • Enabled the Canvas Tab by default
  • Improved open time performance when enumerating system fonts
  • Fixed Command-Option-R (⌘⌥R) in the docked inspector causing Web Inspector to reload instead of the inspected page
  • Fixed the URL filter in the Network Tab to be case-insensitive like filter bars in other tabs
  • Fixed mis-sized waterfall graphs in the Network Tab after closing the detail view
  • Redesigned the waterfall popover showing timing data in the Network Tab table
  • Updated the Time column in the Network Tab table to include the total duration not just the download duration
  • Added an inline swatch for CSS variables in the Styles sidebar
  • Added support for typing a semicolon at the end of a value to move to the next property in the Styles sidebar
  • Enabled Command-S (⌘S) to save changes in the matching CSS resource in the Styles sidebar
  • Fixed selecting text in the Styles sidebar to not add new properties
  • Implemented clicking above the selector to prepend a new property in the Styles sidebar
  • Clipboard API:
  • Fixed isSafari runtime check to enable custom clipboard types and clipboard data sanitization in Safari Technology Preview
  • Fixed not being able to paste images on Gmail
  • Reverted blob URL conversions in pasted contents for LegacyWebKit clients
  • Bug Fix:
  • Avoided waking plugin process up unnecessarily

New in Safari 11.0.2 (Jan 9, 2018)

  • Available for: OS X El Capitan 10.11.6 and macOS Sierra 10.12.6
  • Description: Safari 11.0.2 includes security improvements to mitigate the effects of Spectre (CVE-2017-5753 and CVE-2017-5715).
  • We would like to acknowledge Jann Horn of Google Project Zero; and Paul Kocher in collaboration with Daniel Genkin of University of Pennsylvania and University of Maryland, Daniel Gruss of Graz University of Technology, Werner Haas of Cyberus Technology, Mike Hamburg of Rambus (Cryptography Research Division), Moritz Lipp of Graz University of Technology, Stefan Mangard of Graz University of Technology, Thomas Prescher of Cyberus Technology, Michael Schwarz of Graz University of Technology, and Yuval Yarom of University of Adelaide and Data61 for their assistance.
  • To check the version of Safari installed on your Mac: Open Safari. Choose Safari > About Safari.
  • If the latest version of Safari 11.0.2 is installed, you see:
  • Version 11.0.2 (11604.4.7.1.6) on OS X El Capitan 10.11.6
  • Version 11.0.2 (12604.4.7.1.6) on macOS Sierra 10.12.6

New in Safari 11.1 Technology Preview Release 46 (Dec 21, 2017)

  • Service Workers:
  • Made Service Workers enabled by default
  • Exposed self.registration inside Service Workers
  • Removed HTTP headers added by CachedResource and CachedResourceLoader in Service Worker fetch
  • Rejected promises in the ServiceWorkers API when calling objects inside of detached frames
  • Yielded image content from a CacheStorage.add(url) network request
  • Changed the Fetch event header filtering to only apply in CORS-mode
  • Handled self.skipWaiting() inside Service Workers
  • Removed XMLHttpRequest from being exposed to Service Workers
  • Implemented clients.get() and clients.getAll()
  • Supported container.register() and registration.unregister() inside Service Workers
  • Targeted the Service Worker’s scope URL for remote inspection metadata
  • Made navigation requests to use navigate fetch mode
  • Activated IndexedDB and Web Sockets in Service Workers
  • Supported container.getRegistration() and container.getRegistrations() inside Service Workers
  • Added support for serviceWorker.postMessage() and serviceWorkerRegistration.update() inside of Service Workers
  • Added support for the Service Worker client unloading algorithm
  • Added support for FetchEvent.clientId
  • Addressed various issues inspecting Service Workers
  • Included support for Service Worker generated redirections
  • Populated self.registration.installing, self.registration.waiting, and self.registration.active inside Service Workers
  • Security UI:
  • Added a warning in the Smart Search field when interacting with password or credit card forms on non-secure pages
  • Privacy:
  • Froze the user-agent string to reduce web compatibility risk and to prevent its use for fingerprinting
  • CSS:
  • Fixed small or clipped controls caused by scale() transforms on elements
  • Clamped automatic minimum size in CSS grid if the min() track sizing function is auto
  • Implemented alignment for absolute positioned CSS grid items
  • Rendering:
  • Fixed an often blank in an HTML-page
  • Fixed missing layer content when animating elements on-screen
  • Implemented transferToImageBitmap for WebGL offscreen canvas objects
  • Prevented viewport unit values from being affected by zooming with ⌘- or ⌘+
  • Storage Access API:
  • Implemented frame-specific access in the network storage session layer
  • Made document.hasStorageAccess a function and always allow access for same-origin iframes
  • Web Inspector:
  • Made Computed a top-level sidebar panel in the Elements tab
  • Added the ability to filter rules and add new style rules in the redesigned Styles sidebar
  • Added display of related pseudo-elements in the Styles sidebar
  • Changed the behavior of pressing delete in an empty value field of a newly added property to focus on the name field in the Styles sidebar
  • Fixed CSS properties not being removed in the Styles sidebar after deleting their values
  • Fixed details section headers overlapping the Classes container in the Computed Styles panel
  • Fixed adding a new property after a property without trailing semicolon in the Styles sidebar
  • Prevented adding a property before or after the first property from becoming appended to the end in the Styles sidebar
  • Fixed the filter bar in the Console tab sometimes not appearing and cases where clear console doesn’t always work
  • Fixed content views for resources loaded through XHR and Fetch to reflect the declared MIME-type
  • Fixed the Remote Web Inspector window to restore the last used window size
  • Fixed spurious warnings shown for commands that changed pixel contents in the Canvas tab
  • Improved the initial user interface experience in the Canvas tab
  • Fixed an issue that caused Safari to hang after toggling “Allow Web Inspector” setting on an attached iOS device.
  • Web Assembly:
  • Fixed postMessage to allow a WebAssembly module to postMessage to and from an iframe
  • Fixed a bug where we would incorrectly throw stack overflow errors
  • Web Driver:
  • Added support for handling user prompts shown while executing scripts
  • Fixed link and partial links queries to work in XHTML documents
  • Fixed computeElementLayout to correctly translate iframe client coordinates to main frame coordinates
  • Fixed a regression that causes page screenshots to only contain the viewport
  • Fixed an issue where safaridriver would quit after trying to close a window when no windows remain open
  • JavaScript:
  • Corrected the recursive tail call optimisation on closures
  • Implemented BigInt literals and JSBigInt
  • Implemented a more optimized WeakMap and WeakSet
  • Optimized Object.assign by single transition acceleration
  • Media:
  • Added support for the decoding="sync" or decoding="async" attribute on images
  • Enabled use of the VCP H264 encoder for platforms that support it
  • Fixed the cursor not becoming visible after exiting full screen video
  • Included "video/*" in image request Accept header if the browser supports video media in image contexts
  • WebRTC:
  • Changed to allow AudioContext to start when getUserMedia is on
  • Fixed an issue where getUserMedia is resolving before the document knows it is capturing
  • Prevented the display from going to sleep when playing WebRTC video tracks

New in Safari 11.1 Technology Preview Release 45 (Dec 6, 2017)

  • Rendering:
  • Corrected the computed style in pseudo-elements with display:contents
  • Changed to reset the SVG scrolling anchor if the fragmentIdentifier does not exist or is not provided
  • Fixed the available height for positioned elements with box-sizing:border-box
  • Fixed long pressing a phone number with spaces to result in a data detectors sheet instead of a link sheet
  • Fixed compositing layers to use accelerated drawing when navigating back to a page
  • Fixed Flexbox issues with display:contents by no longer eliminating the whitespace renderer if the previous sibling is a text renderer
  • Fixed missing contents of composited overflow-scroll when newly added
  • Fixed content not getting painted when scrolling an overflow node inside an iframe
  • Fixed FETurbulence SVG filter with stitchTiles
  • Fixed skewed colors in feImage as a filter input
  • Fixed an issue in the FEGaussianBlur SVG filter where the output of the last blur pass wasn’t copied to the result buffer
  • Optimized the FEDisplacementMap SVG filter
  • Optimized the FEMorphology SVG filter
  • Optimized the FEComponentTransfer SVG filter
  • Optimized the FELighting SVG filter
  • Optimized the FETurbulence SVG filter
  • Used vImage to optimize alpha premultiplication and un-premultiplication in FilterEffect
  • JavaScript:
  • Added recursive tail call optimization for polymorphic calls
  • Fixed async iteration to only fetch the next method once
  • Updated module fetching to retry if the previous request fails
  • CSS:
  • Fixed continual style re-resolution due to calc() values always comparing as unequal as seen on arstechnica.com
  • Fixed display issues in CSS Grid for a child with max-width
  • Enabled display:contents by default
  • Fixed inserting an image, selecting, underlining, and then deleting to remove the typing style with both -webkit-text-decorations-in-effect and text-decoration
  • Prevented mixing stroke-width and stroke-color with their prefixed versions
  • Web API:
  • Added support for CanvasPattern.setTransform()
  • Implemented OffscreenCanvas.getContext("webgl")
  • Changed XMLHttpRequest to not treat file URLs as same origin
  • Changed FetchLoader to unregister its blob URL
  • Media:
  • Added a FairPlay Streaming based CDM for Modern EME
  • Changed Web Audio’s AnalyserNode.fftSize to allow up to 32768 to match specifications
  • Changed skip back and skip forward buttons to not hard-code their numeric amount in localised strings
  • Fixed play and pause when pressing the space bar while watching a fullscreen video
  • Prevented captions from moving when with no controls is hovered
  • Web Inspector:
  • Added the display of detailed status during canvas recording in the experimental Canvas tab
  • Added showing the internal properties of PaymentRequest in the Console
  • Cleaned up the backtrace in Canvas details sidebar
  • Cleaned up navigation bar dividers and separators
  • Gave the DataGrid table header ContextMenu a section header to better describe its functions
  • Included Beacon loads in the Network table’s “Other” filter
  • Moved console Preserve Log setting from Setting tab to Console navigation bar
  • Added a toggle in the Network tab to control automatically clearing or preserving log across loads
  • Added a HAR Export button to the Network tab
  • Cleaned up the Network tab details view
  • Fixed the Navigation sidebar that would become broken after closing and re-opening the tab
  • Made the connection part thinner in the Network tab waterfall graph
  • Updated the Ignore Caches icon in the Network tab
  • Updated the Clear icon in the Network tab and Console tab
  • Removed Network “Clear on load” from the Settings tab now that Network tab has a toggle for it
  • Prevented adding a new property when clicking on inline swatches and property checkboxes in the Styles sidebar
  • Changed typing colon in the property name field to advance to the value field in the Styles sidebar
  • Fixed the clipped shadow of the selector’s field in the Styles sidebar
  • Made the selector field inline-block when editing in the Styles sidebar
  • Added undo and redo support for the DOM Tree’s add sibling context menus
  • Removed context menu actions for images which did not work
  • Accessibility:
  • Fixed VoiceOver in Safari to read the table header for the first cell in the first body row
  • Fixed the search predicate to return the text element for plain text instead of the containing group
  • Prevented accessibility from triggering a sync layout while building the render tree on macrumors.com

New in Safari 11.1 Technology Preview Release 44 (Nov 16, 2017)

  • Conic Gradients:
  • Added support for parsing conic gradients
  • Payment Request:
  • Enabled Payment Request by default
  • Implemented the algorithm for when a user aborts the payment request
  • Restricted Payments Request API use to secure, same-origin frames
  • Changed the show() method to only be called with user activation
  • Image Bitmap:
  • Implemented createImageBitmap() with HTMLCanvasElement
  • Added support for accepting a Settings object in the ImageBitmapRenderingContext constructor and getContext
  • Web API:
  • Added basic OffscreenCanvas interface
  • Prevented XMLHttpRequest from sniffing content encoding
  • Added support for the tag, currently off by default at runtime
  • CSS:
  • Fixed dynamic media query updates in shadow tree stylesheets
  • Fixed display:contents with dynamic table mutations
  • Rendering:
  • Fixed a black background showing when over-scrolling with overflow-scrolling-touch
  • Fixed ugly looking text on macOS High Sierra in some CSS specification pages
  • Web Inspector:
  • Added support for enabling and disabling event listeners in the Node details sidebar
  • Grouped DOM Tree context menus into sub-menus
  • Added DOM Tree context menu items for adding new elements and inserting HTML
  • Added a lock indicator in the Domain column of the Network Tab for secure loads
  • Added a context menu item to jump from any resource to its entry in the Network Tab
  • Fixed an issue where selecting a DOM Search Result in the Search Tab suddenly changed tabs
  • Fixed bugs and usability issues present in the Canvases Tab overview
  • Added a backtrace in the Canvases Tab to show where the selected canvas context was created
  • Added a display of all WebGL extensions that are activated for a particular WebGL canvas in the Canvases Tab
  • Added inline preview swatches for image parameters in 2D canvas recordings
  • Changed selecting a recorded Frame in a canvas recording to update the preview slider to reflect the final drawn result of that frame
  • Fixed an issue where the Canvases Tab recording status would fail to update
  • Fixed some usability issues in the experimental Layers Tab
  • Moved the compositing borders and paint flashing buttons from Elements Tab to the experimental Layers Tab if the latter is enabled
  • Enabled the new CSS styles editor by default and made the deprecated Legacy Style Editor available in the Settings tab under Experimental
  • Added many smaller features and bug fixes for the spreadsheet-style CSS editor
  • Web Driver:
  • Fixed an issue that prevented a test from properly simulating a denied getUserMedia request
  • Fixed an issue that prevented a user from manually resizing an automation window after the session had been cancelled.
  • Fixed an issue that caused the mouse move command to use incorrect coordinates in some situations.
  • Media:
  • Fixed UNPACK_FLIP_Y for MSE-backed videos
  • Fixed to respect pointer-events
  • Improved performance of painting to canvas by caching resolved URLs
  • CSS Grid:
  • Changed CSS Grid to avoid clearing the overrideContainingBlockWidth if possible
  • Security:
  • Changed to only allow non-mixed content protected sub-resources to ask for credentials
  • Extensions:
  • Disallowed HTTP Authentication prompts from within Global Pages, Bars, and Popovers in .safariextz-style Safari Extensions

New in Safari 11.1 Technology Preview Release 43 (Nov 2, 2017)

  • Cache Storage API:
  • Activated Cache Storage API by default
  • Added API to clean CacheStorage data
  • Enabled Cache Storage API implementation to compute storage size
  • Implemented listing origins for which CacheStorage is storing data
  • Web Animations:
  • Added animations to the timeline
  • Added basic timing and target properties
  • Provided basic timeline and animation interfaces
  • ImageBitmap:
  • Added support for createImageBitmap with basic HTMLImageElement
  • Added createImageBitmap to Window and Worker
  • Aligned ImageData constructor with the specification
  • Implemented drawImage(ImageBitmap) on 2D canvas
  • Implemented resizing options for ImageBitmap rendering
  • Geolocation API:
  • Exposed Coordinates.floorLevel
  • Drag and Drop:
  • Fixed event.dataTransfer.getData("text/uri-list") to return an HTTP or HTTPS URL for a dragged image
  • Exposed “text/html” data when dragging and dropping across origins
  • Prevented exposing raw HTML in pasteboard to the web content
  • CSS:
  • Added support for ::before and ::after pseudo elements on elements with display:contents
  • Resolved ::before and ::after pseudo elements during style resolution
  • Rendering:
  • Fixed overlapping text on all CSS fonts specifications
  • Avoided triggering layout from a style change
  • Fixed fonts that are erroneously invisible when the policy says they should be visible
  • Fixed UTF-8 decoding to produce one replacement character per illegal sequence instead of per byte
  • Fixed corrupted image after looping movie-backed
  • WebGL:
  • Added WebGL2 texImage3D overloads
  • Avoided duplicate multisample resolve before WebGL compositing
  • Removed proprietary constants from WebGL2RenderingContext
  • Improved performance by performing pixel conformance and texturing in a single step
  • Improved performance by skipping texture upload if the source image and destination texture haven’t changed
  • Updated the signatures of texSubImage3D
  • WebGL clamps drawingBufferWidth to 4096 pixels on a 5120 monitor or canvas
  • Bug Fixes:
  • Fixed an issue where the Delete button didn’t fully delete certain emoji
  • Updated cookie partition to add and remove accordingly in intermediary redirect requests
  • JavaScript:
  • Optimized __proto__ getter to be faster
  • Web Inspector:
  • The redesigned styles sidebar can be enabled in the Web Inspector Settings tab under Experimental.
  • Turned on the new Network Tab by default
  • Turned on the Canvas Tab by default
  • Added support for HAR Export in the Network Tab
  • Enabled a JSON tree view for JSON content
  • Fixed resizing the Console drawer to match the cursor position
  • Enabled up and down arrows to modify CSS number values in the redesigned styles sidebar
  • Added color picker inline widget to the redesigned styles sidebar
  • Applied syntax highlighting to property values in the redesigned styles sidebar
  • Enabled autocompletion to property names and values in the redesigned styles sidebar
  • Enabled the go-to arrow in the Computed Tab of the redesigned styles sidebar
  • Fixed Layers Tab mistakenly throwing out the root element’s layer
  • Made 3D objects selectable in the Layers Tab visualization
  • Changed the split console to use the full width of the tab view
  • Changed Clear button back to the Trash icon in all tabs
  • Prevented popovers when scrolling the editor while debugging
  • Web API:
  • Prevented detection of HTML or XML when an XMLHttpRequest responseType is set to “text”
  • Prevented DOMTokenList from adding empty attributes
  • Stopped key events from updating Document.lastHandledUserGestureTimestamp unless a key event is handled
  • Added support for MouseEvent.buttons
  • Removed Fetch Request.type getter
  • Web Driver:
  • Fixed handling of keyboard shortcut for “Select All” (Ctrl-a)
  • Simulating keyboard shortcuts for disallowed actions no longer triggers the glass pane dialog
  • Payment Request:
  • Implemented the “PaymentRequest updated” algorithm
  • Implemented a paymentmethodselected event for PaymentRequest
  • Changed processing shipping options only if shipping is requested, and throw an exception on duplicate shipping option IDs
  • Changed to resolve the accept promise for PaymentRequest.show() when a payment is authorized
  • Subresource Integrity:
  • Added support for integrity="" on module scripts
  • Accessibility:
  • Exposed explicitly-set aria-sort value of "none" as an object attribute

New in Safari 11.0.1 (Nov 1, 2017)

  • SECURITY FIXES:
  • Safari:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2017-13790: Zhiyang Zeng (@Wester) of Tencent Security Platform Department
  • CVE-2017-13789: xisigr of Tencent's Xuanwu Lab (tencent.com)
  • WebKit:
  • Available for: OS X El Capitan 10.11.6, macOS Sierra 10.12.6, and macOS High Sierra 10.13
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed with improved memory handling.
  • CVE-2017-13784: Ivan Fratric of Google Project Zero
  • CVE-2017-13785: Ivan Fratric of Google Project Zero
  • CVE-2017-13783: Ivan Fratric of Google Project Zero
  • CVE-2017-13788: xisigr of Tencent's Xuanwu Lab (tencent.com)
  • CVE-2017-13795: Ivan Fratric of Google Project Zero
  • CVE-2017-13802: Ivan Fratric of Google Project Zero
  • CVE-2017-13792: Ivan Fratric of Google Project Zero
  • CVE-2017-13791: Ivan Fratric of Google Project Zero
  • CVE-2017-13798: Ivan Fratric of Google Project Zero
  • CVE-2017-13796: Ivan Fratric of Google Project Zero
  • CVE-2017-13793: Hanul Choi working with Trend Micro's Zero Day Initiative
  • CVE-2017-13794: Ivan Fratric of Google Project Zero
  • CVE-2017-13803: chenqin (陈钦) of Ant-financial Light-Year Security

New in Safari 11.1 Technology Preview Release 42 (Oct 19, 2017)

  • File and Directory Entries API:
  • Fixed a failure when calling fileSystemDirectoryEntry.getDirectory() with an empty path
  • Fixed recognizing a path starting with 2 slashes as a valid absolute path
  • Payment Request:
  • Implemented PaymentRequest.canMakePayment()
  • Implemented PaymentRequest.show() and PaymentRequest.hide()
  • Clipboard API:
  • Added the support for custom pasteboard MIME types and hid unsafe MIME types
  • Fixed copying and pasting of image files on TinyMCE and GitHub
  • Fixed DataTransfer.items to expose custom pasteboard types
  • Prevented revealing the file URL when pasting an image
  • Prevented dragenter and dragleave from using the same data transfer object
  • Removed “text/html” from DataTransfer.items when performing paste and match style
  • Started pasting images in RTF and RTFD contents using blob URLs
  • Sanitized the URL in the pasteboard for other applications and cross-origin content
  • Fonts:
  • Added “display” to the FontFace JavaScript object
  • Implemented font-display loading behaviors
  • Upgraded Brotli to version 1.0.1 and WOFF2 to the latest upstream
  • CSS:
  • Removed constant() in favor of env()
  • Web API:
  • Added support for DOM aborting
  • Added support for
  • Changed to use the blob URL when pasting RTFD
  • Changed XMLHttpRequest.setRequestHeader() to allow Content-Transfer-Encoding header
  • Prevented submitting a form that is disconnected
  • Updated Document.createEvent for recent DOM specification changes
  • WebDriver:
  • Added support for selecting an element by sending keys to its parent element.
  • Fixed an issue that caused driver.sendKeys("") to unexpectedly fail and throw an exception.
  • JavaScript:
  • Addressed an issue with if (!await get(something))
  • Dropped instantiate hook in ES6 module loader
  • Fixed object properties that are undefined in super.call() but not in this.call()
  • Implemented polymorphic prototypes
  • Implemented RegExp Unicode property escapes
  • Introduced import.meta
  • Accessibility:
  • Exposed ARIA drag-and-drop attribute values via AtkObject attributes
  • Exposed ARIA menu items with ATKROLEMENU_ITEM even when it’s the child of group role
  • Fixed redundant layout on tables
  • Fixed exposing aria-rowindex set on a row element
  • Fixed exposing the value of aria-level on non-heading roles
  • Media:
  • Added basic support for getting an ImageBitmapRenderingContext
  • Fixed slow WebGL compositing performance
  • Fixed seek() command for encrypted content when the element is not in the DOM at decode time
  • Rendering:
  • Fixed incorrect fullscreen animation when the element has a transform
  • Fixed an issue where minimum font size may cause elements to have an infinite line-height
  • Improved the progressive display of large images
  • WebGL:
  • Changed to allow async to be able to be used as an imported binding name
  • Changed the way WebGL is composited into the page significantly, providing much better performance on lower-end hardware with high-resolution displays
  • Reduced the maximum samples used in Multi-Sample Anti-Aliasing (MSAA) for improved performance
  • Web Inspector:
  • Added a Canvas tab
  • Added auto-completion for min() and max() within a CSS calc()
  • Added support for keyboard navigation with Tab, Shift-Tab, Enter, and ESC in the redesigned styles sidebar
  • Added support for editing rule selectors in the redesigned styles sidebar
  • Added support for undo and redo of manual edits in the redesigned styles sidebar
  • Added detail views for resources in Network tab
  • Added a headers detail view for resources in the Network tab
  • Added remote address in the headers detail view of the Network tab
  • Added a cookies detail view in the Network tab
  • Added support to search in the headers detail view of the Network tab
  • Changed Layers tab sidebar DOM highlight to be by row hover, not row selection
  • Changed Network tab filter resources to be based on URL and text content
  • Changed the Network tab to show initially loaded resources even if network info was not logged
  • Fixed jitter in timeline ruler labels
  • Fixed an issue where clicking in the Web Inspector web view clears the selection in the inspected page
  • Fixed Beacon and Ping grouping issues
  • Fixed Layers tab sidebar popover
  • Fixed a row wrapping issue causing waterfall graphs to display behind the next row’s name
  • Fixed blurry quick open resource dialog icons
  • Fixed misaligned popover when selecting child layers using the keyboard
  • Fixed the table in the Network tab from appearing blank when scrolling it reduces the number of rows
  • Enabled 3D objects to be selectable in the Layers visualization
  • Ensured popovers are not malformed on window resize.
  • Escaped more characters in the command generated by “Copy as cURL”
  • Improved Canvas recording events
  • Improved setting the initial default sorting for tables
  • Improved reliability of selection in a table in the Network tab
  • Improved the quick open dialog to include source mapped files in the search results
  • Included Beacon and Ping requests in Network tab
  • Set initial column widths to allow the waterfall column to expand more by default in the Network tab
  • Bug Fixes:
  • Fixed an issue introduced in Safari Technology Preview 41 where the tab bar could get out of sync with which tab’s content is being displayed when opening links from another app

New in Safari 11.1 Technology Preview Release 41 (Oct 5, 2017)

  • File and Directory Entries API:
  • Enabled File and Directory Entries API
  • CSS:
  • Added support for min() and max() in calc()
  • Added env() as an alias of constant() to match the evolving specification
  • Made more of the CSS animation system internals element based
  • Prevented fit-content() tracks from stretching
  • Removed CSS Regions support
  • Bug Fixes:
  • Fixed an issue introduced in Safari Technology Preview 40 where websites would log users out immediately after logging in
  • WebRTC:
  • Fixed RTCDataChannel connectivity issues
  • Drag and Drop:
  • Enabled DataTransfer.prototype.items by default
  • Expose text/html and text/uri-list in DataTransfer.prototype.items
  • Fixed DataTransfer to stop exposing local file paths when dropping files
  • Web API:
  • Changed history.pushState() and history.replaceState() to align more closely to the HTML standard
  • Changed to use a high resolution timestamp for event time
  • JavaScript:
  • Added a small optimization for async generators
  • WebCrypto:
  • Added support for Elliptic Curve P-521
  • WebGL:
  • Added bindings for optional arguments to some WebGL2 methods
  • Enabled passing sequences to various WebGL2 methods
  • Fixed accelerated texImage2D for video to respect flipY in WebGL
  • Fixed VideoTextureCopierCV to correctly restore vertex attribute state
  • Updated some WebGL2 return types to match the specification
  • Media:
  • Aligned Media Source Extension IDL with spec
  • Rendering:
  • Changed to avoid style recomputation when forwarding a focus event to a text field’s input type
  • Changed to avoid style resolution when clearing focused element
  • Fixed computing animated style to not require renderers
  • Fixed partial frame rendering that can occur even after loading all of the encoded data
  • Fixed the width of a child’s margin box to always be equal to that of its containing block in regular block layout
  • Fixed the spelling, grammar, and correction dots that were being painted upside down
  • Accessibility:
  • Fixed ARIA grids that claim to be multiselectable even with aria-multiselectable is set to false
  • Storage:
  • Added Cache API support of records persistency
  • Changed IDBRequest and IDBTransaction error properties to be DOMExceptions
  • Web Driver:
  • Fixed an issue that prevented clicking on overflow: hidden elements without children
  • Fixed an issue that prevented clicking on elements
  • Fixed an issue that prevented the top-level frame from being re-focused automatically when the main frame navigates
  • Web Inspector:
  • Added auto-completion suggestions for CSS attr based on the selected element’s attributes
  • Added auto-completion suggestions for CSS functions such as constant(), env(), linear-gradient(), etc.
  • Changed pressing the Escape key in the global search field to clear the field
  • Changed the keyboard shortcut for “Reload page from origin” to match Safari
  • Fixed updating the Event Listeners section when listeners are added or removed
  • Fixed “Sort by size” issues with Cookies and ApplicationCache DataGrids
  • Updated user agent strings and iPhone 8 / iPhone 8 Plus models in Responsive Design Mode

New in Safari 11.1 Technology Preview Release 40 (Sep 21, 2017)

  • JavaScript:
  • Added support for regular expression named capture groups
  • Fixed semicolon tokens becoming interpreted as an = assignment operator
  • Implemented async iteration statement for-await-of
  • Optimized Object.keys using careful array allocation
  • FileSystem Entry API:
  • Added support for input.webkitEntries
  • Implemented FileSystemDirectoryEntry.getDirectory()
  • Implemented FileSystemEntry.getParent()
  • Implemented FileSystemFileEntry.file()
  • Fixed the FileSystemEntry API to ignore hidden files
  • Finished the DOMFormData implementation
  • Fetch API:
  • Added support for FetchRequest.body
  • Added support for Request body stream cloning
  • Added support for consuming a Request ReadableStream body
  • Added support for caching Response with a ReadableStream body
  • Aligned FetchResponse and FetchRequest body handling
  • Fixed Response.statusText unexpectedly using the full HTTP status line for HTTP/2 responses
  • Fixed Request ReadableStream body to throw an exception when keep alive is true
  • Accessibility:
  • Distinguished between title attribute tooltips and aria-label attribute labels
  • Web API:
  • Fixed validation for DOMMatrix and DOMMatrixReadOnly NaN values
  • Implemented DOMMatrix2DInit for setTransform() and addPath()
  • CSS:
  • Removed support for >> descendant combinator syntax
  • Fixed wrong getComputedStyle result for pseudo-elements in display:none subtrees.
  • Updated the font selection algorithm to match latest CSS specifications
  • CSS Grid:
  • Fixed grid shorthand to not reset the gutter properties
  • Changed stretching auto tracks to be done as part of the track sizing algorithm
  • Changed to use transferred size over content size for automatic minimum size
  • Web Inspector:
  • Fixed an issue that caused toolbar buttons to be hidden at narrow widths
  • Prevented the split console in the Settings tab
  • Use the same Timeline icon in the dashboard and Timeline tab
  • Increased the maximum width allowed for sidebars
  • Fixed an issue that prevented ⌘E and ⌘G from working in the main content area when quick console drawer is open
  • Media:
  • Prevented increasing the reported totalFrameDelay for non-displayed frames, or frames coming in while paused
  • Fixed MSE-to-Canvas painting that can become “stuck” during heavy workloads
  • Rendering:
  • Implemented the HTMLImageElement.async attribute
  • Implemented HTMLImageElement.decode() method
  • Fixed respecting the SVG fragment identifier if it is a part of an HTTP URL
  • Enabled previous elements with lang= to affect fonts selected for subsequent elements
  • WebGL:
  • Implemented getActiveUniforms() for WebGL 2
  • Accelerated texImage2D for video doesn’t respect flipY
  • Fixed VideoTextureCopierCV to correctly restore vertex attribute state

New in Safari 11.0 (Sep 19, 2017)

  • HIGHLIGHTS:
  • Web conferencing. Implement peer to peer conferencing with the WebRTC standard.
  • Metrics. Test your code using new tools for measuring code and network performance.
  • WebAssembly. Writer smaller, faster web apps.
  • New WKWebView APIs. Capture snapshots, handle custom URL schemes, manage cookies more effectively, and implement web content filtering.
  • WEBKIT:
  • Handle custom schemes:
  • Added WKURLSchemeHandler, a protocol for handling custom schemes.
  • More effective cookie management.
  • Added WKHTTPCookieStore, an object that manages the HTTP cookies associated with a particular WKWebsiteDataStore.
  • Support for snapshots:
  • Added takeSnapshot(with:completionHandler:) to WKWebView, a method to capture a snapshot of the visible part of the webpage.
  • Rule-based content handling:
  • Added WKContentRuleList, a compiled list of rules to apply to web content.
  • SAFARISERVICES:
  • Share authenticated login sessions:
  • Added SFAuthenticationSession, a new API for authenticating a user with a web service, and then to share that authentication with other apps.
  • Use the init method to start the authentication session, providing the URL of the webpage in the url parameter. After completing the authentication, the completion handler is called either with an authentication token, or with an error.
  • The authentication page presented by SFAuthenticationSession has access to Safari cookies and other website data.
  • Updated SFSafariViewController:
  • Added functionality to change the title of the button used to dismiss the view controller, to exclude activity items from the share sheet, and to disable bar collapsing.
  • MEDIA:
  • Support for real-time communication using WebRTC.
  • Camera and microphone access:
  • Added support for the Media Capture API.
  • Added ability for websites to access camera and microphone streams from a user's device (user permission is required.)
  • WEB APIS:
  • WebAssembly:
  • Added support for WebAssembly, a fast, efficient, portable, and safe code format.
  • Updated Safari to the latest version of the WebCrypto API:
  • Includes new cryptographic algorithms like: AES-CFB, AES-GCM, ECDH, and PBKDF2.
  • SubtleCrypto is no longer prefixed and is now asynchronous.
  • Resource timing:
  • Added support for collecting detailed measurements of all network timing data for every resource on the page.
  • Added support for Resource Timing Level 2, Performance Timing Level 2, and for User Timing Level 2.
  • Added metrics for developers to identify client-side performance issues for web apps.
  • Drag and drop in iOS:
  • Added DOM events on iOS for drag and drop: dragstart, dragenter, dragover, dragexit, dragleave, dragend, and drop.
  • WEB APPS:
  • Updated WebKit support for home screen apps:
  • Web applications saved to the home screen now support all features of modern WebKit, such as Fast-Tap, scroll snapping and the new visual viewports behavior.
  • SECURITY AND PRIVACY:
  • Enhanced user privacy by preventing cross-site tracking:
  • Added Intelligent Tracking Prevention, which updates the default cookie and website data policy to isolate and remove cookies and website data for sites with the ability to track users across-site.
  • Updated file restrictions to block cross origin access by default:
  • CORS and cross origin access from file:// are now blocked unless Disable Local File Restrictions is selected from the Develop menu.
  • TEXT FEATURES:
  • Variable fonts:
  • Added support for font variations defined in the CSS Fonts Module 4 specification. For more detail, see Variable Fonts. Requires macOS 10.13 High Sierra or later, or iOS 11 or later.
  • CSS stroke support:
  • Added stroke properties from the CSS Stroke specifications including paint-order, stroke-linejoin, stroke-linecap, stroke-color, stroke-width, and stroke-miterlimit.
  • WEB INSPECTOR AND TOOLS:
  • Inspect WebSocket connections:
  • Added debugging of WebSocket connections and messages.
  • Right-to-left layouts:
  • Updated the Web Inspector UI to use a right-to-left (RTL) mode when the preferred language is an RTL language.
  • Added DOM breakpoints and XHR breakpoints:
  • Added breakpoints to pause script execution and display JavaScript that modifies elements in the DOM, or that makes an XMLHttpRequest to a resource.
  • SAFARI EXTENSIONS:
  • Content blocker rules:
  • Added if-top-url and unless-top-url, new triggers that execute when a regular expression is matched against the entirety of the main document URL.
  • SECURITY FIXES:
  • Safari:
  • Available for: OS X El Capitan 10.11.6 and macOS Sierra 10.12.6
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2017-7085: xisigr of Tencent's Xuanwu Lab (tencent.com)
  • WebKit:
  • Available for: OS X El Capitan 10.11.6 and macOS Sierra 10.12.6
  • Impact: Processing maliciously crafted web content may lead to universal cross site scripting
  • Description: A logic issue existed in the handling of the parent-tab. This issue was addressed with improved state management.
  • CVE-2017-7089: Frans Rosén of Detectify, Anton Lopanitsyn of ONSEC
  • WebKit:
  • Available for: OS X El Capitan 10.11.6 and macOS Sierra 10.12.6
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2017-7106: Oliver Paukstadt of Thinking Objects GmbH (to.com)

New in Safari 11.1 Technology Preview Release 39a (Sep 9, 2017)

  • Beacon API:
  • Added support for quota limitation
  • Enabled content extensions to be able to intercept Beacon and Ping redirects
  • Improved error reporting
  • Prevented cross origin Beacon requests with an ArrayBuffer or ArrayBufferView payload from doing a CORS preflight
  • Directory Upload:
  • Added basic support for input.webkitdirectory behind an experimental feature flag
  • Added stub File and Directory Entries API interfaces
  • Fetch API:
  • Added support for FetchRequest.body
  • Added support for a callback-based fetch
  • Input Events:
  • Renamed inputType “formatForeColor” to “formatFontColor”
  • Fixed an issue where picking an emoji via the emoji dialog using Control-Command-Space (⌃⌘Space) fires inconsistent beforeinput events.
  • Fixed an issue where using align left or align justify on the Touchbar both send a beforeinput event with the “formatJustifyLeft” inputType.
  • JavaScript:
  • Implemented async generator runtime for async iteration
  • Optimized map iteration for faster performance
  • Added support for the “dotAll” flag for regular expressions
  • WebAssembly:
  • Fixed const in unreachable code getting decoded incorrectly, erroneously rejecting the binary as invalid
  • WebRTC:
  • Fixed a MediaStream created without tracks to correctly update the active state after tracks are added
  • Web Inspector:
  • Fixed copying text from the “View variable value” popover in the Styles sidebar
  • Added async stack trace capture when workers or the main context posts a message
  • Replaced “Enter Class Name” input label with “Add New Class” for clarity
  • Media:
  • Implemented HTMLMediaElement dispatch of the onencrypted event
  • Fixed autoplay muted videos not playing when outside the viewport
  • Fixed HTMLTrackElement behavior to match standards

New in Safari 11.1 Technology Preview Release 38 (Aug 24, 2017)

  • Beacon API:
  • Enabled the Beacon API by default as an experimental feature
  • Added support for CORS-preflighting
  • Added support for CORS-preflighting on redirects
  • Added support for connect-src CSP checks on redirects
  • Updated sendBeacon() to rely on FetchBody instead of the whole FetchRequest
  • Changed to use “application/octet-stream” content-type for payloads of ArrayBuffer and ArrayBufferView types
  • Fetch API:
  • Added support for Request keepalive getter
  • Changed Response to keep all ResourceResponse information
  • Implemented quota limitation for keepalive Fetch requests
  • Web Payments:
  • Enabled Payment Requests as an experimental feature
  • CSS:
  • Added support for parsing of the font-display property
  • Implement caret-color support
  • Added a fast path for rotate() and rotateZ() transform parsing
  • Fixed parsing of to allow time starting with a ‘.’ without a leading 0
  • Fixed a hit testing issue occurring when an SVG rect element with a non-default stroke style applied
  • Web API:
  • Added support for considering file extensions in the accept attribute of HTML file input elements
  • Improved support for referrer policies
  • Fixed the Promise resolve and reject function to have a length of 1
  • Fixed an early error on an ANY operator before new.target
  • Fixed removing an empty element when inside a table cell
  • Fixed XHR to only fire an abort event if the cancellation was requested by the client
  • Media:
  • Fixed deleting the old subtitle track on src attribute change event
  • Apple Pay:
  • Added support for phonetic contact names
  • Web Inspector:
  • Added Canvas path preview when viewing a recording
  • Changed clicking on an autocomplete suggestion to apply it, not dismiss it
  • Removed text-shadow and gradient backgrounds
  • Updated the filter icon in the styles sidebar
  • WebDriver:
  • Added support for interacting with and elements using the element click command
  • Added support for uploading files via
  • Fixed a timeout when a JavaScript alert is shown in onload handler
  • Implemented “normal” and “eager” page load strategies from the W3C specification
  • Updated code to use in-view center points for clicks and other automation logic

New in Safari 11.1 Technology Preview Release 37 (Aug 12, 2017)

  • Web API:
  • Added initial support for navigator.sendBeacon behind an experimental feature flag
  • Implemented document.elementsFromPoint
  • Made cross-origin properties enumerable
  • Fixed dispatching the click event to the parent when the child target stops hit testing after mouseDown
  • Moved DOMException properties to the prototype and changed to use Error.prototype.toString()
  • JavaScript:
  • Added finally method support to Promise
  • Added support for optional catch binding
  • WebAssembly:
  • Reduced the size of generated binaries
  • Apple Pay:
  • Added "carteBancaire" as a supported payment network
  • CSS:
  • Aligned quirky number parsing with other browsers
  • Web Inspector:
  • Added a context menu item to the Elements tab for taking a screenshot of a node
  • The debugger now captures async stack traces when web content calls addEventListener
  • Prevented outputting “No message” for multi-value logs like console.log(x, y)
  • Fixed warnings about console.assert lines without semicolons
  • Inlined multiple console log values if they are simple
  • Fixed inspect(aFunction) to jump to the function definition
  • Fixed the page overlay highlight to fade out when a page is constantly updating
  • Fixed some controls overlaying the header in the Settings tab
  • WebDriver:
  • Fixed an issue where implicit navigations didn’t cause a browsing context switch
  • Fixed link and partial link queries if the text link contains trailing or leading whitespaces
  • Fixed an issue that caused some script evaluations to be attributed to the wrong frame
  • Rendering:
  • Changed to disable async image decoding for large images after the first time a tile is painted
  • Fixed the minimum font size preference to affect absolute line-height values and prevent text lines from overlapping
  • Fixed getting round-trip stroke-width styles causing text to gain a stroke
  • Fixed Reeder’s default font to correctly use San Francisco
  • Accessibility:
  • Fixed zoom to follow the keyboard insertion point
  • Added a background color for the focus state of the icon buttons in the media controls
  • Fixed the incorrect range from index and length on tags with contenteditable
  • Changed to dispatch accessibilityPerformPressAction asynchronously on macOS
  • Fixed silent VoiceOver or skipping over time values on the media player
  • Fixed the web page getting reloaded when a node is labelling multiple child nodes
  • Media:
  • Fixed media controls missing content in fullscreen when the document has a scroll offset
  • Fixed the mouse pointer not hiding during fullscreen playback
  • Fixed pressing the Escape key to not be a valid user gesture to enter fullscreen

New in Safari 11.0 Technology Preview Release 36 (Jul 27, 2017)

  • JavaScript:
  • Implemented Object Spread
  • CSS:
  • Changed to not resolve auto values of align-self and justify-self matching specification changes
  • Fixed line-height: to not be visually applied twice when text autosizing is in effect
  • WebRTC:
  • Fixed incorrect sdpMLineIndex for video to fix interoperability with Firefox
  • Fixed sending silence data for a disabled audio track
  • Increased the render audio buffer sizes for WebRTC
  • Web Driver:
  • Fixed link and partial link queries when the link contains formatting tags
  • Rendering:
  • Disabled asynchronous image decoding for large images by default
  • Enabled the Viewport Fit experimental feature by default
  • Fixed an element not getting repainted when its background image finishes decoding
  • Fixed an issue to avoid unnecessary copying of the frame buffer into a WebGL Layer
  • Corrected the radix used in Unicode Escape in invalid character error message
  • Fixed the low memory notification to prevent causing style recalculation
  • Fixed GIFs with infinite animation often only playing once
  • Media:
  • Fixed removing user gesture restrictions when adding the autoplay attribute to a media element during a user gesture
  • Fixed reflecting "video" and "audio" when they are not a supported as attribute value
  • Fixed bad behavior caused by removing samples when the presentation order does not match decode order
  • Fixed media controls drawing behind the captions
  • Fixed clicking the edges of media control buttons to execute the action, not just change the visual state of the button
  • Web Inspector:
  • Changed to group Inspector Style Sheets as part of the Stylesheets folder
  • Improved wording for Potential Custom Element that lacks a Custom definition
  • Fixed resources that are sometimes missing from the tree outline right before grouping into folders
  • Fixed WebSocket resource tree elements to show the connection status
  • WebAssembly:
  • Implemented name section’s module name, and skipped unknown sections
  • Bug Fixes:
  • Fixed the “Show My Relationship” link in familysearch.org
  • Fixed an issue where font loads can cause Chinese characters to draw as .notdef
  • Changed AppCache to ignore fallback entries whose namespace is not prefixed with the manifest path

New in Safari 10.1.2 (Jul 19, 2017)

  • For further details regarding the security content of Safari 10.1.2 go to:
  • https://support.apple.com/en-us/HT207921

New in Safari 11.0 Technology Preview Release 35 (Jul 13, 2017)

  • Performance:
  • Fixed a 50% regression on MotionMark Suites when extended color support was added
  • Fixed the bug that Speedometer’s score worsens by 40% when accessibility features are enabled
  • Media:
  • Changed image decoding so that when an image appears more than once on a page, decoding to paint one instance repaints them all
  • Fixed a frame rate issue that caused getUserMedia to fail on some machines
  • Fixed allowing media element to update its state when Mission Control closes the fullscreen window
  • Made a change to hide volume controls when AirPlay is active
  • Prevented capturing at unconventional resolutions when using the software encoder
  • Prevented clearing capture mute from clearing audio mute
  • Web Inspector:
  • Added a small delay before showing the progress spinner when loading resources
  • Added a toggle button to the left side of the split console navigation bar
  • Fixed initial search sometimes being performed twice, producing duplicate results
  • Fixed slowness when pausing with a deep call stack by avoiding eagerly generating object previews
  • Flipped all go-to-arrow instances in right-to-left mode
  • Fixed script timeline bubbles that sometimes appear to miss large events
  • Fixed a hang when using “break on all exceptions” throws a stack overflow
  • Improved type token background color in the debugger
  • JavaScript:
  • Cleaned up Object.entries implementation
  • Implemented Object Rest Destructuring
  • Made Object.values faster by writing it in C++
  • Removed Reflect.enumerate
  • Accessibility:
  • Fixed calling setValue() on contenteditable for ARIA text controls
  • Fixed role="none" or role="presentation" on an
  • WebAssembly:
  • Disabled some WebAssembly APIs under CSP
  • WebCrypto:
  • Fixed a backward compatibility issue with CryptoKey objects stored in the IndexedDB
  • Web APIs:
  • Fixed a TypeError in the Fetch API when called with body === {}
  • Fixed an issue causing Safari to leave a popup window opened during the beforeunload event
  • Included audio/vnd.wave as a valid mime-type for wav files
  • CSS:
  • Added support for structured serialization of CSS Geometry types
  • Fixed @font-face rules with invalid primary fonts never downloading their secondary fonts
  • Fixed applying font features only for the particular type of font they are being applied to
  • Fixed CSS text properties affecting shadow root

New in Safari 11.0 Technology Preview Release 33 (Jun 16, 2017)

  • Performance:
  • Fixed an issue that could lead to large memory use in the Safari Technology Preview and web content processes when certain Safari Extensions are installed
  • JavaScript:
  • Fixed for-in optimization static analysis in the bytecode generator
  • Improved performance of String.prototype.concat
  • Improved the bytecode and type information provided for toLength
  • Optimized Map and Set constructors
  • WebRTC:
  • Added WebRTC stats logging
  • Media Streams and Capture:
  • Fixed getUserMedia prompting too often
  • Prevented getUserMedia requests from background tabs unless the tab is already capturing
  • Prevented getUserMedia from prompting again if the user denied access
  • Media:
  • Enabled clients to specify a list of codecs that should require hardware decode support
  • Exempted exclusively wall-powered devices from client-required hardware codec support
  • Aligned Web Audio implementation to specifications when clients pass a value of 0 for bufferSize to the createScriptProcessor() method
  • CSS Grid:
  • Added support for orthogonally positioned grid items
  • Fixed the behavior of positioned items without specific dimensions
  • Fixed the logical margin applied in the tracks sizing algorithm of auto tracks
  • Fixed margin applied when stretching an orthogonal item in a fixed size track
  • Web API:
  • Aligned and limits with the latest HTML specification
  • Fixed null content-type and content-length when fetching Blob URLs with XHR
  • Fixed getComputedStyle() to return pixel values for left, right, top, and bottom, matching the specifications
  • Implemented fromFloat32Array, fromFloat64Array, toFloat32Array, and toFloat64Array for DOMMatrix
  • Implemented DOMPointReadOnly.matrixTransform()
  • Enabled script modules to be imported via data URLs
  • Updated to slightly stricter rules for custom element names from the recent draft standards
  • Used the parent box style to adjust RenderStyle for alignment
  • Added conditional support for media preloading and aligned media as values
  • Aligned preload implementation to specifications with mandatory as value and other alignments
  • Rendering:
  • Changed behavior to remove backing store for layers that are outside the viewport
  • Fixed an issue where a frame’s composited content is visible when the frame has visibility:hidden
  • Changed behavior to destroy the associated renderer subtree when display:contents node is deleted
  • Web Inspector:
  • Added contextual menu item to log a WebSocket object to the console
  • Added Debug view to the Settings tab for debug settings and experimental features
  • Added the ability for the user to choose stylesheet when creating new rules
  • Changed the Node Details Sidebar to allow editable key and values in the Attributes table
  • Prevented unnecessary layout triggered when a Sidebar is resized while collapsed
  • Fixed performing search on reload for an existing query in the Search tab
  • Fixed images dragged from Web Inspector to Desktop being named “Unknown.png”
  • Fixed an issue where reloading the page after switching from the Resource tab switches back
  • Fixed the CodeMirror instance in the ConsolePrompt getting refreshed each time it is shown
  • Fixed showing active Web Sockets when opening Web Inspector
  • Fixed an issue preventing the go-to arrow to inspect Web Sockets that receive >50 messages per second
  • Improved the reliability of automatically pausing in auto-attach when inspecting a JSContext
  • Bug Fixes:
  • Enabled AirPods to work with Netflix
  • Fixed stuttering audio in YouTube when the page changes visibility

New in Safari 10.2 Technology Preview Release 32 (Jun 8, 2017)

  • NEW FEATURES:
  • The following web-facing Safari 11 features are new to Safari Technology Preview 32:
  • WebRTC and Media Capture
  • WebAssembly
  • Auto-Play Improvements

New in Safari 10.2 Technology Preview Release 31 (Jun 5, 2017)

  • Web API:
  • Added media and type attribute support for
  • Added support for DOMMatrix and DOMMatrixReadOnly
  • Fixed getElementById to return the correct element when a matching element is removed during beforeload event
  • Fixed skipping children when collecting content for innerText
  • JavaScript:
  • Fixed a syntax error thrown when declaring a top level for-loop iteration variable the same as a function parameter
  • Layout & Rendering:
  • Added support for transform-box to switch sizing box in SVG
  • Fixed clientX and clientY on mouse events to be relative to the layout viewport
  • Fixed large animated images getting decoded as a large static image before receiving all of the data
  • Fixed screen flickering caused by asynchronous image decoding for large images when interacting with the page
  • Fixed element position when dragging jQuery Draggable elements with position:fixed after pinch zoom
  • Fixed a timing issue causing a hardware-accelerated transform animation to misplace an element 50% of the time
  • CSS GRID:
  • Implemented the place-self shorthand
  • Fixed static position of positioned grid items
  • Ignored collapsed tracks on content-distribution alignment
  • Font Variations:
  • Added support for calc() in font-variation-settings and font-feature-settings
  • Enabled the woff2-variations format identifier for @font-face
  • Updated the font-style implementation in the font selection algorithm
  • Web Inspector:
  • Added a new icon for Web Socket resources
  • Changed adding new CSS rules so that the added rules go into a new Inspector Style Sheet resource that can be viewed, edited, and saved
  • Fixed an issue where changes are not applied in Styles sidebar when switching tabs without blurring editor
  • Fixed content views not getting restored on reload if its tree element is filtered out
  • Fixed an error when trying to delete DOM breakpoints from the Debugger tab
  • Fixed deleting a disabled XHR breakpoint
  • Fixed miscellaneous RTL and localization issues
  • Prevented loading the active recording until a Timeline view needs to be shown
  • Media:
  • Added support for painting MSE video-element to canvas
  • Fixed captions and subtitles not showing up in picture-in-picture for MSE content
  • Fixed media element reporting hidden when in picture-in-picture mode and tab is backgrounded
  • Web Driver:
  • Fixed characters produced with the shift modifier on a QWERTY keyboard to be delivered as shift-down, char-down, char-up, and shift-up events
  • Fixed navigator.webdriver to return false if the page is not controlled by automation
  • WebCrypto:
  • Added support for RSA-PSS
  • Replaced CryptoOperationData with BufferSource
  • Security:
  • Improved error message for Access-Control-Allow-Origin violations due to a misconfigured server

New in Safari 10.2 Technology Preview Release 30 (May 17, 2017)

  • Web API:
  • Implemented Subresource Integrity (SRI)
  • Implemented X-Content-Type-Options:nosniff
  • Added support for Unhandled Promise Rejection events
  • Updated document.cookie to only return cookies if the document URL has a network scheme or is a file URL
  • Removed the non-standard document.implementation.createCSSStyleSheet() API
  • Removed the non-standard Element.scrollByLines() and scrollByPages()
  • Changed to allow a null comparator in Array.prototype.sort
  • Changed to set the Response.blob() type based on the content-type header value
  • Changed Element.slot to be marked as [Unscopable]
  • Implemented HTMLPreloadScanner support for
  • Fixed setting Response.blob() type correctly when the body is a ReadableStream
  • Moved offsetParent, offsetLeft, offsetTop, offsetWidth, offsetHeight properties from Element to HTMLElement
  • Moved the style property from Element to HTMLElement and SVGElement, then made it settable
  • JavaScript:
  • Fixed Arrow function access to this after eval('super()') within a constructor
  • Added support for dashed values in unicode locale extensions
  • Fixed the behaviour of the .sort(callback) method to match Firefox and Chrome
  • CSS:
  • Fixed space-evenly behavior with Flexbox
  • Fixed font-stretch:normal to select condensed fonts
  • Fixed custom properties used in rgb() with calc()
  • Accessibility:
  • Fixed the behavior of aria-orientation="horizontal" on a list
  • Prevented exposing empty roledescription
  • Propagated aria-readonly to grid descendants
  • Changed to ignore aria-rowspan value if a rowspan value is provided for a or
  • Fixed an issue causing VoiceOver to skip cells after a cell with aria-colspan
  • Changed to treat cells with ARIA table cell properties as cells
  • Updated implementation of aria-orientation to match specifications
  • Web Inspector:
  • Added resource load error reason text in the details sidebar
  • Fixed toggling the Request and Response resource views in certain cases
  • Fixed miscellaneous RTL and localization issues
  • Fixed Option-Click on URL behavior in Styles sidebar
  • Changed 404 Image Loads to appear as a failures in Web Inspector
  • WebDriver:
  • Fixed several issues that prevented cookie-related endpoints from working correctly
  • Media:
  • Removed black background from video layer while in fullscreen
  • Rendering:
  • Fixed problem with the CSS Font Loading API’s load() function erroneously resolving promises when used with preinstalled fonts
  • Fixed flickering on asynchronous image decoding and ensured the image is incrementally displayed as new data is received

New in Safari 10.1.1 (May 15, 2017)

  • SECURITY FIXES:
  • Safari:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Visiting a maliciously crafted webpage may lead to an application denial of service
  • Description: An issue in Safari's history menu was addressed through improved memory handling.
  • CVE-2017-2495: Tubasa Iinuma (@llamakko_cafe) of Gehirn Inc.
  • Safari:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: An inconsistent user interface issue was addressed with improved state management.
  • CVE-2017-2500: Zhiyang Zeng and Yuyang Zhou of Tencent Security Platform Department
  • CVE-2017-2511: Zhiyang Zeng of Tencent Security Platform Department
  • WebKit:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed with improved memory handling.
  • CVE-2017-2496: Apple
  • CVE-2017-2505: lokihardt of Google Project Zero
  • CVE-2017-2506: Zheng Huang of the Baidu Security Lab working with Trend Micro’s Zero Day Initiative
  • CVE-2017-2514: lokihardt of Google Project Zero
  • CVE-2017-2515: lokihardt of Google Project Zero
  • CVE-2017-2521: lokihardt of Google Project Zero
  • CVE-2017-2525: Kai Kang (4B5F5F4B) of Tencent’s Xuanwu Lab (tencent.com) working with Trend Micro’s Zero Day Initiative
  • CVE-2017-2526: Kai Kang (4B5F5F4B) of Tencent’s Xuanwu Lab (tencent.com) working with Trend Micro’s Zero Day Initiative
  • CVE-2017-2530: Wei Yuan of Baidu Security Lab
  • CVE-2017-2531: lokihardt of Google Project Zero
  • CVE-2017-2538: Richard Zhu (fluorescence) working with Trend Micro's Zero Day Initiative
  • CVE-2017-2539: Richard Zhu (fluorescence) working with Trend Micro's Zero Day Initiative
  • CVE-2017-2544: 360 Security (@mj0011sec) working with Trend Micro's Zero Day Initiative
  • CVE-2017-2547: lokihardt of Google Project Zero, Team Sniper (Keen Lab and PC Mgr) working with Trend Micro's Zero Day Initiative
  • CVE-2017-6980: lokihardt of Google Project Zero
  • CVE-2017-6984: lokihardt of Google Project Zero
  • WebKit:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Processing maliciously crafted web content may lead to universal cross site scripting
  • Description: A logic issue existed in the handling of WebKit Editor commands. This issue was addressed with improved state management.
  • CVE-2017-2504: lokihardt of Google Project Zero
  • WebKit:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Processing maliciously crafted web content may lead to universal cross site scripting
  • Description: A logic issue existed in the handling of WebKit container nodes. This issue was addressed with improved state management.
  • CVE-2017-2508: lokihardt of Google Project Zero
  • WebKit:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Processing maliciously crafted web content may lead to universal cross site scripting
  • Description: A logic issue existed in the handling of pageshow events. This issue was addressed with improved state management.
  • CVE-2017-2510: lokihardt of Google Project Zero
  • WebKit:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Processing maliciously crafted web content may lead to universal cross site scripting
  • Description: A logic issue existed in the handling of WebKit cached frames. This issue was addressed with improved state management.
  • CVE-2017-2528: lokihardt of Google Project Zero
  • WebKit:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues with addressed through improved memory handling.
  • CVE-2017-2536: Samuel Groß and Niklas Baumstark working with Trend Micro's Zero Day Initiative
  • WebKit:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: Processing maliciously crafted web content may lead to universal cross site scripting
  • Description: A logic issue existed in frame loading. This issue was addressed with improved state management.
  • CVE-2017-2549: lokihardt of Google Project Zero
  • WebKit Web Inspector:
  • Available for: OS X Yosemite 10.10.5, OS X El Capitan 10.11.6, and macOS Sierra 10.12.5
  • Impact: An application may be able to execute unsigned code
  • Description: A memory corruption issue was addressed with improved memory handling.
  • CVE-2017-2499: George Dan (@theninjaprawn)

New in Safari 10.2 Technology Preview Release 29 (May 4, 2017)

  • JAVASCRIPT:
  • Implemented Intl.DateTimeFormat.prototype.formatToParts
  • Improved Date.parse to accept wider range of date strings
  • Implemented Object.isFrozen() and Object.isSealed() according to ECMA specifications
  • CSS:
  • Added support for percentage gaps for CSS Grid
  • Changed :focus-within behavior to match specifications
  • RENDERING:
  • Avoided repaints for invisible animations on tumblr.com
  • Fixed rendering flexbox children across columns
  • Fixed text-align:start and text-align:end behavior in table cells
  • Fixed animations with large negative animation-delays that fail depending on machine uptime
  • Reduced redundant text measuring during mid-word breaking
  • Changed memory handling to keep all of the decoded frames for an animated image if the total memory size of the frames is under 30MB (up from 5MB)
  • Fixed content inside to wrap mid-word when word-break:break-word is set
  • Fixed the location of the “recent searches” popover of in RTL mode
  • WEB INSPECTOR:
  • Added regular expression support to XHR breakpoints
  • Added a pause reason for “All Requests” XHR breakpoint
  • Fixed the enabled state of “All Requests” XHR breakpoint to be correctly restored
  • Fixed a bug where XHR breakpoints would disappear when the inspected page is reloaded
  • Fixed XHR breakpoints restored from settings but not appearing in the sidebar
  • Fixed Network datagrid columns to correctly restore their shown or hidden state
  • Added tooltips to Network grid items for easier reading when text overflows
  • Fixed sorting by Priority column in Network datagrids
  • Fixed the display of Web Socket messages with non-latin letters
  • Prevented showing the Search tab for location links, prefer the Resources tab
  • Changed to treat Uint8ClampedArray as an array, not an object
  • Fixed Command-G (⌘G) shortcut to allow Find next to work in the console
  • Implemented autocompletion for CSS variables
  • Updated the icon for the Ignore resource cache button in the Network Tab
  • WEBCRYPTO:
  • Added support for ECDSA
  • Improved converting an ECDSA signature binary into DER format
  • ACCESSIBILITY:
  • Changed the role description of from “separator” to “rule”
  • BUG FIXES:
  • Fixed an issue where the status bar would not display modifier key information (e.g. “Open * in new tab” when holding the Command key)
  • Improved performance of typing on pages with many elements
  • Fixed an issue where a hardware “enter” key would not dismiss JavaScript alert, confirm, or prompt; previously, only the “return” key would dismiss a dialog
  • Fixed QuotaExceededError when saving to localStorage in private browsing mode or WebDriver sessions
  • Fixed an issue where the Content-Disposition header filename was ignored when the download attribute is specified
  • Fixed escaping ‘’ in attribute values when using XMLSerializer.serializeToString() API
  • Fixed issues causing beforeunload dialog to be shown even though the user did not interact with the page
  • MEDIA:
  • Restricted WebKit image formats to a known whitelist. WebKit now only loads images of the following formats:
  • PNG (.png)
  • GIF (.gif)
  • JPEG (.jpg), (.jpeg), (.jpe), (.jif), (.jfif), (.jfi)
  • JPEG 2000 (.jp2), (.j2k), (.jpf), (.jpx), (.jpm), (.mj2)
  • TIFF (.tiff), (.tif)
  • MPO (.mpo)
  • Microsoft Bitmap (.bmp), (.dib)
  • Microsoft Cursor (.cur)
  • Microsoft Icon (.ico)

New in Safari 10.2 Technology Preview Release 28 (Apr 20, 2017)

  • Power and Performance:
  • Changed to pause silent WebAudio rendering in background tabs
  • Changed to pause animated SVG images on pages loaded in the background
  • Changed to make inaudible background tabs become eligible for memory kill after 8 minutes
  • Changed to kill any WebContent process using over 16 GB of memory
  • DOM Timers are now throttled to 30fps and aligned in cross-origin iframes
  • requestAnimationFrame callbacks are now throttled to 30fps and aligned in cross-origin iframes
  • CSS:
  • Adapted content-alignment properties to the new baseline syntax
  • Adapted place-content alignment shorthand to the new baseline syntax
  • Adapted self-alignment properties to the new baseline syntax
  • Fixed scroll offset jumps after a programmatic scroll in an overflow container with scroll snapping
  • Implemented the place-items shorthand
  • Implemented stroke-color CSS property
  • Implemented stroke-miterlimit CSS property
  • Unprefixed CSS cursor values grab and grabbing
  • JavaScript:
  • Fixed objects with gaps between numerical keys getting filled by NaN values
  • Fixed Object.seal() and Object.freeze() on global this
  • Fixed String.prototype.replace to correctly apply special replacement parameters when passed a function
  • Web API:
  • Changed _blank, _self, _parent, and _top browsing context names to be case-insensitive
  • Cleaned up touch event handler registration when moving nodes between documents
  • Fixed to prevent breaking all mouse events when changing to disabled while active
  • Prevented double downloads of preloaded content from when the content is in MemoryCache
  • Fixed WebSocket.send
  • Web Inspector:
  • Added a preference for Auto Showing Scope Chain sidebar on pause
  • Changed the order of Debugger tab sidebar panels: Scope Chain, Resource, Probes
  • Changed XHR breakpoints to be global
  • Changed hierarchical path component labels to guess directionality based on content for RTL layout
  • Fixed RTL alignment of close button shown while docked
  • Fixed RTL layout issues in call frame tree elements and async call stacks
  • Fixed RTL layout issues in the debugger dashboard putting arrows on the wrong side
  • Fixed RTL layout issues in Type Profiler popovers
  • Fixed misplaced highlights in Search results of the Search navigation sidebar for RTL layout
  • Fixed disappearing section when clicking on the body of a CSS rule after editing
  • Fixed showing indicators for hidden DOM element breakpoints in the Elements tab
  • Fixed blank Network tab content view after reload
  • Made “Enter Class Name” text field wider so the placeholder text doesn’t clip
  • Fixed probe values not showing in the Debugger tab sidebar
  • Fixed focusing the Find banner immediately after showing it
  • Fixed showing Source Map Resources in the Debugger Sources list
  • Fixed Styles sidebar warning icon appearing inside property value text
  • Fixed broken tabbing in Styles sidebar when additional “:” and “;” are in the property value
  • Fixed clipped data in WebSockets data grid
  • Fixed staying scrolled to the bottom as new WebSocket log messages get added
  • Included additional pause reason details for DOM “subtree modified” breakpoint
  • Included more Network information in Resource Details Sidebar
  • Included all headers in the Request Headers section of the Resource details sidebar
  • WebDriver:
  • Fixed an issue that prevented non-popup windows from being maximized or resized
  • Fixed an issue that caused previously opened tabs to reopen when Safari was launched in order to run a WebDriver test
  • Accessibility:
  • Exposed a new AXSubrole for the explicit ARIA “group” role
  • Fixed VoiceOver web article navigation with an article rotor for sites like Facebook and Twitter
  • Media:
  • Fixed seeks to currentTime=0 if currentTime is already 0
  • Rendering:
  • Fixed clipping across page breaks when including , or in a
  • Fixed Japanese fonts in vertical text to support synthesized italics
  • Fixed long Arabic text in ContentEditable with CSS white-space=pre to prevent hangs
  • Fixed overly heavy fonts on facebook.com by attempting to normalize variation ranges
  • WebCrypto:
  • Added support for AES-CTR
  • Security:
  • Changed private browsing sessions to not look in keychain for client certificates
  • AppleScript:
  • Fixed an issue where Safari would throw an exception when evaluating JavaScript ending with an implied return value, where the final statement doesn’t include the return keyword

New in Safari 10.2 Technology Preview Release 27 (Apr 5, 2017)

  • Browser Changes:
  • Added a “Reload Page From Origin” alternate menu item to the View menu. This action reloads a page without using cached resources.
  • Removed the Option-Command-R (⌥⌘R) keyboard shortcut from “Enter/Exit Responsive Design Mode” and mapped it to “Reload Page From Origin” instead.
  • Removed the Disable Caches menu item in the Develop menu. The equivalent functionality is now available through Web Inspector’s Network tab.
  • JavaScript:
  • Implemented ESNext Object Spread proposal
  • Changed to allow labels named let when parsing a statement in non-strict mode
  • Fixed const location = "foo" in a worker to not throw a SyntaxError
  • Web API:
  • Aligned initEvent, initCustomEvent, initMessageEvent with the latest specification
  • Aligned Document.elementFromPoint() with the CSSOM specification
  • Changed XMLHttpRequest getAllResponseHeaders() to transform header names to lowercase before sorting
  • Fixed sending an empty "Access-Control-Request-Headers" in preflight requests
  • Implemented self.origin
  • Implemented the “noopener” feature for window.open()
  • Improved index validation when using uint index values in WebGL
  • Prevented beforeunload alerts when the user hasn’t interacted with the web page
  • Prevented innerText setter from inserting an empty text node if the value starts with a newline
  • Prevented new navigations during document unload
  • Prevented WebSQL databases from being openable in private browsing
  • Changed serialization of custom properties in longhand to be "", not the value of the shorthand property
  • Changed to tear down descendant renderers when a display value is set to "contents"
  • Rendering:
  • Fixed pausing animated SVG images when they are outside the viewport, or removed from the document
  • Changed asynchronous image decoding to consider when the drawing size is smaller than the size of the image
  • Prevented large images from being decoded asynchronously when they are drawn on a canvas
  • Fixed the flow state for positioned inline descendants
  • Fixed initial letter rendering that follows pagination
  • Fixed clipping columns horizontally in multi-column layout
  • Fixed animated GIFs that fail to play in multi-column layout
  • CSS:
  • Fixed an issue where a dynamically applied :empty pseudo class with display:none does not get unapplied
  • Unprefixed -webkit-min-content, -webkit-max-content and -webkit-fit-content
  • Media:
  • Fixed loading media files in a tag that are served without a filename extension
  • Suspended silent videos playback in background tabs to save CPU
  • Web Inspector:
  • Added “Disable Caches” toggle in the Networking tab that only applies to the inspected page while Web Inspector is open.
  • Added “Save Selected” context menu item to Console
  • Added RTL support to the Timeline tab
  • Added RTL support for the Find banner
  • Added more accurate Resource Timing data in Web Inspector
  • Added context menu item to log content of WebSocket frame
  • Added icons for SVG Image cluster path components
  • Added keyboard shortcut to clear timeline records
  • Added a connection indicator for when a WebSocket connection is open or close
  • Changed Option-clicking the close tab button to close all other tabs
  • Changed to allow the user to copy locked CSS selectors in Style Rules sidebar
  • Changed to allow users to click links in inline and user-agent styles
  • Changed SVG image content view to allow toggling between the image and source
  • Changed Event Listeners detail section to show listeners by element rather than by event
  • Changed Event Listeners to add missing ‘once’ and ‘passive’ event listener flags
  • Fixed an issue where adding a WebSocket message could change the currently selected resource
  • Fixed clicking DOM breakpoint marker to enable and disable breakpoints
  • Fixed an exception when clicking on Clear Network Items icon with the timing popover visible
  • Fixed local storage keys and values starting with truncated strings
  • Fixed empty attributes added to a DOM tree outline element adding whitespace within the tag
  • Fixed an exception when fetching computed styles that can break future updates of section
  • Fixed syntax highlighting and formatting when inspecting a main resource that is JavaScript or JSON
  • Fixed pseudo-class markers overlapping DOM breakpoints and disclosure triangles
  • Fixed an issue causing the Resource details sidebar to display previous image metrics when viewing resource where content load failed
  • Fixed text selection in the Console to select only message text
  • Fixed formatting JSON request data
  • Fixed the filename used when saving a resource from the resource image content view
  • The file save dialog no longer suggests the top level directory as the default location
  • Accessibility:
  • Fixed VoiceOver for editable text on the web
  • WebCrypto:
  • Added support for SPKI/PKCS8 Elliptic Curve cryptography

New in Safari 10.1 (Mar 28, 2017)

  • WEB APIS:
  • Fetch:
  • Fetch is a flexible generic request-and-response API for the web, designed to replace XMLHttpRequest. The Fetch API makes it straightforward to access response headers and has built-in support for making CORS-friendly requests. It uses JavaScript Promises to make handling results easier.
  • IndexedDB 2.0:
  • Safari's IndexedDB implementation is faster and fully standards compliant, and supports new IndexedDB 2.0 features.
  • Custom Elements:
  • Custom Elements provides a mechanism for defining your own HTML elements with custom reaction callbacks to respond to changes in values. Combined with the slot-based shadow DOM API introduced last year, Custom Elements makes it possible to create reusable components.
  • Input Events:
  • Input Events simplifies the process of implementing rich text editing experiences on the web. The Input Events API adds a new beforeinput event to monitor and intercept default editing behaviors and enhances the input event with new attributes.
  • Pointer Lock:
  • In macOS Safari, an element can request pointer lock in response to a user gesture. Locking the pointer hides the cursor and extends the Mouse Events interface with movementX and movementY properties to provide raw mouse movement data. When the pointer is locked, users will see a banner explaining that the mouse cursor is hidden, and that they can get out of pointer lock by pressing the Escape key.
  • Gamepad:
  • The Gamepad API allows web content to receive input from connected gamepad devices. It simplifies the code required to support a wide variety of layouts, buttons, and joystick axes by mapping various input devices to a standard gamepad layout.
  • JAVASCRIPT:
  • ECMAScript 2016 and ECMAScript 2017:
  • Support for ECMAScript 2016 and ECMAScript 2017 is available in Safari for macOS and iOS. It adds support for async and await syntax, along with shared memory objects, including Atomics and Shared Array Buffers.
  • HTML:
  • Interactive Form Validation:
  • New support for interactive form validation makes it easier to create forms with validation constraints that automatically validate user data when the form is submitted. This feature helps you communicate what kind of data your form needs, and helps users understand how to enter correct information.
  • HTML5 Download Attribute:
  • The download attribute for anchor elements indicates that the link target is a download link that downloads a file, instead of a navigational link. When you click a a link with the download attribute, the target is downloaded as a file. Optionally, the value of the download attribute provides the suggested name of the file.
  • HTML Media Capture:
  • Safari on iOS supports the HTML Media Capture form extension. Using this extension, you can create forms that capture live data from a camera on the user’s device for use as a file input. The accept attribute states whether to record a still photo or a video, and the capture attribute states which camera to use. By default, data is captured using the rear camera.
  • LAYOUT AND RENDERING:
  • CSS Wide Colors:
  • CSS was previously limited to colors in the sRGB gamut. Now, you can specify colors in wider color spaces, such as Display P3, with a new color() function.
  • CSS Grid Layout:
  • Safari now supports CSS Grid, so you can create complex layouts that respond to viewport constraints. It divides the page into major regions of columns and rows and provides flexibility when describing the relationships of the grid containers.
  • Updated Behavior of Fixed Position Elements:
  • Safari now uses visual viewports, improving the behavior of fixed and sticky elements with pinch zooming. Focusing an input field no longer disables fixed and sticky positioning in iOS. This behavior is available in Safari and in pages displayed by a WKWebView object. The behavior inside a UIWebView object is unchanged.
  • SAFARI BROWSER BEHAVIORS:
  • Keyboard Input in Fullscreen:
  • In macOS Safari, keyboard input is no longer restricted while the web page is in HTML5 fullscreen.
  • WEB INSPECTOR:
  • Improved Web Inspector Debugging:
  • Web Inspector adds support for debugging Web Worker JavaScript threads in the Debugger tab. The Debugger tab also improves debugger stepping with code highlights for the currently-executing and about-to-execute statements. The new stepping highlights make it easier to debug JavaScript with complex control flow or many expressions on a single line.
  • ACCESSIBILITY:
  • Reduced Motion Media Query:
  • Use the prefers-reduced-motion media query to create styles that avoid large areas of motion for users that specify a preference for reduced motion in System Preferences.
  • SAFARI APP EXTENSIONS:
  • You can now dynamically change images of toolbar items, validate and dynamically change text in contextual menu items, and communicate directly to a Safari app extension from its containing app. A Safari app extension associated with a Content Blocker extension can reload and check its state.
  • Safari Extensions preferences now shows the localized description, display name, and version number for Safari app extensions, and provides a more nuanced message about the permissions claimed by Safari app extensions.

New in Safari 10.2 Technology Preview Release 26 (Mar 22, 2017)

  • WebGPU:
  • Added WebGPU prototype in the Experimental Features menu
  • Web API:
  • Added support for history.scrollRestoration
  • Aligned Document.elementFromPoint() with the CSSOM specification
  • Changed the parameter to input.setCustomValidity() to not be nullable
  • Fixed transitions and animations of background-position with right-relative and bottom-relative values
  • Fixed an issue where WebSQL directories were not removed when removing website data
  • Made the XMLHttpRequest method setRequestHeader() use “,” (including a space) as the separator
  • Prevented displaying the label of an element in quirks mode
  • Prevented extra downloads of preloaded CSS
  • Dropped support for non-standard document.all.tags()
  • CSS:
  • Implemented stroke-width CSS property
  • Rendering:
  • Enabled asynchronous image decoding for large images
  • Fixed memory estimate for layers supporting subpixel-antialised text
  • Fixed columns getting clipped horizontally in CSS Multicolumn
  • Web Inspector:
  • Added XHR breakpoints UI
  • Added DOM breakpoints UI for node and subtree modification events
  • Added a “Create Breakpoint” context menu item for linked source locations
  • Added settings for controlling Styles sidebar intelligence
  • Added cache source information (Memory Cache or Disk Cache) in the Network tab
  • Added protocol, remote address, priority, and connection ID in the Network tab
  • Added individual messages to the content pane for a WebSocket
  • Fixed an issue where the DOM tree is broken if an element has a debounce attribute
  • Fixed an issue in the Resources tab navigation bar allowing the same file from a contextual menu item to be saved more than once
  • Improved the layout of the compositing reasons in the Layers sidebar popover
  • WebDriver:
  • Fixed an issue where automation commands hang making it impossible to navigate back or forward
  • WebCrypto:
  • Implemented ECDH ImportKey and ExportKey operations

New in Safari 10.2 Technology Preview Release 25 (Mar 8, 2017)

  • Resource Timing:
  • Added Resource Timing as an experimental feature enabled by default
  • Added Resource Timing support in Workers
  • Improved gathering timing information with reliable responseEnd time
  • Changed loads initiated by media elements to set the initiatorType to their element name
  • User Timing:
  • Enabled User Timing by default as an experimental feature
  • Changed performance.measure in Workers to throw a SyntaxError if provided mark name is not found
  • WebCrypto:
  • Added support for AES-CFB
  • Web API:
  • Added a new webglcontextchanged event that is dispatched when the GraphicsContext3D notices that the active GPU has changed
  • Changed the onbeforeunload event return value coercion to match specification behavior
  • Exposed Symbol.toPrimitive and Symbol.valueOf on Location instances
  • Fixed and to prevent applying the readonly attribute to match specifications
  • Fixed handling of .labels when the input type changes from "text" to "hidden" to "checkbox"
  • Prevented aggressive throttling of DOM timers until they’ve reached their maximum nesting level
  • Web Inspector:
  • Enabled import() for modules in Web Inspector console
  • Changed the zoom level in the Settings tab to use localized formatting
  • Changed Web Inspector to use the Resources tab when showing files instead of the Network tab
  • Changed the split console to be allowed in the Elements, Resources, Debugger, and Storage tabs when Web Inspector is docked to the bottom
  • Changed CSS variable uses that are unresolved to get marked with a warning icon
  • Fixed the Zoom level user interface to match the the setting value
  • Prevented dismissing popovers when dragging a Web Inspector window
  • Improved copy and paste behavior for request headers
  • Included additional detail in the display name of Timeline data elements
  • CSS:
  • Fixed centering text inside a button set to display:flex with justify-content:center
  • Unprefixed -webkit-line-break
  • Rendering:
  • Prevented fixed elements from bouncing when scrolling beyond the bottom of the page
  • Improved text wrapping consistency where text might wrap when its preferred logical width is used for sizing the containing block
  • Media:
  • Fixed local audio-only streams to trigger playback to begin
  • Bug Fixes:
  • Changed pending scripts to execute asynchronously after stylesheet loads are completed
  • Fixed an issue where font-weight in @font-face can cause a font to be downloaded even when it’s not used
  • Made special URLs without a host invalid

New in Safari 10.2 Technology Preview Release 24 (Feb 22, 2017)

  • User Timing:
  • Added User Timing as an experimental feature
  • Implemented PerformanceObserver for User Timing
  • Added support for Performance API (performance.now(), UserTiming) in Workers
  • Link Preload:
  • Added as an experimental feature
  • Added support for speculative resource loading
  • Prevented preloaded resources from being cleared after parsing is done
  • Addressed memory issues related to clearing preloaded resources
  • Web API:
  • Changed Location object to throw a TypeError for Object.preventExtensions()
  • Changed Pointer Lock to require keyboard focus
  • Changed Pointer Lock events to be delivered directly to the target element
  • Changed the HTML Form Validation popover to be dismissed when pressing the Escape key
  • Changed the HTML Form Validation popover to respect the minimum font size setting
  • Fixed an issue causing Fetch to fail when passing undefined as the headers
  • Fixed the element to work correctly when content is changed between closing and opening
  • Implemented toJSON() for URL objects
  • Improved URL specification compliance
  • Prevented a redundant scroll to top-left corner of the page when navigating back to a URL with no fragment
  • Made Symbols configurable when exposed on cross-origin Window or Location objects
  • JavaScript:
  • Implemented dynamic import operator
  • Changed dynamic import through setTimeout() and setInterval() to correctly inherit SourceOrigin
  • Changed scripts load priority to ‘high’
  • Fixed Apple Pay line validation to prevent validating line items that are “pending”
  • Implemented ArrayBuffer.prototype.byteLength and SharedArrayBuffer.prototype.byteLength
  • Implemented lifting template escape sequence restrictions in tagged templates
  • CSS:
  • Fixed elements with a backdrop-filter and a mask to correctly mask the backdrop
  • Updated line-break:auto to match the latest version of Unicode
  • Web Inspector:
  • Enabled the console to evaluate dynamic module import()
  • Added CSS color keyword entries for all “grey” and “gray” variations
  • Added stroke-linecap property values to CSS autocompletion
  • Added a horizontal slider for gradient editor angle value where applicable
  • Added a limit on Async Call Stacks for asynchronous loops
  • Added a setting to preserve network data on navigation for the Network tab
  • Added the ability to show the current value of CSS variables in style rules
  • Added a warning that webkitSubtle in WebCrypto is deprecated
  • Changed docking Web Inspector to collapse the split console in the Timeline and Network tabs
  • Fixed jumping from Search tab results to see the resource in other tabs (Resource, Debugger, Network)
  • Fixed a Debugger sidebar panel issue that can cause it to have multiple tree selections
  • Fixed DOM tree view collapsing when switching back to the Elements tab
  • Removed Shift-Command-W (⇧⌘W) shortcut to a close tab
  • Accessibility:
  • Fixed text string range from index and length in text controls when there are newlines
  • Rendering:
  • Fixed column progression after enabling pagination on a right-to-left document
  • Performance:
  • Suspended SVG animations on hidden pages
  • Avoided initially creating a layer backing store for elements outside the visible area
  • Security:
  • Changed CSS data URL resources to be treated as same origin loads when loaded through HTML elements

New in Safari 10.2 Technology Preview Release 23 (Feb 8, 2017)

  • Gamepads:
  • Fixed Gamepad support for PS4 controllers
  • Exposed more directional pads for other types of gamepads
  • Pointer Lock:
  • Fixed sending Pointer Lock events directly to the target element
  • Fixed page requests to re-establish Pointer Lock without a user gesture after being released without a user gesture
  • Media:
  • Added client notification when the user plays media otherwise prevented from autoplaying
  • Accessibility:
  • Fixed Speak Selection for elements
  • Web Inspector:
  • Added a way to trigger Garbage Collection
  • Bug Fixes:
  • Fixed Flash object placeholder painting when Safari reloads pages with Flash objects after Flash is installed
  • Improved switching between GPUs for WebGL content in order to maximize battery life

New in Safari 10.2 Technology Preview Release 22 (Jan 26, 2017)

  • JavaScript:
  • Fixed an error when calling an async arrow function which is in a class’s member function
  • Improved the speed of Array.prototype.slice in DFG/FTL JITs
  • CSS:
  • Implemented scroll-snap-type:proximity scroll snapping
  • Fixed updating :active and :hover states across Shadow DOM slots
  • Fixed a CSS Grid issue with very big values for grid lines
  • Implemented baseline positioning for grid containers
  • Made the CSS Grid sizing data persistent through layouts
  • Fixed overflow:scroll scroll position getting restored on back navigation
  • Form Validation:
  • Fixed the validation message to use singular form of “character” when maxLength value is 1
  • Truncated lengthy validation messages with an ellipsis
  • Aligned email validation with the latest HTML specification
  • Web Inspector:
  • Added “Persist Logs on Navigation” to Settings tab
  • Added UI zoom level to the Settings tab
  • Added Command-, (⌘,) keyboard shortcut to open Settings tab
  • Fixed showing application cache details in the Storage tab
  • Improved the cubic-bezier editor for invalid inputs in component fields
  • Fixed an issue clearing pseudo classes toggled on in the Styles sidebar when Web Inspector is closed
  • Fixed resources disappearing from the network tab when an iframe gets removed
  • Fixed restoring Settings tab when reopening Web Inspector
  • Improved the layout of the spring function editor with left-aligned labels and slider tracks
  • Web API:
  • Provided more detailed role descriptions for many new HTML5 input types
  • Aligned the innerText setter with the HTML specification
  • Fixed an issue changing the modified timestamp for a given gamepad when it is updated
  • Changed pointer lock to release when the page state is reset for any reason, not just when the process exits
  • Fixed editing of nested RTL-to-LTR content
  • Support iterating over URLSearchParams objects
  • Changed the first parameter of Event.initEvent() to be mandatory
  • Media:
  • Added support for MediaKeys.generateRequest()
  • Added protection against the MediaPlayer being destroyed in the middle of a load()
  • Rendering:
  • Fixed an issue that caused the highlighting of text using the Yoon Gothic webfont to reflow
  • Fixed reordering text inside a blockquote when un-indenting the text
  • Security:
  • Volume-separated file URLs: disallowed a file URL on one volume from loading a file on another volume in macOS 10.12.4 or later

New in Safari 10.0.3 (Jan 24, 2017)

  • Safari:
  • Available for: OS X Yosemite v10.10.5, OS X El Capitan v10.11.6, and macOS Sierra 10.12.3
  • Impact: Visiting a malicious website may lead to address bar spoofing
  • Description: A state management issue in the address bar was addressed through improved URL handling.
  • CVE-2017-2359: xisigr of Tencent's Xuanwu Lab (tencent.com)
  • WebKit:
  • Available for: OS X Yosemite v10.10.5, OS X El Capitan v10.11.6, and macOS Sierra 10.12.3
  • Impact: Processing maliciously crafted web content may exfiltrate data cross-origin
  • Description: A prototype access issue was addressed through improved exception handling.
  • CVE-2017-2350: Gareth Heyes of Portswigger Web Security
  • WebKit:
  • Available for: OS X Yosemite v10.10.5, OS X El Capitan v10.11.6, and macOS Sierra 10.12.3
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.
  • CVE-2017-2354: Neymar of Tencent's Xuanwu Lab (tencent.com) working with Trend Micro's Zero Day Initiative
  • CVE-2017-2362: Ivan Fratric of Google Project Zero
  • CVE-2017-2373: Ivan Fratric of Google Project Zero
  • WebKit:
  • Available for: OS X Yosemite v10.10.5, OS X El Capitan v10.11.6, and macOS Sierra 10.12.3
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: A memory initialization issue was addressed through improved memory handling.
  • CVE-2017-2355: Team Pangu and lokihardt at PwnFest 2016
  • WebKit:
  • Available for: OS X Yosemite v10.10.5, OS X El Capitan v10.11.6, and macOS Sierra 10.12.3
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved input validation.
  • CVE-2017-2356: Team Pangu and lokihardt at PwnFest 2016
  • CVE-2017-2369: Ivan Fratric of Google Project Zero
  • CVE-2017-2366: Kai Kang of Tencent's Xuanwu Lab (tencent.com)
  • WebKit:
  • Available for: OS X Yosemite v10.10.5, OS X El Capitan v10.11.6, and macOS Sierra 10.12.3
  • Impact: Processing maliciously crafted web content may exfiltrate data cross-origin
  • Description: Multiple validation issues existed in the handling of page loading. This issue was addressed through improved logic.
  • CVE-2017-2363: lokihardt of Google Project Zero
  • CVE-2017-2364: lokihardt of Google Project Zero
  • WebKit:
  • Available for: OS X Yosemite v10.10.5, OS X El Capitan v10.11.6, and macOS Sierra 10.12.3
  • Impact: Processing maliciously crafted web content may exfiltrate data cross-origin
  • Description: A validation issue existed in variable handling. This issue was addressed through improved validation.
  • CVE-2017-2365: lokihardt of Google Project Zero

New in Safari 10.2 Technology Preview Release 21 (Jan 11, 2017)

  • JavaScript:
  • Enabled concurrent garbage collection
  • Enabled
  • Added support for the global property on the global object
  • Fetch API:
  • Improved console logging when loading resources
  • IndexedDB 2.0:
  • Improved the speed of IDBIndex.get()
  • Improved the speed of iterating cursors
  • CSS:
  • Updated the syntax of the prefers-reduced-motion media query
  • Fixed CSS scroll snap to work when scrollbar is hidden
  • Fixed column overflows when text-align: justify is combined with word-spacing
  • Rendering:
  • Fixed a font variations bug exposed by the Skia font
  • Fixed an issue with multicolumn inside SVG
  • Fixed a floating element overlapping the marker within an
  • Accessibility:
  • Fixed changing focus to modal dialogs when one appears
  • Changed VoiceOver to read table headers that are not visible onscreen and do not use have an aria-hidden attribute
  • Web API:
  • Fixed firing Input Events with null inputTypes and no data when changing the text direction
  • Fixed handling key generation with an empty challenge string
  • Fixed focus for label elements with a tabindex value of 0 or higher
  • Fixed side effects while resetting form elements
  • Corrected setting the original URL of a download request with target="_blank"
  • Updated HTML form validation bubbles to be dismissed on navigation
  • Web Inspector:
  • Allow simple await expressions to be run in the console
  • Fixed Computed Styles to correctly show the Container Regions section for regions content flows into
  • Fixed jumping to the definition of a custom element
  • Fixed uncommenting to enable CSS rules of pseudo-elements in the Styles sidebar
  • Updated CodeMirror to add support for the async and await keywords along with other ECMAScript 2017 features
  • Fixed repositioning Timeline graph elements when resizing the window
  • Fixed zooming in the Timeline to zoom where the cursor is located
  • Improved console for narrow widths
  • Modernized the find banner UI
  • Updated keyword completions in Web Inspector for the new scroll snapping CSS properties
  • Security:
  • Allowed HTTPS URLs to match HTTP script-src expressions for Content Security Policy
  • Bug Fixes:
  • Fixed a Safari crash that occurs when deleting a Chinese character typed after an image
  • Selecting when zoomed in no longer jumps around

New in Safari 10.1 Technology Preview Release 20 (Dec 22, 2016)

  • Visual Viewport:
  • Enabled the new “visual viewports” model for how position: fixed and position: sticky elements are positioned during pinch zooming and while zoomed in
  • Touch Bar:
  • Prevented emoji buttons from displaying in the Touch Bar for password inputs
  • JavaScript:
  • Enabled Shared Array Buffers
  • Added a syntax error to report an unexpected token when async is followed by identifier in contexts where an async arrow function cannot occur
  • Web API:
  • Added Document.onvisibilitychange event handler attribute
  • Added reflected nonce attribute to the HTML Link element
  • Added support for the deprecated dictionary constructors of DOMPointReadOnly and DOMPoint
  • Fixed an issue where Custom Elements from a different document are not customized when created with innerHTML
  • Fixed an issue causing animations followed by a transition to not always fire the transitionend event
  • Prevented document.webkitFullscreenElement and document.webkitCurrentFullScreenElement from exposing a node inside a shadow tree
  • Security:
  • Changed to require preflight for non-standard CORS-safelisted request headers Accept, Accept-Language, and Content-Language
  • Implemented Strict Mixed Content Checking; block-all-mixed-content directive
  • Content Security Policy: Taught preload scanner how to preload s and s with nonce attribute
  • Content Security Policy: Allow ws: and wss: with connect-src * or default-src *
  • CSS:
  • Enabled support for a modern CSS parser, ported from Blink, that improves performance, specification compliance, and compatibility with other browsers, while also adding support for scientific notation in all CSS numbers
  • Fixed short columns in elements with the columns property
  • Fixed scrolling without momentum at the end of a scroll snapping container
  • Fixed line selection in flexbox layouts
  • Fixed ::after and ::before on :host
  • Fixed an issue causing keyframes to not work when defined inside a style in a shadow tree
  • Pointer Lock:
  • Prevented document.pointerLockElement from exposing a node inside a shadow tree
  • Changed to exit pointer lock when page goes into page cache
  • Made the cursor visible when exiting pointer lock using the ESC key
  • Changed the API for pointer lock to be hidden when disabled in the Experimental Features menu
  • Changed to exit pointer lock when a JavaScript alert is shown
  • Changed behavior to exit both fullscreen and pointer lock when the ESC key is pressed
  • Web Inspector:
  • Added the ability to distinguish if a script was parsed as a module
  • Changed Heap Snapshot data grids to allow keyboard navigation
  • Fixed Assertion Failures breakpoint to respect the global Breakpoints enabled setting
  • Added support for template literals in the Breakpoint Log action
  • Fixed an issue where some resources fetched via Fetch API would not have data
  • Fixed a bug to allow deleting a breakpoint from a worker script
  • Updated Esprima to support new syntax for ** operators , async, await, and trailing commas
  • WebCrypto API:
  • Added support for SPKI format for SubtleCrypto.importKey and SubtleCrypto.exportKey
  • Added support for PKCS8 format while doing SubtleCrypto.importKey and SubtleCrypto.exportKey
  • Changed to allow importing keys without usages for RSA algorithms
  • Bug Fixes:
  • Fixed an issue that could cause YouTube to pause when switching tabs
  • Fixed an issue where typing certain queries into Safari’s Smart Search Field would crash Safari Technology Preview
  • Fixed an issue where pages loading in background tabs would erroneously appear in the frontmost tab when they finished loading

New in Safari 10.0.2 (Dec 13, 2016)

  • SECURITY FIXES:
  • WebKit:
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.
  • CVE-2016-4692: Apple
  • CVE-2016-7635: Apple
  • CVE-2016-7652: Apple
  • WebKit:
  • Impact: Processing maliciously crafted web content may result in the disclosure of process memory
  • Description: A memory corruption issue was addressed through improved state management.
  • CVE-2016-7656: Keen Lab working with Trend Micro’s Zero Day Initiative
  • WebKit:
  • Impact: Processing maliciously crafted web content may result in the disclosure of process memory
  • Description: A memory corruption issue was addressed through improved input validation.
  • CVE-2016-4743: Alan Cutter
  • WebKit:
  • Impact: Processing maliciously crafted web content may result in the disclosure of user information
  • Description: A validation issue was addressed through improved state management.
  • CVE-2016-7586: Boris Zbarsky
  • WebKit:
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved state management.
  • CVE-2016-7587: Adam Klein
  • CVE-2016-7610: Zheng Huang of the Baidu Security Lab working with Trend Micro's Zero Day Initiative
  • CVE-2016-7611: an anonymous researcher working with Trend Micro's Zero Day Initiative
  • CVE-2016-7639: Tongbo Luo of Palo Alto Networks
  • CVE-2016-7640: Kai Kang of Tencent's Xuanwu Lab (tencent.com)
  • CVE-2016-7641: Kai Kang of Tencent's Xuanwu Lab (tencent.com)
  • CVE-2016-7642: Tongbo Luo of Palo Alto Networks
  • CVE-2016-7645: Kai Kang of Tencent's Xuanwu Lab (tencent.com)
  • CVE-2016-7646: Kai Kang of Tencent's Xuanwu Lab (tencent.com)
  • CVE-2016-7648: Kai Kang of Tencent's Xuanwu Lab (tencent.com)
  • CVE-2016-7649: Kai Kang of Tencent's Xuanwu Lab (tencent.com)
  • CVE-2016-7654: Keen Lab working with Trend Micro’s Zero Day Initiative
  • WebKit:
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: A memory corruption issue was addressed through improved state management.
  • CVE-2016-7589: Apple
  • WebKit:
  • Impact: Visiting a maliciously crafted website may compromise user information
  • Description: An issue existed in handling of JavaScript prompts. This was addressed through improved state management.
  • CVE-2016-7592: xisigr of Tencent's Xuanwu Lab (tencent.com)
  • WebKit:
  • Impact: Processing maliciously crafted web content may result in the disclosure of process memory
  • Description: An uninitialized memory access issue was addressed through improved memory initialization.
  • CVE-2016-7598: Samuel Groß
  • WebKit:
  • Impact: Processing maliciously crafted web content may result in the disclosure of user information
  • Description: An issue existed in the handling of HTTP redirects. This issue was addressed through improved cross origin validation.
  • CVE-2016-7599: Muneaki Nishimura (nishimunea) of Recruit Technologies Co., Ltd.
  • WebKit:
  • Impact: Visiting a maliciously crafted webpage may lead to an unexpected application termination or arbitrary code execution
  • Description: A memory corruption issue was addressed through improved state management.
  • CVE-2016-7632: Jeonghoon Shin
  • Safari Reader:
  • Impact: Enabling the Safari Reader feature on a maliciously crafted webpage may lead to universal cross site scripting
  • Description: Multiple validation issues were addressed through improved input sanitization.
  • CVE-2016-7650: Erling Ellingsen

New in Safari 10.1 Technology Preview Release 19 (Dec 8, 2016)

  • Touch Bar:
  • Added support for Touch Bar in WebKit
  • HTML Form Validation:
  • Enabled HTML interactive form validation
  • Pointer Lock API:
  • Enabled Pointer Lock API:
  • Input Events:
  • Fixed compositionEnd events to fire after input events when editing in IME
  • Fixed firing an input event with color data when setting the foreground color for selected text
  • URL Parser:
  • Changed URL Parser to prevent treating the first slash after the colon as the path for URLs with no host
  • Custom Elements:
  • Fixed document.createElementNS to construct a custom element
  • CSS Font Loading:
  • Fixed promises failing to fire for FontFace.load() and FontFaceSet.load()
  • Shadow DOM:
  • Fixed triggering style recalculation when toggling a class in .class ::slotted(*)
  • Fixed event.composedPath() to include window
  • Fixed slot to work as a flex container
  • Fixed the slotChange event to bubble and be dispatched once
  • Fixed slot nodes that ignored transition events
  • Fixed document.currentScript to be null when running a script inside a shadow tree
  • Fixed the hover state when hovering over a slotted Text node
  • Web Inspector:
  • Added support to shift-click on a named color value to cycle through different color formats
  • Added support for the Type Profiler and the Code Coverage Profiler in Workers
  • Changed selecting folders to display content in the Resources sidebar
  • Disabled Warning Filter in Debugger Tab by default
  • Improved name sorting in HeapSnapshot data grids
  • Improved Worker debugging to pause all targets and view call frames in all targets
  • Improved Debugger stack traces to display names for Generator functions
  • Improved Debugger to show execution lines for background threads
  • Improved Debugger to include showing asynchronous call stacks
  • Fixed URL Breakpoints that resolve in multiple workers to only appear in the UI once
  • Fixed layout and display issues in the Settings tab
  • Made checkbox labels clickable in the Settings tab
  • Rendering:
  • Fixed an issue where elements with a negative z-index could sometimes render behind the document body
  • Changed the way unsupported emoji are drawn from being invisible to being the empty box
  • Changed flex element wrapping to consider when the width is less than min-width
  • Indexed Database 2.0:
  • Implemented IDBCursor.continuePrimaryKey()
  • Implemented IDBObjectStore.getKey()
  • De-duplicated the names returned by IDBDatabase.objectStoreNames()
  • Added support for the IDBDatabase.onclose event
  • Fixed some issues with the firing of IDBRequest.onblocked events
  • Improved the performance of key
  • Improved SQLiteStatement performance throughout the SQLite backend
  • Agressively flush the client’s request queue to the server
  • Accessibility:
  • Changed the inverted-colors media query to match on state change instead of page reload
  • Fixed the implicit value for aria-level on headings to match the ARIA 1.1 specification
  • Exposed aria-busy attribute for authors to indicate when an area of the page is finished updating
  • WebDriver:
  • Exposed navigator.webdriver if the page is controlled by automation
  • Changed the automation session to terminate if the web process crashes
  • Media:
  • Fixed an issue where some animated images would not animate after reseting their animations
  • Security:
  • Changed the keygen element to require 2048 or higher RSA key lengths
  • Changed window.name to be cleared after a cross-origin navigation
  • Bug Fixes:
  • Fixed an issue causing copied text to include the text of CDATA sections and comments
  • Improved the performance of setting attributes on input elements of type text
  • Fixed a crash when interacting with Issues and Pull Requests on github.com
  • Fixed broken tab-focus navigation on some sites
  • Fixed a JS bindings generation issue that erroneously caused IntersectionObserver to be exposed, which broke Pinterest, Strava and Netflix

New in Safari 10.1 Technology Preview Release 18 (Nov 16, 2016)

  • Input Events:
  • Turned on the Input Events experimental feature by default
  • JavaScript:
  • Fixed an issue where exception descriptions didn’t know how to handle Symbol values
  • Shadow DOM:
  • Added support for loading stylesheets for link elements that are inside Shadow DOM trees
  • Web Inspector:
  • Added support for pausing, stepping and debugging Web Workers in the Debugger tab
  • Fixed creating a new pseudo-selector in the Styles sidebar when it doesn’t work on the first attempt
  • Fixed a stack overflow when searching a timeline recording for JavaScript function names
  • CSS:
  • Changed how minmax(auto, ) should be serialized per the CSS Grid spec
  • Fixed CSS.supports("font-variation-settings", "'wght' 500") so it does not erroneously return false
  • Fixed filter functions grayscale(), invert(), opacity(), and sepia() so they clamp values over 100%
  • Fixed the slotted() pseudo selector so that it works with id selectors
  • Rendering:
  • Fixed a bug where Safari does not emit compositionend if blurred for dead key or Japanese IME
  • Indexed Database 2.0:
  • Changed IDBIndex to handle rename behavior properly when version change transaction aborts
  • Changed IDBObjectStore to handle rename behavior properly when version change transaction aborts
  • Renamed IDBKeyRange.contains() to IDBKeyRange.includes()
  • Added support for binary keys
  • Added support for IDBIndex.getAll() and IDBIndex.getAllKeys()
  • Corrected what exceptions are thrown during IDBObjectStore and IDBIndex renaming
  • Switched to using IndexedDB exceptions in places where generic exceptions were being used
  • Accessibility:
  • Fixed a crash that would happen when attempting to clear selection on ARIA listboxes
  • Printing:
  • Made printing to PDF produce internal links when the HTML has internal links
  • HTTP Authentication:
  • Changed Safari’s HTTP authentication UI to not block switching tabs, navigating to other websites, or closing tabs
  • Web APIs:
  • Changed resizeTo, resizeBy, moveTo, or moveBy to do nothing in windows that weren’t created by window.open
  • Implemented new user interface for HTML interactive form validation behind an experimental flag

New in Safari 10.1 Technology Preview Release 17 (Nov 9, 2016)

  • Safari Extensions:
  • Removed NPAPI Plug-in support from .safariextz Safari Extensions
  • Custom Elements:
  • Enabled Custom Elements everywhere by default
  • Changed Custom Elements reactions to have a queue per element
  • Enqueued attributeChanged and connected callbacks when upgrading a custom element
  • Custom Elements reactions are now enqueued for HTML API and CSS OM APIs
  • Web APIs:
  • Implemented rel=noopener
  • Enabled stylesheets loading via a link element inside Shadow DOM subtrees
  • Added support for HTML formatted content from event.dataTransfer.getData(‘text/html’) and event.clipboardData.getData(‘text/html’) in onpaste or ondrop events
  • Input Events:
  • Added support to fire insertReplacementText input events when holding down a key to choose an accented character
  • Implemented InputEvent.getTargetRanges()
  • Implemented support for insertFromDrop and deleteByDrag
  • Implemented support for insertFromComposition, deleteByComposition, insertCompositionText, and deleteCompositionText input types for Input Events
  • Implemented support for InputEvent.dataTransfer
  • URL Parser:
  • Matched the behavior of the old URL parser when . is in the URL path
  • Prevented interpreting host of URLs with unrecognized schemes as an IPv4 address
  • Fetch API:
  • Ensured the redirection count is no more than 20 in case of cross origin requests
  • Ensured redirections are upgraded only if declared by CSP policy
  • Changed ReadableStream to only clone the second branch
  • JavaScript:
  • Fixed arrow functions with concise bodies to be able to return regular expressions
  • Fixed String.prototype.replace() to throw an OutOfMemoryError when using too much memory
  • Enabled JSON.stringify to handle an ES6 Proxy that has an array element context
  • Web Inspector:
  • Added support for Custom Elements in Web Inspector
  • Enabled showing Shadow DOM scoped styles in Web Inspector
  • Added a pinned tab for settings with various text editor preferences
  • Breakpoints not working in scripts with unicode characters
  • Fixed the alignment for arrows in the Styles scope bar item
  • Fixed the ⌘+ shortcut not increasing the size of Web Inspector’s user interface
  • Fixed Open Resource Dialog to jump to the last line when entering :*n* where n is greater than the number of lines in the file
  • Improved the debugger highlight in some exception cases
  • Improved Quick Open sorting algorithm
  • Improved console.log support in Web Workers
  • Included parameter strings for native CustomElementRegistry methods in the console
  • Prevented showing empty Closure sections in the Scope chain
  • CSS:
  • Avoided unnecessary full style resolution in getComputedStyle for non-inherited properties
  • Fixed backdrop-filter to render properly when removed and then re-added
  • Fixed rendering dynamically-added backdrop-filter to a clip-path’d element with 3D transform
  • Changed behavior to create a stacking context while an animation is running when the animation keyframes affect stacking context properties
  • Prevented painting text selection within an SVG mask
  • Corrected the blur radius for filter: drop-shadow()
  • Changed style resolver to be updated lazily
  • Media:
  • Allowed multiple playing videos on a page with autoplay and playsinline attributes
  • Fixed WebAudio to resume when moving from background to foreground tab
  • Fixed video playback stalls when seeking beyond the buffered range for some video sites
  • Added support for wide gamut in Quick Look image popovers
  • Networking:
  • Changed the preloading behavior to match the behavior on iOS, where resources like images are loaded at a lower priority
  • Indexed Database 2.0:
  • Support renaming IDBObjectStores and IDBIndexes
  • Implemented IDBTransaction.objectStoreNames()
  • Implemented IDBObjectStore.openKeyCursor()
  • Implemented IDBObjectStore.getAll() and IDBObjectStore.getAllKeys()
  • Implemented IDBIndex.getAll() and IDBIndex.getAllKeys()
  • Bug Fixes:
  • Fixed an issue where JavaScript dialogs (alert, confirm, prompt) and Safari’s external navigation confirmation prompt showed empty messages

New in Safari 10.1 Technology Preview Release 16 (Oct 27, 2016)

  • URL Parser:
  • Enabled a faster and more standards-compliant URL parser
  • Gamepad API:
  • Enabled the Gamepad API by default, allowing gamepads already configured for use with macOS to work on web pages using the Gamepad API
  • CSS:
  • Supported CSS Shapes Level 1 without a -webkit- prefix
  • Fixed an issue where CSS font-variation-settings did not handle uppercase axis names in variable fonts
  • Media:
  • Made full access to the keyboard available when content is fullscreen
  • Made setting HTMLMediaElement.volume to NaN or Infinity throw a TypeError
  • Allowed throttling of background tabs that have media elements with no audible audio
  • Fetch API:
  • Added support for Request cache mode
  • Forbid redirection to non-HTTP(s) URL when in non-navigation mode
  • Ensured memory cache does not bypass redirect mode
  • Improved network data transfer to stream when the application needs it
  • JavaScript:
  • Implemented Intl.getCanonicalLocales
  • Changed ES6 method functions to not have a prototype property
  • Forbid "use strict" directive in generator functions with non-simple parameters
  • Prevented Array.prototype.concat from modifying frozen objects
  • Prevented Array.prototype.slice from modifying frozen objects
  • Prevented JSON.parse from modifying frozen objects
  • Handled non-function, non-undefined comparator in Array.prototype.sort
  • Web APIs:
  • Changed MouseEvent coordinates to be set to 0 for simulated clicks
  • Fixed an issue where select.options could incorrectly return too many option elements
  • Made table.deleteRow(–1) do nothing when there are no rows
  • Fixed event listener order when overwriting an attribute event listener
  • Implemented DOMPoint and DOMPointReadOnly
  • Implemented DOMRect and DOMRectReadOnly
  • Added support for "CapsLock" modifier in KeyboardEvent.getModifierState()
  • Added support for window.navigator.languages attribute
  • Updated window.navigator.language to no longer return an all lowercase string
  • Updated HTMLSelectElement to ignore nested optgroup elements when recalculating
  • Ensured a toggle event is fired whenever details.open is changed
  • Web Inspector:
  • Fixed Timeline UI updating while recording in remote Web Inspector
  • Exposed computed tree node and heading level for accessibility
  • Added toggles for debugger pauses at console.assert failures
  • Prevented changing content view when dragging to delete a breakpoint
  • Improved debugger highlight when inside of getter and setter calls
  • Improved debugger highlight when pausing on the first statement of a program
  • Improved debugger highlight for dot- and bracket-expressions in if statements
  • Removed line flash while stepping to prevent distraction
  • Prevented CSS autocompletion from adding extra unexpected characters
  • Corrected syntax highlighting for mixed case CSS values like translateX
  • Fixed an issue when pasting into a CSS rule selector
  • Accessibility:
  • Implemented prefers-reduced-motion media query
  • Set to provide the accessible name for other content inside the
  • Exposed the invalid status for input types with an invalid input value
  • Exposed the placeholder attribute when both the placeholder and aria-placeholder attributes are set
  • Improved accessibility support for elements
  • Mapped the element to status role and exposed its text content as a title
  • Added a new role for the element and exposed the role description
  • Improved the element to describe the status of the value
  • Provided more detailed role description for input types exposed as standard text fields
  • Shadow DOM:
  • Fixed updating styles for stylesheets that change in a shadow tree
  • Bug Fixes:
  • Fixed an issue where Safari Technology Preview would hang when waking from sleep
  • Fixed an issue where the contents of a tab would remain onscreen briefly after automatically switching to a new tab when opening a target=_blank link
  • Changed “Download Linked File” context menu action to use the value of the download attribute as the filename
  • Changed “Download Linked File As…” context menu action to use the value of the download attribute as the suggested filename
  • Fixed a bug where a keyframe animation on body could trigger high CPU usage
  • Fixed an issue that caused the keyboard to remain visible when swiping back on twitter.com

New in Safari 10.0.1 (Oct 24, 2016)

  • SECURITY FIXES:
  • WebKit:
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.
  • CVE-2016-4666: Apple
  • WebKit:
  • Impact: Processing maliciously crafted web content may lead to the disclosure of sensitive user information
  • Description: A cross-origin issue existed with location attributes. This was addressed through improved tracking of location attributes across origins.
  • CVE-2016-4676: Apple
  • WebKit:
  • Impact: Processing maliciously crafted web content may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.
  • CVE-2016-4677: Anonymous working with Trend Micro Zero Day Initiative

New in Safari 10.1 Technology Preview Release 15 (Oct 12, 2016)

  • Fetch API:
  • Made ReadableStream throw TypeError values instead of strings
  • Changed Fetch to prevent redirection to non-HTTP URLs
  • Made FetchBody use UTF8 to encode text data
  • Added support for URLSearchParams as the body of a Fetch
  • JavaScript:
  • Sped up String.prototype.toLowerCase() by 7–8% on benchmarks
  • Fixed cases where class, function, and arrow function names were not inferred during assignment
  • Fixed arrow functions so they don’t allow duplicate parameter names
  • Updated Generator and GeneratorFunction property descriptors to match the ES6 spec
  • Fixed a bug where String.prototype.padStart() and padEnd() would insert null in rare cases
  • Fixed a bug with Function.prototype.length when there are parameters with default values
  • CSS:
  • Implemented rendering of font-variation-settings and enabled it by default
  • Implemented animation of font-variation-settings
  • Added mapping for font-family: cursive to KaiTi fonts in Chinese
  • Sped up the computation of CSS Grid row sizes with indefinite heights by 2×
  • Fixed setting a style element’s textContent or cssText so it properly triggers a style recalculation
  • Fixed toggling display: none on a parent element of a Shadow DOM slot to work in more cases
  • Web APIs:
  • Enabled support for the download attribute on anchor and area elements — including Blob URLs
  • Exposed CryptoKey to Web Workers
  • Implemented Node.prototype.getRootNode()
  • Implemented ShadowRoot.prototype.elementFromPoint()
  • Implemented DOMTokenList.prototype.supports()
  • Implemented ImageData.prototype.data from the HTML spec
  • Implemented KeyboardEvent.prototype.code from the UI Event spec
  • Implemented KeyboardEvent.prototype.isComposing from the UI Event spec
  • Implemented KeyboardEvent.prototype.key from the UI Event spec
  • Implemented KeyboardEvent.prototype.repeat from the UI Event spec
  • Implemented KeyboardEvent.prototype.getModifierState() from the UI Event spec
  • Changed ReadableStream to match the Steams API spec
  • Changed DOMTokenList.prototype.value and toString() to match the DOM spec
  • Changed td.scope to only return known values
  • Changed HTMLLabelElement.prototype.form to match the HTML spec
  • Changed Element.insertAdjacentHTML() to match the HTML spec
  • Changed window.open() so it returns null when it is blocked by Safari
  • Changed HTMLSlotElement.prototype.assignedNodes() to include fallback contents when flatten option is set
  • Changed Object.prototype.getOwnPropertyDescriptor() so it works correctly across origins
  • Changed HTML serialization to always add xml: prefix for attributes in the XML namespace
  • Changed properties on Window and Location to be non-enumerable when accessing them cross origin
  • Fixed a bug where text nodes assigned to a linked slot were not clickable
  • Fixed the assignment of non-numeric values to input.minlength by setting it to 0
  • Fixed input elements so they work inside Shadow DOM trees
  • Fixed the document.title getter by stripping and collapsing the right whitespace characters
  • Fixed going into fullscreen from Silverlight a second time would hide the menu bar and dock for Safari
  • Fixed the serialization of HTML element attributes to match the HTML spec
  • Fixed the serialization of HTML void elements to ignore any child elements
  • Fixed the serialization of bgsound, keygen, and track elements
  • Fixed a bug where setting attributes on HTMLMeterElement to non-finite values would throw the wrong exception type
  • Fixed a bug where IDBIndex.prototype.openCursor() would match indices on multiple object stores
  • Fixed a bug preventing structured clones of WebCrypto keys under Safari 10
  • Web Inspector:
  • Added line range highlighting to show where the debugger is paused — good for lines with multiple expressions or multiple function calls
  • Made breakpoints on blank lines or comments break on the next possible line
  • Fixed stepping out of a function so it always takes you to the caller instead of sometimes resuming
  • Fixed stepping to a line in the debugger with an “auto continue” breakpoint so it still pauses
  • Fixed refreshing while in the Timelines tab would cause negative timestamps in the Network tab
  • Fixed a bug where Box Model values were not updated when DOM node styles changed
  • Fixed a bug where the DOM would not update when editing Box Model values (border, margin, etc.)
  • Added a console message when an anchor download attribute is ignored
  • Made clicking a second time on the color swatch square hide the CSS color picker
  • Media:
  • Fixed Picture in Picture playback so it always shows the correct state of the play button
  • Accessibility:
  • Exposed a label element’s text content as the description for meter elements
  • Exposed a label element’s text content as the description for progress elements
  • URL Handling:
  • Navigations to tel: and mailto: links now require a user gesture; navigations without a user gesture will show a confirmation prompt
  • Users are now prompted when navigating to URLs that open other applications
  • Security:
  • Fixed an issue where a CSP violation report may be sent to the wrong domain when the frame-ancestors directive is violated
  • Safari Extensions:
  • Fixed an issue where Safari Technology Preview would consume excess memory when certain Safari Extensions were installed

New in Safari 10.1 Technology Preview Release 14 (Sep 29, 2016)

  • Safari Extensions:
  • Fixed an issue where content blocker extensions delivered with apps wouldn’t be applied in Safari Technology Preview
  • Custom Elements:
  • Enabled Custom Elements API
  • Fetch API:
  • Changed combining Access-Control-Request-Headers with ',' instead of ', '
  • Added unsafe request header checks for the Referrer and Origin headers
  • JavaScript:
  • Changed ES6 classes to allow the creation of a static method with name “arguments”
  • Improved performance for Map and Set
  • Improved performance of Function.prototype.bind
  • Fixed language tag parsing in Intl constructors
  • Web APIs:
  • Implemented URLSearchParams
  • Added support for HTMLIFrameElement.allowFullscreen, input.minLength, and textArea.minLength attributes
  • Added support for HTMLSourceElement.prototype.sizes and HTMLSourceElement.prototype.srcset
  • Fixed an issue to allow setting input.type to file after being set to another type
  • Fixed attribute reflection as a URL for frame.longDesc, iframe.longDesc and HTMLObjectElement.codebase
  • Fixed ol.start to return the correct value for reversed lists when it is not explicitly set
  • Changed hspace, vspace, width, height attributes of HTMLImageElement along with the hspace and vspace attributes of HTMLObjectElement to be unsigned
  • Changed pageXOffset and pageYOffset attributes of Window to be replaceable
  • Changed the window.performance object wrapper to stay alive as long as the associated frame
  • Changed the invalid default value of HTMLTrackElement.kind to the metadata state
  • Fixed handling a negative radius in the coords attribute of an HTMLAreaElement in a circle shape
  • Moved HTMLButtonElement.prototype.click to HTMLElement.prototype.click
  • Updated HTMLAppletElement and HTMLAreaElement shape parsing to align with specifications
  • Exposed the WebCrypto algorithms via KeyAlgorithm dictionary
  • Dropped legacy canvas.probablySupportsContext()
  • Dropped support for
  • Apple Pay:
  • Added a new -webkit-appearance CSS property for Apple Pay buttons
  • Fixed presenting a payment sheet when a sheet is already active in another window
  • Web Inspector:
  • Added a button to the navigation bar to toggle the Control Flow Profiler
  • Added support for drag-and-drop of CSS classes and ids onto DOM nodes
  • Added JavaScript completion for ES6 keywords and global variables
  • Added a popover to show Resource Timing details in Network waterfall displays
  • Added a warning message in the Debugger sidebar when breakpoints are disabled
  • Changed the Debugger Scope sidebar to show “Local” instead of “Closure” when paused in an anonymous function
  • Fixed selecting the call frame in the Debugger sidebar on initial pause and added an indicator next to active call frame
  • Fixed debugger popover title and code horizontal alignment
  • Fixed Command-Z (⌘Z) behavior when editing CSS selectors in the Styles sidebar
  • Improved Element Search (⇧⌘C) to bring the inspector page’s window forward and highlight elements without requiring mouse movement
  • Fixed Properties section layout when clicking the “Show All” checkbox of the Computed Styles section
  • Fixed a bug causing the color picker to stop working in the Styles sidebar after the first color change
  • Fixed a bug where reloading unexpectedly switches to the Storage tab
  • Implemented Copy CSS Selector and Copy Xpath Selector context menus
  • Improved element search to bring the inspected page’s window forward
  • Made console session dividers more pronounced
  • Rendering:
  • Added support for new emoji group candidates
  • WebDriver:
  • Starting in Release 14, Safari Technology Preview now includes regular updates and bug fixes to Safari’s WebDriver implementation. You can run your WebDriver tests with the updated driver by using the safaridriver executable that is included in the Safari Technology Preview application bundle. By default, this is located at /Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver. The driver executable located at /usr/bin/safaridriver will continue to launch Safari 10 on macOS Sierra and OS X El Capitan.
  • For more information about using WebDriver with Safari, check out the blog post WebDriver Support in Safari 10 (more at https://webkit.org/blog/6900/webdriver-support-in-safari-10/)

New in Safari 10.0 (Sep 20, 2016)

  • The Safari 10 update is recommended for all OS X El Capitan users and contains improvements to privacy, compatibility, and security. This update:
  • Adds support for Safari Extensions from the Mac App Store
  • Displays HTML5 video whenever available for faster load times, better battery life, and stronger security
  • Enhances security by running plug-ins only on websites you authorize
  • Improves AutoFill and adds support for auto-filling information from any contact in Contacts
  • Enhances the formatting in Reader view
  • Remembers zoom level for each website users visit

New in Safari Technology Preview Release 13 (Sep 15, 2016)

  • Fetch API:
  • Added support for BufferSource bodies
  • Fixed blob resource handling to raise a network error when the URL is not found
  • Set the blob type correctly for an empty body
  • Set the blob type from Response/Request contentType header
  • Made the body mix-in text() decode data as UTF–8
  • Ensured response cloning works when data is loading
  • Enabled the Fetch API to load the data URL in same-origin mode
  • Prevented any body for opaque responses
  • Changed opaqueredirect responses to have their URL set to the original URL
  • Prevented setting bodyUsed when request construction fails
  • Set Response bodyUsed to check for its body-disturbed state
  • Changed response cloning to use structureClone when teeing a Response stream
  • Aligned the internal structure of ReadableStream with the specifications
  • Aligned data:// URL behavior of XHR to match specifications
  • Custom Elements:
  • Added adopted callback for custom elements on appendChild()
  • Enabled reaction callbacks for adopted custom elements
  • Updated the semantics of :defined to re-align with specification changes
  • Added validations for a synchronously constructed custom element
  • Added support for the whenDefined() method on the CustomElementRegistry
  • Added a CustomElementRegistry check for reentrancy
  • JavaScript:
  • Enabled assignments in for…in head in non-strict mode
  • Changed newPromiseCapabilities to check that the given argument is a constructor
  • Fixed toString() to return the correct tag when called on proxy objects
  • Web APIs:
  • Added event support for
  • Implemented x, y and ScrollToOptions arguments for Element.scroll(), Element.scrollTo(), and Element.scrollBy()
  • Updated location.toString to make it enumerable
  • Updated location.toString in Web Workers to make it enumerable
  • Changed Object.preventExtensions(window) to throw a TypeError exception
  • Aligned coords and srcset attribute parsing with the HTML specification
  • Added support for CanvasRenderingContext2D.prototype.resetTransform
  • Aligned cross-origin Object.getOwnPropertyNames() with the HTML specification
  • Web Inspector:
  • Added IndexedDB Database, ObjectStore, and Index data to the details sidebar
  • Added support for Shift-Command-D (⇧⌘D) to switch to the last used dock configuration
  • Added support for Shift-Tab (⇧⇥) to un-indent the selected line
  • Changed Command-D (⌘D) to select the next occurrence instead of deleting the line
  • Added a visual indicator for shadow content in the DOM tree
  • Allowed hiding of CSS variables in the Computed styles panel
  • Fixed an issue that prevented using an Undo action in the breakpoint editor
  • Prevented the resource content view from showing “CR” characters
  • Fixed an issue preventing re-inspecting the page after a Web Inspector process crash
  • Improved the minification detection heuristic for small resources
  • Fixed an issue causing network record bars to be positioned on unexpected rows
  • Provided a way to clear an IndexedDB object store
  • Improved the debugger popover to pretty print functions
  • Corrected unexpected cursor changes while dragging ruler handle in the rendering frames timeline
  • Corrected the display of a plain text XHR response with responseType="blob"
  • CSS:
  • Implemented CSS.escape according to the CSSOM specification
  • Improved CSS stylesheet checks to ensure clean stylesheets are accessible from JavaScript
  • Improved :enabled and :disabled selectors to only match elements that can be disabled
  • Rendering:
  • Fixed scrollbars for a with overflow content inside
  • Added support for non-BMP MathML operators U+1EEF0 and U+1EEF1
  • Fixed getting font bounding rect for MathML
  • Security:
  • Changed the Image Loader to set the fetch mode according its crossOrigin attribute
  • Added a SecurityError when trying to access cross-origin Location properties
  • Updated Object.defineProperty() and Object.preventExtensions() to throw an error for a cross-origin Window or Location object
  • Updated Object.setPrototypeOf() to throw an error and return null when used on a cross-origin Window or Location object
  • Plugins:
  • Replaced YouTube Flash embeds with HTML5 equivalents on macOS

New in Safari 9.1.3 (Sep 1, 2016)

  • SECURITY FIXES:
  • WebKit:
  • Available for: OS X Yosemite v10.10.5 and OS X El Capitan v10.11.6
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: A memory corruption issue was addressed through improved memory handling.
  • CVE-2016-4654: Citizen Lab and Lookout

New in Safari Technology Preview Release 12 (Sep 1, 2016)

  • JavaScript:
  • Added checks for TypedArray.prototype.slice to ensure the source and destination have not been detached
  • Added exception handling for const variables used in a for-in or for-of loop
  • Improved the performance of Array.prototype.map when used with Arrays
  • Implemented Object.entries and Object.values from the ES2017 specifications
  • Changed the line, column and sourceURL properties of Error to be configurable and writable
  • Web APIs:
  • Fetch API is enabled by default
  • Updated Resource Timing implementation
  • Aligned Range.surroundContents() with the latest DOM specification
  • Added support for HTMLAreaElement.toString()
  • Changed the prefix properties of Attr and Element to be read-only
  • Changed to an HTMLUnknownElement and to an HTMLElement
  • Moved the prefix, namespaceURI, and localName attributes from Node to Attr and Element
  • Aligned text encoding labels with the Encoding specification
  • Added Animatable, AnimationEffect, KeyframeEffect and Animation interfaces for Web Animations
  • Aligned isDefaultNamespace(), lookupPrefix(), and lookupNamespaceURI() with the specification
  • Changed querySelector() and querySelectorAll() to always throw a SyntaxError when failing to parse a selector string
  • Moved embeds, plugins, and scripts attributes from HTMLDocument to Document
  • Moved the compatMode and designMode properties from HTMLDocument to Document
  • Updated getElementsByTagName() to take a qualified name parameter
  • Exposed crypto.getRandomValues to Web Workers
  • Added application/vnd.api+json as a valid JSON MIME-type
  • Web Inspector:
  • Added Open in New Tab, Reveal in Resources Tab and Copy Link Address to the context menu of link attributes
  • Added Download File context menu item for resource tree elements
  • Added Copy Selected context menu item to the Console
  • Added a visual editor for the spring() timing-function
  • Fixed an issue where “NaN x NaN” was shown for invisible elements in the Styles → Computed → Box Model section
  • Set Open Resource Dialog to jump to the last line when the specified line number (“:n”) is more than the total line count of the resource
  • Added an icon for selectors that only affect pseudo-elements
  • Fixed DOM nodes shifting when hovering over them in the Console
  • Fixed the alignment of the Close button of the selected item in the Network tab
  • Changed the Visual Styles Sidebar behavior for SVGs to show SVG specific sections
  • Changed the Visual Styles Sidebar Text → Content section to only be visible for a pseudo-element
  • Escaped Text → Content in the Visual Styles Sidebar
  • Addressed status icons flickering from rapid updates in the Visual Styles Sidebar
  • Fixed the placement of Error and Warning icons in the Visual Styles Sidebar
  • Fixed a hang when using Command-Shift-O (⌘⇧O) when the loaded web page has frames
  • Enabled editing node attributes, content, and styles for shadow DOM nodes
  • Improved the display of large numbers in the console log counter on the dashboard
  • Improved the display of large class lists and made the quick-toggle easier to discover
  • MathML:
  • Improved the extraction of operator and token elements’ characters
  • Introduced a MathMLRowElement class for mrow-like elements
  • Introduced a MathMLAnnotationElement class for the and elements
  • CSS:
  • Enabled the :host pseudo-class to style elements in the shadow tree
  • Corrected the namespace prefix handling in front of element name CSS selectors
  • Rendering:
  • Fixed SVG clip-path to work on a root SVG element
  • Fixed ctx.drawImage to clip the source rectangle if it is outside the source image
  • Accessibility:
  • Labelled audio description tracks correctly to prevent user confusion
  • Added a percentage value description for the media control’s timeline slider
  • Security:
  • Improved URLParser parsing IPv4 addresses and URLs without credentials
  • Added support to handle cross-origin redirect requests while in CORS mode
  • Corrected the Upgrade-Insecure-Request state handling between navigations
  • Added a sandbox for the Adobe Flash Player ESR plug-in used in enterprise environments
  • Changed instantiation of WebKit plug-ins to happen at layout time, instead of at style resolution time

New in Safari Technology Preview Release 11 (Aug 18, 2016)

  • JavaScript:
  • Updated behavior for a class that extends null to follow ECMAScript 2016 specifications
  • Made the second argument for Function.prototype.apply allow null, undefined or array-like data
  • Web APIs:
  • Add support for DOMTokenList.replace()
  • Add support for Element.getAttributeNames()
  • Made the first parameter mandatory for canvas.getContext() and probablySupportsContext()
  • Made the first two parameters mandatory for window.postMessage()
  • Made the first parameter mandatory for Document.execCommand() and queryCommand*()
  • Made the first parameter mandatory for HTMLMediaElement.canPlayType()
  • Made the first parameter mandatory for indexed property getters
  • Made the first parameter mandatory for Range.createContextualFragment()
  • Made the first parameter mandatory for setTimeout() and setInterval()
  • Made the first parameter mandatory for SVGDocument.createEvent()
  • Made the parameter mandatory for a named property getter mandatory
  • Made the parameter mandatory for table.deleteRow() and body.deleteRow()
  • Made the parameter mandatory for tr.deleteCell()
  • Made the parameters mandatory for CanvasGradient.addColorStop()
  • Made the parameters mandatory for DOMParser.parseFromString()
  • Made the parameters mandatory for Event.initEvent()
  • Made the parameters mandatory for insertAdjacentText() and insertAdjacentHTML()
  • Enabled strict type checking for nullable attribute setters for wrapper types
  • Enabled strict type checking for operations’ nullable parameters for wrapper types
  • ApplePay:
  • Stopped accepting the deprecated requiredShippingAddressFields and requiredBillingAddressFields properties
  • Web Inspector:
  • Improved the appearance of the Timeline tab when editing the enabled timelines
  • Changed the Jump to Line keyboard shortcut to Control-G (⌃G)
  • Fixed the grid column resizing element positions
  • Added waterfall view to the Network tab and Network Timeline
  • Fixed positioning of popovers when the window resizes
  • Fixed popover drawing
  • Polished UI for the Edit Breakpoint, Open Quickly, and Goto Line dialogs
  • Update the Visual Styles Sidebar to use a one column layout when narrow
  • Fixed the behavior of Home and End keys to match system behavior
  • MathML:
  • Polished MathML parsing
  • CSS:
  • Aligned the CSS supports rule with the specification
  • Addressed incorrect results for the color-gamut media query
  • Rendering:
  • Fixed performance issues with with the truespeed attribute
  • Media:
  • Fixed captions not rendering in the PiP window for a hidden video element
  • Addressed media controls not displaying for some autoplaying videos at certain browser dimensions
  • Fixed media stream video element to show black when all video tracks disabled
  • Accessibility:
  • Added localizable strings when inserting list types
  • Improved the accessibility of media controls
  • Content Blockers:
  • Enabled Content Blockers to block WebSocket connections

New in Safari Technology Preview Release 10 (Aug 4, 2016)

  • JavaScript:
  • Introduced exponentiation expressions (x ** y) from ECMAScript 2016
  • Improved specification compatibility of use strict in functions
  • Web APIs:
  • Moved dir attribute from HTMLDocument to Document
  • Aligned Node.isEqualNode() with the specification
  • Made DOMTokenList iterable
  • Moved properties for ClientRect to the prototype
  • Made the parameters of DOMImplementation.createDocumentType() mandatory and non-nullable
  • Made the first parameter of Window.getComputedStyle() mandatory and non-nullable
  • Fixed null handling of SVGAngle.valueAsString and SVGLength.valueAsString
  • Fixed null handling of HTMLFontElement.color
  • Fixed null handling for several HTMLTableElement attributes
  • Fixed null handling for HTMLObjectElement.border
  • Fixed null handling for td.bgColor and tr.bgColor
  • Fixed null handling for several HTMLBodyElement attributes
  • Fixed null handling of the marginWidth and marginHeight attributes for HTMLFrameElement and HTMLIFrameElement
  • Fixed null handling for HTMLImageElement.border
  • Fixed null handling of several Document attributes
  • Fixed null handling of HTMLMediaElement.mediaGroup
  • Fixed null handling of HTMLSelectElement.value attribute
  • Fixed null handling of SVGScriptElement.type attribute
  • Fixed null handling of several HTMLDocument attributes
  • Fixed null handling of HTMLScriptElement.text attribute
  • Fixed null handling of the enctype, encoding and method properties of the form element
  • Fixed null handling of formEnctype and formMethod properties for input and button elements
  • Changed the letter-case for the playsInline IDL attribute
  • Dropped the SVGElement.xmlbase attribute
  • Aligned CSSStyleDeclaration.setProperty() with the specification
  • Made the EventTarget.dispatchEvent() parameter non-nullable
  • Apple Pay:
  • Fixed deprecated errors thrown when using requiredBillingAddressFields
  • Fixed onPaymentAuthorized callback not received when authorizing a second time
  • Fixed ending the payment session if the user closes all windows
  • Web Inspector:
  • Fixed slowdowns when switching away from the Console tab with a lot of messages
  • Fixed filtering in the Overview timeline view
  • Fixed maintaining the selected function when switching between different profile representations
  • Improved styles for the Open Quickly and Goto Line dialogs
  • MathML:
  • Changed the CSS display property of many MathML elements to allow page authors to override
  • Mapped “combining” to “non-combining” character equivalents
  • Improved alignment inside vertically stretched operators
  • Removed the padding and margin around the element
  • Reset the font-style property on the element
  • Rendering:
  • Added support for new emoji group candidates
  • Fixed moving scrollbars to the right when the text direction changes to right-to-left
  • Fixed image zoom animations that were broken on medium.com
  • Fixed computing elements-based snap points for containers with large maximum scroll offset values
  • Fixed a rendering issue causing theguardian.co.uk crossword puzzles to sometimes not display text
  • Accessibility:
  • Fixed an issue causing duplicate children when first-letter is being used in CSS
  • Fixed name calculation of headings from the aria-label attribute for VoiceOver
  • Added a new attribute to expose the auto-fill button type to VoiceOver
  • Fixed volume adjustments using VoiceOver and improved spoken feedback
  • Security:
  • Changed behavior to block insecure scripts running in a data: frame when the top-level page is HTTPS
  • Changed URL handling to remove credentials when accessed through location.href
  • Changed behavior to block mixed-content synchronous XHRs
  • Improved support for multiple policies to more closely conform to the CSP Level 2 specifications
  • Applied the Content Security Policy object-src and plugin-types directives for plugin replacements
  • Changed the behavior to prevent history.pushState and history.replaceState where a username is in the URL
  • Changed behavior to allow LocalStorage access for file URLs by default

New in Safari Technology Preview Release 9 (Jul 20, 2016)

  • JavaScript:
  • Improved spec compliance for Array and %TypedArray%
  • Improved the performance of %TypedArray%.prototype.subarray
  • Fixed Date.setYear() to be more spec compliant
  • Fixed Date.toGMTString() to be the Date.toUTCString() function
  • Fixed a successful RegExp.compile to properly return the regular expression
  • Improved String to better match specs
  • Fixed cyclic prototypes to throw the right error type according to specs
  • Implemented HasRestrictedGlobalProperty when checking for global lexical tier conflicts
  • Fixed an unexpected “Out of memory” error for String.prototype.repeat() with a negative value argument
  • Fixed use strict handling when parsing functions that include use strict after other non-strict statements
  • Web APIs:
  • Changed FontFaceSet.load and FontFaceSet.check to honor the second argument
  • Moved assignedSlot from CharacterData to Text to match the latest Shadow DOM specs
  • Replaced Event.prototype.scoped by Event.prototype.composed to reflect the latest Shadow DOM spec
  • Aligned document.body setter with the HTML specification
  • Fixed document.body to return the first child of the HTML element that is either a body or frameset element
  • Fixed document.title setter for SVG documents
  • Fixed an issue that prevented calling the document.fonts.ready callback
  • Added support for unprefixed version of the CSS image-set() function
  • Setting table.tFoot or calling table.createTFoot() should append HTML element to the end of the table
  • Exposed and elements as HTMLTableCellElement objects
  • Prevented tbody.deleteRow(–1) and tr.deleteCell(–1) from throwing an error when there are no rows or cells
  • MathML:
  • Added support for href attribute in MathML
  • Improved the layout of using parameters from the OpenType MATH table
  • Added support for mathvariants that cannot be emulated via CSS.
  • Refactored MathML layout functions to avoid using flexbox
  • Apple Pay:
  • Fixed a bug allowing multiple payment sheets in Safari to be open at the same time
  • Renamed addressFields tocontactFields
  • Added type and paymentPass properties in PaymentMethod:
  • Web Inspector:
  • Added “Copy as cURL” feature for resource requests in the timeline
  • Fixed an issue causing Top Functions data to show even when disabled
  • Improved JSON pretty printing in more scenarios
  • Added spring to transition-timing-function value auto-completion
  • Added pixel area column to the Layout timeline view
  • Improved the API view of native DOM APIs
  • Fixed ⌘⇧S in the Styles sidebar to always show the save dialog
  • Fixed an issue causing a scrolled JavaScript Snapshot list to be drawn blank when switching back from a comparison view
  • Fixed an issue that caused a UTF8-encoded XHR to show garbled data in the Resource sidebar
  • Added Shadow Content type to DOM tree in the Elements tab
  • Fixed an issue preventing the last normal tab from being closed with the “Close Tab” context menu item
  • Fixed an issue causing the wrong function name to show in the Scope Chain sidebar of the Debugger tab
  • Media:
  • Pause small video elements when returning to inline when they are too small
  • Changed the picture-in-picture control glyph
  • Changed fullscreen and picture-in-picture to not animate when navigating away from the host page
  • Fixed WebAudio convolver channels to throw exceptions for an invalid number of channels
  • Fixed clearing of MSE buffers by switching to MediaTime
  • Fixed an issue where Facebook videos without audio tracks will sometimes cause playback controls to appear
  • Rendering:
  • Fixed rendering an element with a wide gamut PDF
  • Fixed drawing an SVG image into a that is not in the DOM
  • Bug Fixes:
  • Fixed database process crashes when deleting a corrupt SQLite database file
  • Fixed blob content type when retrieving blobs from IndexedDB
  • Prevented a crash when attempting to copy an image

New in Safari 9.1.2 (Jul 18, 2016)

  • SECURITY FIXES:
  • WebKit:
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.
  • WebKit:
  • Impact: Visiting a malicious website may disclose image data from another website
  • Description: A timing issue existed in the processing of SVG. This issue was addressed through improved validation.
  • WebKit:
  • Impact: Visiting a maliciously crafted webpage may lead to a system denial of service
  • Description: A memory consumption issue was addressed through improved memory handling.
  • WebKit:
  • Impact: Visiting a maliciously crafted website may compromise user information on the file system
  • Description: A permissions issue existed in the handling of the location variable. This was addressed though additional ownership checks.
  • WebKit:
  • Impact: Visiting a malicious website may lead to user interface spoofing
  • Description: An origin inheritance issue existed in parsing of about: URLs. This was addressed through improved validation of security origins.
  • WebKit JavaScript Bindings:
  • Impact: Visiting a maliciously crafted website may lead to script execution in the context of a non-HTTP service
  • Description: A cross-protocol cross-site scripting (XPXSS) issue existed in Safari when submitting forms to non-HTTP services compatible with HTTP/0.9. This issue was addressed by disabling scripts and plugins on resources loaded over HTTP/0.9.
  • WebKit Page Loading:
  • Impact: A malicious website may exfiltrate data cross-origin
  • Description: A cross-site scripting issue existed in Safari URL redirection. This issue was addressed through improved URL validation on redirection.
  • WebKit Page Loading:
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.

New in Safari 9.1.2 Technology Preview Release 8 (Jul 7, 2016)

  • JavaScript:
  • Achieved 100% ECMAScript 2015 (ES6) support by adding back Symbol.isConcatSpreadable (r202125)
  • Unified the handling of regular expression character escapes w and W and word assertions b and B (r202490)
  • Implemented isFinite and isNaN in JavaScript for a performance benefit (r202413)
  • Fixed a crash when a finally clause is used inside a for-in loop (r202608)
  • CSS:
  • Updated :default CSS pseudo-class to match checkbox and radio inputs with a checked attribute (r202245)
  • Fixed an issue where the :hover CSS pseudo-class would match after the cursor left the element (r202324)
  • Prevented :in-range and :out-of-range CSS pseudo-classes to not match on inputs that do not have range limitations (r202143)
  • Changed :in-range and :out-of-range CSS pseudo-classes to not match disabled or readonly inputs (r202159)
  • Fixed border rendering for elements with min-width: -webkit-fill-available and zero available width (r202103)
  • Fixed style updates applied by :host() when changing the CSS class name of a shadow-host element (r202227)
  • Web APIs:
  • Added fallback mechanisms for stretching and mirroring radical symbols in MathML (r202161)
  • Used the MathOperator to handle some non-stretchy operators in MathML (r202271)
  • Set the upper limit for the size or number of pieces of stretchy operators in MathML (r202489)
  • Allowed phrasing content to be accepted in elements (r202572)
  • Fixed a bug retrieving Blobs from IndexedDB using cursors in WebKit2 sandboxing (r202414)
  • Changed synchronous event tracking to each event type instead of each event sequence (r202408)
  • Apple Pay:
  • Moved Apple Pay code to the open source repository (r202298, r202309, r202310, r202311, r202312, r202432, r202345, r202346, r202444)
  • Moved WebKit2 Apple Pay code to the open source repository (r202432)
  • Moved the WebKit1 Apple Pay code to the open source repository (r202346)
  • Added a logged error message when passing an invalid API version to ApplePaySession constructor (r202499)
  • Moved the user gesture requirement to the ApplePaySession constructor (r202584)
  • Fixed the Apple Pay total amount error message to trigger for the correct limits (r202582)
  • Added shippingType to the list of valid Apple Pay payment request properties (r202409)
  • Added an exception to Apple Pay when the shipping method has an invalid amount (r202341, r202342)
  • Fixed discounted Apple Pay line items to display positive amounts (r202504)
  • Web Inspector:
  • Changed console.profile to use the new Sampling Profiler (r202234)
  • Fixed an infrequent but persistent crash that could occur when closing Web Inspector (r202492, r202515)
  • Prevented automatic timeline recording when Web Inspector is not visible (r202352, r202353)
  • Delayed the first auto-capture heap snapshot during page reloads until after the page performs its first navigation (r202384)
  • Fixed showing impossible values for underflowed bmalloc sizes in the Memory Timeline (r202394)
  • Uncoupled the Quick Console selection updates from the UI to improve testing (r202566)
  • Fixed selectElement.options entries in console for named indexes beyond the collection length (r202568)
  • Fixed the Snapshot List to show the total size and the total live size (r202253)
  • Improved JavaScript Heap Snapshot clean up handling (r202383)
  • Ensured localStorage is updated when modifying sessionStorage (r202529)
  • Fixed broken text search in resources with (r202498)
  • Media:
  • Fixed picture-in-picture placeholder visibility when the controls attribute is removed (r202509)
  • Fixed the volume slider for web video playback controls for right-to-left content (r202183)
  • Implemented support for “replacement” codec (r202599)
  • Fixed an issue where media controls stop working after exiting picture-in-picture mode (r202333)
  • Fixed media elements to not lose playback controls when muted by a user gesture (r202459)
  • Fixed the playback controls element used when playing multiple items in a page (r202425)
  • Rendering:
  • Fixed the position for composition underlines in right-to-left content (r202250)
  • Fixed elements jumping around when subtitle text changes slightly (r202117)
  • Fixed style invalidation for :active when the activated node has no renderer (r202517)
  • Flipped the behavior for the Forward and Back keyboard shortcuts in right-to-left content (r202129)
  • Fixed the placement of popup menus in right-to-left content (r202112)
  • Corrected the behavior of the :active state of elements when focus changes (r202470)
  • Accessibility:
  • Added support for CSS4 :focus-within pseudo-class (r202358)
  • Exposed anonymous RenderMathMLOperators to the accessibility tree (r202497)
  • Fixed the ARIA role attribute for label elements (r202516)
  • Security:
  • Prevent file scheme access to a resource on a different volume (r202186)
  • Set CORS preflight with a non–200 response to be a preflight failure (r202162)
  • Allowed * to match the originating page’s scheme for Content Security Policy (r202155)
  • Changed security origin inheritance check to ignore case (r202174)
  • Bug Fixes:
  • Fixed parent document scrolling when a focus event is dispatched in an (r202292)
  • Fixed an issue causing Google Maps transit schedule explorer to initially load blank (r202104)
  • Changed HTMLElement and SVGElement to implement GlobalEventHandlers (r202539)
  • Implemented a constructor for TouchEvent (r202178)
  • Fixed double-tap to zoom on Yahoo Finance (r202354)
  • Implemented support for Vary:Cookie validation in private browsing (r202089)
  • Fixed playback controls on Vimeo.com videos (r202455)
  • Improved resource handling when navigating by discarding decoded image that is only “in use” due to page cache not actual pages (r202231)

New in Safari 9.1.2 Technology Preview Release 7 (Jun 22, 2016)

  • JavaScript:
  • Implemented options argument to addEventListener
  • Updated JSON.stringify to correctly transform numeric array indices
  • Improved the performance of Encode operations
  • Addressed issues with Date setters for years outside of 1900-2100
  • Fixed an issue where reusing a function name as a parameter name threw a syntax error
  • Added the error argument for window.onerror event handlers
  • Improved performance for accessing dictionary properties
  • Updated Proxy.ownKeys to match recent changes to the spec
  • Prevented RegExp unicode parsing from reading an extra character before failing
  • Updated SVGs to report their memory cost to the JavaScript garbage collector
  • Improved the sampling profiler to protect itself against certain forms of sampling bias that arise due to the sampling interval being in sync with some other system process
  • Fixed global lexical environment variables scope for functions created using the Function constructor
  • Fixed parsing super when the default parameter is an arrow function
  • Added support for trailing commas in function parameters and arguments
  • CSS:
  • Added the unprefixed version of the pseudo element ::placeholder
  • Fixed a crash when computing the style of a grid with only absolute-positioned children
  • Fixed computing a grid container's height by accounting for the horizontal scrollbar
  • Fixed placing positioned items on the implicit grid
  • Fixed rendering for the text-decoration-style values: dashed and dotted
  • Fixed support for using border-radius and backdrop-filter properties together
  • Fixed clipping for border-radius with different width and height
  • Fixed CSS reflections for elements with WebGL
  • Fixed CSS reflections for elements with a backdrop-filter property
  • Improved the Document's font selection lifetime in preparation for the CSS Font Loading API
  • Improved memory management for CSS value parsing
  • Improved font face rule handling for style change calculations
  • Fixed multiple selector rule behavior for keyframe animations
  • Fixed applying CSS variables correctly for writing-mode properties
  • Added experimental support for spring() based CSS animations
  • Changed the initial value of background-color to transparent per specs
  • Web APIs:
  • Changed CanvasRenderingContext2D.createPattern() and CanvasRenderingContext2D.putImageData() to throw the correct exception type and align with the specification
  • Fixed a number of issues with Web Workers
  • Web Inspector:
  • Added ⌘T keyboard shortcut to open the New Tab tab
  • Added the ability to show and hide columns in data grid tables
  • Fixed an error when trying to delete nodes with children
  • Added a Top Functions view for Call Trees in the JavaScript & Events timeline
  • Added gaps to the overview and category graphs in the Memory timeline where discontinuities exist in the recording
  • Improved the performance of DOM tree views
  • Fixed filtering to apply to new records added to the data grid
  • Improved snapshot comparisons to always compare the later snapshot to the earlier snapshot no matter what order they were selected
  • Improved performance when processing many DOM.attributeModified messages
  • Fixed the 60fps guideline for the Rendering Frames timeline when switching timeline modes
  • Included the exception stack when showing internal errors in Web Inspector
  • Added ⌘P keyboard shortcut for quick open
  • Removed Text → Content subsection from the Visual Styles Sidebar when not necessary
  • Show content that should not be hidden as Shadow Content
  • Fixed elements in the Elements tab losing focus when selected by the up or down key
  • Enabled combining diacritic marks in input fields in Web Inspector Enabled combining diacritic marks in input fields in Web Inspector
  • Media:
  • Prevented double-painting the outline of a replaced video element
  • Properly prevented video.play() for video.src="file" with audio user gesture restrictions in place
  • Prevented showing the caption menu if the video has no selectable text or audio tracks
  • Improved performance of HTMLMediaElement.prototype.canPlayType that was accounting for 250–750ms first loading theverge.com
  • Fixed inline media controls to show PiP and fullscreen buttons
  • Rendering:
  • Fixed a repaint issue with vertical text in an out-of-flow container
  • Show text in a placeholder font while downloading the specified font
  • Fixed rendering an SVG in the correct vertical position when no vertical padding is applied, and in the correct horizontal position when no horizontal padding is applied
  • Fixed blending of inline SVG elements with transparency layers
  • Fixed display of hairline borders on 3x displays
  • Prevented flickering and rendering artifacts when resizing the web view
  • Fixed logic to trigger new layout after changing canvas height immediately after page load
  • Bug Fixes:
  • Fixed an issue where Find on Page would show too many matches
  • Exposed static text if form label text only contains static text
  • Added Origin header for CORS requests on preloaded cross-origin resources
  • Added support for the upgrade-insecure-requests (UIR) directive of Content Security Policy
  • Added proper element focus and caret destination for keyboard users activating a fragment URL
  • Increased disk cache capacity when there is lots of free space
  • Prevented hangs during synchronous XHR requests if a network session doesn't exist
  • Fixed the response for a POST request on a blob resource to return a “network error” instead of HTTP 500 response
  • Restricted HTTP/0.9 responses to default ports and cancelled HTTP/0.9 resource loads if the document was loaded with another HTTP protocol
  • Fixed parsing URLs containing tabs or newlines
  • Fixed cookie validation in private browsing
  • Provided memory cache support for the Vary header

New in Safari 9.1.2 Technology Preview Release 6 (Jun 8, 2016)

  • JavaScript:
  • Added support for trailing commas in function parameters per draft ECMAScript spec
  • Improved RegExp matching when the result array becomes large
  • Made RegExp throw an exception instead of a crash when matching deeply nested subexpressions
  • Made TypedArray.prototype.slice no longer throw an exception if no arguments are provided
  • Improved performance of TypedArray access by 30% in the 64-bit low-level interpreter
  • Fixed a regression where String.prototype.replace would fail after being used many times with different replace values
  • Improved integer to float conversion code generation in the B3 JIT Compiler
  • Fixed arrow functions as default parameter values so they capture this properly
  • CSS:
  • Added support for normal keyword value per draft CSS Box Alignment Module Level 3 spec
  • Updated the parsing of CSS Grid’s fixed-size per the draft spec
  • Made elements with backdrop-filter clip when used with clip-path or mask
  • Made changing border-color and border-width on table cells with border-collapse: collapse repaint properly
  • Fixed overflow: hidden so it always repaints clipped content when overflow changes
  • Web APIs:
  • Started allowing empty strings in the FontFace constructor and parse them as if they are omitted
  • Stopped firing a popstate event with a null state when navigating back to a stateless cached page
  • Started allowing custom drag-and-drop even without placing data in the pasteboard
  • Web Inspector:
  • Made the split console stay closed when using Inspect Element context menu item
  • Fixed a regression where CSS properties modified via JavaScript didn’t update in the DOM tree or Styles sidebar
  • Improved garbage collection time by 2x when recording heap snapshots
  • Made heap snapshot views remove objects that have been garbage collected
  • Corrected how transitively dominated objects in heap snapshots display their retained size
  • Made ShadowChicken properly handle when the entry stack frame is a tail deleted frame
  • Added indicators to show nesting levels for DOM elements in the Elements tab
  • Fixed a regression where WebSQL databases were no longer shown in the Storage tab on first open
  • Improved load time of Web Inspector by profiling with Web Inspector
  • Fixed resuming the debugger after breaking on an exception inside a Promise callback
  • Fixed the main resource not showing up in the Debugger tab sidebar after a reload
  • Media:
  • Reduced flicker and jumpiness when entering and exiting fullscreen presentation mode
  • Bug Fixes:
  • Fixed scrolling on iTunes Connect pages
  • Fixed autocorrection so it is easier to type contractions and email addresses
  • Fixed a crash during font download failure after garbage collection
  • Reverted the change to ignore clicks inside button elements when the mouse moves, due to a regression
  • Fixed a regression that broke Zoom In (⌘+) on pages

New in Safari 9.1.1 (May 16, 2016)

  • Safari
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, and OS X El Capitan v10.11.5
  • Impact: A user may be unable to fully delete browsing history
  • Description: "Clear History and Website Data" did not clear the history. The issue was addressed through improved data deletion.
  • WebKit:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, and OS X El Capitan v10.11.5
  • Impact: Visiting a malicious website may disclose data from another website
  • Description: An insufficient taint tracking issue in the parsing of svg images was addressed through improved taint tracking.
  • WebKit:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, and OS X El Capitan v10.11.5
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.
  • WebKit Canvas:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, and OS X El Capitan v10.11.5
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: Multiple memory corruption issues were addressed through improved memory handling.

New in Safari 9.1.1 Technology Preview Release 4 (May 11, 2016)

  • Networking:
  • Allow non-standard HTTP headers in WebSocket handshakes, which makes the 1Password extension work again
  • Media:
  • Fixed Netflix video playback
  • JavaScript:
  • Disabled Symbol.isConcatSpreadable due to performance concerns; is expected to return in the next release
  • Made super() available to object literals, not just ES6 classes
  • Sped up calling bound functions with no bound arguments by 4x
  • Implemented String.prototype.localeCompare from ECMA-402
  • Optimized JSON.parse for a 1–2.5% improvement in Kraken json-parse-financial
  • Implemented RegExp.prototype.@@replace and use it for String.prototype.replace
  • Implemented spec changes for String.prototype.padStart and String.prototype.padEnd
  • Unified how Math.pow() is optimized across all JIT tiers
  • Made Reflect.toString() be [object Object] not [object Reflect]
  • CSS:
  • Made -webkit-image-set work inside CSS variables
  • Changed transitions to no longer animate to/from auto values
  • Implemented proper handling of animation-delay with a negative delay
  • Started parsing play-state as part of the animation shorthand
  • Made toggling animation-play-state not restart a finished animation
  • Fixed a regression which caused position: absolute pseudo elements to inherit text-decoration
  • Moved CSS Grid behind a runtime switch that is currently enabled by default
  • Started implementation of auto-fill and auto-fit for CSS Grid
  • Fixed computed style of grid-template-columns and grid-template-rows properties
  • Fixed a bug with positioned grid items in vertical writing mode
  • Fixed alignment with CSS Grid content distribution
  • Improved user agent styles for elements
  • Web APIs:
  • Fixed wheel events so they fire with body, html { height: 100% }
  • Marked IndexedDB constructors as hidden on the worker global object until it is supported
  • Made ping attribute for anchor elements only work for http/https URLs
  • Renamed Shadow DOM’s getAssignedNodes to assignedNodes and support flattened option
  • Removed Shadow DOM’s Node.prototype.rootNode because it was not compatible with existing websites
  • Made document.currentScript return null when executing a script inside a shadow tree
  • Fixed clicks sometimes being ignored inside button elements when the mouse moves
  • Web Inspector:
  • Made console a namespace object (like Math and JSON), allowing functions to be called unbound
  • Fixed an issue where scripts would not load due to Esprima.js not being found
  • Started showing dynamically added elements added to a frame as resources
  • Made sourceURL and sourceMappingURL always work when using the Function constructor
  • Restored filtering to the Timelines tab
  • Added column number info to event listener locations
  • Fixed profiles missing from records in JavaScript & Events timeline
  • Fixed selecting a bar in the Frames timeline mode
  • Made sorting by name or location columns work as expected
  • Fixed the line error widget showing up on the wrong resource
  • Clarified Retained Size in heap snapshots by hiding retained size of non-dominated children
  • Made the debugger statements evaluated in the console properly show the source code
  • Made jump to line work correctly the first time in pretty-printed JavaScript
  • Improved scrolling performance in Timelines tab
  • Improved performance of rendering many console messages
  • Changed console.assert and console.trace to allow format specifiers
  • Improved performance of console.assert by 10x when the assertion is true
  • Changed console.time and console.timeEnd to use a default label when none if specified, and warn when attempting to start an already started timer
  • Added CSS autocompletion suggestions for -webkit-user-select
  • Rendering:
  • Made non-accelerated CSS and SVG animations run at 60fps
  • Made padding consistent with other browsers
  • Fixed blur filter escaping an enclosing overflow: hidden
  • Fixed a regression with min-content and box-sizing: border-box that affected Facebook’s messenger.com
  • Accessibility:
  • Made VoiceOver properly speak superscript content
  • Fixed navigation around composed emoji characters and content with multiple whitespace sequences
  • Made aria-label attribute work on elements
  • Made region a landmark and elements have a role of region if there is an author provided accessible name via the aria-label or aria-labelledby attributes
  • Bug Fixes:
  • Corrected how WebKit determines the user’s preferred region from the system language setting.

New in Safari 9.1.1 Technology Preview Release 3 (Apr 27, 2016)

  • JavaScript:
  • Added support for Symbol.isConcatSpreadable per the ES6 spec
  • Made RegExp constructor get the Symbol.match property to decide if an object should be constructed like a RegExp object per the ES6 spec
  • Changed String.match and String.search to use RegExp constructor per the ES6 spec
  • Corrected how function declarations are hoisted per the ES6 spec
  • Improved parsing of ES6 arrow functions
  • Added RegExp.prototype[@@split] and made String.prototype.split use it per the ES6 spec
  • Added RegExp.prototype[@@search]
  • Updated the treatment of invoking methods on RegExp.prototype per the ES6 spec
  • Made more test cases pass with ES6 RegExp unicode flag
  • Added support for caching accesses to arguments.length for a performance speed-up
  • Corrected the behavior of throw() for generators yielding to an inner generator per draft ECMAScript spec
  • CSS:
  • Implemented the functional :host() pseudo class
  • Improved support for SVG cursor images
  • Started using OpenType math fonts by default for MathML
  • Fixed measurement of hanging punctuation
  • Improved hyphenation when the last line in a paragraph only contains one syllable of a word
  • Fixed a layout problem affecting CSS Grid items without a static inline position in RTL languages
  • Fixed positioned items with gaps for CSS Grid
  • Added support for CSS Grid grid-template-columns repeat(auto-fill, …) and repeat(auto-fit, …)
  • Fixed positioned items with content alignment in CSS Grids
  • Started using grid-template-areas to determine the explicit grid
  • Corrected CSS Grid layout by using the margin box for non-auto minimum sizes
  • Web APIs:
  • Added support setting and retrieving Blob values in IndexedDB
  • Corrected MessageEvent.source result once window has been fully created
  • Improved stability when the first child of a shadow root is a comment node
  • Made CSS be a proper constructor on the window object with static functions
  • Exposed the Crypto constructor on the window object
  • Added support for display: contents on elements
  • Fixed FontFace so it will be properly reject the returned promise if Content Security Policy blocks all the URLs
  • Made FontFaceSet handle null correctly
  • Corrected DOMTokenList.contains() so it does not throw an exception
  • Made Selection.deleteFromDocument not delete a character when the selection is a caret per the spec
  • Improved the IndexedDB bindings to better match the spec
  • Made AudioBufferSourceNode.buffer nullable
  • Improved stability handling a wheel event that closes a frame
  • Web Inspector:
  • Made it possible to expand objects in the Instances heap snapshot view to see what it retains
  • Improved performance dramatically in the Timelines tab when recording pages with a lot of rapid activity and for long recordings
  • Improved JavaScript pretty printing performance by using Esprima and by no longer blocking the main thread
  • Improved the profiler’s sampling rate to get closer to a 1ms sample frequency
  • Improved filtering in Open Quickly dialog
  • Made the Open Quickly dialog keep its resource list up to date
  • Stopped trying to match color patterns in JavaScript source code to improve performance of large resources
  • Changed take snapshot navigation button to a camera glyph
  • Corrected source code location links in the JavaScript profile Call Trees view
  • Made XHRs and Web Workers full-text searchable
  • Improved the appearance of DOM nodes in object previews
  • Improved the tab bar rendering when the tabs are small
  • Corrected dock controls disappearing from the toolbar after leaving fullscreen
  • Started remembering the zoom factor as a persistent setting across sessions
  • Corrected sourceMappingURL not being used when sourceURL was also set
  • Started localizing sizes and times by using Number.prototype.toLocaleString
  • Made sourceMappingURL work more reliably across reloads
  • Rendering:
  • Improved the time to display for some pages — allowing a short page header to render immediately before other content populates later
  • Fixed page tile layers disappearing when graphics acceleration is unavailable
  • Made font-size: 0 render as 0 width when text-rendering: optimizeLegibility is used
  • Corrected focus ring drawing at incorrect location on image map with a CSS transform
  • Made negative letter-spacing affect the right edge of the content’s visual overflow
  • Corrected compositing for WebGL based canvases after they changed size
  • Started clearing the rendered icon on when an empty files list is set
  • Improved performance of border-collapse: collapse on tables
  • Improved rendering of select[multiple] to better match other browsers
  • Fixed backdrop filter so it honors visibility: hidden
  • Security:
  • Made nested browsing context created for or respect Content Security Policy’s object-src directive
  • Started ignoring Content Security Policy meta tags if it is not a descendent of per the spec
  • Started ignoring report-only Content Security Policy directives delivered via meta tag per the spec
  • Started ignoring paths in Content Security Policy URL matching after redirects per spec
  • Removed support for X-Frame-Options in per the spec
  • Networking:
  • Stopped speculatively revalidating cached redirects
  • Stopped cacheing responses with Content-Range headers to avoid serving incorrect results
  • Fixed clearing the application cache when removing website data in Privacy preferences
  • Accessibility:
  • Changed the application role description to "web application" to avoid confusion with the top-level system application description
  • Made presentation role be preferred over child and elements in SVG content

New in Safari 9.1.1 Technology Preview Release 2 (Apr 19, 2016)

  • Browser Differences:
  • Changed the CFBundleSignature to allow Apple Events, like those sent from AppleScript, to correctly distinguish between Safari and Safari Technology Preview
  • JavaScript:
  • Added ES6 support for Symbol.isConcatSpreadable
  • Disallowed var assignments in for-in loops according to ES6 specs
  • Improved stability for ES6 classes when invoking a method of the parent class before calling super() in a constructor
  • Allowed undefined or null for Symbol.search and Symbol.match
  • Enabled Array.prototype native functions' species constructors to work with proxies
  • Implemented the proposal for String.prototype.padStart() and String.prototype.padEnd()
  • Implemented ES6 spec for String.prototype.match and RegExp.prototype[@@match]
  • Included a workaround for web compatibility on ES6 TypeErrors when accessing RegExp.prototype flag properties
  • Corrected quantified unicode regular expressions
  • Ensured greedy unicode regular expressions properly backtrack past non-BMP characters
  • CSS:
  • Implemented the allow-end value of the hanging-punctuation CSS property
  • Improved web compatibility by resetting CSS spacing rules on elements
  • Added the new color-gamut CSS media query
  • Updated screen queries to check the capabilities of the current screen instead of the deepest available screen
  • Web APIs:
  • Restricted WebSockets header parsing according to RFC6455 and RFC7230
  • Improved performance of certain draw calls in WebGL with a non-power-of-two texture optimization
  • Disabled the Fetch API until the implementation is ready to be enabled by default
  • Enhanced Shadow DOM support to compute styles for the style attribute of elements
  • Softened pushState and replaceState frequency restrictions
  • Web Inspector:
  • Timelines tab performance and bug fixes
  • Disabled debugger statements while profiling a page to ensure maximum performance accuracy
  • Added the ability to configure timeline instruments to use for recordings
  • Added a paint count indicator in the top left corner of non-opaque layers
  • Added font-variant-numeric to CSS autocompletions
  • Added the console.takeHeapSnapshot method for capturing heap snapshots
  • Changed details sidebar shortcuts to Command-Option-0 and Command-Shift-0
  • Double-quotes and backslashes in strings are now displayed correctly in the console
  • Improved the consistency of CSP directive violation messages reported in the console
  • Accessibility:
  • Corrected new lines in content editable elements to notify accessibility
  • Updated the handling of SVG elements with a presentational role to be the same as other host language elements
  • Limited the numbered list announcement for a list item number to the first line of text in the list item
  • Changed the accessibility role descriptions for JavaScript alerts to "web dialog" and "web alert dialog" to make them more understandable to screen reader users
  • Rendering:
  • Updated backdrop filter to repaint when changed in JavaScript
  • Corrected drawing SVG stroke patterns for objects with empty bounding box elements
  • Media:
  • Improved stability when an audio source is changed while being processed
  • Fixed audio track listings
  • Networking:
  • Improved the reliability of speculative disk cache validation requests with the HTTP Referer header
  • Bug Fixes:
  • Fixed autoscrolling in a drag selection when a window is against the screen edge, including while in full screen mode

New in Safari 9.1.1 Technology Preview (Mar 30, 2016)

  • Browser Differences:
  • Safari Technology Preview can be run side-by-side with Safari and set as the default browser
  • Separate local data stores are used for history, bookmarks, cookies, and cache
  • Browsing history and bookmarks are synced over iCloud when iCloud sync is enabled
  • The Develop menu is enabled by default
  • Receives regular updates through the Updates tab of the Mac App Store
  • Bug reports made on bugreport.apple.com should specify Safari Technology Preview
  • JavaScript Improvements:
  • ECMAScript 6 support including lexical scoping, iterators, generators, arrow functions, default parameter values and many new built-in APIs
  • Better standards compliant IndexedDB support with more stability
  • Included the B3 JavaScript JIT compiler with low-latency, high-throughput that boosts performance
  • Added the ability to use `document.execCommand('copy')` and `document.execCommand('cut')` in response to a user gesture to copy and cut text programmatically
  • HTML Enhancements:
  • The latest implementation of the Shadow DOM specification
  • Added support for Content Security Policy Level 2
  • Web Inspector Changes:
  • Added memory summary and JavaScript allocations timelines
  • Added a fast JavaScript sampling profiler
  • Improved JavaScript profiling timeline view
  • Behavior Changes:
  • Included many web compatibility fixes and bug fixes

New in Safari 9.1 (Mar 22, 2016)

  • PICTURE ELEMENT SUPPORT:
  • You can use the HTML picture element to provide Safari with multiple versions of the image for different browser configurations and viewport sizes. Safari evaluates the picture's image resources in the order in which they are provided. Safari displays the first image resource with media attributes that conform to the browser's user agent and device specifications. Include an img element, like the one shown in Listing 1, as fallback for browsers without picture element support. For more information, see http://www.w3.org/html/wg/drafts/html/master/semantics.html#the-picture-element.
  • WEB INSPECTOR:
  • Safari Web Inspector improvements include:
  • The Timelines tab has a faster response time.
  • The new Watch Expressions section in the Scope Chain sidebar makes debugging even faster.
  • The new Visual Styles sidebar provides visual tools to help you modify webpage styles.
  • HTML pseudo-elements are now visible in the DOM tree allowing for easier styling. The ::before element is highlighted in Figure 1.
  • VIEWPORT CHANGES:
  • When Safari is in split-screen mode, viewport meta tags with the "width=device-width" attribute cause the page to scale down to fit content that overflows the viewport bounds. You can override this behavior by adding "shrink-to-fit=no" to your meta tag, as shown below. The added value will prevent the page from scaling to fit the viewport. When Safari is not in split-screen mode, the content will not scale down.
  • GESTURE EVENTS FOR OS X:
  • iOS gesture events are now supported on Safari for OS X. Use OS X gesture events to detect pinching and rotation on the Magic trackpad. The gestureStart, gestureChange, and gestureEnd events are supported with event.rotation and event.scale properties. For more information on gesture events, see GestureEvent Class Reference.
  • WEBGL RENDERING:
  • Safari now exposes the WEBGL_DEBUG_RENDERER extension for the JavaScript WebGL API. This extension uses the canvas context (canvas.getContext("webgl")) to detect the graphics hardware, as shown below. The UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL properties return string values for the vendor and renderer.
  • IMAGE SMOOTHING QUALITY FOR CANVAS RENDERING:
  • By default, Safari uses an efficient lower-quality scaling algorithm when drawing images into a canvas element. With Safari 9.1, you can opt in to higher-quality scaling by setting the imageSmoothingQuality property to medium or high. See http://html.spec.whatwg.org/multipage/scripting.html#image-smoothing.
  • DISPLAYING DIALOGS:
  • It is now possible to switch tabs, navigate, and close a webpage while displaying a JavaScript dialog.
  • Displaying a JavaScript dialog—alert, confirm, or prompt—no longer activates the calling tab.
  • The dialog shown in response to the beforeunload event no longer displays the string returned by the beforeunload event listener. The dialog now always displays, “Are you sure you want to leave this page?”
  • Content shown by the showModalDialog function is modal for the webpage presenting the content. It is not modal for other tabs or for the Safari browser.
  • CSS ENHANCEMENTS:
  • Safari 9.1 supports custom properties that can be reused with the var() function. For example, the declared value —-company-red: #ff1e1d; can be used as color: var(--company-red);. See http://www.w3.org/TR/css-variables/.
  • Added Support:
  • The round and space values are supported for the border-image-repeat property. See http://www.w3.org/TR/css3-background/#border-image-repeat.
  • The all property keyword is now supported to enable targeting of every available property. See http://www.w3.org/TR/css-cascade-4/#all-shorthand.
  • The revert and unset keywords are supported for CSS properties, including the all property. See http://www.w3.org/TR/css-cascade-4/#default.
  • Font features are accessible through the font-variant-ligatures, font-variant-caps, font-variant-numeric, font-variant-alternates, font-variant-east-asian and font-feature-settings properties, providing advanced typographical settings for OpenType fonts. See http://www.w3.org/TR/css-fonts-3/#font-variant-prop.
  • The will-change property helps optimize Safari performance for changing elements. If the value of will-change creates a CSS stacking context, the target element becomes a CSS stacking context. If the value of will-change triggers accelerated rendering (“compositing”)—for example transform, filter or backdrop-filter—Safari creates a compositing layer for the target element. Creating this layer can consume additional memory and should be used judiciously. See http://www.w3.org/TR/css-will-change/.
  • Unprefixed CSS Filters:
  • Safari supports the filter property without the -webkit- prefix. For more information on CSS filters, see http://www.w3.org/TR/filter-effects/#FilterProperty.
  • SECURITY FIXES:
  • Multiple memory corruption issues were addressed through improved memory handling.
  • An issue existed where the text of a dialog included page-supplied text. This issue was addressed by no longer including that text.
  • An insufficient input validation issue existed in the handling of certain files. This was addressed through additional checks during file expansion.
  • A cookie storage issue existed in the Top Sites page. This issue was addressed through improved state management.
  • An issue existed in the handling of attachment URLs. This issue was addressed through improved URL handling.
  • Multiple memory corruption issues were addressed through improved memory handling.
  • A port redirection issue was addressed through additional port validation.
  • An issue existed in the parsing of geolocation requests. This was addressed through improved validation of the security origin for geolocation requests.
  • A resource exhaustion issue was addressed through improved input validation.
  • A caching issue existed with character encoding. This was addressed through additional request checking.
  • Redirect responses may have allowed a malicious website to display an arbitrary URL and read cached contents of the destination origin. This issue was addressed through improved URL display logic.

New in Safari 9.0.3 (Jan 20, 2016)

  • SECURITY FIXES:
  • WebKit:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, OS X El Capitan v10.11 to v10.11.2
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2016-1723, CVE-2016-1724, CVE-2016-1725, CVE-2016-1726, CVE-2016-1727.
  • WebKit CSS:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, OS X El Capitan v10.11 to v10.11.2
  • Impact: Websites may know if the user has visited a given link
  • Description: A privacy issue existed in the handling of the "a:visited button" CSS selector when evaluating the containing element's height. This was addressed through improved validation.
  • CVE-ID: CVE-2016-1728.

New in Safari 9.0.2 (Dec 8, 2015)

  • SECURITY FIXES:
  • WebKit:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, OS X El Capitan v10.11 and v10.11.1
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2015-7048, CVE-2015-7095, CVE-2015-7096, CVE-2015-7097, CVE-2015-7098, CVE-2015-7099, CVE-2015-7100, CVE-2015-7101, CVE-2015-7102, CVE-2015-7103, CVE-2015-7104.
  • WebKit:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5, OS X El Capitan v10.11 and v10.11.1
  • Impact: Visiting a maliciously crafted website may reveal a user's browsing history
  • Description: An insufficient input validation issue existed in content blocking. This issue was addressed through improved content extension parsing.
  • CVE-ID: CVE-2015-7050

New in Safari 9.0.1 (Oct 21, 2015)

  • THIS SECURITY FIX RELEASE ADDRESSES THE FOLLOWING:
  • Available for: OS X Mavericks v10.9.5, OS X Yosemite v10.10.5 and OS X El Capitan v10.11
  • Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2015-5928, CVE-2015-5929, CVE-2015-5930, CVE-2015-5931, CVE-2015-7002, CVE-2015-7011, CVE-2015-7012, CVE-2015-7013, CVE-2015-7014

New in Safari 9.0 (Sep 30, 2015)

  • Recommended for all OS X Yosemite users and contains improvements to privacy, compatibility, and security
  • Adds controls to mute audio in Safari tabs
  • Adds additional viewing options for Safari Reader
  • Improves website AutoFill compatibility

New in Safari 8.0.8 (Aug 14, 2015)

  • A detailed list of all security issues fixed in Safari 8.0.8, Safari 7.1.8, and Safari 6.2.8 is available at https://support.apple.com/en-us/HT205033.

New in Safari 8.0.7 (Jul 8, 2015)

  • THIS SECURITY FIX ADDRESSES THE FOLLOWING:
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.3
  • Impact: A maliciously crafted website can access the WebSQL databases of other websites
  • Description: An issue existed in the authorization checks for renaming WebSQL tables. This could have allowed a maliciously crafted website to access databases belonging to other websites. The issue was addressed with improved authorization checks.
  • CVE-ID: CVE-2015-3727 (Peter Rutenbar working with HP's Zero Day Initiative)
  • WebKit Page Loading
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.3
  • Impact: Visiting a maliciously crafted website may lead to account account takeover
  • Description: An issue existed where Safari would preserve the Origin request header for cross-origin redirects, allowing malicious websites to circumvent CSRF protections. This issue was addressed through improved handling of redirects.
  • CVE-ID: CVE-2015-3658 (Brad Hill of Facebook)
  • WebKit PDF:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.3
  • Impact: Clicking a maliciously crafted link in a PDF embedded in a webpage may lead to cookie theft or user information leakage
  • Description: An issue existed with PDF-embedded links which could execute JavaScript in a hosting webpage's context. This issue was addressed by restricting the support for JavaScript links.
  • CVE-ID: CVE-2015-3660 (Apple)
  • WebKit Storage:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.3
  • Impact: Visiting a maliciously crafted webpage may lead to an unexpected application termination or arbitrary code execution
  • Description: An insufficient comparison issue existed in SQLite authorizer which allowed invocation of arbitrary SQL functions. This issue was addressed with improved authorization checks.
  • CVE-ID: CVE-2015-3659 (Peter Rutenbar working with HP's Zero Day Initiative)

New in Safari 8.0.6 (May 7, 2015)

  • THIS SECURITY FIX ADDRESSES THE FOLLOWING:
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.3
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit.
  • These issues were addressed through improved memory handling.
  • CVE-ID:
  • CVE-2015-1152 : Apple
  • CVE-2015-1153 : Apple
  • CVE-2015-1154 : Apple
  • WebKit History:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.3
  • Impact: Visiting a maliciously crafted website may compromise user information on the filesystem
  • Description: A state management issue existed in Safari that allowed unprivileged origins to access contents on the filesystem. This issue was addressed through improved state management.
  • CVE-ID:
  • CVE-2015-1155 : Joe Vennix of Rapid7 Inc. working with HP's Zero Day
  • Initiative
  • WebKit Page Loading:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.3
  • Impact: Visiting a malicious website by clicking a link may lead to user interface spoofing
  • Description: An issue existed in the handling of the rel attribute in anchor elements. Target objects could get unauthorized access to link objects. This issue was addressed through improved link type adherence.
  • CVE-ID:
  • CVE-2015-1156 : Zachary Durber of Moodle

New in Safari 8.0.5 (Apr 8, 2015)

  • Safari:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.2
  • Impact: Users may be tracked by malicious websites using client certificates
  • Description: An issue existed in Safari's client certificate matching for SSL authentication. This issue was addressed by improved matching of valid client certificates.
  • CVE-ID: CVE-2015-1129
  • Safari:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.2
  • Impact: Notifications preferences may reveal users' browsing history in private browsing mode
  • Description: Responding to push notification requests in private browsing mode revealed users' browsing history. This issue was addressed by disabling push notification prompts in private browsing mode.
  • CVE-ID: CVE-2015-1128
  • Safari:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.2
  • Impact: Users' browsing history may not be completely purged
  • Description: A state management issue existed in Safari that resulted in users' browsing history not being purged from history.plist. This issue was addressed by improved state management.
  • CVE-ID: CVE-2015-1112
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.2
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2015-1119, CVE-2015-1120, CVE-2015-1121, CVE-2015-1122, CVE-2015-1124
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.2
  • Impact: Users' browsing history in private mode may be indexed
  • Description: A state management issue existed in Safari that inadvertently indexed users' browsing history when in private browsing mode. This issue was addressed by improved state management.
  • CVE-ID: CVE-2015-1127
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, and OS X Yosemite v10.10.2
  • Impact: Visiting a maliciously crafted website may lead to resources of another origin being accessed
  • Description: An issue existed in WebKit's credential handling for FTP URLs. This issue was addressed by improved URL decoding.
  • CVE-ID: CVE-2015-1126

New in Safari 8.0.4 (Mar 18, 2015)

  • ADDRESSES THE FOLLOWING SECURITY FLAWS:
  • WebKit:
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2015-1068, CVE-2015-1069, CVE-2015-1070, CVE-2015-1071, CVE-2015-1072, CVE-2015-1073, CVE-2015-1074, CVE-2015-1075, CVE-2015-1076, CVE-2015-1077, CVE-2015-1078, CVE-2015-1079, CVE-2015-1080, CVE-2015-1081, CVE-2015-1082, CVE-2015-1083
  • WebKit:
  • Impact: Inconsistent user interface may prevent users from discerning a phishing attack
  • Description: A user interface inconsistency existed in Safari that allowed an attacker to misrepresent the URL. This issue was addressed through improved user interface consistency checks.
  • CVE-ID: CVE-2015-1084

New in Safari 8.0.3 (Jan 28, 2015)

  • ADDRESSES THE FOLLOWING SECURITY FLAW:
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, OS X Yosemite v10.10.1
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2014-3192 (cloudfuzzer), CVE-2014-4476 (Apple), CVE-2014-4477 (lokihardt@ASRT working with HP’s Zero Day Initiative), CVE-2014-4479 (Apple)

New in Safari 8.0.1 (Dec 4, 2014)

  • ADDRESSES THE FOLLOWING SECURITY FLAWS:
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, OS X Yosemite v10.10.1
  • Impact: Style sheets are loaded cross-origin which may allow for data exfiltration
  • Description: An SVG loaded in an img element could load a CSS file cross-origin. This issue was addressed through enhanced blocking of external CSS references in SVGs.
  • CVE-ID: CVE-2014-4465 (Rennie deGraaf of iSEC Partners)
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, OS X Yosemite v10.10.1
  • Impact: Visiting a website that frames malicious content may lead to UI spoofing
  • Description: A UI spoofing issue existed in the handling of scrollbar boundaries. This issue was addressed through improved bounds checking.
  • CVE-ID: CVE-2014-1748 (Jordan Milne)
  • WebKit:
  • Available for: OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.5, OS X Yosemite v10.10.1
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: Apple (CVE-2014-4466, CVE-2014-4468, CVE-2014-4469, CVE-2014-4470, CVE-2014-4471, CVE-2014-4472, CVE-2014-4473, CVE-2014-4474, CVE-2014-4475), CVE-2014-4459, CVE-2014-4452

New in Safari 7.1 / 6.2 (Sep 18, 2014)

  • Address the following:
  • Safari:
  • Impact: An attacker with a privileged network position may intercept user credentials
  • Description: Saved passwords were autofilled on http sites, on https sites with broken trust, and in iframes. This issue was addressed by restricting password autofill to the main frame of https sites with valid certificate chains.
  • CVE-ID: CVE-2014-4363 : David Silver, Suman Jana, and Dan Boneh of Stanford University working with Eric Chen and Collin Jackson of Carnegie Mellon University
  • WebKit:
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2013-6663 : Atte Kettunen of OUSPG, CVE-2014-4410 : Eric Seidel of Google, CVE-2014-4411 : Google Chrome Security Team, CVE-2014-4412 : Apple, CVE-2014-4413 : Apple, CVE-2014-4414 : Apple, CVE-2014-4415 : Apple
  • WebKit:
  • Impact: A malicious website may be able to track users even when private browsing is enabled
  • Description: A web application could store HTML 5 application cache data during normal browsing and then read the data during private browsing. This was addressed by disabling access to the application cache when in private browsing mode.
  • CVE-ID: CVE-2014-4409 : Yosuke Hasegawa (NetAgent Co., Led.)

New in Safari 7.0.6 / 6.1.6 (Aug 14, 2014)

  • Addresses the following:
  • WebKit:
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit.
  • These issues were addressed through improved memory handling.
  • CVE-ID: CVE-2014-1384, CVE-2014-1385, CVE-2014-1388, CVE-2014-1389, CVE-2014-1390 (Apple), CVE-2014-1386 (an anonymous researcher), CVE-2014-1387 (Google Chrome Security Team)

New in Safari 7.0.5 / 6.1.5 (Jul 1, 2014)

  • WebKit:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.3
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID
  • CVE-2014-1325 : Apple
  • CVE-2014-1340 : Apple
  • CVE-2014-1362 : Apple, miaubiz
  • CVE-2014-1363 : Apple
  • CVE-2014-1364 : Apple
  • CVE-2014-1365 : Apple, Google Chrome Security Team
  • CVE-2014-1366 : Apple
  • CVE-2014-1367 : Apple
  • CVE-2014-1368 : Wushi of Keen Team (Research Team of Keen Cloud Tech)
  • CVE-2014-1382 : Renata Hodovan of University of Szeged / Samsung Electronics
  • WebKit:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.3
  • Impact: Dragging a URL from a maliciously crafted website to another window could lead to the disclosure of local file content
  • Description: Dragging a URL from a maliciously crafted website to another window could have allowed the malicious site to access a file:// URL. This issue was addressed through improved validation of dragged resources.
  • CVE-ID
  • CVE-2014-1369 : Aaron Sigel of vtty.com
  • WebKit:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.3
  • Impact: A maliciously crafted website may be able to spoof its domain name in the address bar
  • Description: A spoofing issue existed in the handling of URLs. This issue was addressed through improved encoding of URLs.
  • CVE-ID
  • CVE-2014-1345 : Erling Ellingsen of Facebook

New in Safari 7.0.4 / 6.1.4 (May 22, 2014)

  • Addresses the following security issues:
  • WEBKIT:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.3
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID:
  • CVE-2013-2875 : miaubiz
  • CVE-2013-2927 : cloudfuzzer
  • CVE-2014-1323 : banty
  • CVE-2014-1324 : Google Chrome Security Team
  • CVE-2014-1326 : Apple
  • CVE-2014-1327 : Google Chrome Security Team, Apple
  • CVE-2014-1329 : Google Chrome Security Team
  • CVE-2014-1330 : Google Chrome Security Team
  • CVE-2014-1331 : cloudfuzzer
  • CVE-2014-1333 : Google Chrome Security Team
  • CVE-2014-1334 : Apple
  • CVE-2014-1335 : Google Chrome Security Team
  • CVE-2014-1336 : Apple
  • CVE-2014-1337 : Apple
  • CVE-2014-1338 : Google Chrome Security Team
  • CVE-2014-1339 : Atte Kettunen of OUSPG
  • CVE-2014-1341 : Google Chrome Security Team
  • CVE-2014-1342 : Apple
  • CVE-2014-1343 : Google Chrome Security Team
  • CVE-2014-1344 : Ian Beer of Google Project Zero
  • CVE-2014-1731 : an anonymous member of the Blink development
  • community
  • WEBKIT:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.3
  • Impact: A malicious site can send messages to a connected frame or window in a way that might circumvent the receiver's origin check
  • Description: An encoding issue existed in the handling of unicode characters in URLs. A maliciously crafted URL could have led to sending an incorrect postMessage origin. This issue was addressed through improved encoding/decoding.
  • CVE-ID:
  • CVE-2014-1346 : Erling Ellingsen of Facebook

New in Safari 7.0.3 / 6.1.3 (Apr 2, 2014)

  • Fixes an issue that could cause the search and address field to load a webpage or send a search term before the return key is pressed
  • Improves credit card auto-fill with websites
  • Fixes an issue that could block receipt of push notifications from websites
  • Adds a preference to turn off push notification prompts from websites
  • Adds support for webpages with generic top-level domains
  • Strengthens Safari sandboxing
  • Fixes security issues, including several identified in recent security competitions:
  • WebKit:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.2
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID:
  • CVE-2013-2871 : miaubiz
  • CVE-2013-2926 : cloudfuzzer
  • CVE-2013-2928 : Google Chrome Security Team
  • CVE-2013-6625 : cloudfuzzer
  • CVE-2014-1289 : Apple
  • CVE-2014-1290 : ant4g0nist (SegFault) working with HP's Zero Day
  • Initiative, Google Chrome Security Team
  • CVE-2014-1291 : Google Chrome Security Team
  • CVE-2014-1292 : Google Chrome Security Team
  • CVE-2014-1293 : Google Chrome Security Team
  • CVE-2014-1294 : Google Chrome Security Team
  • CVE-2014-1298 : Google Chrome Security Team
  • CVE-2014-1299 : Google Chrome Security Team, Apple, Renata Hodovan of
  • University of Szeged / Samsung Electronics
  • CVE-2014-1300 : Ian Beer of Google Project Zero working with HP's
  • Zero Day Initiative
  • CVE-2014-1301 : Google Chrome Security Team
  • CVE-2014-1302 : Google Chrome Security Team, Apple
  • CVE-2014-1303 : KeenTeam working with HP's Zero Day Initiative
  • CVE-2014-1304 : Apple
  • CVE-2014-1305 : Apple
  • CVE-2014-1307 : Google Chrome Security Team
  • CVE-2014-1308 : Google Chrome Security Team
  • CVE-2014-1309 : cloudfuzzer
  • CVE-2014-1310 : Google Chrome Security Team
  • CVE-2014-1311 : Google Chrome Security Team
  • CVE-2014-1312 : Google Chrome Security Team
  • CVE-2014-1313 : Google Chrome Security Team
  • CVE-2014-1713 : VUPEN working with HP's Zero Day Initiative
  • WEBKIT:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.2
  • Impact: An attacker running arbitary code in the WebProcess may be able to read arbitrary files despite sandbox restrictions
  • Description: A logic issue existed in the handling of IPC messages from the WebProcess. This issue was addressed through additional validation of IPC messages.
  • CVE-ID:
  • CVE-2014-1297 : Ian Beer of Google Project Zero

New in Safari 7.0.2 / 6.1.2 (Feb 26, 2014)

  • Addresses the following security issues:
  • WebKit:
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: Apple (CVE-2014-1268, CVE-2014-1269, CVE-2014-1270), cloudfuzzer (CVE-2013-6635)
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9.1
  • For OS X Mavericks systems, Safari 7.0.2 will be included in OS X Mavericks 10.9.2.
  • For OS X Mountain Lion systems Safari 6.1.2 may be obtained from Mac App Store.
  • For OS X Lion systems Safari 6.1.2 is available via the Apple Software Update application.

New in Safari 7.0.1 / 6.1.1 (Dec 17, 2013)

  • SECURITY FIXES:
  • SAFARI:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9
  • Impact: User credentials may be disclosed to an unexpected site via autofill
  • Description: Safari may have autofilled user names and passwords into a subframe from a different domain than the main frame. This issue was addressed through improved origin tracking.
  • CVE-ID: CVE-2013-5227 - Niklas Malmgren of Klarna AB
  • WEBKIT:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5, OS X Mavericks v10.9
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: Atte Kettunen of OUSPG (CVE-2013-2909), Apple (CVE-2013-5195, CVE-2013-5198, CVE-2013-5199), Google Chrome Security Team (CVE-2013-5196, CVE-2013-5197, CVE-2013-5225), Keen Team (@K33nTeam) working with HP's Zero Day Initiative (CVE-2013-5228).

New in Safari 7.0 / 6.1 (Oct 23, 2013)

  • NEW FEATURES:
  • Shared Links: See links shared by people you follow on Twitter.
  • Sidebar: See your Bookmarks, Reading List, and Shared Links in one convenient place.
  • One-click bookmarking: Just click the (+) button to the left of the Smart Search Field to add a webpage to your Reading List. Click and hold to add it to the Favorites Bar or to your Bookmarks.
  • Safari Power Saver: Increase energy efficiency by playing only the plug-in content you want to see.
  • Third-party data blocking: By default, Safari blocks third-party websites from leaving cookies and other types of data that could be used to track your browsing.
  • Built-in Yandex Search: Leading Russian search engine Yandex is now an option for Russian users.
  • SECURITY FIXES:
  • SAFARI:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A memory corruption issue existed in the handling of XML files. This issue was addressed through additional bounds checking.
  • CVE-ID: CVE-2013-1036: Kai Lu of Fortinet's FortiGuard Labs
  • WEBKIT:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.3
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID: Google Chrome Security Team (CVE-2013-1037, CVE-2013-1038, CVE-2013-1040, CVE-2013-1041, CVE-2013-1042, CVE-2013-1043, CVE-2013-1045, CVE-2013-1046, CVE-2013-5125, CVE-2013-5127), miaubiz (CVE-2013-1047), Cyril Cattiaux (CVE-2013-2842), Apple (CVE-2013-5128, CVE-2013-1044, CVE-2013-5126), own-hero Research working with iDefense VCP (CVE-2013-1039)
  • WEBKIT:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5
  • Impact: Visiting a maliciously crafted website may lead to an information disclosure
  • Description: An information disclosure issue existed in XSSAuditor. This issue was addressed through improved handling of URLs.
  • CVE-ID: CVE-2013-2848: Egor Homakov
  • WEBKIT:
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5
  • Impact: Dragging or pasting a selection may lead to a cross-site scripting attack
  • Description: Dragging or pasting a selection from one site to another may allow scripts contained in the selection to be executed in the context of the new site. This issue is addressed through additional validation of content before a paste or a drag and drop operation.
  • CVE-ID: CVE-2013-5129: Mario Heiderich
  • WEBKIT
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5
  • Impact: Using the Web Inspector disabled Private Browsing
  • Description: Using the Web Inspector disabled Private Browsing without warning. This issue was addressed by improved state management.
  • CVE-ID: CVE-2013-5130: Laszlo Varady of Eotvos Lorand University
  • WEBKIT
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.5
  • Impact: Visiting a maliciously crafted website may lead to a cross-site scripting attack
  • Description: A cross-site scripting issue existed in the handling of URLs. This issue was addressed through improved origin tracking.
  • CVE-ID: CVE-2013-5131: Erling A Ellingsen

New in Safari 6.0.5 (Jun 5, 2013)

  • Safari 6.0.5 is now available and addresses the following:
  • Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • A cross-site scripting issue existed in the handling of iframes. This issue was addressed through improved origin tracking.
  • A cross-site scripting issue existed in the handling of copied and pasted data in HTML documents. This issue was addressed through additional validation of pasted content.
  • XSS Auditor may rewrite URLs to prevent cross-site scripting attacks. This may lead to a malicious alteration of the behavior of a form submission. This issue was addressed through improved validation of URLs.

New in Safari 6.0.4 (Apr 17, 2013)

  • Safari 6.0.4 is now available and addresses the following:
  • CVE-2013-0912 : Nils and Jon from MWR Labs working with HP TippingPoint's Zero Day Initiative
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: An invalid cast issue existed in the handling of SVG files. This issue was addressed through improved type checking.

New in Safari 6.0.3 (Mar 15, 2013)

  • HIGHLIGHTS:
  • Improves scrolling on facebook.com
  • Improves scrolling while zoomed in on a webpage
  • Improves performance on webpages with plug-in content
  • A fix for an issue that could cause the inaccurate appearance of an alert that bookmarks can't be changed
  • A fix for an issue that could cause duplicate bookmarks to appear on an iOS device after editing bookmarks with Safari in OS X
  • A fix for an issue that permitted users to access unfiltered search results when searching from google.com when Parental Controls are enabled
  • A fix for an issue that could prevent Safari from restoring the last position on a webpage a user navigated back to
  • ADDS FIXES FOR THE FOLLOWING SECURITY ISSUES:
  • WEBKIT:
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple memory corruption issues existed in WebKit. These issues were addressed through improved memory handling.
  • CVE-ID:
  • CVE-2012-2824 : miaubiz
  • CVE-2012-2857 : Arthur Gerkis
  • CVE-2013-0948 : Abhishek Arya (Inferno) of the Google Chrome Security Team
  • CVE-2013-0949 : Abhishek Arya (Inferno) of the Google Chrome Security Team
  • CVE-2013-0950 : Abhishek Arya (Inferno) of the Google Chrome Security Team
  • CVE-2013-0951 : Apple
  • CVE-2013-0952 : Abhishek Arya (Inferno) of the Google Chrome Security Team
  • CVE-2013-0953 : Abhishek Arya (Inferno) of the Google Chrome Security Team
  • CVE-2013-0954 : Dominic Cooney of Google and Martin Barbella of the Google Chrome Security Team
  • CVE-2013-0955 : Apple
  • CVE-2013-0956 : Apple Product Security
  • CVE-2013-0958 : Abhishek Arya (Inferno) of the Google Chrome Security Team
  • CVE-2013-0959 : Abhishek Arya (Inferno) of the Google Chrome Security Team
  • CVE-2013-0960 : Apple
  • CVE-2013-0961 : wushi of team509 working with iDefense VCP
  • WEBKIT:
  • Impact: Visiting a maliciously crafted website may lead to a cross-site scripting attack
  • Description: A cross-site scripting issue existed in the handling of frame elements. This issue was addressed through improved origin tracking.
  • CVE-ID:
  • CVE-2012-2889 : Sergey Glazunov
  • WEBKIT:
  • Impact: Copying and pasting content on a malicious website may lead to a cross-site scripting attack
  • Description: A cross-site scripting issue existed in the handling of content pasted from a different origin. This issue was addressed through additional validation of pasted content.
  • CVE-ID:
  • CVE-2013-0962 : Mario Heiderich of Cure53

New in Safari 6.0.2 (Nov 2, 2012)

  • Adds fixes for the following security issues:
  • WebKit CVE-2012-3748 (Joost Pol and Daan Keuper of Certified Secure working with HP TippingPoint's Zero Day Initiative):
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.2
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A time of check to time of use issue existed in the handling of JavaScript arrays. This issue was addressed through additional validation of JavaScript arrays.
  • WebKit CVE-2012-5112 (Pinkie Pie working with Google's Pwnium 2 contest):
  • Available for: OS X Lion v10.7.5, OS X Lion Server v10.7.5, OS X Mountain Lion v10.8.2
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A use after free issue existed in the handling of SVG images. This issue was addressed through improved memory handling.

New in Safari 5.1.7 (May 9, 2012)

  • Improve the browser's responsiveness when the system is low on memory
  • Fix an issue that could prevent webpages from responding after using a pinch to zoom gesture
  • Fix an issue that could affect websites using forms to authenticate users
  • Disable versions of Adobe Flash Player that do not include the latest security updates and provide the option to get the current version from Adobe's website.

New in Safari 5.1.5 (Mar 27, 2012)

  • LION:
  • Safari 5.1.5 contains a fix for an issue that could affect website usability when running Safari in 32-bit mode.
  • SNOW LEOPARD:
  • Safari 5.1.5 contains improvements to usability and stability, including changes that:
  • Fix an issue that could affect website usability when running Safari in 32-bit mode
  • Fix an issue that could affect the stability of Software Update on Mac OS X Server v10.6.8

New in Safari 5.1.4 (Mar 13, 2012)

  • LION:
  • Improve JavaScript performance
  • Improve responsiveness when typing into the search field after changing network configurations or with an intermittent network connection
  • Address an issue that could cause webpages to flash white when switching between Safari windows
  • Address issues that prevented printing U.S. Postal Service shipping labels and embedded PDFs
  • Preserve links in PDFs saved from webpages
  • Fix an issue that could make Flash content appear incomplete after using gesture zooming
  • Fix an issue that could cause the screen to dim while watching HTML5 video
  • Improve stability, compatibility and startup time when using extensions
  • Allow cookies set during regular browsing to be available after using Private Browsing
  • Fix an issue that could cause some data to be left behind after pressing the “Remove All Website Data” button
  • SNOW LEOPARD:
  • Improve responsiveness when typing into the search field after changing network configurations or with an intermittent network connection
  • Address an issue that could cause webpages to flash white when switching between Safari windows
  • Address issues that prevented printing U.S. Postal Service shipping labels and embedded PDFs
  • Preserve links in PDFs saved from webpages
  • Correct the contents of context menus on webpages that are PDFs
  • Fix an issue that could cause the screen to dim while watching HTML5 video
  • Improve stability, compatibility and startup time when using extensions
  • Allow cookies set during regular browsing to be available after using Private Browsing
  • Fix an issue that could cause some data to be left behind after pressing the “Remove All Website Data” button

New in Safari 5.1.2 (Nov 30, 2011)

  • Improve stability
  • Address issues that could cause hangs and excessive memory usage
  • Address issues that could cause webpages to flash white
  • Allow PDFs to be displayed within web content

New in Safari 5.1.1 (Oct 12, 2011)

  • Improve JavaScript performance up to 13% over Safari 5.1
  • Address issues that could cause hangs and excessive memory usage
  • Improve stability when using Find, dragging tabs, and managing extensions
  • Improve stability for netflix.com and other websites that use the Silverlight plug-in
  • Address an issue that could prevent East Asian character input into webpages with Flash content
  • Address an issue that could cause History items to appear incorrectly
  • Improve printing from Safari
  • Address an issue that could prevent the Google Safe Browsing Service from updating

New in Safari 5.1 (Jul 20, 2011)

  • New features:
  • Reading List: Easily add webpages and links to your Reading List to browse when you have time.
  • New Process Architecture: Safari has been re-engineered for improved stability and responsiveness.
  • Resume: In the General pane of Safari preferences, you can now choose to launch Safari with the windows from your last browsing session.
  • Better Privacy: A new Privacy pane in Safari preferences makes it easy to remove data that websites can leave on your system.
  • Other improvements:
  • Private AutoFill: Safari lets you fill out forms quickly while keeping your personal information private.
  • Find Option: When you use Find, you can choose whether you want to search for text that contains or starts with the text that you type in the search field.
  • Drag-and-drop Downloads: You can drag items out of the Downloads window in Safari, so you can easily place downloaded files on the Desktop.
  • Advanced Web Technologies: Safari introduces support for full-screen webpages, media caching with the HTML5 application cache, MathML, Web Open Font Format, CSS3 Auto-hyphenation, CSS3 Vertical Text, CSS3 Text Emphasis, Window.onError, and Formatted XML files.
  • New Extension APIs: Developers can take advantage of new Safari Extension support for popovers, menus, new event classes, and interaction with Reader.

New in Safari 5.0.6 (Jul 20, 2011)

  • Stability improvements for web applications that use WebSocket with certain proxy configurations
  • Improvements to the appearance and layout of text with HTML5 ruby annotations
  • A fix for an issue that could cause elements in frames to appear in the wrong place on pandora.com and other websites

New in Safari 5.0.5 (Apr 15, 2011)

  • WebKit:
  • Available for: Mac OS X v10.5.8, Mac OS X Server v10.5.8, Mac OS X v10.6.5 or later, Mac OS X Server v10.6.5 or later, Windows 7, Vista, XP SP2 or later
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: An integer overflow issue existed in the handling of nodesets. Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution.
  • CVE-ID: CVE-2011-1290 : Vincenzo Iozzo, Willem Pinckaers, and Ralf-Philipp Weinmann working with TippingPoint's Zero Day Initiative
  • WebKit:
  • Available for: Mac OS X v10.5.8, Mac OS X Server v10.5.8, Mac OS X v10.6.5 or later, Mac OS X Server v10.6.5 or later, Windows 7, Vista, XP SP2 or later
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A use after free issue existed in the handling of text nodes. Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution.
  • CVE-ID: CVE-2011-1344 : Vupen Security working with TippingPoint's Zero Day Initiative, and Martin Barbella

New in Safari 5.0.4 (Mar 9, 2011)

  • Improved stability for webpages with multiple instances of plug-in content
  • Improved compatibility with webpages with image reflections and transition effects
  • A fix for an issue that could cause some webpages to print with incorrect layouts
  • A fix for an issue that could cause content to display incorrectly on webpages with plug-ins
  • A fix for an issue that could cause a Screen Saver to appear while video is playing in Safari
  • Improved compatibility with VoiceOver on webpages with text input areas and lists with selectable items
  • Improved stability when using VoiceOver

New in Safari 5.0.3 (Nov 18, 2010)

  • More accurate Top Hit results in the Address Field
  • More accurate results in Top Sites
  • Fixes an issue that could cause content delivered with the Flash 10.1 plug-in to overlap webpage content
  • More reliable pop-up blocking
  • Improved stability when typing into search and text input fields on www.netflix.com andwww.facebook.com
  • Improved stability when using JavaScript-intensive extensions
  • Improved stability when using VoiceOver with Safari

New in Safari 4.1.3 (Nov 18, 2010)

  • More accurate Top Hit results in the Address Field
  • More accurate results in Top Sites
  • Fixes an issue that could cause content delivered with the Flash 10.1 plug-in to overlap webpage content
  • More reliable pop-up blocking
  • Improved stability when typing into search and text input fields on www.netflix.com andwww.facebook.com
  • Improved stability when using VoiceOver with Safari

New in Safari 5.0.2 (Sep 8, 2010)

  • Fixes an issue that could prevent users from submitting web forms
  • Fixes an issue that could cause web content to display incorrectly when viewing a Google Image result with Flash 10.1 installed
  • Establishes an encrypted, authenticated connection to the Safari Extensions Gallery

New in Safari 4.1.2 (Sep 8, 2010)

  • Fixes an issue that could prevent users from submitting web forms

New in Safari 5.0.1 (Jul 28, 2010)

  • More accurate Top Hit results in the Address Field
  • More accurate timing for CSS animations
  • Better stability when using the Safari Reader keyboard shortcut
  • Better stability when scrolling through MobileMe Mail
  • Fixes display of multipage articles from www.rollingstone.com in Safari Reader
  • Fixes an issue that prevented Google Wave and other websites using JavaScript encryption libraries from working correctly on 32-bit systems
  • Fixes an issue that prevented Safari from launching on Leopard systems with network home directories
  • Fixes an issue that could cause borders on YouTube thumbnails to disappear when hovering over the thumbnail image
  • Fixes an issue that could cause Flash content to overlap with other content on www.facebook.com, www.crateandbarrel.com, and other sites when using Flash 10.1
  • Fixes an issue that prevented boarding passes from www.aa.com from printing correctly
  • Fixes an issue that could cause DNS prefetching requests to overburden certain routers
  • Fixes an issue that could cause VoiceOver to misidentify elements of webpages

New in Safari 5.0 (Jun 8, 2010)

  • This update contains new features including:
  • Safari Reader: Click on the new Reader icon to view articles on the web in a single, clutter-free page.
  • Improved Performance: Safari 5 executes JavaScript up to 25% faster than Safari 4. Better page caching and DNS prefetching speed up browsing.
  • Bing Search Option: New Bing search option for Safari's Search Field, in addition to Google and Yahoo!.
  • Improved HTML5 support: Safari supports over a dozen new HTML5 features, including Geolocation, full screen for HTML5 video, closed captions for HTML5 video, new sectioning elements (article, aside, footer, header, hgroup, nav and section), HTML5 AJAX History, EventSource, WebSocket, HTML5 draggable attribute, HTML5 forms validation, and HTML5 Ruby.
  • Safari Developer Tools: A new Timeline Panel in the Web Inspector shows how Safari interacts with a website and identifies areas for optimization. New keyboard shortcuts make it faster to switch between panels.
  • Other improvements include:
  • Smarter Address Field: The Smart Address Field can now match text against the titles of webpages in History and Bookmarks, as well as any part of their URL.
  • Tabs Setting: Automatically open new webpages in tabs instead of in separate windows.
  • Hardware Acceleration for Windows: Use the power of the computer's graphics processor to smoothly display media and effects on PC as well as Mac.
  • Search History with Date: A new date indicator in Full History Search shows when webpages were viewed.
  • Top Sites/History Button: Switch easily between Top Sites and Full History Search with a new button that appears at the top of each view.
  • Private Browsing Icon: A “Private” icon appears in the Smart Address Field when Private Browsing is on. Click on the icon to turn off Private Browsing.
  • DNS Prefetching: Safari looks up the addresses of links on webpages and can load those pages faster.
  • Improved Page Caching: Safari can add additional types of webpages to the cache so they load quickly.
  • XSS Auditor: Safari can filter potentially malicious scripts used in cross-site scripting (XSS) attacks.
  • Improved JavaScript Support: Safari allows web applications that use JavaScript Object Notation (JSON) to run faster and more securely.

New in Safari 4.0.5 (Mar 12, 2010)

  • This update is recommended for all Safari users and includes improvements to performance, stability, and security including:
  • Performance improvements for Top Sites
  • Stability improvements for 3rd-party plug-ins
  • Stability improvements for websites with online forms and Scalable Vector Graphics
  • Fixes an issue that prevented Safari from changing settings on some Linksys routers

New in Safari 4.0.4 (Nov 11, 2009)

  • Improved JavaScript performance
  • Improved Full History Search performance for users with a large number of history items
  • Stability improvements for 3rd-party plug-ins, the search field and Yahoo! Mail

New in Safari 4.0.3 (Aug 12, 2009)

  • Stability improvements for webpages that use the HTML 5 video tag.
  • Stability improvements for 3rd-party plug-ins.
  • Stability improvements for Top Sites.
  • Fixes an issue that prevented some users from logging into iWork.com
  • Fixes an issue that could cause web content to be displayed in greyscale instead of color.

New in Safari 4.0.2 (Jul 8, 2009)

  • Recommended for all Safari users and improves the stability of the Nitro JavaScript engine and includes the latest compatibility and security fixes.

New in Safari 4.0.1 (Jun 18, 2009)

  • This update addresses incompatibilities between Safari 4.0 and certain features in iPhoto '09, including Places and Facebook publishing.

New in Safari 4.0 (Jun 8, 2009)

  • Now, with Safari 4, you can choose your favorite sites from a stunning wall of graphical previews with Top Sites.
  • Flip through websites as easily as you flip through albums in iTunes with Cover Flow. Easily retrieve sites you've seen before with Full History Search.

New in Safari 3.2.3 (May 13, 2009)

  • libxml - Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A heap buffer overflow exists in libxml's handling of long entity names. Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue through improved bounds checking. This issue is addressed in Safari 3.2.3.
  • Safari - Impact: Accessing a maliciously crafted "feed:" URL may lead to arbitrary code execution
  • Description: Multiple input validation issues exist in Safari's handling of "feed:" URLs. Accessing a maliciously crafted "feed:" URL may lead to the execution of arbitrary JavaScript. This update addresses the issues by performing additional validation of "feed:" URLs. These issues do not affect systems prior to Mac OS X v10.5. These issues are addressed in Safari 3.2.3. Credit to Billy Rios of Microsoft Vulnerability Research (MSVR), and Alfredo Melloni for reporting these issues.
  • WebKit - Impact: Visiting a maliciously crafted website may lead to arbitrary code execution
  • Description: A memory corruption issue exists in WebKit's handling of SVGList objects. Visiting a maliciously crafted website may lead to arbitrary code execution. This update addresses the issue through improved bounds checking. This issue is addressed in Safari 3.2.3. Credit to Nils working with TippingPoint's Zero Day Initiative for reporting this issue.

New in Safari 4 Beta (Feb 24, 2009)

  • Top Sites, a display of frequently visited pages in a stunning wall of previews so users can jump to their favorite sites with a single click;
  • Full History Search, where users search through titles, web addresses and the complete text of recently viewed pages to easily return to sites they've seen before;
  • Cover Flow, to make searching web history or bookmarks as fun and easy as paging through album art in iTunes(R);
  • Tabs on Top, for better tabbed browsing with easy drag-and-drop tab management tools and an intuitive button for opening new ones;
  • Smart Address Field, that automatically completes web addresses by displaying an easy-to-read list of suggestions from Top Sites, bookmarks and browsing history;
  • Smart Search Field, where users fine-tune searches with recommendations from Google Suggest or a list of recent searches;
  • Full Page Zoom, for a closer look at any website without degrading the quality of the site's layout and text;
  • Nuilt-in web developer tools to debug, tweak and optimize a website for peak performance and compatibility.

New in Safari 3.2.1 (Nov 25, 2008)

  • This update includes stability improvements and is recommended for all Safari users.

New in Safari 3.2 (Nov 14, 2008)

  • Available for: Windows XP or Vista
  • Impact: Multiple vulnerabilities in zlib 1.2.2
  • Description: Multiple vulnerabilities exist in zlib 1.2.2, the most serious of which may lead to a denial of service. This update addresses the issues by updating to zlib 1.2.3. These issues do not affect Mac OS X systems. Credit to Robbie Joosten of bioinformatics@school, and David Gunnells of the University of Alabama at Birmingham for reporting these issues.
  • CVE-ID: CVE-2008-1767
  • Available for: Windows XP or Vista
  • Impact: Processing an XML document may lead to an unexpected application termination or arbitrary code execution
  • Description: A heap buffer overflow issue exists in the libxslt library. Viewing a maliciously crafted HTML page may lead to an unexpected application termination or arbitrary code execution. Further information on the patch applied is available via http://xmlsoft.org/XSLT/ This issue does not affect Mac OS X systems that have applied Security Update 2008-007. Credit to Anthony de Almeida Lopes of Outpost24 AB, and Chris Evans of the Google Security Team for reporting this issue.
  • CVE-ID: CVE-2008-3623
  • Available for: Windows XP or Vista
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A heap buffer overflow exists in CoreGraphics' handling of color spaces. Viewing a maliciously crafted image may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue through improved bounds checking. Credit: Apple.
  • CVE-ID: CVE-2008-2327
  • Available for: Windows XP or Vista
  • Impact: Viewing a maliciously crafted TIFF image may lead to an unexpected application termination or arbitrary code execution
  • Description: Multiple uninitialized memory access issues exist in libTIFF's handling of LZW-encoded TIFF images. Viewing a maliciously crafted TIFF image may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue through proper memory initialization and additional validation of TIFF images. This issue is addressed in systems running Mac OS X v10.5.5 or later, and in Mac OS X v10.4.11 systems that have applied Security Update 2008-006. Credit: Apple.
  • CVE-ID: CVE-2008-2332
  • Available for: Windows XP or Vista
  • Impact: Viewing a maliciously crafted TIFF image may lead to an unexpected application termination or arbitrary code execution
  • Description: A memory corruption issue exits in ImageIO's handling of TIFF images. Viewing a maliciously crafted TIFF image may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue through improved processing of TIFF images. This issue is addressed in systems running Mac OS X v10.5.5 or later, and in Mac OS X v10.4.11 systems that have applied Security Update 2008-006. Credit to Robert Swiecki of the Google Security Team for reporting this issue.
  • CVE-ID: CVE-2008-3608
  • Available for: Windows XP or Vista
  • Impact: Viewing a large maliciously crafted JPEG image may lead to an unexpected application termination or arbitrary code execution
  • Description: A memory corruption issue exists in ImageIO's handling of embedded ICC profiles in JPEG images. Viewing a large maliciously crafted JPEG image may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue through improved processing of ICC profiles. This issue is addressed in systems running Mac OS X v10.5.5 or later, and in Mac OS X v10.4.11 systems that have applied Security Update 2008-006. Credit: Apple.
  • CVE-ID: CVE-2008-3642
  • Available for: Windows XP or Vista
  • Impact: Viewing a maliciously crafted image may lead to an unexpected application termination or arbitrary code execution
  • Description: A buffer overflow exists in the handling of images with an embedded ICC profile. Opening a maliciously crafted image with an embedded ICC profile may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue by performing additional validation of ICC profiles in images. This issue does not affect Mac OS X systems that have applied Security Update 2008-007. Credit: Apple.
  • CVE-ID: CVE-2008-3644
  • Available for: Mac OS X v10.4.11, Mac OS X v10.5.5, Windows XP or Vista
  • Impact: Sensitive information may be disclosed to a local console user
  • Description: Disabling autocomplete on a form field may not prevent the data in the field from being stored in the browser page cache. This may lead to the disclosure of sensitive information to a local user. This update addresses the issue by properly clearing the form data. Credit to an anonymous researcher for reporting this issue.
  • CVE-ID: CVE-2008-2303
  • Available for: Mac OS X v10.4.11, Mac OS X v10.5.5, Windows XP or Vista
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A signedness issue in Safari's handling of JavaScript array indices may result in an out-of-bounds memory access. Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue by performing additional validation of JavaScript array indices. Credit to SkyLined of Google for reporting this issue.
  • CVE-ID: CVE-2008-2317
  • Available for: Mac OS X v10.4.11, Mac OS X v10.5.5, Windows XP or Vista
  • Impact: Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution
  • Description: A memory corruption issue exists in WebCore's handling of style sheet elements. Visiting a maliciously crafted website may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue through improved garbage collection. Credit to an anonymous researcher working with the TippingPoint Zero Day Initiative for reporting this issue.
  • CVE-ID: CVE-2008-4216
  • Available for: Mac OS X v10.4.11, Mac OS X v10.5.5, Windows XP or Vista
  • Impact: Visiting a maliciously crafted website may lead to the disclosure of sensitive information
  • Description: WebKit's plug-in interface does not block plug-ins from launching local URLs. Visiting a maliciously crafted website may allow a remote attacker to launch local files in Safari, which may lead to the disclosure of sensitive information. This update addresses the issue by restricting the types of URLs that may be launched via the plug-in interface. Credit to Billy Rios of Microsoft, and Nitesh Dhanjani of Ernst & Young for reporting this issue.

New in Safari 3.1.1 (Apr 17, 2008)

  • A timing issue in Safari 3.1 allows a web page to change the contents of the address bar without loading the contents of the corresponding page. This could be used to spoof the contents of a legitimate site, allowing user credentials or other information to be gathered. This issue was addressed in Safari Beta 3.0.2, but reintroduced in Safari 3.1. This update addresses the issue by restoring the address bar contents if a request for a new web page is terminated. This issue does not affect Mac OS X systems. Available for: Windows XP or Vista.
  • A memory corruption issue exists in Safari's file downloading. By enticing a user to download a file with a maliciously crafted name, an attacker may cause an unexpected application termination or arbitrary code execution. This update addresses the issue through improved handling of file downloads. This issue does not affect Mac OS X systems. Available for: Windows XP or Vista.
  • An issue exists in WebKi's handling of URLs containing a colon character in the host name. Opening a maliciously crafted URL may lead to a cross-site scripting attack. This update addresses the issue through improved handling of URLs. Credit to Robert Swiecki of Google Information Security Team and David Bloom for reporting this issue. Available for: Mac OS X v10.4.11, Mac OS X Server v10.4.11, Mac OS X v10.5.2, Mac OS X Server v10.5.2, Windows XP or Vista.
  • A heap buffer overflow exists in WebKit's handling of JavaScript regular expressions. The issue may be triggered via JavaScript when processing regular expressions with large, nested repetition counts. This may lead to an unexpected application termination or arbitrary code execution. This update addresses the issue by performing additional validation of JavaScript regular expressions. Credit to Charlie Miller for reporting these issues. Available for: Mac OS X v10.4.11, Mac OS X Server v10.4.11, Mac OS X v10.5.2, Mac OS X Server v10.5.2, Windows XP or Vista.

New in Safari 3.1 (Mar 18, 2008)

  • Improves JavaScript performance
  • Adds support for CSS 3 web fonts
  • Adds support for CSS transforms and transitions
  • Adds support for HTML 5 and elements
  • Adds support for offline storage for Web applications in SQL databases
  • Adds support for SVG images in IMG elements and CSS images
  • Adds support for SVG advanced text
  • Improves Back/Forward performance
  • Supports signed Java applets
  • Shows Caps Lock icon in password fields
  • Adds support for showModalDialog
  • Localized in 16 languages
  • Adds support for International Domain Names
  • Improves handling of Japanese, Chinese, and Korean text
  • Contextual menu now allows opening a link in a window or tab
  • Improves pop-up blocking to work with plug-ins
  • Increases site compatibility
  • Improves application stability
  • Adds option in Safari preferences to turn on the new Develop menu which contains various web development features
  • Allows access to Web Inspector
  • Allows access to Network Timeline
  • Allows editing CSS in the Web Inspector
  • Allows custom user agent string
  • Improves snippet editor
  • Double clicking on the Tab Bar opens new tab
  • Includes URL metadata when images are dragged or saved from browser
  • Opens Download and Activity window in current Space
  • Supports trackpad gestures for back, forward, and magnify on MacBook Air and compatible MacBook Pro computers
  • Shows Caps Lock icon in password fields