Presto (layout engine)

Presto (layout engine)
Presto
Presto.svg
Developer(s) Opera Software ASA
Stable release 2.9.168 / 28 June 2011; 4 months ago (2011-06-28)[1]
Written in C++[2]
Operating system Cross-platform
Type Application framework / Software component
License Proprietary
Website dev.opera.com

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.

Contents

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, use the Linear B engine.[3] The Futhark engine is used in some versions on the Core 2 fork of Presto, namely Opera 9.5 to Opera 10.10.[4] 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.[5][6] 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.[7]

History and development

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 Electra/unnamed [8] 4.0
1.0 Linear B unnamed 7.0 a completely new rendering engine, Favicon support[9]
8.5 "Bolton" version: 1st completely free download version (ad-free toolbar)
2.0 Merlin 9.0 Internet Channel[10] Canvas, Acid2 Test: passed, Rich text editing, XSLT and XPath
2.1 Futhark Kestrel 9.5 9.5[11] Nintendo DSi Browser SVG Tiny 1.2, SVG as CSS, SVG as <img>, Audio object
2.1.1 9.6 Scope API,[12] SVG as Favicon
2.2 Peregrine 9.7[13]
2.2.15 10.0[14]
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.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 Mini server 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, WebSockets
2.8.131 Barracuda 11.1 11.1 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.168 Swordfish 11.5 Session history management, classList (DOMTokenList)
2.10.229 Tunny 11.6 (in development) ECMAscript strict mode, HTML5 Parser, full support to CSS Gradients, Typed Arrays, CSS unit "rem"
Wahoo 12 (in development) Webgl and Hardware Acceleration[citation needed]

Presto-based applications

Web browsers

HTML editors

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.

References

  1. ^ Opera 11.50 for Windows changelog
  2. ^ Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". http://www.lextrait.com/Vincent/implementations.html. Retrieved 4 January 2010. 
  3. ^ Sivonen, Henri (2006-11-23). "Names of Browser Engines". http://hsivonen.iki.fi/engines/. Retrieved 2007-01-03. 
  4. ^ Bointon, Marcus (2006-12-19). "SunSpider Benchmarks: WebKit Rocks". Pet Pixels. http://marcus.bointon.com/archives/50-SunSpider-Benchmarks-WebKit-Rocks.html. Retrieved 2007-01-03. 
  5. ^ Lindström, Jens (2009-02-05). "Carakan - By Opera Core Concerns". Opera Software. http://my.opera.com/core/blog/2009/02/04/carakan. Retrieved 2009-02-05. 
  6. ^ Lindström, Jens (2009-12-22). "Carakan Revisited - By Opera Core Concerns". Opera Software. http://my.opera.com/core/blog/2009/12/22/carakan-revisited. Retrieved 2009-12-26. 
  7. ^ Fulton, Scott M. III (2009-02-22). "The once and future king: Test build of Opera crushes Chrome on Windows 7". betanews. http://www.betanews.com/article/The-once-and-future-king-Test-build-of-Opera-crushes-Chrome-on-Windows-7/1261519843. Retrieved 2009-02-26. 
  8. ^ Opera version history At first Electra was the codename for the Opera 4.0 browser but was later designated as a layout engine name for Opera versions 3.5 through 6
  9. ^ "Opera 7 for Windows Changelog". Opera Software. http://www.opera.com/docs/changelogs/windows/700/. Retrieved 28 February 2011. 
  10. ^ "Opera Dragonfly documentation". Opera Software. http://www.opera.com/dragonfly/documentation/. Retrieved 2009-02-27. 
  11. ^ "Reviewer’s Guide to Opera Mobile 9.5 Beta". Opera Software. http://www.opera.com/press/reviews/mobile/#new. Retrieved 2009-02-27. 
  12. ^ Lawson, Bruce (2008-09-10). "Opera Presto 2.1 - Web standards supported by Opera’s core". Opera Software. http://dev.opera.com/articles/view/presto-2-1-web-standards-supported-by/. Retrieved 2009-02-27. 
  13. ^ "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. http://www.opera.com/press/releases/2009/03/26/. Retrieved 2009-06-11. 
  14. ^ released
  15. ^ "Opera Software grows in Poland: International Web browser company celebrates the Warsaw office opening" (Press release). Opera Software. 2009-06-02. http://www.opera.com/press/releases/2009/06/02/. Retrieved 2009-06-11. 
  16. ^ Pettersen, Yngve Nysæter (2009-02-25). "New in Opera Presto 2.2: TLS 1.2 Support". Opera Software. http://my.opera.com/core/blog/2009/02/25/new-in-opera-presto-2-2-tls-1-2-support. Retrieved 2009-02-27. 
  17. ^ Kleinhout, Huib (1. July 2010). "Opera 10.60 goes final". My Opera. Opera Software. http://my.opera.com/desktopteam/blog/2010/07/01/opera-10-60-goes-final. Retrieved 2 July 2010. 
  18. ^ "Surf in Bed: Nintendo DS Browser hits Japan" (Press release). Opera Software ASA. 2006-07-24. http://www.opera.com/pressreleases/en/2006/07/24/. Retrieved 2008-11-02. 
  19. ^ Rahul Srinivas and Jon S. von Tetzchner (2008-10-08). "Operating Systems are Less Important: Opera". Techtree. http://www.techtree.com/India/News/Operating_Systems_are_Less_Important_Opera/551-93947-580.html. Retrieved 2009-02-25. 
  20. ^ "Play with the Web: Opera browser now available for download on Wii" (Press release). Opera Software ASA. 2006-12-22. http://www.opera.com/pressreleases/en/2006/12/22/. Retrieved 2008-11-02. 
  21. ^ "Sony Electronics uses the Opera browser for its new mylo personal communicator" (Press release). Opera Software ASA. 2006-08-23. http://www.opera.com/pressreleases/en/2006/08/23/. Retrieved 2008-11-02. 
  22. ^ "Powered by Opera: Opera Integrated with Adobe Creative Suite 2" (Press release). Opera Software ASA. 2005-04-04. http://www.opera.com/pressreleases/en/2005/04/04/index.dml. Retrieved 2008-11-02. 
  23. ^ "Adobe Creative Suite 3 (CS3) uses built-in Opera for rendering engine". 2007-03-28. http://operawatch.com/news/2007/03/adobe-creative-suite-3-cs3-uses-built-in-opera-for-rendering-engine.html. Retrieved 2008-04-20. 
  24. ^ "Design Web Pages for the Desktop and Mobile Devices" (Press release). Virtual Mechanics Inc.. 2008-11-18. http://www.virtualmechanics.com/company/press1108.html. Retrieved 2008-11-18. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Layout engine — A layout engine, or rendering engine, is software that takes marked up content (such as HTML, XML, image files, etc.) and formatting information (such as CSS, XSL, etc.) and displays the formatted content on the screen. It paints on the content… …   Wikipedia

  • Gecko (layout engine) — Gecko Developer(s) Mozilla Foundation / Mozilla Corporation Stable release 8.0 / November 8, 2011; 6 days ago (2011 11 08) [1] …   Wikipedia

  • Trident (layout engine) — Trident Developer(s) Microsoft Written in C++[1] Operating system Microsoft Windows: Windows XP to 7 (supported …   Wikipedia

  • Mariner (layout engine) — Mariner was a canceled project to add performance and stability enhancements to the layout engine used in the Netscape Communicator web browser. Mariner became open source in March 1998 when Netscape released its client code and started the… …   Wikipedia

  • Presto — is a word from the Italian language, meaning soon , early , or quickly . In English, it may have the following meanings:As a common word* An incantation or interjection used by some stage magicians * A musical score marking indicating a fast… …   Wikipedia

  • Presto (Opera) — У этого термина существуют и другие значения, см. Presto. Presto Тип Браузерн …   Википедия

  • Comparison of layout engines (Cascading Style Sheets) — Cascading Style Sheets CSS Animations Dynamic CSS Comparison of layout engines Comparison of stylesheet languages Internet Explorer box model bug CSS Zen Garden The Zen of CSS Design CSSTidy Style sheet Tableless web design Holy Grail (web… …   Wikipedia

  • Comparison of layout engines (HTML5) — HTML HTML and HTML5 Dynamic HTML XHTML XHTML Mobile Profile and C HTML Canvas element Character encodings Document Object Model Font family HTML editor HTML element HTML Frames HTML5 video HTML scrip …   Wikipedia

  • Comparison of layout engines (HTML) — HTML HTML and HTML5 Dynamic HTML XHTML XHTML Mobile Profile and C HTML Canvas element Character encodings Document Object Model Font family HTML editor HTML element HTML Frames HTML5 video HTML scrip …   Wikipedia

  • Comparison of layout engines (Document Object Model) — The following tables compare DOM compatibility and support for a number of layout engines. Please see the individual products articles for further information. This article is not all inclusive or necessarily up to date. Unless otherwise… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”