Presto (browser engine)

Last updated
Presto
Presto.svg
Developer(s) Opera Software ASA
Stable release
2.12.423 / 16 March 2015;7 years ago (2015-03-16) [1]
Written in C++ [2]
Operating system Linux (non-free repositories) and Windows
Type Application framework, Browser engine
License Proprietary
Website 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. [3] Presto was also used to power the Opera Mini and Opera Mobile browsers.

Contents

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. [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

Presto Version ECMAScript engine Browser code name Opera Browser Opera Mobile Other 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.0 Internet Channel [11] Canvas, Acid2 Test: passed, Rich text editing, XSLT, and XPath
2.1FutharkKestrel9.59.5 [12] Nintendo DSi Browser SVG Tiny 1.2, SVG as CSS, SVG as <img>, Audio object
2.1.19.6 Scope 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.1 Opera Mini serverCSS3: multiple backgrounds; HTML5: <canvas> Text
2.6.3010.6 WebM; HTML5: AppCache, Geolocation, Web Workers [17]
2.7.62Kjevik11.011.0 Extensions, WebSocket
2.8.131Barracuda11.111.1Opera 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.168Swordfish11.5Session history management, classList (DOMTokenList)
2.9.20111.50 for Android ECMAscript strict mode
2.10.229Tunny11.611.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.28912.0
2.11.355 Marlin 12.1 for Android SPDY, 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

Web browsers

HTML editors

Source code leak

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

The ECMAScript engines used with Opera have been named after ancient and traditional writing scripts, including ancient Greek Linear A and Linear B, Runic Futhark, and Javanese Carakan.

See also

Related Research Articles

Gecko is a browser engine developed by Mozilla. It is used in the Firefox browser, the Thunderbird email client, and many other projects.

Browser wars Competition between web browsing applications for share of worldwide usage

A browser war is competition for dominance in the usage share of web browsers. The "First Browser War," during the late 1990s, pitted Microsoft's Internet Explorer against Netscape's Navigator. Browser wars continued with the decline of Internet Explorer's market share and the popularity of other browsers including Firefox, Google Chrome, Safari, Microsoft Edge and Opera.

Opera (company) Norwegian software company

Opera is a Norwegian multinational technology company that specializes in web browser development, fintech, as well as services such as Opera News and YoYo Games. The company's total user base, including users of its desktop browsers, mobile browsers and other services exceeds 380 million monthly active users.

Mobile browser Web browser designed for use on mobile devices

A mobile browser is a web browser designed for use on a mobile device such as a mobile phone or PDA. Mobile browsers are optimized so as to display Web content most effectively for small screens on portable devices. Mobile browser software must be small and efficient to accommodate the low memory capacity and low-bandwidth of wireless handheld devices. Typically, they were stripped-down web browsers, however, some recent mobile browsers can handle latest technologies also such as CSS 3, JavaScript, and Ajax.

WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as all iOS web browsers. WebKit is also used by the BlackBerry Browser, PlayStation consoles beginning from the PS3, the Tizen mobile operating systems, and a browser included with the Amazon Kindle e-book reader. WebKit's C++ application programming interface (API) provides a set of classes to display Web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited.

NetFront Mobile browser

NetFront Browser is a mobile browser developed by Access Company of Japan. The first version shipped in 1995. They currently have several browser variants, both Chromium-based and WebKit-based.

A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.

This article compares HTML support by several browser engines.

Opera Mini Mobile browser developed by Opera Software

Opera Mini is a mobile web browser developed by Opera. It was primarily designed for the Java ME platform, as a low-end sibling for Opera Mobile, but it is now developed exclusively for Android. It was previously developed for iOS, Windows 10 Mobile, Windows Phone 8.1, BlackBerry, Symbian, and Bada. As of 2018, the Android build is the only version still under active development.

Nintendo DS & DSi Browser

The Nintendo DS Browser is a port of the Opera 8.5 web browser for use on the Nintendo DS, developed by Opera Software and Nintendo. Two versions were sold, one for the original Nintendo DS and one for the Nintendo DS Lite, each with a different Slot-2 memory expansion pack to fit the respective system.

History of the Opera web browser Aspect of history

The history of the Opera web browser began in 1994 when it was started as a research project at Telenor, the largest Norwegian telecommunications company. In 1995, the project branched out into a separate company named Opera Software ASA, with the first publicly available version released in 1996. Opera has undergone extensive changes and improvements, and introduced notable features such as Speed Dial.

Opera Mobile Freeware web browser for mobile devices

Opera Mobile is a mobile web browser for smartphones, tablets and PDAs developed by Opera.

Gears, formerly Google Gears, is discontinued utility software offered by Google to create more powerful web apps by adding offline storage and other additional features to web browsers. Released under the BSD license, Gears is free and open-source. Gears was conceived at a time when a comparable alternative was not available. However, Gears was discontinued in favor of the standardized HTML5 methods that eventually became prevalent.

Acid3 Online HTML rendering test

The Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model (DOM) and JavaScript.

Opera (web browser) Freeware web browser

Opera is a multi-platform web browser developed by its namesake company Opera. The browser is based on Chromium, but distinguishes itself from other Chromium-based browsers through its user interface and other features.

V8 (JavaScript engine) Open-source JavaScript engine developed by Google

V8 is a free and open-source JavaScript engine developed by the Chromium Project for Google Chrome and Chromium web browsers. The project’s creator is Lars Bak. The first version of the V8 engine was released at the same time as the first version of Chrome: 2 September 2008. It has also been used on the server side, for example in Couchbase and Node.js.

The Web Open Font Format (WOFF) is a font format for use in web pages. WOFF files are OpenType or TrueType fonts, with format-specific compression applied and additional XML metadata added. The two primary goals are first to distinguish font files intended for use as web fonts from fonts files intended for use in desktop applications via local installation, and second to reduce web font latency when fonts are transferred from a server to a client over a network connection.

Blink is a browser engine developed as part of the Chromium project with contributions from Google, Facebook, Microsoft, Opera Software, Adobe, Intel, IBM, Samsung, and others. It was first announced in April 2013.

References

  1. "Dev.Opera — Opera Mini server upgrade". dev.opera.com. Retrieved 2015-12-28.
  2. Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Archived from the original on 30 May 2012. Retrieved 4 January 2010.
  3. Lawson, Bruce (2013-02-12). "300 million users and move to WebKit". Opera Software . Retrieved 2013-02-13.
  4. Sivonen, Henri (2006-11-23). "Names of Browser Engines" . Retrieved 2007-01-03.
  5. Bointon, Marcus (2006-12-19). "SunSpider Benchmarks: WebKit Rocks". Pet Pixels. Archived from the original on 2011-08-20. Retrieved 2007-01-03.
  6. 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.
  7. 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.
  8. 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.
  9. "Opera publishes version history, rewrites history". Archived from the original on 2014-02-21.
  10. "Opera 7 for Windows Changelog". Opera Software. Archived from the original on 6 July 2017. Retrieved 28 February 2011.
  11. "Opera Dragonfly documentation". Opera Software. Archived from the original on 2009-02-25. Retrieved 2009-02-27.
  12. "Reviewer's Guide to Opera Mobile 9.5 Beta". Opera Software. Archived from the original on 2010-02-20. Retrieved 2009-02-27.
  13. Lawson, Bruce (2008-09-10). "Opera Presto 2.1 – Web standards supported by Opera's core". Opera Software . Retrieved 2009-02-27.
  14. "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.
  15. "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.
  16. 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.
  17. 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.
  18. "Introducing Opera 12 Alpha". My Opera . Opera Software. 13 October 2011. Archived from the original on 15 October 2011. Retrieved 28 January 2012.
  19. "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.
  20. "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.
  21. 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.
  22. "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.
  23. "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.
  24. "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 ]
  25. "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.
  26. "Presto Web rendering engine: Opera 12.15". GitHub . 2017-01-12. Archived from the original on 2017-01-13.
  27. "2017-01-12-Presto.md". GitHub . Retrieved 2017-10-12.
  28. Cimpanu, Catalin. "Opera Presto Source Code Leaks Online". Bleeping Computer . Retrieved 2017-10-12.
  29. "Legacy Opera Presto source code appearance in online sharing sites – Opera Security". Opera Security. 2017-01-18. Retrieved 2017-10-12.