WebKit is the web browser engine used by Safari, Mail, App Store, and many other apps on macOS, iOS, and Linux. Get started contributing code, or reporting bugs.

What's New:

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

prevented child elements from scrolling (r270849)

  • 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
  • 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)