Presto (browser engine)
Developer(s) | Opera Software ASA |
---|---|
Stable release | |
Written in | C++ [2] |
Operating system | Linux (non-free repositories) and Windows |
Type | Application framework, Browser engine |
License | Proprietary |
Website | dev |
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 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.[original research? ]
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 Version | ECMAScript engine | Browser code name | Opera Browser | Opera Mobile | Other use | New features |
---|---|---|---|---|---|---|
pre Presto | none | unnamed | 3.5 | |||
pre Presto | Linear A | Elektra/unnamed[9] [note 1] | 4.0 | |||
1.0 | Linear B | unnamed | 7.0 | a completely new rendering engine, Favicon support[10] | ||
8.5 | "Bolton" version: 1st completely free download version (ad-free toolbar) | |||||
2.0 | Merlin | 9.0 | Internet Channel [11] | Canvas, Acid2 Test: passed, Rich text editing, XSLT, and XPath | ||
2.1 | Futhark | Kestrel | 9.5 | 9.5[12] | Nintendo DSi Browser | SVG Tiny 1.2, SVG as CSS, SVG as <img>, Audio object |
2.1.1 | 9.6 | Scope API,[13] SVG as Favicon | ||||
2.2 | Peregrine | 9.7[14] | ||||
2.2.15 | 10.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.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 [17] | ||||
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 [18] | |||
2.10.289 | 12.0 | |||||
2.11.355 | Marlin | 12.1 for Android | SPDY, CSS3 Flexbox[19] | |||
2.12.388 | 12.10–12.18 |
- ^ 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 ]- 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)[20]
- Nintendo DSi Browser (based on Opera)[21]
- Wii Internet Channel Browser (based on Opera)[22]
- Nokia 770 Browser (based on Opera)
- Sony Mylo COM-1's Browser (based on Opera)[23]
HTML editors
[edit ]- Macromedia Dreamweaver MX to Dreamweaver CS3 (CS4/CS5 use WebKit)
- Adobe Creative Suite 2[24] and 3[25]
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.[6]
See also
[edit ]References
[edit ]- ^ "Dev.Opera — Opera Mini server upgrade". dev.opera.com. Retrieved 2015年12月28日.
- ^ Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Archived from the original on 30 May 2012. Retrieved 4 January 2010.
- ^ Lawson, Bruce (2013年02月12日). "300 million users and move to WebKit". Opera Software . Retrieved 2013年02月13日.
- ^ Sivonen, Henri (2006年11月23日). "Names of Browser Engines" . Retrieved 2007年01月03日.
- ^ Bointon, Marcus (2006年12月19日). "SunSpider Benchmarks: WebKit Rocks". Pet Pixels. Archived from the original on 2011年08月20日. Retrieved 2007年01月03日.
- ^ a b Lindström, Jens (2009年02月05日). "Carakan – By Opera Core Concerns". Opera Software. Archived from the original on 2009年02月06日. Retrieved 2009年02月05日.
- ^ Lindström, Jens (2009年12月22日). "Carakan Revisited – By Opera Core Concerns". Opera Software. Archived from the original on 2009年12月25日. Retrieved 2009年12月26日.
- ^ Fulton, Scott M. III (2009年02月22日). "The once and future king: Test build of Opera crushes Chrome on Windows 7". betanews . Retrieved 2009年02月26日.
- ^ "Opera publishes version history, rewrites history". Archived from the original on 2014年02月21日.
- ^ "Opera 7 for Windows Changelog". Opera Software. Archived from the original on 6 July 2017. Retrieved 28 February 2011.
- ^ "Opera Dragonfly documentation". Opera Software. Archived from the original on 2009年02月25日. Retrieved 2009年02月27日.
- ^ "Reviewer's Guide to Opera Mobile 9.5 Beta". Opera Software. Archived from the original on 2010年02月20日. Retrieved 2009年02月27日.
- ^ Lawson, Bruce (2008年09月10日). "Opera Presto 2.1 – Web standards supported by Opera's core". Opera Software. Archived from the original on 2009年02月25日. Retrieved 2009年02月27日.
- ^ "Opera announces the new Opera Mobile 9.7 at CTIA Wireless 2009 – a server-accelerated full Web experience for smartphones and mobile devices" (Press release). Opera Software. 2009年03月26日. Archived from the original on 2011年10月04日. Retrieved 2009年06月11日.
- ^ "Opera Software grows in Poland: International Web browser company celebrates the Warsaw office opening" (Press release). Opera Software. 2009年06月02日. Archived from the original on 2010年02月27日. Retrieved 2009年06月11日.
- ^ Pettersen, Yngve Nysæter (2009年02月25日). "New in Opera Presto 2.2: TLS 1.2 Support". Opera Software. Archived from the original on 2009年03月04日. Retrieved 2009年02月27日.
- ^ Kleinhout, Huib (1 July 2010). "Opera 10.60 goes final". My Opera . Opera Software. Archived from the original on 2 July 2010. Retrieved 2 July 2010.
- ^ "Introducing Opera 12 Alpha". My Opera . Opera Software. 13 October 2011. Archived from the original on 15 October 2011. Retrieved 28 January 2012.
- ^ "Opera Mobile 12.1: with SPDY, WebSockets, Flexbox, and more". My Opera . Opera Software. 9 October 2012. Archived from the original on 10 October 2012. Retrieved 10 October 2012.
- ^ "Surf in Bed: Nintendo DS Browser hits Japan" (Press release). Opera Software ASA. 2006年07月24日. Archived from the original on 2006年08月14日. Retrieved 2008年11月02日.
- ^ Rahul Srinivas and Jon S. von Tetzchner (2008年10月08日). "Operating Systems are Less Important: Opera". Techtree. Archived from the original on April 15, 2012. Retrieved 2009年02月25日.
- ^ "Play with the Web: Opera browser now available for download on Wii" (Press release). Opera Software ASA. 2006年12月22日. Archived from the original on 2008年05月12日. Retrieved 2008年11月02日.
- ^ "Sony Electronics uses the Opera browser for its new mylo personal communicator" (Press release). Opera Software ASA. 2006年08月23日. Archived from the original on 2008年08月29日. Retrieved 2008年11月02日.
- ^ "Powered by Opera: Opera Integrated with Adobe Creative Suite 2" (Press release). Opera Software ASA. 2005年04月04日. Retrieved 2008年11月02日.[permanent dead link ]
- ^ "Adobe Creative Suite 3 (CS3) uses built-in Opera for rendering engine". 2007年03月28日. Archived from the original on 2008年03月03日. Retrieved 2008年04月20日.
- ^ "Presto Web rendering engine: Opera 12.15". GitHub . 2017年01月12日. Archived from the original on 2017年01月13日.
- ^ "2017-01-12-Presto.md". GitHub . Retrieved 2017年10月12日.
- ^ Cimpanu, Catalin. "Opera Presto Source Code Leaks Online". Bleeping Computer . Retrieved 2017年10月12日.
- ^ "Legacy Opera Presto source code appearance in online sharing sites – Opera Security". Opera Security. 2017年01月18日. Retrieved 2017年10月12日.