We just added Opera 40 to our cross-browser testing cloud. Opera Software ASA released version 40 of their browser Chromium/Blink 53. You can already start testing your sites in Opera 40!

Cross-browser testing in Opera 40

Try Opera 40 in Browserling now!

Key new features in Opera 40:

  • Automatic battery saving.

Power saving mode automatically is enabled when your laptop is unplugged. There's also a new power saving setting. You can configure the threshold for when automatic mode should kick in. There's a an estimated remaining battery capacity indicator in the interface so you can keep track of your power.

  • Newsreader with RSS support.

The personal newsreader now has support for RSS. This means you can add any RSS-based feed as well as our selection of sources. Custom RSS can be read in both timeline and stacked view, the same way other news is displayed in the personalized newsreader. The only difference is that the estimated reading time will not be available for those sources.

  • Free, unlimited, no-log browser VPN service.

Opera 40 launches with a new, free, unlimited, no-log browser VPN service. Opera has become the first major browser to release a built-in VPN service. When turned on, the browser VPN creates a secure connection to one of Opera's five server locations around the world. After downloading the browser, enabling VPN is easy. Go to "Settings" (or "Preferences" on Mac), choose "Privacy & Security" and then toggle the free VPN.

  • Stability enhancements and bug fixes.

Improved to allow unicode. Shadow DOM v1 to allow developers to make their own custom HTML elements and ensure styles are encapsulated. This is part of a wider suite of specifications collectively known as "Web Components". Promise-based getUserMedia. The navigator.mediaDevices.getUserMedia() API, which returns a promise, is now supported. Unprefixed CSS filter. The CSS filter property is now supported in its unprefixed form. A demo featuring SpongeBob SquarePants is available. For now, -webkit-filter is still supported as an alias for filter to aid backwards compatibility. The prefixed version may be removed in future. HTTP/0.9, the predecessor to HTTP/1.x, is now deprecated and will be removed in a future release. Its replacement, HTTP/1.0, was standardized 20 years ago, and HTTP 2 is just around the corner, which will mean a faster web. Support for DHE-based TLS ciphers has been removed after being deprecated in Chromium 51 & Opera 38. Servers should upgrade to ECDHE ciphers instead.

  • Video pop-out improvements.

Further improvements have been added to the video pop-out feature. Even more video sites and players are now supported. It's been tweaked so the video pop-out button is less intrusive, and is disabled for short videos. Closing the video is now much simpler - just a single click.

  • Chromecast support.

Chromecast now works in Opera. To use Chromecast with Opera, first download and install the Chrome extension from the Opera catalogue. Then you will be able to install the Google Cast extension from the Chrome web store. Once it's installed, and you have the special device attached to your display and are operating on the same Wi-Fi network, the device should be detected and you can begin streaming. Chromecast works for YouTube videos only for now.

Key new dveloper features in Opera 40:

Promise-based getUserMedia

The navigator.mediaDevices.getUserMedia() API, which returns a promise, is now supported. Also, the unprefixed version of navigator.getUserMedia() (which uses callbacks) is now available.

CSS -webkit-user-select: all

Chromium already supported -webkit-user-select, the prefixed version of user-select, but it didn't recognize every value the spec defines. As of this update, the -webkit-user-select: all is supported. This property/value pair makes it so that if a selection would contain only part of an element, then the selection must contain the entire element including all its descendants. For example, if you apply this on all <p> elements, and you then try to select a single word in a paragraph, the entire paragraph is selected automatically.

Shadow DOM v1

All browser vendors finally agreed on the Shadow DOM spec, called v1. The new Shadow DOM APIs includes: Element.attachShadow, Event.prototype.composed, Event.prototype.composedPath(), HTMLSlotElement, and Slotable.prototype.assignedSlot.

Added sandbox="allow-presentation" to <iframe> tag

The Presentation API defines the new allow-presentation sandboxing flag for <iframe sandbox="..."> which gives web developers control over whether an iframe can start a presentation session. By default, the Presentation API is disabled in sandboxed <iframe>s.

Rasterization & will-change: transform

All content is re-rastered when its transform scale changes, unless will-change: transform is applied to it. In other words, will-change: transform effectively means "please apply the transformation quickly, without taking the additional time for rasterization". This only applies to scaling that happens via JavaScript manipulation, and does not apply to CSS animations.

MediaStreamTrack Constraints API

The following MediaStreamTrack methods are now supported: getCapabilities, getConstraints, getSettings, and applyConstraints. These APIs allow getting, setting, and querying constraints on a MediaStreamTrack. Also MediaTrackConstraints instances now have video and audio properties.

Improved <input pattern="...">

The u flag (which stands for Unicode) is now applied to any regular expressions compiled through the pattern attribute for <input> and <textarea> elements.

Unprefixed CSS filter

The CSS filter property is now supported in its unprefixed form. For now, -webkit-filter is still supported as an alias for filter.

Force flattening when ancestor has opacity

3D-positioned descendants are now flattened by an ancestor that has opacity. Previously that didn't happen if that ancestor also specified transform-style: preserve-3d.

What was deprecated and removed in Opera 40?

  • Synthetic events (i.e. those who are created by JavaScript, and are thus untrusted) are now prevented from executing their default action. click is the only exception for backwards compatibility with legacy content. This change matches the spec and other browsers.
  • The HTML spec was changed so that <label> elements aren't form-associated elements anymore. As a result, support for the form attribute on
  • HTTP/0.9, the predecessor to HTTP/1.x, is now deprecated, and will be removed in a future release. Its replacement, HTTP/1.0, was standardized 20 years ago.
  • Support for DHE-based TLS ciphers has been removed, after being deprecated in Chromium 51 & Opera 38. Servers should upgrade to ECDHE ciphers instead.
  • A long time ago, the File API spec was changed to remove the FileError interface. It has been deprecated since 2013. Any usage of FileError now triggers a warning in the DevTools console.
  • The TextEncoder API no longer accepts an argument that specifies the encoding. Instead, it always uses UTF-8. If an argument is passed, it is ignored. This means that new TextEncoder('utf-16') and new TextEncoder('utf-16be') no longer work.

Happy cross-browser testing in Opera 40!