⬆️ ⬇️

Colorful assembly Opera 12.50



Work on a new stable release does not stop and this week we are pleased to present you the assembly Opera 12.50 with a whole bunch of new colorful features and improvements. As usual, we chose the most interesting ones for developers and we hasten to share.



Context Menu API for Extensions



New APIs for extensions? Of course! This time, it is a useful method for adding items to the context menu (what is called by right-click). This can be useful for any interaction with the page or its contents.



The API offers precise control over the triggering of the context menu, for example, only for links or only within a specific domain. You can also add nested menus and control what happens when you click on a menu item, having access to the link address or text that is currently selected by the user.

')

In general, this API is ideal for developers who always wanted to activate their extensions differently than through a button on the panel. Therefore, try and read the details in the latest API context menu documentation .



Fullscreen API



The full-screen API is a simple set of JavaScript methods (such as element.requestFullscreen() and document.exitFullscreen() ) and new pseudo-classes, like :fullscreen , which allow pages and, even more interesting, even individual elements , like videos or games on Canvas, go full screen.



As the simplest demo, we have put together a simple video player with HTML controls and added new full-screen features to it: HTML5 video - cool controls for video using JavaScript, including support for full-screen API . Please note that in this demo, not only the video itself, but also the HTML controls that we made ourselves, go into full-screen mode.



But as usual, with the new ever-live-HTML5 standard one can never be sure that the specification has not changed since you implemented something. And so it happened: the full-screen API version of February 7, 2012 was introduced in this build, while the standard partially changed and the latest edition dates back to July 2012 .



<ol reversed> from HTML5



A very nice feature from the ever-living-HTML5-standard <ol reversed> added in this build. The specification says that “... The attribute is reversed boolean. Its presence indicates that the list is decreasing (..., 3, 2, 1). In its absence, the list increases (1, 2, 3, ...) "



By the way, if you combine the reversed attribute with the start attribute (which was extremely unfairly forbidden in HTML 4, but completely restored to your rights in HTML5), you can get a list whose items follow from zero and below. If you use non-decimal list markers (for example, Roman numerals), the list numbering will become decimal after reaching one. The specification states:



Numbers less than or equal to zero should always use the decimal system, regardless of the type indicated.


For browsers that do not support the reversed attribute, there is a very interesting and semantically correct polyphile of Luis Lazaris .



SPDY supported



Oh, how fast they are growing ... Only a month ago we released the assembly of Opera Labs with SPDY support , as this feature has already snuck into the mainline and is ready for the final release.



As a nice bonus, this assembly is equipped with a pre-installed extension SPDY-indicator , which is enabled if the site uses this new protocol. This means that you no longer need to catch SPDY signs in the Opera Dragonfly network query panel.



If you previously installed extensions in Opera Next, the extension embedded in this build may not appear automatically. You can reinstall Opera Next with a clean profile or simply download the SPDY indicator from the extensions directory .



Nested @media constructs



As a first step in implementing the CSS 3 Conditional Rules specification, in this build we present support for nested @media constructs. Instead of making long recurring lists of opportunities:



 @media only screen and (orientation: portrait) and (min-width: 480px) { … } @media only screen and (orientation: portrait) and (min-width: 600px) { … } @media only screen and (orientation: portrait) and (min-width: 768px) { … } 




... now you can simply nest @media into each other for cleaner, more convenient and understandable code:



 @media only screen { @media (orientation: portrait) { @media (min-width:480px) { … } @media (min-width: 600px) { … } @media (min-width: 768px) { … } } } 




Image Support with ICC Profiles



In addition to the picture data itself, many formats (JPG, PNG, TIFF and others) allow you to embed color profiles. These ICC profiles tell programs how the original image data should be interpreted with regard to the current color profile, for a more accurate display. Most of the images on the network do not contain color profiles, so browsers display from as is, without any color correction. Nevertheless, enthusiasts and perfectionists from the photo will be happy to know that if there are color profiles in their images, Opera will show them exactly as it was intended by the author.



You can read more about ICC profiles in this beautiful and accessible example: Digital Image Color Spaces , but here is the simplest example:







If Bruce is blue on the wallpaper (but not warm and ruddy on one of them), then your browser does not support ICC profiles.



Both pictures are completely identical in terms of the original image data. They were created using an overly distorted color shift to illustrate the principle described. But the first photo contains an ICC color profile, indicating the necessary correction, while the second photo does not contain this profile. Therefore, in browsers that do not support color profiles, both pictures will be shown without any color correction (with blue distortion), and intelligent browsers will understand and correct the first picture, according to the embedded color profile.

Source: https://habr.com/ru/post/150316/



All Articles