Введение

Недействующий браузерный движок

Presto был браузерным движком веб-браузера Opera, начиная с выпуска Opera 7 28 января 2003 года и до выпуска Opera 15 2 июля 2013 года, когда Opera перешла на использование движка Blink, первоначально разработанного для Chromium. Presto также использовался в браузерах Opera Mini и Opera Mobile. Presto – это динамичный движок. Веб-страницы могут быть перерисованы полностью или частично в ответ на события DOM. В его обновлениях было внесено множество исправлений ошибок и оптимизаций для повышения производительности движка ECMAScript (JavaScript). Он является проприетарным и доступен только как часть браузеров Opera.

Двигатели 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 наиболее популярных бенчмарков.

История и развитие

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

Утечка исходного кода

Исходный код версии 12.15 был опубликован на GitHub 11 февраля 2016 года. Он оставался незамеченным до 12 января 2017 года и был удален через два дня после получения запроса DMCA. Opera Software подтвердила подлинность исходного кода.

Культурные заметки

Двигатели ECMAScript, используемые в Opera, получили названия в честь древних и традиционных систем письма, включая нерасшифрованный линейный А, древнегреческий линейный Б, рунический Футарк и яванский Каракан.