What’s new in Chromium 70 and Opera 57
Opera 57 (based on Chromium 70) for Mac, Windows, Linux is out! To find out what’s new for users, see our Desktop blog post. Here’s what it means for web developers.
Displaying a dialog will cause pages to leave fullscreen
Dialogs (authentication prompt, payment request etc.) require proper context when shown to the user. When the browser is in fullscreen mode - an immersive mode - that context is not available. To help the user get the right context when a dialog is displayed, the browser will now leave fullscreen mode in those cases.
The ontouch*
APIs default to disabled on desktop platforms
The ontouch*
event attributes on Window
, Document
and Element
are now disabled by default on desktop platforms. This is to avoid confusion when feature detecting touch support - use navigator.maxTouchPoints
for touchscreen detection and window.TouchEvent
touch event detection instead. To support both touch and mouse input, consider using the Pointer Events API.
Event listeners for the associated touch events can still be added via EventTarget.prototype.addEventListener
, like:
document.addEventListener("touchstart", ...);
Options dictionary for postMessage
methods
An optional PostMessageOptions
dictionary can now be passed to the postMessage
method on DedicatedWorkerGlobalScope
, Worker
, ServiceWorker
, ServiceWorker
, and Window
.
Thus what was previously written as:
window.postMessage('my message', 'https://origin.example.com');
can now also be written as:
window.postMessage('my message', { targetOrigin: 'https://origin.example.com' });
Media and Real-time Communications
- RTCPeerConnection.prototype.getConfiguration has been added to allow accessing the last configuration set by RTCPeerConnection.prototype.setConfiguration.
- The
Opus
codec is now supported in mp4 (ISO-BMFF) containers with Media Source Extensions (MSE). - The new SourceBuffer.changeType() method allows for improved cross-codec or cross-bytestream transitions within a SourceBuffer. It would for example allow changing the type of media bytes append to a media stream.
Network
Intervention Reports
An “intervention” happens when the user agent (the browser) willfully violates the request of a web application in order to improve performance, security or eliminate behavior that is considered annoying to a user. These interventions can now be reported back to the page author either by using the Report-To
HTTP Response header or the ReportingObserver
API.
TLS 1.3
TLS 1.3 is a new version of the TLS protocol that sports a simpler, less error-prone design which improves both efficiency and security. This is achieved by, among other things, reducing the number of round-trips needed to setup a connection, and remove a number of insecure legacy options.
Layout / CSS
- The
<rp>
element is nowdisplay: none
by default even outside a<ruby>
element. - The behavior of percentage row tracks and gutters in grid containers with indefinite heights has been updated, and now behaves the same as (grid) columns.
Miscellaneous
Symbol.prototype.description
Symbol.prototype.description
provides a more straight-forward way to access the description of a Symbol
rather than the previously more indirect access via Symbol.prototype.toString
.
WebUSB on Dedicated Workers
The WebUSB feature can now be accessed from within a dedicated worker. This for example allows communication with an USB device to be offloaded from the main thread - which can improve performance.
Removed features
AppCache in non-secure contexts
The Application Cache feature, after having been deprecated since Opera 54 (Chromium 67), is no longer exposed in non-secure contexts.
Anonymous getter on HTMLFrameSetElement
It was previously possible to access <frame>
elements by name via their parent <frameset>
. This was a non-standard extension, which has now been removed.
Deprecated features
Custom Elements “V0” and Shadow DOM “V0”
The “V0” versions of the Custom Elements and Shadow DOM APIs has been deprecated, and is expected to be removed in Opera 60 (Chromium 73). Please watch out for deprecation warnings and migrate any usage to the “V1” APIs:
At the time of writing, the latter specification is in the process of being split up and included into the DOM Standard, HTML Standard and CSS Scoping.
To understand what the differences are between “V0” and “V1” of Shadow DOM, see What’s New in Shadow DOM v1 (by examples) by Hayato Ito, for a very thorough list.
HTML Imports
HTML Imports allowed importing HTML documents into other HTML documents. This feature was never widely supported, and is thus being deprecated. Like Custom Elements “V0” and Shadow DOM “V0” above, it’s also expected to be removed in Opera 60 (Chromium 73).
What’s next?
If you’re interested in experimenting with features that are in the pipeline for future versions of Opera, we recommend following our Opera Developer stream.
You can also see features that we and other Chromium/Blink contributors are working on by looking at the Chrome Platform Status page.