Presto (layout engine)
Encyclopedia
Presto is the layout engine
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 fork
Fork (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: shadows, Web Database, Web Storage, window.btoa and window.atob
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: Text
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 added.
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
    • 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 and above
    • 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...

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

  • Nintendo
    • Nintendo DS Browser
      Nintendo DS Browser
      The 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)
    • Wii
      Wii
      The 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)
  • Nokia 770 Browser (based on Opera)
  • Sony Mylo
    Mylo (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 WebKit
    WebKit
    WebKit 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 Suite
    Adobe Creative Suite
    Adobe 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 Suite
    Adobe Creative Suite
    Adobe 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 A
Linear 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....

.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK