Presto (browser engine)
Template:Short description Template:Infobox software Presto was the browser engine of the Opera web browser from the release of Opera 7 on 28 January 2003, until the release of Opera 15 on 2 July 2013, at which time Opera switched to using the Blink engine that was originally created for Chromium.<ref>Template:Cite web</ref> Presto was also used to power the Opera Mini and Opera Mobile browsers.
Presto is a dynamic engine. Web pages can be re-rendered completely or partially in response to DOM events. Its releases saw a number of bug fixes and optimizations to improve the speed of the ECMAScript (JavaScript) engine. It is proprietary and only available as a part of the Opera browsers.
ECMAScript engines
A succession of ECMAScript engines have been used with Opera. (For the origin of their names, see Cultural notes below.) Pre-Presto versions of Opera used the Linear A engine. Opera versions based on the Core fork of Presto, Opera 7.0 through 9.27, used the Linear B engine.<ref>Template:Cite web</ref> The Futhark engine is used in some versions on the Core 2 fork of Presto, namely Opera 9.5 to Opera 10.10.<ref>Template:Cite web</ref> When released it was the fastest engine around, but in 2008 a new generation of ECMAScript engines from Google (V8), Mozilla (SpiderMonkey), and Apple (JavaScriptCore) took one more step, introducing native code generation. This opened up for potential heavy computations on the client side and Futhark, though still fast and efficient, was unable to keep up.Template:Original research inline
In early 2009, Opera introduced the Carakan engine. It featured register-based bytecode, native code generation, automatic object classification, and overall performance improvements.<ref name="CarakanAnnouncement">Template:Cite web</ref><ref>Template:Cite web</ref> Early access in the Opera 10.50 pre-alpha showed that it is as fast as the fastest competitors, being the winner in 2 out of the 3 most used benchmarks.<ref>Template:Cite web</ref>
History and development
| Presto Version | ECMAScript engine | Browser code name | Opera Browser | Opera Mobile | Other use | New features |
|---|---|---|---|---|---|---|
| pre Presto | unnamed | unnamed | 3.0 | The first version to support JavaScript<ref>Template:Cite web</ref> | ||
| pre Presto | Linear A | Elektra/unnamed<ref>Template:Cite web</ref><ref group="note">Elektra was originally the codename of Opera 4.0, but later came to refer more generally to the layout engine used in versions 3.5 through 6.</ref> | 4.0 | |||
| 1.0 | Linear B | unnamed | 7.0 | a completely new rendering engine, Favicon support<ref>Template:Cite web</ref> | ||
| 8.5 | "Bolton" version: 1st completely free download version (ad-free toolbar) | |||||
| 2.0 | Merlin | 9.0 | Internet Channel<ref>Template:Cite web</ref> | Canvas, Acid2 Test: passed, Rich text editing, XSLT, and XPath | ||
| 2.1 | Futhark | Kestrel | 9.5 | 9.5<ref>Template:Cite web</ref> | Nintendo DSi Browser | SVG Tiny 1.2, SVG as CSS, SVG as <img>, Audio object |
| 2.1.1 | 9.6 | Scope API,<ref>Template:Cite web</ref> SVG as Favicon | ||||
| 2.2 | Peregrine | 9.7<ref>Template:Cite press release</ref> | ||||
| 2.2.15 | 10.0 10.1 |
9.8<ref>Template:Cite press release</ref> | Acid3 test: 100/100, pixel-perfect, Web fonts, CSS Selectors API, RGBA & HSLA opacity, TLS 1.2.,<ref>Template:Cite web</ref> FPS in SVG, SVG fonts in HTML | |||
| 2.3 | Opera Devices SDK 10 | CSS3 : border-image, border-radius (rounded corners), box-shadow, transitions; HTML5: <audio> and <video> elements | ||||
| 2.4 | 10 | CSS2.1: visibility:collapse; CSS3 : transforms; HTML5: <canvas> shadows, Web Database, Web Storage, window.btoa, and window.atob | ||||
| 2.5.24 | Carakan | Evenes | 10.5 | 10.1 | Opera Mini server | CSS3: multiple backgrounds; HTML5: <canvas> Text |
| 2.6.30 | 10.6 | WebM; HTML5: AppCache, Geolocation, Web Workers<ref>Template:Cite web</ref> | ||||
| 2.7.62 | Kjevik | 11.0 | 11.0 | Extensions, WebSocket | ||
| 2.8.131 | Barracuda | 11.1 | 11.1 | Opera Mini server 4.27 | WebP, File API, CSS3 gradients (only for the background and background-image properties): -o-linear-gradient(), -o-repeating-linear-gradient(); Support for <color-stop> added. | |
| 2.9.168 | Swordfish | 11.5 | Session history management, classList (DOMTokenList) | |||
| 2.9.201 | 11.50 for Android | ECMAscript strict mode | ||||
| 2.10.229 | Tunny | 11.6 | 11.6 | HTML5 Parser, full support to CSS Gradients, Typed Arrays, CSS unit "rem" | ||
| 2.10.254 | Wahoo | 12.0 | WebGL and hardware acceleration<ref>Template:Cite web</ref> | |||
| 2.10.289 | 12.0 | |||||
| 2.11.355 | Marlin | 12.1 for Android | SPDY, CSS3 Flexbox<ref>Template:Cite web</ref> | |||
| 2.12.388 | 12.10–12.18 |
Presto-based applications
Web browsers
- Opera
- Opera 7 to 12
- Opera Mobile 9.5 to 12
- Opera Mini (continues to use Presto rendering on an intermediate server on keypad phones and as Extreme mode on Android devices)
- Nintendo
- Nintendo DS Browser (based on Opera)<ref>Template:Cite press release</ref>
- Nintendo DSi Browser (based on Opera)<ref>Template:Cite web</ref>
- Wii Internet Channel Browser (based on Opera)<ref>Template:Cite press release</ref>
- Nokia 770 Browser (based on Opera)
- Sony Mylo COM-1's Browser (based on Opera)<ref>Template:Cite press release</ref>
HTML editors
- Macromedia Dreamweaver MX to Dreamweaver CS3 (CS4/CS5 use WebKit)
- Adobe Creative Suite 2<ref>Template:Cite press releaseTemplate:Dead link</ref> and 3<ref>Template:Cite web</ref>
Source code leak
The source code for version 12.15 was leaked to GitHub on February 11, 2016.<ref>Template:Cite web</ref> It remained unnoticed until January 12, 2017 and was taken down two days later in response to a DMCA request.<ref>Template:Cite web</ref><ref>Template:Cite news</ref> Opera Software has confirmed the authenticity of the source code.<ref>Template:Cite news</ref>
Cultural notes
The ECMAScript engines used with Opera have been named after ancient and traditional writing scripts, including undeciphered Linear A, Ancient Greek Linear B, Runic Futhark, and Javanese Carakan.<ref name="CarakanAnnouncement" />
See also
References
External links
- Opera Developer Community – Presto 2.1 – web standards supported by Opera’s core
- Opera Developer Community
Template:OperaBrowser Template:Web browser engines Template:ECMAScript Template:Web browsers