Yesterday evening Opera 41 update was published. Opera 41 is based on Chromium 54. We worked quick and installed it in our browser cloud. You can now cross-browser test your websites, javascript code and html designs in Opera 41!

Web browser testing in Opera 41

Try Opera 41 in Browserling now!

What's new in Opera 41?

Hardware-accelerated video pop-out

With Opera 41, you get a fully hardware-accelerated video pop-out. The test results show up to 30% less CPU usage after this change.

CSS text-size-adjust

The text-size-adjust property lets web developers control and disable the text autosizing feature which increases font sizes on mobile.

Personalized newsreader improvements

Improvements include: Find source even if you don't know exact RSS URL. UI changes including some little animations as well. History navigation, now you can go back to previous view. Option to preview source before adding, works nicely with history navigation. Show less recommendations. Web feed preview. Onboarding was redesigned and aligned with catalog. Default view for new users is Top 50. Catalog includes recommendations listed in a nice fold-able section (state remembered between sessions).

Unprefixed CSS user-select

You can now use user-select instead of -webkit-user-select in CSS. The user-select property makes it possible to specify which elements in the document can be selected by the user and how.

Node.prototype.getRootNode

Sites can use Node.prototype.getRootNode(options) to obtain the root for a given node.

Web Components: Custom Elements v1

Custom elements form the foundation of web components. The initial version of the API, also known as Custom Elements v0, has been supported since Opera 20 & Chrome 33. With the v0 API, a new custom element was defined using document.registerElement().

Faster startup

The most recently active tab and any pinned tabs will load first, while less important tabs will be loaded with decreased priority. For most users, this will feel like the tabs are opened immediately, without waiting time.

Cache Storage API: CacheQueryOptions

The full set of CacheQueryOptions is now supported, making it easier to find the cached responses you're looking for. The following options are supported: ignoreSearch, ignoreMethod, ignoreVary, cacheName.

CanvasRenderingContext2D.prototype.imageSmoothingQuality

CanvasRenderingContext2D.prototype.imageSmoothingQuality allows developers to balance performance and image quality by adjusting resolution when scaling.

BroadcastChannel API

The BroadcastChannel API allows same-origin scripts to send messages to other browsing contexts. It can be thought of as a simple message bus that allows publish-subscribe semantics between windows, tabs, iframes, web workers, and service workers. It's similar to same-origin version of postMessage() API.

DOM convenience methods on ParentNode & ChildNode

Opera 41 now supports the following convenience methods on ParentNode and ChildNode for working with DOM trees: ParentNode.prototype.prepend(), ParentNode.prototype.append(), ChildNode.prototype.before(), ChildNode.prototype.after(), ChildNode.prototype.replaceWith().

Longer battery time when video conferencing

When using battery saving mode, Opera now detects which video codec can be hardware-accelerated and tries to choose that codec when doing video conferencing via WebRTC (this includes services such as Google Hangouts).

Navigations in unload handlers now blocked

Navigations initiated in an unload handler are now blocked. Instead, any prior navigation will continue. This matches the behavior in Firefox, and matches Edge's behavior more closely than before.

Experimenting with post-quantum crypto for TLS

CECPQ1 is a post-quantum cipher suite: one that is designed to provide confidentiality even against an attacker who possesses a large quantum computer. It is a key-agreement algorithm plugged into TLS that combines X25519 and NewHope, a ring-learning-with-errors primitive. Even if NewHope turns out to be breakable, the X25519 key-agreement will ensure that it provides at least the security of our existing connections.

What was deprecated and removed in Opera 41?

  • Support for the non-standard TouchEvent.prototype.initTouchEvent has been removed, after being deprecated since Opera 36 & Chromium 49. Use the Touch and TouchEvent constructors instead.
  • KeyboardEvent.prototype.keyIdentifier has been removed. Use KeyboardEvent.prototype.key (or its polyfill) instead.
  • URL.createObjectURL and URL.revokeObjectURL are now deprecated in service worker contexts.
  • To more closely match other browser's behavior, window.external.IsSearchProviderInstalled and window.external.AddSearchProvider (originally intended to add search engines programmatically) are now both no-ops. This functionality was never implemented in Safari. In IE10, these methods are (mostly) no-ops: IsSearchProviderInstalled always returns 2, and AddSearchProvider always returns S_OK. Firefox still implements this, but notes that it may be removed at any time.
  • The MediaStream API dropped MediaStream.prototype.ended a long time ago. Its usage has been deprecated since Opera 32 & Chromium 45. As of this release, the ended event is no longer supported.
  • The File API spec once removed the FileError interface. It has been deprecated since 2013. Any usage of FileError triggered a warning in the DevTools console since Opera 40 & Chromium 53. As of this release, FileError is no longer supported.

Issues in Opera 41:

  • After upgrading from O40 where VPN was used it might happen that VPN stops working at some circumstances. (It can be fixed by clearing the third party services data.)

Happy cross-browser testing in Opera 41!