What's new in Opera Development snapshots: March 26, 2012
By Mike Taylormiketaylr. Monday, March 26, 2012 12:00:00 PM
HTML5
-
This build introduces initial support for HTML5 Drag and Drop. With DnD, Web pages can natively drag elements, selections and microdata from one page onto another, or drag files from the operating system and drop them onto a Web page. Have a play with this simple demo. Another demo presents a list of fruit that you can drag around—have a look at the code and see how you can break this in iteresting ways, and try to figure out why the words and rows are draggable, but the fruit images aren't.
Currently, we’ve got some bugs and limitations with this initial HTML5 Drag and Drop support, such as issues with dragging to and from external applications. Please give us your feedback and report any DnD-specific issues here.
Previously, Opera did not expose how much of a video was preloaded in the native controls that are associated with a video element. This has now been added. Here is a demonstration of that effect.
<video>will now use a new kind of cache for streaming resources and limit the bandwidth to (approximately) the bandwidth of the video while playing. This is reflected in the buffered attribute.Cache invalidation for
<video>was improved, so live streams should be able to recover from a network error. Previously no new data could be read after a network error.HTML5 defines the default value of the
sizeattribute of an<input>element as 20. Up until this snapshot, it’s been 0. Have a look for yourself at arguably one of the shiniest HTML5 demos of the year.The submit event would fire before HTML5 form validation, allowing invalid or incomplete data to be submitted. For example, clicking Submit with an empty form should not fire
alert()here.
CSS
-
We’ve implemented CSS Animations, with all the properties using the
-o-prefix. Here is an example of an animation that works on all supported browsers.Please do us a favor and update your sites and tools to add the
-o-prefix for CSS animations. Also part of this task was to update our implementation of CSS Transitions. Now you can do transitions on background-position, border-bottom-color, border-color, border-left-color, border-right-color, border-top-color, and text-shadow. We also now support step-start, step-end and steps timing functions for
-o-transition-timing-function. Here is a demo of text-shadow transitioning, and a demo of background-position transitioning.
EcmaScript
We now correctly support the TypedArray contructor of the form
TypedArray(TypedArray array), e.g.,var x = new Uint32Array(uint8Array);.ES5.1 defines special handling for
String.prototype.split(undefined). Previously we aligned with V8, but as the latest JS engines in Firefox and IE are now compliant we’ve fixed this to match the spec.
DOM
The HTML5 structured cloning algorithm has added support for re-assigning ownership of certain objects via
Transferables. We’ve updated our implementation to support this now.Appending a
<foreignObject>element in SVG or modifying its contents via script never resulted in a reflow, therefore the changes never got painted. Fixed now!Not too long ago, support for
window.event,attachEvent, anddetachEventwas necessary for the “Best seen in Internet Explorer” class of sites to work. Thankfully, these days are mostly behind us. As such, we’re hiding our support for these IE-isms. What this means is code likeif (window.event)will return false, but existing code will work if it relies on it.Another IE-ism that we’re removing is
readystatechangeevents on the<script>element. This was causing a handful of sites to break as we supported both this andscript.onload.Previously, in Opera, if the properties of an element changed such that a pseudo-element was no longer generated (Psuedo-elements are generated if a pseudo-element selector matches the element), the pseudo-elements still persisted. This is now fixed.
SVG
- Direct children of the element with
enable-background=newwere rendered into its BackgroundImage buffer twice. They no longer do so.
64-bit and out-of-process plug-ins
- In December 2011 and February this year, we've released 64-bit Labs builds with out-of-process plug-ins. Running plug-ins in a separate process gives Opera a level of protection from plug-in instability, which is one of the most common sources of browser crashes and freezes. This architectural change has now graduated from Labs, and has landed in the desktop Next channel.
Encoding, Unicode, Network, and Graphics (aka Changelog Potpourri)
-
Surrogate pairs no longer work in CSS escape sequences. To understand this, let’s look at 𝌆, a supplementary, non-BMP character. In UTF-16 encoding it consists of two surrogate halves U+D834 and U+DF06. In order to work with this in JS, you’d have to write
\ud834\udf06. CSS, on the other hand, doesn’t care about surrogate pairs socontent: '\d834\df06'should show invalid characters, not the Unicode symbol. In this example, you shouldn’t see 𝌆 after “WAT”, but some invalid characters.Special thanks to Mathias for reporting this to us and writing it up in detail.
Did you know that there was
x-mac-ukrainian? Me neither. Thex-mac-cyrillicmapping is defined in the encoding specification. In the past when Unicode was not yet deployed everywhere, each OS implemented their own version of character sets. Apple defined a Ukrainian set of characters. On the Unicode site, we can find its relation to the cyrillic one.-
Opera has implemented for a while different open formats: video and audio (OGG, WEBM), image (webp). This release adds the association between the Content-Type (HTTP) with filename extension (file system) for these formats. When you want to add some of your own, you can go to Preferences → Advanced → Download.
- video/ogg = .ogv, .ogm
- audio/ogg = .oga, ogg
- video/webm = .webm
- image/webp = .webp
In the first iterations of Web Forms 2, a lot of ideas of XForms were applied. Since then Web Forms 2 have been added (and modified) to HTML5. The initial Web Forms 2 specification had
application/x-www-form+xmlas a form encoding type to enable XForms parity. It is not part of the HTML5 specification anymore, so we dropped support for it.It is better to encode your Web pages in UTF-8, and serve them as such. In HTTP, the HTTP header has priority, then the meta name contained in HTML. Some Web pages have specific encoding. It happens often on the Web that the Web page encoding is different from the one specified in the file and/or the one specified in HTTP headers. It creates issues for users who receive unreadable characters on their screens. So the browsers have to fix the encoding on the fly. We had bug reports about Web sites sending BOM different from the HTTP header. We decided to make the BOM authoritative like webkit and IE, because there are more chances for it to be exact than the HTTP headers.
Opera used to treat “unexpected out of order” code in a gif file as a hard error and abort decoding, while other browsers didn’t. The implementation has been changed so this is consistent. Here is a smiley blowing its nose - in older Opera versions it would not reach the nose-blowing state, but now it does.
So where do you get all these goodies? You could just hang out and wait a little while until your Opera.Next updates itself (Browser Identification will show Presto/2.10.282 in opera:about if you've got the latest).
But I bet you want to grab it while it's hot, so you can grab it from from the Desktop team's blog post.

mubaidr # Monday, March 26, 2012 2:34:00 PM
Mağruf ÇolakoğluZAHEK # Monday, March 26, 2012 2:49:12 PM
Kai OckendorfOckendorf # Monday, March 26, 2012 3:02:16 PM
W7x64 SP1
inDigazzZAnuarSh # Monday, March 26, 2012 3:03:03 PM
Originally posted by Mike Taylor:
In all four browsers (Opera latest, Chrome Dev latest, Nightly latest, IE 9) work in different ways.
Charles SchlossChas4 # Monday, March 26, 2012 4:45:48 PM
Update to the 64bit build, removed the Labs OOPP
Martin KadlecBS-Harou # Monday, March 26, 2012 5:19:39 PM
Charles SchlossChas4 # Monday, March 26, 2012 7:28:56 PM
Originally posted by Ockendorf:
11.62 is not part of the next branch, it is stability work on 11.61
12 is the next and the OOPP/ 64 bit labs build got merged into the 12 snapshot from today
metude # Monday, March 26, 2012 7:33:14 PM
Michael A. Puls IIburnout426 # Tuesday, March 27, 2012 1:24:00 AM
Muneer mha2999 # Tuesday, March 27, 2012 2:53:01 PM
QuHno # Wednesday, March 28, 2012 8:23:41 PM
May be Chris should rework his demo or you should warn the windows users, that there is a a bug in Opera and they should not click on the rock poster link.It totally blocks the UI on several 32bit Opera installs on W7 - the demo works but Opera doesn't react any more on anything.
If Opera was started with memguard, it crashes after some seconds...
edit:
woops, I saw this in the RSS feed text of this blog post, it is already edited out here - sorry.
Constantine Vesnac69 # Thursday, March 29, 2012 6:23:07 PM
@QuHno well, huge branch merges lead to numerous bugs
@BS-Harou Talking about EcmaScript. Any chance for "let" support?
recently i noticed that opera supported destructuring assignment in Opera 8, yet later removed it. Also, if you recall how fast did Opera implemented full ES5 spec - you can be pretty sure that they are waiting for this stuff to become consensus, and then implement. Because costs of implementing protypes that will get superseded by next spec (like Harmony Proxies in FF4+, or linear-gradients in old webkits ) is just unaffordable, if you compare it to gains.
Rafael Luikrafaelluik # Monday, April 2, 2012 6:17:21 AM
Originally posted by miketaylr:
WTF?Do the Web a favor and remove these prefixes right now!
QuHno # Saturday, April 7, 2012 10:48:48 PM
Originally posted by Ockendorf:
Yes. Just install them as USB or in different locations.
@c69: Yes, I know that there can be and sometimes are instabilities and big bugs, I hardly missed any public snapshot since they were first issued in the opera.beta newsgroup and such i would bet against that:
Originally posted by c69:
I believe there are still some new things that need intensive public testing.Ismael M.ismaelmendoza # Sunday, April 15, 2012 4:01:14 AM
Google chrome is stealing your ideas and you stop to create opera 12,
I don't care movil, It shall never be better few cm of movil screen than 17" screens.
google knows it and chrome is growing thanks to your ideas.forget the html5 and opera for movil and give us new function. Opera has to be the best.
Rafael Luikrafaelluik # Sunday, April 15, 2012 4:07:17 AM
Originally posted by ismaelmendoza:
And you forgot about 11.60, .61 and .62.Originally posted by ismaelmendoza:
I don't see any new features in Chrome copied from Opera recently.Ismael M.ismaelmendoza # Sunday, April 15, 2012 9:36:45 PM
Rafael Luikrafaelluik # Friday, April 20, 2012 2:27:22 AM
Athlonite # Saturday, April 21, 2012 4:42:01 PM
11.62 = skydrive borked thinks you want to upload a folder when only uploading a single file
12.x (x86) = skydrive borked thinks you want to upload a folder when only uploading a single file
12.x (x64) = skydrive borked thinks you want to upload a folder when only uploading a single file
Rafael Luikrafaelluik # Sunday, April 22, 2012 1:58:26 AM
Ismael M.ismaelmendoza # Monday, April 23, 2012 10:59:46 PM
Originally posted by rafaelluik:
go and try it, I don't have to tell you, if you don't try it don't answer me things you don't know
Rafael Luikrafaelluik # Tuesday, April 24, 2012 8:55:48 PM