Today Opera 53 was released for all platforms. We immediately installed it on our cross-browser testing cloud and all developers can begin using it. Opera 53 is based on Chromium 66 and it also includes all developer changes specific to Chrome 66.
Try Opera 53 in Browserling!
New Features in Opera 53
- Optimization of a tab's display
All Mac users using Opera had a huge issue with tabs. When you opened many tabs it was really hard to navigate through the many tabs opened - they were not that much separated from each other. Opera 53 fixes this by making the separators more visible and by allocating some space between them in the sake of cutting the tab icons a little. Also clicking on a tab will expand it more.
- Address bar colors
Nothing much to say about this renovation, just a little color here and there and the address bar is better-looking in overall.
New Developer Features in Opera 53
- New ImageBitmap rendering context for
<canvas>
. - CSS Typed Object Model.
- Asynchronous clipboard API.
- AudioWorklet API.
- To maintain compatibility with other implementations, the
add
andaccumulate
keywords will not throw errors. They will soon be supported by Opera. - The
calc()
expression is now supported in media queries. - The
rgb()
andrgba()
functions now allow floating point values. - The
deviceorientation
,deviceorientationabsolute
anddevicemotion
events are now by default restricted to top-level documents and same-origin frames, as if the feature policy for those features was set toself
. - The
Request
object now supports the keepalive flag, which can be set when constructing the object, and which allows a fetch to continue after the tab is closed. - The new
AbortSignal
andAbortController
makes it possible to cancel fetches. - Attempting to read from an invalid or non-existing Blob URL now results in a network error instead of a 404 error.
- The
<textarea>
and<select>
elements now support theautocomplete
attribute. - Toggling a mutable checkbox now triggers a sequence of three events:
click
,input
andchange
, in that order. Previously, theinput
event was not fired. - If a page in fullscreen mode uses
window.focus()
to switch focus to another page, fullscreen mode is exited. - The new
MediaStreamTrack.getCapabilities()
returns aMediaTrackCapabilities
object with details about the browser’s capabilities. - The
Function.prototype.toString()
function now returns the function’s source code exactly as it was written, including white-space and comments. - JSON is now a syntactic subset of ECMAScript, which allows line separator (U+2028) and paragraph separator (U+2029) characters in string literals.
- A
try
/catch
statement can now omit the binding parameter. In other words, if the actual exception is not interesting, the short formtry { ... } catch { ... }
can be used. String.prototype.trimStart()
andString.prototype.trimEnd()
are now supported for trimming leading and trailing white-space characters from strings, complementing the existingString.prototype.trim()
. The non-standardtrimLeft()
/trimRight()
functions remain as aliases for backwards compatibility.Array.prototype.values()
is now supported. It returns an iterator over the values at each index in the array.- The
grid-
prefix has been removed from the CSS gutter propertiesgrid-gap
,grid-row-gap
andgrid-column-gap
, whose names now become justgap
,row-gap
andcolumn-gap
. - The default value is
normal
for all three. The old names remain as aliases for the new names. The propertycolumn-gap
already existed as part of CSS Multi-column Layout. - Elements with a transform property and with the
display
property set totable-row
,table-row-group
,table-header-group
,table-footer-group
,table-cell
ortable-caption
, are now containing blocks for fixed position elements. - The
autoplay
attribute is now only honored when one of the following conditions are met: 1) The media will play muted or has no audio, 2) The user has interacted with the site in the current session, before loading the page with the media, or, 3) If the user has previously shown an interest in media on the site (on desktop). - A service worker can no longer respond to a request whose mode is
same-origin
with a response whose type isCORS
. This is a security measure recently added to the Fetch specification. FetchEvent.clientId
returns an empty string instead ofnull
when it isn’t set, which can be the case for instance during a navigation request.- The
RTCRtpSender
object now supports thedtmf
attribute, replacing theRTCPeerConnection.createDTMFSender()
function, which will be deprecated eventually.
Deprecations and Interoperability Improvements in Opera 53
- The
object-position
andperspective-origin
properties no longer accept three-part values such astop right 20%
. Valid position values must have 1, 2 or 4 parts. This also applies to basic shapes and gradients. ImageCapture.prototype.setOptions()
has been removed following a change in the specification.Document.prototype.createTouch()
andDocument.prototype.createTouchList()
have been removed following changes in the specification.- Automatic dezippering of
AudioParam.prototype.value
changes has been removed following a change in the specification. To smooth the value ofAudioParam
changes, useAudioParam.prototype.setTargetAtTime()
.
Happy cross-browser testing with Opera 53!
Email this blog post to your friends or yourself!
Try Browserling!
Enter a URL to test, choose platform, browser and version, and you'll get a live interactive browser in 5 seconds!