February 7th, 2017
Prerender from address bar
Opera will now prerender pages that are typed into the address bar, before the user hits enter, which can make the page finish loading much sooner.
If you can predict what the user’s likely next navigation will be, you can start a prerender from the current page by using
<link rel=prerender>. This has actually been supported since Opera 15, but this seemed like a good opportunity for a reminder. 🙂 For more information about how to use
prerender and other resource hints, see Resource Hints – What is Preload, Prefetch, and Preconnect? by Brian Jackson.
Classic link selection
Opera now allows users to select link text instead of always dragging the link (like in Opera 12). The user can select by dragging left or right, and start a drag-and-drop by dragging up or down.
Not being able to select text to copy and paste is often frustrating for users. But in some cases it can be justified, like if a link is being used to act as a button, or if text is used only for decoration. To disable text selection in general, CSS
user-select: none can be used.
Scroll anchoring intervention
When some content changes above the viewport (e.g., an image is loaded), what used to happen is that the rest of the content is pushed down. With the scroll anchoring intervention the scroll position is updated to keep the content currently in the viewport stable. This behavior can be disabled for a specific subtree or for the whole page by using CSS
overflow-anchor: none. See this video for a comparison with and without this intervention.
- Opera now supports
position: sticky, a new way to position elements. A
position: stickyelement is relatively-positioned, but becomes
position: fixedafter the user reaches a certain scroll position. This results in smoother scroll without jumps compared to trying to achieve the same thing with
- The new generic font family
system-uiis now supported, which matches the platform’s default UI font.
touch-action: pinch-zoomis now supported.
- Non-whitespace Unicode control characters will now be rendered according to the specification, rather than being ignored.
Referrer-Policy HTTP header allows sites to forward site traffic by URL without leaking the user’s session identifier
or other private information.
ConstantSourceNodeis a new audio source node that produces a constant output mixed with an
- Two Web Audio
ChannelSplitterNodeinterface attributes are now read-only:
channelCount, which is defined by
channelCountMode, which is set to explicit.
PannerNode.rolloffFactornow clamps to the nominal range of a PannerNode’s distance model to describe the volume reduction rate as the source moves away from the listener.
- Support for FLAC is enabled within the FLAC and Ogg containers for the
audioHTML element and
- OPUS can now be used with
decodeAudioData(), expanding the variety of audio codecs supported by the Web Audio API.
- Shadow DOM’s
slotchangeevents bubble, but no longer re-fires, at a
Deprecated and removed features
- Non-script MIME types for external scripts (e.g.,
<script src="foo" type="something/something">) was deprecated (generated a message in the console) in Opera 42 and now in Opera 43 are no longer pre-fetched. This typically results in less wasted fetches.
<script data-src="foo" type="something/something">is recommended instead.
- The Web Audio API no longer includes the deprecated Doppler API, including
RTCConfigurationparameter as well as
RTCPeerConnectionis now available without a webkit prefix, though
reflected-xssdirective has been removed from Content Security Policy 2 since it was solely a wrapper for the
X-XSS-Protectionheader and provided no additional functionality.
- Support for the
MediaStreamTrack.getSources()method has been removed in favor of
- The CSP
referrerdirective is no longer supported in favor of the new
Referrer-Policyheader mentioned above.
- Legacy CBC-mode ECDSA cipher suites ECDHE_ECDSA_WITH_AES_128_CBC_SHA and ECDHE_ECDSA_WITH_AES_256_CBC_SHA have been removed in favor of modern ciphers such as ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.
- ECDSA with both SHA-1 and SHA-512 have been removed to reduce dependencies on SHA-1 and align with TLS 1.3’s new ECDSA handling.
MIDIMessageEvent.receivedTimehas been deprecated in favor of
Event.timeStampnow supports high-resolution monotonic time instead of epoch time.
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.