Presto (browser engine)
Developer(s) | Opera SoftwareASA |
---|---|
Stable release | 2.12.423
/ 16 March 2015[1] |
Written in | C++[2] |
Operating system | Linux(non-freerepositories) andWindows |
Type | Application framework,Browser engine |
License | Proprietary |
Website | dev |
Prestowas thebrowser engineof theOpera web browserfrom 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 theBlinkengine that was originally created forChromium.[3]Presto was also used to power theOpera MiniandOpera Mobilebrowsers.
Presto is a dynamic engine.Web pagescan be re-rendered completely or partially in response toDOM events.Its releases saw a number ofbug fixesand optimizations to improve the speed of theECMAScript(JavaScript) engine. It isproprietaryand 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, seeCultural notesbelow.) Pre-Presto versions of Opera used the Linear A engine. Opera versions based on the Coreforkof Presto,Opera7.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 fromGoogle(V8),Mozilla(SpiderMonkey), andApple(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-basedbytecode,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 usedbenchmarks.[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,Faviconsupport[10] | ||
8.5 | "Bolton" version: 1st completely free download version (ad-free toolbar) | |||||
2.0 | Merlin | 9.0 | Internet Channel[11] | Canvas,Acid2Test: passed, Rich text editing, XSLT, and XPath | ||
2.1 | Futhark | Kestrel | 9.5 | 9.5[12] | Nintendo DSi Browser | SVGTiny 1.2, SVG as CSS, SVG as <img>, Audio object |
2.1.1 | 9.6 | Scope API,[13]SVG asFavicon | ||||
2.2 | Peregrine | 9.7[14] | ||||
2.2.15 | 10.0 10.1 |
9.8[15] | Acid3test: 100/100, pixel-perfect, Web fonts, CSS Selectors API,RGBA&HSLAopacity,TLS1.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 Miniserver | 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 thebackgroundandbackground-imageproperties): -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 | ECMAscriptstrict mode | ||||
2.10.229 | Tunny | 11.6 | 11.6 | HTML5Parser, full support toCSS Gradients,Typed Arrays, CSS unit "rem" | ||
2.10.254 | Wahoo | 12.0 | WebGLandhardware 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 |
- ^Elektrawas 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
- Opera7 to 12
- Opera Mobile9.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]
- WiiInternet ChannelBrowser (based on Opera)[22]
- Nokia 770Browser (based on Opera)
- Sony MyloCOM-1's Browser (based on Opera)[23]
HTML editors
[edit]- Macromedia DreamweaverMX to Dreamweaver CS3 (CS4/CS5 useWebKit)
- Adobe Creative Suite2[24]and 3[25]
Source code leak
[edit]The source code for version 12.15 was leaked toGitHubon February 11, 2016.[26]It remained unnoticed until January 12, 2017 and was taken down two days later in response to aDMCArequest.[27][28]Opera Softwarehas 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 undecipheredLinear A,Ancient GreekLinear B,RunicFuthark,andJavanese Carakan.
See also
[edit]References
[edit]- ^"Dev.Opera — Opera Mini server upgrade".dev.opera.com.Retrieved2015-12-28.
- ^Lextrait, Vincent (January 2010)."The Programming Languages Beacon, v10.0".Archived fromthe originalon 30 May 2012.Retrieved4 January2010.
- ^Lawson, Bruce (2013-02-12)."300 million users and move to WebKit".Opera Software.Retrieved2013-02-13.
- ^Sivonen, Henri (2006-11-23)."Names of Browser Engines".Retrieved2007-01-03.
- ^Bointon, Marcus (2006-12-19)."SunSpider Benchmarks: WebKit Rocks".Pet Pixels.Archived fromthe originalon 2011-08-20.Retrieved2007-01-03.
- ^Lindström, Jens (2009-02-05)."Carakan – By Opera Core Concerns".Opera Software.Archived fromthe originalon 2009-02-06.Retrieved2009-02-05.
- ^Lindström, Jens (2009-12-22)."Carakan Revisited – By Opera Core Concerns".Opera Software.Archived fromthe originalon 2009-12-25.Retrieved2009-12-26.
- ^Fulton, Scott M. III (2009-02-22)."The once and future king: Test build of Opera crushes Chrome on Windows 7".betanews.Retrieved2009-02-26.
- ^"Opera publishes version history, rewrites history".Archived fromthe originalon 2014-02-21.
- ^"Opera 7 for Windows Changelog".Opera Software. Archived fromthe originalon 6 July 2017.Retrieved28 February2011.
- ^"Opera Dragonfly documentation".Opera Software.Archived fromthe originalon 2009-02-25.Retrieved2009-02-27.
- ^"Reviewer's Guide to Opera Mobile 9.5 Beta".Opera Software.Archived fromthe originalon 2010-02-20.Retrieved2009-02-27.
- ^Lawson, Bruce (2008-09-10)."Opera Presto 2.1 – Web standards supported by Opera's core".Opera Software.Archived fromthe originalon 2009-02-25.Retrieved2009-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 fromthe originalon 2011-10-04.Retrieved2009-06-11.
- ^"Opera Software grows in Poland: International Web browser company celebrates the Warsaw office opening"(Press release).Opera Software.2009-06-02. Archived fromthe originalon 2010-02-27.Retrieved2009-06-11.
- ^Pettersen, Yngve Nysæter (2009-02-25)."New in Opera Presto 2.2: TLS 1.2 Support".Opera Software.Archived fromthe originalon 2009-03-04.Retrieved2009-02-27.
- ^Kleinhout, Huib (1 July 2010)."Opera 10.60 goes final".My Opera.Opera Software.Archived fromthe originalon 2 July 2010.Retrieved2 July2010.
- ^"Introducing Opera 12 Alpha".My Opera.Opera Software.13 October 2011. Archived fromthe originalon 15 October 2011.Retrieved28 January2012.
- ^"Opera Mobile 12.1: with SPDY, WebSockets, Flexbox, and more".My Opera.Opera Software.9 October 2012. Archived fromthe originalon 10 October 2012.Retrieved10 October2012.
- ^"Surf in Bed: Nintendo DS Browser hits Japan"(Press release).Opera Software ASA.2006-07-24. Archived fromthe originalon 2006-08-14.Retrieved2008-11-02.
- ^Rahul SrinivasandJon S. von Tetzchner(2008-10-08)."Operating Systems are Less Important: Opera".Techtree.Archived fromthe originalon April 15, 2012.Retrieved2009-02-25.
- ^"Play with the Web: Opera browser now available for download on Wii"(Press release).Opera Software ASA.2006-12-22. Archived fromthe originalon 2008-05-12.Retrieved2008-11-02.
- ^"Sony Electronics uses the Opera browser for its new mylo personal communicator"(Press release).Opera Software ASA.2006-08-23. Archived fromthe originalon 2008-08-29.Retrieved2008-11-02.
- ^"Powered by Opera: Opera Integrated with Adobe Creative Suite 2"(Press release).Opera Software ASA.2005-04-04.Retrieved2008-11-02.[permanent dead link]
- ^"Adobe Creative Suite 3 (CS3) uses built-in Opera for rendering engine".2007-03-28. Archived fromthe originalon 2008-03-03.Retrieved2008-04-20.
- ^"Presto Web rendering engine: Opera 12.15".GitHub.2017-01-12. Archived fromthe originalon 2017-01-13.
- ^"2017-01-12-Presto.md".GitHub.Retrieved2017-10-12.
- ^Cimpanu, Catalin."Opera Presto Source Code Leaks Online".Bleeping Computer.Retrieved2017-10-12.
- ^"Legacy Opera Presto source code appearance in online sharing sites – Opera Security".Opera Security.2017-01-18.Retrieved2017-10-12.