Presto (browser engine)
{{Short description|Defunct browser engine}}
{{Infobox software
| name = Presto
| logo = Presto.svg
| logo size = 64px
| screenshot =
| caption =
| developer = Opera Software ASA
| latest release version = 2.12.423
| latest release date = {{Start date and age|2015|03|16|df=yes}}{{Cite web|title = Dev.Opera — Opera Mini server upgrade|url = https://dev.opera.com/blog/opera-mini-server-upgrade|website = dev.opera.com|access-date = 2015-12-28}}
| latest preview version =
| latest preview date =
| programming language = C++{{cite web |url= http://www.lextrait.com/Vincent/implementations.html |title= The Programming Languages Beacon, v10.0 |first= Vincent |last= Lextrait |date= January 2010 |access-date= 4 January 2010 |archive-url= https://archive.today/20120530/http://www.lextrait.com/Vincent/implementations.html |archive-date= 30 May 2012 |url-status= dead }}
| operating system = Linux (non-free repositories) and Windows
| genre = Application framework, Browser engine
| license = Proprietary
| website = {{URL|dev.opera.com}}
}}
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.{{cite web
|url=https://dev.opera.com/blog/300-million-users-and-move-to-webkit/
|title=300 million users and move to WebKit
|last=Lawson
|first=Bruce
|publisher=Opera Software
|date=2013-02-12
|access-date=2013-02-13}} 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.{{cite web
|url=http://hsivonen.iki.fi/engines/
|title=Names of Browser Engines
|last=Sivonen
|first=Henri
|date=2006-11-23
|access-date=2007-01-03
}} The Futhark engine is used in some versions on the Core 2 fork of Presto, namely Opera 9.5 to Opera 10.10.{{cite web
|url = http://marcus.bointon.com/archives/50-SunSpider-Benchmarks-WebKit-Rocks.html
|title = SunSpider Benchmarks: WebKit Rocks
|last = Bointon
|first = Marcus
|work = Pet Pixels
|date = 2006-12-19
|access-date = 2007-01-03
|url-status = dead
|archive-url = https://web.archive.org/web/20110820160117/http://marcus.bointon.com/archives/50-SunSpider-Benchmarks-WebKit-Rocks.html
|archive-date = 2011-08-20
}} 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 inline|date=November 2024}}
In early 2009, Opera introduced the Carakan engine. It featured register-based bytecode, native code generation, automatic object classification, and overall performance improvements.{{cite web
|url=http://my.opera.com/core/blog/2009/02/04/carakan
|title=Carakan – By Opera Core Concerns
|last=Lindström
|first=Jens
|publisher=Opera Software
|date=2009-02-05
|access-date=2009-02-05
|archive-url=https://web.archive.org/web/20090206133936/http://my.opera.com/core/blog/2009/02/04/carakan|archive-date=2009-02-06}}{{cite web
|url=http://my.opera.com/core/blog/2009/12/22/carakan-revisited
|title=Carakan Revisited – By Opera Core Concerns
|last=Lindström
|first=Jens
|publisher=Opera Software
|date=2009-12-22
|access-date=2009-12-26
|archive-url=https://web.archive.org/web/20091225151658/http://my.opera.com/core/blog/2009/12/22/carakan-revisited|archive-date=2009-12-25}} 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.{{cite web
|url=http://www.betanews.com/article/The-once-and-future-king-Test-build-of-Opera-crushes-Chrome-on-Windows-7/1261519843
|title=The once and future king: Test build of Opera crushes Chrome on Windows 7
|last=Fulton
|first=Scott M. III
|publisher=betanews
|date=2009-02-22
|access-date=2009-02-26
}}
History and development
class="wikitable" style="text-align: center"
!Presto Version !Browser code name !Other use !New features |
pre Presto
|none |unnamed |3.5 | | | |
pre Presto
|Linear A |Elektra/unnamed{{cite web |url=http://my.opera.com/haavard/blog/2009/03/13/opera-publishes-version-history-rewrites-history |title=Opera publishes version history, rewrites history |archive-url=https://web.archive.org/web/20140221035135/http://my.opera.com/haavard/blog/2009/03/13/opera-publishes-version-history-rewrites-history |archive-date=2014-02-21}}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. |4.0 | | | |
rowspan="2" | 1.0
| rowspan="3" | Linear B |unnamed |7.0 | | | style="text-align:left" |a completely new rendering engine, Favicon support{{cite web|url=http://www.opera.com/docs/changelogs/windows/700/|title=Opera 7 for Windows Changelog|publisher=Opera Software|access-date=28 February 2011|archive-url=https://web.archive.org/web/20170706180357/http://www.opera.com/docs/changelogs/windows/700/|archive-date=6 July 2017|url-status=dead}} |
|8.5
| | | style="text-align:left" |"Bolton" version: 1st completely free download version (ad-free toolbar) |
2.0
|Merlin |9.0 | |url=http://www.opera.com/dragonfly/documentation/ |title=Opera Dragonfly documentation |publisher=Opera Software |access-date=2009-02-27 |archive-url=https://web.archive.org/web/20090225125540/http://www.opera.com/dragonfly/documentation/ |archive-date=2009-02-25 |url-status=dead }} | style="text-align:left" |Canvas, Acid2 Test: passed, Rich text editing, XSLT, and XPath |
2.1
| rowspan="6" | Futhark | rowspan="2" | Kestrel |9.5 |9.5{{cite web |url=http://www.opera.com/press/reviews/mobile/#new |title=Reviewer's Guide to Opera Mobile 9.5 Beta |publisher=Opera Software |access-date=2009-02-27 |archive-url=https://web.archive.org/web/20100220130135/http://www.opera.com/press/reviews/mobile/#new |archive-date=2010-02-20 |url-status=dead }} | style="text-align:left" |SVG Tiny 1.2, SVG as CSS, SVG as |
2.1.1
|9.6 | | | style="text-align:left" |Scope API,{{cite web |url=http://dev.opera.com/articles/view/presto-2-1-web-standards-supported-by/ |title=Opera Presto 2.1 – Web standards supported by Opera's core |last=Lawson |first=Bruce |publisher=Opera Software |date=2008-09-10 |access-date=2009-02-27 |archive-date=2009-02-25 |archive-url=https://web.archive.org/web/20090225070650/http://dev.opera.com/articles/view/presto-2-1-web-standards-supported-by/ |url-status=dead }} SVG as Favicon |
2.2
| rowspan="4" | Peregrine | |url=http://www.opera.com/press/releases/2009/03/26/ |title=Opera announces the new Opera Mobile 9.7 at CTIA Wireless 2009 – a server-accelerated full Web experience for smartphones and mobile devices |publisher=Opera Software |date=2009-03-26 |access-date=2009-06-11 |archive-url=https://web.archive.org/web/20111004203114/http://www.opera.com/press/releases/2009/03/26/ |archive-date=2011-10-04 |url-status=dead }} | | |
2.2.15
|10.0 |url=http://www.opera.com/press/releases/2009/06/02/ |title=Opera Software grows in Poland: International Web browser company celebrates the Warsaw office opening |publisher=Opera Software |date=2009-06-02 |access-date=2009-06-11 |archive-url=https://web.archive.org/web/20100227031958/http://www.opera.com/press/releases/2009/06/02/ |archive-date=2010-02-27 |url-status=dead }} | | style="text-align:left" |Acid3 test: 100/100, pixel-perfect, Web fonts, CSS Selectors API, RGBA & HSLA opacity, TLS 1.2.,{{cite web |url=http://my.opera.com/core/blog/2009/02/25/new-in-opera-presto-2-2-tls-1-2-support |title=New in Opera Presto 2.2: TLS 1.2 Support |last=Pettersen |first=Yngve Nysæter |publisher=Opera Software |date=2009-02-25 |access-date=2009-02-27 |archive-url=https://web.archive.org/web/20090304164942/http://my.opera.com/core/blog/2009/02/25/new-in-opera-presto-2-2-tls-1-2-support|archive-date=2009-03-04}} FPS in SVG, SVG fonts in HTML |
2.3
| | |Opera Devices SDK 10 | style="text-align:left" |CSS3 : border-image, border-radius (rounded corners), box-shadow, transitions; HTML5: |
2.4
| |10 | | style="text-align:left" |CSS2.1: visibility:collapse; CSS3 : transforms; HTML5: |
2.5.24
| rowspan="11" | Carakan | rowspan="2" | Evenes |10.5 |10.1 |Opera Mini server | style="text-align:left" |CSS3: multiple backgrounds; HTML5: |
2.6.30
|10.6 | | | style="text-align:left" |WebM; HTML5: AppCache, Geolocation, Web Workers{{cite web|last=Kleinhout|first=Huib|title=Opera 10.60 goes final|url=http://my.opera.com/desktopteam/blog/2010/07/01/opera-10-60-goes-final|work=My Opera|publisher=Opera Software|access-date=2 July 2010|date=1 July 2010|archive-url=https://web.archive.org/web/20100702152315/http://my.opera.com/desktopteam/blog/2010/07/01/opera-10-60-goes-final|archive-date=2 July 2010}} |
2.7.62
| Kjevik |11.0 |11.0 | | style="text-align:left" |Extensions, WebSocket |
2.8.131
| Barracuda | 11.1 | 11.1 | Opera Mini server 4.27 | style="text-align:left" |WebP, [http://www.w3.org/TR/FileAPI/ File API], CSS3 gradients (only for the background and background-image properties): -o-linear-gradient(), -o-repeating-linear-gradient(); Support for [http://dev.w3.org/csswg/css3-images/#color-stop-syntax |
2.9.168
| Swordfish | 11.5 | | | style="text-align:left" |Session history management, classList (DOMTokenList) |
2.9.201
| | | 11.50 for Android | | style="text-align:left" |ECMAscript strict mode |
2.10.229
| Tunny | 11.6 | 11.6 | | style="text-align:left" |HTML5 Parser, full support to CSS Gradients, Typed Arrays, CSS unit "rem" |
2.10.254
| rowspan="2" | Wahoo | | 12.0 | | rowspan="2" style="text-align:left" |WebGL and hardware acceleration{{cite web|title=Introducing Opera 12 Alpha|url=http://my.opera.com/desktopteam/blog/2011/10/13/introducing-opera-12-alpha|work=My Opera|publisher=Opera Software|access-date=28 January 2012|date=13 October 2011|archive-url=https://web.archive.org/web/20111015055222/http://my.opera.com/desktopteam/blog/2011/10/13/introducing-opera-12-alpha|archive-date=15 October 2011}} |
2.10.289
| 12.0 | | |
2.11.355
| rowspan="2" | Marlin | |12.1 for Android | | style="text-align:left" rowspan="2" | SPDY, CSS3 Flexbox{{cite web|title=Opera Mobile 12.1: with SPDY, WebSockets, Flexbox, and more|url=http://my.opera.com/ODIN/blog/opera-mobile-12-1-with-spdy-web-sockets-flexbox-and-more|work=My Opera|publisher=Opera Software|access-date=10 October 2012|date=9 October 2012|archive-url=https://web.archive.org/web/20121010220943/http://my.opera.com/ODIN/blog/opera-mobile-12-1-with-spdy-web-sockets-flexbox-and-more|archive-date=10 October 2012}} |
2.12.388
|12.10–12.18 | | |
{{reflist|group=note}}
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){{cite press release
|url=http://www.opera.com/pressreleases/en/2006/07/24/
|title=Surf in Bed: Nintendo DS Browser hits Japan
|publisher=Opera Software ASA
|date=2006-07-24
|access-date=2008-11-02
|archive-url=https://web.archive.org/web/20060814052129/http://www.opera.com/pressreleases/en/2006/07/24/
|archive-date=2006-08-14
|url-status=dead
}}
- Nintendo DSi Browser (based on Opera){{cite web|url=http://archive.techtree.com/techtree/jsp/article.jsp?article_id=93947&cat_id=580 |title=Operating Systems are Less Important: Opera |publisher=Techtree |author=Rahul Srinivas and Jon S. von Tetzchner |date=2008-10-08 |access-date=2009-02-25 |url-status=dead |archive-url=https://web.archive.org/web/20120415165721/http://archive.techtree.com/techtree/jsp/article.jsp?article_id=93947&cat_id=580 |archive-date=April 15, 2012 }}
- Wii Internet Channel Browser (based on Opera){{cite press release
|url=http://www.opera.com/pressreleases/en/2006/12/22/
|title=Play with the Web: Opera browser now available for download on Wii
|publisher=Opera Software ASA
|date=2006-12-22
|access-date=2008-11-02
|archive-url=https://web.archive.org/web/20080512202758/http://www.opera.com/pressreleases/en/2006/12/22/
|archive-date=2008-05-12
|url-status=dead
}}
- Nokia 770 Browser (based on Opera)
- Sony Mylo COM-1's Browser (based on Opera){{cite press release
|url=http://www.opera.com/pressreleases/en/2006/08/23/
|title=Sony Electronics uses the Opera browser for its new mylo personal communicator
|publisher=Opera Software ASA
|date=2006-08-23
|access-date=2008-11-02
|archive-url=https://web.archive.org/web/20080829210612/http://opera.com/pressreleases/en/2006/08/23/
|archive-date=2008-08-29
|url-status=dead
}}
=HTML editors=
- Macromedia Dreamweaver MX to Dreamweaver CS3 (CS4/CS5 use WebKit)
- Adobe Creative Suite 2{{cite press release
|url=http://www.opera.com/pressreleases/en/2005/04/04/index.dml
|title=Powered by Opera: Opera Integrated with Adobe Creative Suite 2
|publisher=Opera Software ASA
|date=2005-04-04
|access-date=2008-11-02
}}{{Dead link|date=May 2020 |bot=InternetArchiveBot |fix-attempted=yes }} and 3{{cite web
|url = http://operawatch.com/news/2007/03/adobe-creative-suite-3-cs3-uses-built-in-opera-for-rendering-engine.html
|title = Adobe Creative Suite 3 (CS3) uses built-in Opera for rendering engine
|date = 2007-03-28
|access-date = 2008-04-20
|url-status = dead
|archive-url = https://web.archive.org/web/20080303214545/http://operawatch.com/news/2007/03/adobe-creative-suite-3-cs3-uses-built-in-opera-for-rendering-engine.html
|archive-date = 2008-03-03
}}
Source code leak
The source code for version 12.15 was leaked to GitHub on February 11, 2016.{{Cite web
|url=https://github.com/prestocore/browser
|title=Presto Web rendering engine: Opera 12.15
|date=2017-01-12|website=GitHub |archive-url=https://web.archive.org/web/20170113134110/https://github.com/prestocore/browser|archive-date=2017-01-13|url-status=dead}} It remained unnoticed until January 12, 2017 and was taken down two days later in response to a DMCA request.{{Cite web|url=https://github.com/github/dmca/blob/master/2017/2017-01-12-Presto.md|title=2017-01-12-Presto.md|website=GitHub|access-date=2017-10-12}}{{Cite news
|url=https://www.bleepingcomputer.com/news/software/opera-presto-source-code-leaks-online/
|title=Opera Presto Source Code Leaks Online
|first=Catalin |last=Cimpanu
|work=Bleeping Computer
|access-date=2017-10-12
|language=en-us
}} Opera Software has confirmed the authenticity of the source code.{{Cite news|url=https://blogs.opera.com/security/2017/01/legacy-opera-presto-source-code-appearance-online-sharing-sites/|title=Legacy Opera Presto source code appearance in online sharing sites – Opera Security|date=2017-01-18|website=Opera Security|access-date=2017-10-12|language=en-US}}
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.
See also
References
{{Reflist|colwidth=30em}}
External links
- [https://web.archive.org/web/20090225070650/http://dev.opera.com/articles/view/presto-2-1-web-standards-supported-by/ Opera Developer Community – Presto 2.1 – web standards supported by Opera’s core]
- [http://dev.opera.com Opera Developer Community]
{{OperaBrowser}}
{{Web browser engines}}
{{ECMAScript}}
{{web browsers|mobile}}
{{DEFAULTSORT:Presto (Layout Engine)}}