Today Opera released a new version of their browser Opera 33. We just installed it to our browser cloud and it's available for cross-browser testing.

Cross browser testing in Opera 33

Try Opera 33 in Browserling now!

Opera 33 Updates and Changes

  • Protocol handler settings.

You can now set which sites handle specific link types with the handlers section of your browser settings.

  • Proprietary audio codec support.

Web Audio API now supports proprietary codecs. Opera also now warns you if a site wants exclusive access to your MIDI devices.

  • Updated support for the latest Chromium/Blink release, version 46.

Opera 33 features now match Chrome 46 features.

  • Turbo 2 compression.

Opera 33 includes Turbo 2 compression, bringing you more site compatibility when speeding up networks and more speed when watching videos online.

  • Discontinued NPAPI support.

NPAPI plugins are no longer supported.

  • MIDI system-exclusive message settings.

Opera 33 now warns you if a site wants exclusive access to your MIDI devices.

Opera 33 Developer Updates and Changes

  • New history.scrollRestoration API.

The new history.scrollRestoration API makes it possible to disable this default scroll restoration behavior with code like this: history.scrollRestoration = 'manual'. This leaves the web developer in full control over any scroll changes that may be required when a user traverses the webapp's history. By default, browsers restore the scroll position when a user traverses history. This behavior works well for document-style web sites but it is often not appropriate for single-page web applications where the page content may be reconstructed (often asynchronously) upon navigation and where the application wants to control the details of visual transition between UI states.

  • CSS.escape(string).

CSS.escape(string) serializes string as a CSS identifier. This enables developers to easily and securely do things like escaping a string for use as part of a selector.

  • WebRTC bufferedamountlow event.

The bufferedamountlow event makes it possible to monitor WebRTC data channel buffers. This allows pages to use WebRTC data channels for high-throughput applications more efficiently and conveniently, by removing the need to use timer-based polling for output buffer management.

  • Trusted events.

The isTrusted read-only property of an Event instance is true when the event was generated by a user action such as mouse click, and false when the event was scripted or invoked via dispatchEvent. This is primarily useful for browser extensions, to determine if an event was dispatched by a script running in the main world or not.

  • CSS intrinsic sizing.

CSS Intrinsic & Extrinsic Sizing Module extends the CSS sizing properties with the following keywords: fill, fit-content, max-content, min-content. These keywords represent content-based "intrinsic" sizes and context-based "extrinsic" sizes, allowing CSS to more easily describe boxes that fit their content or fit into a particular layout context.

  • Performance Timeline API updates.

Performance Timeline APIs (performance.*) were previously only available in window contexts. Now they are available in web worker contexts and service workers contexts as well.

  • new DOMException(message, errorName).

DOMExceptions can now be programmatically created as follows: throw new DOMException('This operation is not allowed', 'AbortError'). The first parameter is a custom error message; the second parameter is a value taken from the table of DOMException error names.

  • HTTP Client Hints.

DPR, Width, and Viewport-Width hints enable proactive content negotiation between client and server, enabling automated delivery of optimized assets - e.g. auto-negotiating image DPR resolution, image size, and other optimized assets based on signals such as the client's viewport width.

  • <link rel=preconnect>.

The Resource Hints standard defines <link rel="preconnect" href="..."> as a hint that the browser should predictively open a connection to the supplied server for resources that will be needed later in the loading process.

  • Cache API updates.

Cache API as available in window contexts, web worker contexts, and service workers contexts is now restricted to secure origins (such as HTTPS) only. The addAll method on Cache instances takes an array of RequestInfo objects, fetches them, and adds the response objects into the Cache object.

  • Proprietary codecs in Web Audio API.

Opera now supports proprietary Web Audio API codecs. For example, it is now possible to decode MP3s, if your system supports it.

  • Service worker updates.

Service worker's matchAll() method on Clients instances now returns the clients in most-recently-focused order, matching the spec.

  • ES6 new.target.

ES6's new.target is an implicit parameter that all functions have. It is to constructor calls as this is to method calls: Inside of a constructor, new.target is a reference to the constructor that was used when calling new. Inside of a normal function, new.target is undefined.

  • <iframe sandbox="allow-popups-to-escape-sandbox">.

The allow-popups-to-escape-sandbox flag for <iframe sandbox="..."> allows a sandboxed document to spawn new windows without forcing the sandboxing flags upon them, hence creating a clean browsing context. For example, a third-party advertisement can be safely sandboxed without forcing the same restrictions upon a landing page.

  • <iframe sandbox="allow-scripts allow-modals">.

The allow-popups-to-escape-sandbox flag for <iframe sandbox="..."> allows a sandboxed document to spawn new windows without forcing the sandboxing flags upon them, hence creating a clean browsing context.

  • ES6 spread operator.

The ES6 spread operator ... turns the elements of an array into the arguments of a function call or into elements of another array.

  • HTTP Public Key Pinning reporting.

HTTP Public Key Pinning, or HPKP, is a standard that allows websites to send an HTTP header instructing the browser to remember (or "pin") parts of its TLS certificate chain. The browser then refuses subsequent connections that don't match the pins that it has previously received.

  • Fetch API updates.

Opera 31 (Chrome 44) added support for Request.prototype.context, which has since been dropped from the spec. To match the spec, support for this feature has been removed in Opera 33 (Chromium 46) after being deprecated in Opera 32 (Chromium 45).

Happy cross-browser testing in Opera 33!