Компания Google представила (http://googlechromereleases.blogspot.ru/2016/03/stable-chann...) релиз web-браузера Chrome 49 (http://www.google.com/chrome). Одновременно доступен (https://www.chromium.org/developers/calendar) стабильный выпуск свободного проекта Chromium (http://dev.chromium.org/), выступающий основой Chrome. Браузер Chrome отличается (https://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoo...) использованием логотипов Google, идущим в комплекте модулем Flash, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров (https://www.opennet.me/opennews/art.shtml?num=26822).Основные (http://blog.chromium.org/2016/02/chrome-49-beta-css-custom-p...) изменения (https://plus.google.com/+FrancoisBeaufort/posts) в Chrome 49:
- Прекращено формирование сборок для 32-разрядных систем Linux и прекращена поддержка платформ Ubuntu 12.04, Debian 7 (wheezy), Windows XP, Windows Vista, OS X 10.6, 10.7 и 10.8. Начиная с Chrome 49 Linux-сборки будут формироваться только для 64-разрядных систем. Возможность сборки кодовой базы Chromium для 32-разрядных систем оставлена, что позволит дистрибутивам продолжить выпуск актуальных 32-разрядных пакетов с Chromium. Поддержка 32-разрядных архитектур x86 и ARM в Chromium будет сохранена как минимум в течение пяти лет. Всем пользователям 32-разрядных Linux-систем рекомендуется перейти на использование Chromium. Пользователям Ubuntu 12.04 и Debian 7 рекомендуется обновить свои системы до выпусков Ubuntu 14.04 и Debian 8.
- Поддержка (https://developers.google.com/web/updates/2016/02/css-variab...) собственных свойств CSS (CSS custom properties) путем использования переменных, содержащих часто используемые параметры CSS. Переменные позволяют упростить поддержание большого числа одинаковых значений в различных файлах CSS, например, типовых цветов, которые упоминаются во многих местах страницы. Задание подобных параметров через переменные существенно упрощает изменение их значений - вместо повсеместной правки отдельных элементов во множестве файлов, достаточно изменить лишь присвоение базового значения переменной. Для ссылки на переменную в CSS предлагается использовать функцию var() (https://drafts.csswg.org/css-variables/#funcdef-var), допускаются математические выражения над переменными. Пример:
<font color="#461b7e">
:root {
--main-color: #06c;
--margins: 2;
--margins-double: (var(--margins) * 2);
}
#foo h1 {
color: var(--main-color);
}
</font>
- Представлен Background Sync API (https://github.com/WICG/BackgroundSync/blob/master/explainer.md) для выполнения операций фоновой синхронизации в service worker, решающих проблему потерей изменений в случае закрытия страницы до окончания передачи локальных изменений на сервер (например, почтовый клиент может потерять находящиеся в очереди сообщения, если пользователь закроет страницу сразу после их отправки). В случае пропадания сетевого соединения, Background Sync позволяет отложить выполнение операции синхронизации до момента появления доступности сети, даже если страница досрочно закрыта пользователем;
- Расширена поддержка стандарта ECMAScript 2015, степень охвата элементов которого в JavaScript-движке V8 оценивается в 91%. В новом выпуске добавлена поддержка деструктуризации (https://googlechrome.github.io/samples/destructuring-es6/ind...) данных в массивах и объектах, определения (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) используемых в функции аргументов по умолчанию (например, "function multiply(a, b = 1)"). В объектах Proxy (https://developers.google.com/web/updates/2016/02/es2015-pro...) и Reflect API (https://developers.google.com/web/updates/2016/02/es2015-pro...) добавлена возможность изменения поведения при поиске и назначении элементов. Реализована возможность использования блочных конструкций, таких как class и let, вне режима strict;
- Элемент "keygen (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ke...)", который использовался для генерации или передачи ключей через HTML-формы, переводится в разряд устаревших. Так как он не отвечает современным требованиям безопасности (сертификат передаётся в MIME-блоке application/x-x509-user-cert и может быть подменён), поле keygen будет по умолчанию возвращать пустое значение, а сертификат из application/x-x509-user-cert не будет загружаться и устанавливаться по умолчанию;
- Возможность (https://developers.google.com/web/updates/2016/01/mediarecor...) использование MediaRecorder API (https://developer.mozilla.org/en-US/docs/Web/API/MediaRecord...) для записи звука и видео без привязки к каким-либо плагинам (перед началом записи пользователю выводится окно с предложением подтвердить операцию);
- В инструменты для разработчиков добавлены средства (https://developers.google.com/web/updates/2016/02/font-display) отслеживания процесса загрузки шрифтов, указанных через свойство CSS font-display;
- Реализована возможность на стороне сайта выявлять каким именно клиентом service worker инициирован запрос на извлечение данных (передаётся атрибут FetchEvent.clientID (https://developer.mozilla.org/en-US/docs/Web/API/FetchEvent/...));
- Поддержка плавной анимации прокрутки (https://docs.google.com/document/d/1JQ6jLy-r7vw_I9s3rtWAIK13...), выполняемой с использованием дискретных устройств, таких как колесо мыши;
- Добавлены дополнительные средства (https://tools.ietf.org/html/draft-west-leave-secure-cookies-...) предотвращения модификации защищённых cookie при доступе не через HTTPS. Для идентификации secure cookies можно использовать (https://googlechrome.github.io/samples/cookie-prefixes/index...) специальный префикс "__Secure-";
- В Remote Playback API добавлено свойство disableRemotePlayback (https://developers.google.com/web/updates/2015/11/presentati...), позволяющее запретить удалённое воспроизведение контента через устройство Google Cast;
- Увеличена точность определения времени наступления события ( Event.timeStamp теперь имеет тип DOMHighResTimeStamp (https://developer.mozilla.org/en-US/docs/Web/API/DOMHighResT...) вместо DOMTimeStamp), что позволяет более точно контролировать операции прокрутки и движения указателя;
- Добавлен URLSearchParams API (https://developers.google.com/web/updates/2016/01/urlsearchp...), предоставляющий программный интерфейс для манипуляции параметрами в строке запроса (блок, идущий после "?" в URL);
- В WebAudio добавлена поддержка фильтров IIR (http://webaudio.github.io/web-audio-api/#the-iirfilternode-i...), операций OfflineAudioContext.suspend()/resume() (https://github.com/WebAudio/web-audio-api/issues/302#issueco...) и обработчиков Promise в DecodeAudioData (http://webaudio.github.io/web-audio-api/#widl-BaseAudioConte...);
- Возможность (https://googlechrome.github.io/samples/service-worker/window...) использования service worker для открытия нового URL в окне через вызов WindowClient.navigate();
- Возможность отследить на стороне сайта включения режима экономии трафика через установку заголовка Save-Data (http://httpwg.org/http-extensions/client-hints.html#the-save...);
- В Chromium добавлена поддержка стандартного набора шифров ChaCha-Poly1305 в TLS;
- Прекращена (https://github.com/whatwg/dom/issues/58) поддержка свойства Document.defaultCharset;
- В версии для Android добавлена (http://blog.chromium.org/2016/02/the-physical-web-expands-to...) поддержка механизма Physical Web (https://google.github.io/physical-web/), позволя...
URL: http://googlechromereleases.blogspot.ru/2016/03/stable-chann...
Новость: http://www.opennet.me/opennews/art.shtml?num=43977