Presto (layout engine)
Encyclopedia
Presto is the layout engine
for later versions of the Opera web browser
(developed by Opera Software
). After several public betas and technical previews, it was released on January 28, 2003 in Opera 7 for Windows, and as of Opera 11 it is still in use. Presto is dynamic: the page or parts of it can be re-rendered in response to DOM
and script events. Presto is available only as a part of Opera browser or related products; the source or binary (DLL
) forms of the engine are not publicly available. Subsequent releases have seen a number of bugs fixed and optimisations to improve the speed of the ECMAScript
(JavaScript
) engine.
of Presto, Opera
7.0 through 9.27, use the Linear B engine. The Futhark engine is used in some versions on the Core 2 fork of Presto, namely Opera 9.5 to Opera 10.10. When released it was the fastest engine around, but in 2008 a new generation of ECMAScript engines from Google
(V8
), Mozilla
(TraceMonkey) and Apple (SquirrelFish) took one more step, introducing native code generation. Though raw ECMAScript performance is of very little meaning in everyday browsing, this opened up for potential heavy computations on the client side and Futhark, though still fast and efficient, would not be able to keep up.
In early 2009, Opera began to use the Carakan engine. It features register-based bytecode
, native code generation, automatic object classification and overall performance improvements. 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
.
and Linear B
, Runic Futhark
, and Javanese Carakan
.
Layout engine
A web browser engine, , is a software component that takes marked up content and formatting information and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer...
for later versions of the Opera web browser
Opera (web browser)
Opera is a web browser and Internet suite developed by Opera Software with over 200 million users worldwide. The browser handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, chatting on IRC, downloading files via BitTorrent,...
(developed by Opera Software
Opera Software
Opera Software ASA is a Norwegian software company, primarily known for its Opera family of web browsers with over 220 million users worldwide. Opera Software is also involved in promoting Web standards through participation in the W3C. The company has its headquarters in Oslo, Norway and is...
). After several public betas and technical previews, it was released on January 28, 2003 in Opera 7 for Windows, and as of Opera 11 it is still in use. Presto is dynamic: the page or parts of it can be re-rendered in response to DOM
Document Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...
and script events. Presto is available only as a part of Opera browser or related products; the source or binary (DLL
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...
) forms of the engine are not publicly available. Subsequent releases have seen a number of bugs fixed and optimisations to improve the speed of the ECMAScript
ECMAScript
ECMAScript is the scripting language standardized by Ecma International in the ECMA-262 specification and ISO/IEC 16262. The language is widely used for client-side scripting on the web, in the form of several well-known dialects such as JavaScript, JScript, and ActionScript.- History :JavaScript...
(JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
) engine.
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 forkFork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...
of Presto, Opera
Opera (web browser)
Opera is a web browser and Internet suite developed by Opera Software with over 200 million users worldwide. The browser handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, chatting on IRC, downloading files via BitTorrent,...
7.0 through 9.27, use the Linear B engine. The Futhark engine is used in some versions on the Core 2 fork of Presto, namely Opera 9.5 to Opera 10.10. When released it was the fastest engine around, but in 2008 a new generation of ECMAScript engines from Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...
(V8
V8 (JavaScript engine)
The Google V8 JavaScript Engine is an open source JavaScript engine developed by Google and ships with the Google Chrome web browser. Lars Bak is the head programmer....
), Mozilla
Mozilla
Mozilla is a term used in a number of ways in relation to the Mozilla.org project and the Mozilla Foundation, their defunct commercial predecessor Netscape Communications Corporation, and their related application software....
(TraceMonkey) and Apple (SquirrelFish) took one more step, introducing native code generation. Though raw ECMAScript performance is of very little meaning in everyday browsing, this opened up for potential heavy computations on the client side and Futhark, though still fast and efficient, would not be able to keep up.
In early 2009, Opera began to use the Carakan engine. It features register-based bytecode
Bytecode
Bytecode, also known as p-code , is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code...
, native code generation, automatic object classification and overall performance improvements. 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
Benchmark (computing)
In computing, a benchmark is the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it...
.
History and development
Presto Version | ECMAScript engine | Browser code name | Opera Browser Opera (web browser) Opera is a web browser and Internet suite developed by Opera Software with over 200 million users worldwide. The browser handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, chatting on IRC, downloading files via BitTorrent,... |
Opera Mobile Opera Mobile Opera Mobile is a web browser for smartphones and PDA's developed by the Opera Software company. The first version was released in 2000 for the Psion Series 7 and netBook. Today, it is available for a variety of devices that run on Android, S60, Windows Mobile, Maemo , and MeeGo... |
Other use | New features |
---|---|---|---|---|---|---|
pre Presto | none | unnamed | 3.5 | |||
pre Presto | Linear A | Electra/unnamed | 4.0 | |||
1.0 | Linear B | unnamed | 7.0 | a completely new rendering engine, Favicon Favicon A favicon , also known as a shortcut icon, Web site icon, URL icon, or bookmark icon, is a file containing one small icons, most commonly 16×16 pixels, associated with a particular Web site or Web page... support |
||
8.5 | "Bolton" version: 1st completely free download version (ad-free toolbar) | |||||
2.0 | Merlin | 9.0 | Internet Channel | Canvas, Acid2 Acid2 Acid2 is a test page published and promoted by the Web Standards Project to expose web page rendering flaws in web browsers and other applications that render HTML. Named after the acid test for gold, it was developed in the spirit of Acid1, a relatively narrow test of compliance with the Cascading... Test: passed, Rich text editing, XSLT and XPath |
||
2.1 | Futhark | Kestrel | 9.5 | 9.5 | Nintendo DSi Browser | SVG Scalable Vector Graphics Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their... Tiny 1.2, SVG as CSS, SVG as , Audio object |
2.1.1 | 9.6 | Scope API, SVG as Favicon Favicon A favicon , also known as a shortcut icon, Web site icon, URL icon, or bookmark icon, is a file containing one small icons, most commonly 16×16 pixels, associated with a particular Web site or Web page... |
||||
2.2 | Peregrine | 9.7 | ||||
2.2.15 | 10.0 10.1 |
9.8 | Acid3 Acid3 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 and JavaScript.... test: 100/100, pixel-perfect, Web fonts, CSS Selectors API, RGBA RGBA color space RGBA stands for Red Green Blue Alpha. While it is sometimes described as a color space, it is actually simply a use of the RGB color model, with extra information. The color is RGB, and may belong to any RGB color space, but an integral alpha value as invented by Catmull and Smith between 1971 and... & HSLA opacity, TLS Transport Layer Security Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet... 1.2., FPS in SVG, SVG fonts in HTML |
|||
2.3 | Opera Devices SDK 10 | CSS3 : border-image, border-radius (rounded corners), box-shadow, transitions; HTML5: | ||||
2.4 | 10 | CSS2.1: visibility:collapse; CSS3 : transforms; HTML5: | ||||
2.5.24 | Carakan | Evenes | 10.5 | 10.1 | Opera Mini Opera Mini Opera Mini is a web browser designed primarily for mobile phones, smartphones and personal digital assistants. Until version 4 it used the Java ME platform, requiring the mobile device to run Java ME applications. From version 5 it is also available as a native application for Android, iOS, Symbian... server |
CSS3: multiple backgrounds; HTML5: |
2.6.30 | 10.6 | WebM WebM WebM is an audio-video format designed to provide a royalty-free, open video compression format for use with HTML5 video. The project's development is sponsored by Google.... ; HTML5: AppCache, Geolocation W3C Geolocation API The W3C Geolocation API is an effort by the World Wide Web Consortium to standardize an interface to retrieve the geographical location information for a client-side device... , Web Workers Web Workers Web Workers define an API for running scripts, basically JavaScript, in the background independently of any user interface scripts. This allows for long-running scripts that are not interrupted by scripts that respond to clicks or other user interactions, and allows long tasks to be executed... |
||||
2.7.62 | Kjevik | 11.0 | 11.0 | Extensions Browser extension A browser extension is a computer program that extends the functionality of a web browser in some way. Depending on the browser and the version, the term may be distinct from similar terms such as plug-in or add-on. Mozilla Firefox was designed with the idea of being a small and simple web browser,... , WebSockets WebSockets WebSocket is a technology providing for bi-directional, full-duplex communications channels, over a single Transmission Control Protocol socket. It is designed to be implemented in web browsers and web servers, but it can be used by any client or server application... |
||
2.8.131 | Barracuda | 11.1 | 11.1 | WebP WebP WebP is an image format that employs lossy compression. It is developed by Google, based on technology acquired with the purchase of On2 Technologies.As a derivative of the video format VP8, it is a sister project to the multimedia container format WebM... , File API, CSS3 gradients (only for the background and background-image properties): -o-linear-gradient, -o-repeating-linear-gradient; Support for |
||
2.9.168 | Swordfish | 11.5 | Session history management, classList (DOMTokenList) | |||
2.10.229 | Tunny | 11.6 (in development) | ECMAscript ECMAScript ECMAScript is the scripting language standardized by Ecma International in the ECMA-262 specification and ISO/IEC 16262. The language is widely used for client-side scripting on the web, in the form of several well-known dialects such as JavaScript, JScript, and ActionScript.- History :JavaScript... strict mode, HTML5 Parser, full support to CSS Gradients, Typed Arrays, CSS unit "rem" |
|||
Wahoo Wahoo The wahoo is a scombrid fish found worldwide in tropical and subtropical seas. It is best known to sports fishermen, as its speed and high-quality flesh make it a prize game fish... |
12 (in development) | Webgl WebGL WebGL is a software library that extends the capability of the JavaScript programming language to allow it to generate interactive 3D graphics within any compatible web browser... and Hardware Acceleration Hardware acceleration In computing, Hardware acceleration is the use of computer hardware to perform some function faster than is possible in software running on the general-purpose CPU... |
Web browsers
- Opera
- OperaOpera (web browser)Opera is a web browser and Internet suite developed by Opera Software with over 200 million users worldwide. The browser handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, chatting on IRC, downloading files via BitTorrent,...
7 and above - Opera MobileOpera MobileOpera Mobile is a web browser for smartphones and PDA's developed by the Opera Software company. The first version was released in 2000 for the Psion Series 7 and netBook. Today, it is available for a variety of devices that run on Android, S60, Windows Mobile, Maemo , and MeeGo...
- Opera MiniOpera MiniOpera Mini is a web browser designed primarily for mobile phones, smartphones and personal digital assistants. Until version 4 it used the Java ME platform, requiring the mobile device to run Java ME applications. From version 5 it is also available as a native application for Android, iOS, Symbian...
- Opera
- Nintendo
- Nintendo DS BrowserNintendo DS BrowserThe Nintendo DS Browser is a version of the Opera web browser for use on the Nintendo DS, developed by Opera Software and Nintendo. The Nintendo DS Browser comes in separate versions for the Nintendo DS and the Nintendo DS Lite; this is due to differing physical size requirements for the memory...
(based on Opera) - Nintendo DSi Browser (based on Opera)
- WiiWiiThe Wii is a home video game console released by Nintendo on November 19, 2006. As a seventh-generation console, the Wii primarily competes with Microsoft's Xbox 360 and Sony's PlayStation 3. Nintendo states that its console targets a broader demographic than that of the two others...
Internet Channel Browser (based on Opera)
- Nintendo DS Browser
- Nokia 770 Browser (based on Opera)
- Sony MyloMylo (Sony)My Life Online is a device created and marketed by Sony for portable instant messaging and other Internet-based communications, browsing Internet web sites and playback and sharing of media files. The pocket-sized, tablet-shaped handheld device has a screen which slides up to reveal a QWERTY...
COM-1's Browser (based on Opera)
HTML editors
- Macromedia Dreamweaver MX to Dreamweaver CS3 (CS4/CS5 use WebKitWebKitWebKit is a layout engine designed to allow web browsers to render web pages. WebKit powers Google Chrome and Apple Safari and by October 2011 held over 33% of the browser market share between them. It is also used as the basis for the experimental browser included with the Amazon Kindle ebook...
) - Adobe Creative SuiteAdobe Creative SuiteAdobe Creative Suite is a collection of graphic design, video editing, and web development applications made by Adobe Systems. The collection consists of Adobe's applications , that are based on various technologies...
2 - Adobe Creative SuiteAdobe Creative SuiteAdobe Creative Suite is a collection of graphic design, video editing, and web development applications made by Adobe Systems. The collection consists of Adobe's applications , that are based on various technologies...
3 - Virtual Mechanics SiteSpinner Pro
Cultural Notes
The ECMAScript engines used with Opera have been named after ancient and traditional writing scripts, including ancient Greek Linear ALinear A
Linear A is one of two scripts used in ancient Crete before Mycenaean Greek Linear B; Cretan hieroglyphs is the second script. In Minoan times, before the Mycenaean Greek dominion, Linear A was the official script for the palaces and religious activities, and hieroglyphs were mainly used on seals....
and Linear B
Linear B
Linear B is a syllabic script that was used for writing Mycenaean Greek, an early form of Greek. It pre-dated the Greek alphabet by several centuries and seems to have died out with the fall of Mycenaean civilization...
, Runic Futhark
Elder Futhark
The Elder Futhark is the oldest form of the runic alphabet, used by Germanic tribes for Northwest Germanic and Migration period Germanic dialects of the 2nd to 8th centuries for inscriptions on artifacts such as jewellery, amulets, tools, weapons and runestones...
, and Javanese Carakan
Javanese script
The Javanese alphabet, natively known as Hanacaraka or Carakan , known by the Sundanese people as Cacarakan is the pre-colonial script used to write the Javanese language....
.