Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Недействующий браузерный движок
Defunct browser engine
Presto был браузерным движком веб-браузера Opera, начиная с выпуска Opera 7 28 января 2003 года и до выпуска Opera 15 2 июля 2013 года, когда Opera перешла на использование движка Blink, первоначально разработанного для Chromium. Presto также использовался в браузерах Opera Mini и Opera Mobile. Presto – это динамичный движок. Веб-страницы могут быть перерисованы полностью или частично в ответ на события DOM. В его обновлениях было внесено множество исправлений ошибок и оптимизаций для повышения производительности движка ECMAScript (JavaScript). Он является проприетарным и доступен только как часть браузеров Opera.
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. 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
В Opera использовалась последовательность движков ECMAScript. (Об истоках их названий см. культурные примечания ниже.) Версии Opera до Presto использовали движок Linear A. Версии Opera, основанные на форке Core от Presto, с 7.0 по 9.27, использовали движок Linear B. Движок Futhark применялся в некоторых версиях на форке Core 2 от Presto, а именно в Opera 9.5 – 10.10. На момент выпуска он был самым быстрым движком, но в 2008 году новое поколение движков ECMAScript от Google (V8), Mozilla (SpiderMonkey) и Apple (JavaScriptCore) совершило ещё один прорыв, представив генерацию машинного кода. Это открыло возможности для сложных вычислений на стороне клиента, и Futhark, хотя и оставался быстрым и эффективным, не смог с ними конкурировать. В начале 2009 года Opera представила движок Carakan. Он отличался байт-кодом, основанным на регистрах, генерацией машинного кода, автоматической классификацией объектов и общей оптимизацией производительности. Ранний доступ в Opera 10.50 pre-alpha показал, что он не уступает по скорости лучшим конкурентам, одержав победу в 2 из 3 наиболее популярных бенчмарков.
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. 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 (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. 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.
История и развитие
Presto VersionECMAScript engineBrowser codenameOpera BrowserOpera MobileOther useNew featurespre Prestonunnamed3.5pre PrestoLinear AElektra/unnamed4.0 1.0 Linear Bunnamed7.0 полностью новый движок рендеринга, поддержка Favicon8.5"Bolton" версия: первая полностью бесплатная версия для скачивания (без рекламной панели инструментов)2.0Merlin9.0Internet ChannelCanvas, Acid2 Test: пройден, редактирование текста, XSLT и XPath2.1 Futhark Kestrel9.59.5Nintendo DSi BrowserSVG Tiny 1.2, SVG как CSS, SVG как аудиообъект2.1.19.6Scope API, SVG как Favicon2.2 Peregrine9.72.1510.010.19.8Acid3 test: 100/100, отрисовка без погрешностей, веб-шрифты, CSS Selectors API, RGBA & HSLA прозрачность, TLS 1.2, FPS в SVG, SVG шрифты в HTML2.3Opera Devices SDK 10CSS3: border image, border radius (скругленные углы), box shadow, transitions; HTML5: элементы <audio> и <video>2.410CSS2.1: visibility:collapse; CSS3: transforms; HTML5: тени <canvas>, Web Database, Web Storage, window.btoa и window.atob2.5.24 Carakan Evenes10.510.1Opera Mini serverCSS3: multiple backgrounds; HTML5: <canvas> Text2.6.3010.6WebM; HTML5: AppCache, Geolocation, Web Workers2.7.62 Kjevik11.011.0Extensions, WebSocket 2.8.131 Barracuda 11.1 11.1 Opera Mini server 4.27WebP, File API, CSS3 gradients (только для свойств background и background-image): o linear gradient , o repeating linear gradient ; добавлена поддержка <color stop>. 2.9.168 Swordfish 11.5 Управление историей сеансов, classList (DOMTokenList) 2.9.201 11.50 для AndroidECMAscript strict mode 2.10.229 Tunny 11.6 11.6HTML5 Parser, полная поддержка CSS Gradients, Typed Arrays, CSS-единица "rem" 2.10.254 Wahoo 12.0WebGL и аппаратное ускорение 2.10.289 12.02.11.355 Marlin12.1 для Android SPDY, CSS3 Flexbox2.12.38812.10–12.18
Presto VersionECMAScript engineBrowser code nameOpera BrowserOpera MobileOther useNew featurespre Prestononeunnamed3.5pre PrestoLinear AElektra/unnamed4.0 1.0 Linear Bunnamed7.0a completely new rendering engine, Favicon support8.5"Bolton" version: 1st completely free download version (ad free toolbar)2.0Merlin9.0Internet ChannelCanvas, Acid2 Test: passed, Rich text editing, XSLT, and XPath2.1 Futhark Kestrel9.59.5Nintendo DSi BrowserSVG Tiny 1.2, SVG as CSS, SVG as , Audio object2.1.19.6Scope API, SVG as Favicon2.2 Peregrine9.72.2.1510.010.19.8Acid3 test: 100/100, pixel perfect, Web fonts, CSS Selectors API, RGBA & HSLA opacity, TLS 1.2., FPS in SVG, SVG fonts in HTML2.3Opera Devices SDK 10CSS3 : border image, border radius (rounded corners), box shadow, transitions; HTML5: <audio> and <video> elements2.410CSS2.1: visibility:collapse; CSS3 : transforms; HTML5: <canvas> shadows, Web Database, Web Storage, window. btoa, and window. atob2.5.24 Carakan Evenes10.510.1Opera Mini serverCSS3: multiple backgrounds; HTML5: <canvas> Text2.6.3010.6WebM; HTML5: AppCache, Geolocation, Web Workers2.7.62 Kjevik11.011.0Extensions, WebSocket 2.8.131 Barracuda 11.1 11.1 Opera Mini server 4.27WebP, 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.5Session history management, classList (DOMTokenList) 2.9.201 11.50 for AndroidECMAscript strict mode 2.10.229 Tunny 11.6 11.6HTML5 Parser, full support to CSS Gradients, Typed Arrays, CSS unit "rem" 2.10.254 Wahoo 12.0WebGL and hardware acceleration 2.10.289 12.02.11.355 Marlin12.1 for Android SPDY, CSS3 Flexbox2.12.38812.10–12.18
Утечка исходного кода
Исходный код версии 12.15 был опубликован на GitHub 11 февраля 2016 года. Он оставался незамеченным до 12 января 2017 года и был удален через два дня после получения запроса DMCA. Opera Software подтвердила подлинность исходного кода.
The source code for version 12.15 was leaked to GitHub on February 11, 2016. It remained unnoticed until January 12, 2017 and was taken down two days later in response to a DMCA request. Opera Software has confirmed the authenticity of the source code.
Культурные заметки
Двигатели ECMAScript, используемые в Opera, получили названия в честь древних и традиционных систем письма, включая нерасшифрованный линейный А, древнегреческий линейный Б, рунический Футарк и яванский Каракан.
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.