Presto (browser engine)

(Redirected from Presto (layout engine))

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.[3] Presto was also used to power the Opera Mini and Opera Mobile browsers.

Presto
Developer(s)Opera Software ASA
Stable release
2.12.423 / 16 March 2015; 9 years ago (2015-03-16)[1]
Written inC++[2]
Operating systemLinux (non-free repositories) and Windows
TypeApplication framework, Browser engine
LicenseProprietary
Websitedev.opera.com

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

edit

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.[4] The Futhark engine is used in some versions on the Core 2 fork of Presto, namely Opera 9.5 to Opera 10.10.[5] 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.

In early 2009, Opera introduced the Carakan engine. It featured register-based bytecode, native code generation, automatic object classification, and overall performance improvements.[6][7] 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.[8]

History and development

edit
Presto VersionECMAScript engineBrowser code nameOpera BrowserOpera MobileOther useNew features
pre Prestononeunnamed3.5
pre PrestoLinear AElektra/unnamed[9][note 1]4.0
1.0Linear Bunnamed7.0a completely new rendering engine, Favicon support[10]
8.5"Bolton" version: 1st completely free download version (ad-free toolbar)
2.0Merlin9.0Internet Channel[11]Canvas, Acid2 Test: passed, Rich text editing, XSLT, and XPath
2.1FutharkKestrel9.59.5[12]Nintendo DSi BrowserSVG Tiny 1.2, SVG as CSS, SVG as <img>, Audio object
2.1.19.6Scope API,[13] SVG as Favicon
2.2Peregrine9.7[14]
2.2.1510.0
10.1
9.8[15]Acid3 test: 100/100, pixel-perfect, Web fonts, CSS Selectors API, RGBA & HSLA opacity, TLS 1.2.,[16] FPS in SVG, SVG fonts in HTML
2.3Opera Devices SDK 10CSS3 : border-image, border-radius (rounded corners), box-shadow, transitions; HTML5: <audio> and <video> elements
2.410CSS2.1: visibility:collapse; CSS3 : transforms; HTML5: <canvas> shadows, Web Database, Web Storage, window.btoa, and window.atob
2.5.24CarakanEvenes10.510.1Opera Mini serverCSS3: multiple backgrounds; HTML5: <canvas> Text
2.6.3010.6WebM; HTML5: AppCache, Geolocation, Web Workers[17]
2.7.62Kjevik11.011.0Extensions, WebSocket
2.8.131Barracuda11.111.1Opera Mini server 4.27WebP, 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.168Swordfish11.5Session history management, classList (DOMTokenList)
2.9.20111.50 for AndroidECMAscript strict mode
2.10.229Tunny11.611.6HTML5 Parser, full support to CSS Gradients, Typed Arrays, CSS unit "rem"
2.10.254Wahoo12.0WebGL and hardware acceleration[18]
2.10.28912.0
2.11.355Marlin12.1 for AndroidSPDY, CSS3 Flexbox[19]
2.12.38812.10–12.18
  1. ^ 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.

Presto-based applications

edit

Web browsers

edit

HTML editors

edit

Source code leak

edit

The source code for version 12.15 was leaked to GitHub on February 11, 2016.[26] It remained unnoticed until January 12, 2017 and was taken down two days later in response to a DMCA request.[27][28] Opera Software has confirmed the authenticity of the source code.[29]

Cultural notes

edit

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.

See also

edit

References

edit
edit