Компания Google релиз на уеб браузъра . Водночас стабилна версия на свободния проект , който е основата на Chrome. Уеб браузърът Chrome използването на логото на Google, наличието на система за уведомления в случай на срив, възможността за зареждане на Flash модула при поискване, модули за възпроизвеждане на защитено видео съдържание (DRM), автоматична система за инсталиране на актуализации и предаване при търсене . Следващото издание на Chrome 81 е планирано за 17 март.
:
- На малък процент от потребителите е предоставена функция за групиране на табове, която позволява обединяване на няколко сходни по предназначение таба в визуално разделени групи. На всяка група може да бъде зададен свой цвят и име. Потребителите, които не са в първата вълна на активиране, могат да включат поддръжка на групирането чрез опцията „chrome://flags/#tab-groups“.
- Добавена е поддръжка на функцията , която позволява създаването на връзки към отделни думи или фрази, без явното указание в документа с етикетите на таговете „a name“ или свойството „id“. Синтаксисът на подобни връзки планира да бъде утвърден като уеб стандарт, който в момента е на етап . Маската за пренасочване (по същество търсене с прокрутка) се отделя от обикновения якор с маркера „:~:“. Например, при отваряне на връзката „https://opennet.ru/52312/#:~:text=Chromе“ страницата ще се премести на позицията с първото споменаване на думата „Chromе“ и тази дума ще бъде осветена.
- по-строго ограничение за предаване на бисквитки между сайтове, за не-HTTPS заявки, което забранява обработката на трети бисквитки, задавани при извикване на сайтове, различни от домейна на текущата страница. Подобни бисквитки се използват за проследяване на движенията на потребителя между сайтовете в кода на рекламни мрежи, социални уиджети и системи за уеб аналитика. Напомняме, че за управление на предаването на бисквитки се използва зададеният в заглавието Set-Cookie атрибут SameSite, който по подразбиране сега е зададен на „SameSite=Lax“, ограничаващ изпращането на бисквитки за междусайтови подзапроси, като запитване за изображение или зареждане на съдържание чрез iframe от друг сайт. Сайтовете могат да преопределят режима на SameSite по подразбиране, изрично задавайки при установяване на бисквитката стойността SameSite=None. Въпреки това стойността SameSite=None за бисквитките може да бъде зададена само в режим Secure (действително за връзки през HTTPS). Промяната ще започне постепенно на 17 февруари, първоначално за малък процент от потребителите, а след това постепенно разширявайки обхвата.
- защита от досадни известия, свързани с потвърждаване на разрешения. Тъй като подобна дейност, например, спам нямащи на цели заявки за ангажиране на push известия, прекъсва работата на потребителя и разсейва вниманието по време на диалозите за потвърждение, в Chrome 80 вместо отделен диалог, в адресната лента сега може да се появи информационно известие с предупреждение за блокиране на заявката за разрешение, което след това се свива в индикатор с изображение на зачеркнато камбана. При кликване на индикатора можете да активирате или отхвърлите исканото разрешение по всяко удобно време. Автоматично новият режим ще бъде селективно активиран за потребители, които обикновено блокират подобни заявки, а също така за сайтове, при които се наблюдава висок процент на отхвърлена заявки. За активиране на новия режим за всички заявки в настройките е добавена специална опция (chrome://flags/#quiet-notification-prompts).
- извеждането на изскачащи прозорци (извикване на метода window.open()) и изпращането на синхронни заявки XMLHttpRequest в обработчиците на събития за затваряне или скриване на страницата (unload, beforeunload, pagehide и visibilitychange);
- Предложена първоначална от зареждане на смесено мултимедийно съдържание (когато на HTTPS страница се зареждат ресурси по протокола http://). На страниците, отворени по HTTPS, сега автоматично ще се заменят връзките "http://" с "https://" в блоковете, свързани с възпроизвеждането на аудио и видео файлове. Ако звуковият или видео ресурс не е наличен по https, зареждането му се блокира (може ръчно да се укаже блокировката чрез менюто, достъпно чрез символа на катина в адресната лента).
Изображенията ще продължат да се зареждат без промяна (автоматичната замяна ще бъде приложена в Chrome 81), но за замяна на https или блокиране на изображения разработчиците на сайтове получават CSP свойства upgrade-insecure-requests и block-all-mixed-content. За скриптове и iframe блокирането на смесено съдържание вече беше реализирано по-рано.
- Започна постепенно на поддръжката на FTP. По подразбиране поддръжката на FTP все още остава, но ще бъде експеримент, в рамките на който за определен процент от потребителите поддръжката на FTP ще бъде деактивирана (за възстановяване е необходимо да се стартира браузър с опция „—enable-ftp“). Напомняме, че в предишни версии вече беше спряно показването в прозореца на браузъра на съдържанието на ресурси, зареждани по протокол „ftp://“ (например, прекратено е показването на HTML документи и файлове README), забранено е използването на FTP при зареждане на субресурси от документи и спряна е поддръжката на прокси за FTP. Въпреки това, до момента оставаше възможност за зареждане на файлове по директни линкове и показване на съдържанието на директории.
-
възможността за използване на векторни SVG изображения като иконка на сайта (favicon). - В настройките е добавена възможност за селективно деактивиране на отделни типове данни, предавани при синхронизация между браузърите.
- За централизирано администрирани корпоративни потребители е добавено правило , позволяващо забраната за инсталиране на външни добавки на устройството.
- Реализирана едновременна проверка на цялата верига от свойства или извиквания в JavaScript. Например, при достъп до „db.user.name.length“ преди е било необходимо поетапно да се провери определението на всички съставни части, например, през „if (db && db.user && db.user.name)“. Сега чрез операцията „?.“ може да се достъпи стойността „db?.user?.name?.length“ без предварителни проверки и такова извикване няма да доведе до извеждане на грешка. В случай на проблеми (ако някой елемент е обработен като null или undefined) на изхода ще се издаде стойност „undefined“.
- В JavaScript е предложен нов логически оператор за обединение „??“, който връща десния операнд, ако левият операнд е NULL или undefined, и обратно. Например, „const foo = bar ?? ‘default string'“, ако bar е равен на null, ще върне низ или стойността на bar в противен случай, включително, когато bar е равен на 0 и ‘ ‘, за разлика от оператора „||“.
- В режим Origin Trials (експериментални възможности, изискващи отделна ) е предложен API Content Indexing. Origin Trial предполага възможността за работа с посочения API от приложения, зареждани от localhost или 127.0.0.1, или след регистрация и получаване на специален токен, който действа за ограничен период от време за конкретен сайт. API , предоставявайки метаданни за съдържанието, което преди е било кеширано от уеб приложения, работещи в режим на Progressive Web Apps (PWA). Приложението може да съхранява различни данни в браузъра, включително изображения, видеа и статии, а при загуба на интернет връзката да ги използва с помощта на API Cache Storage и IndexedDB. Content Indexing API дава възможност за добавяне, намиране и изтриване на подобни ресурси. В браузъра този API вече се използва за изброяване на списък с страници и мултимедийни данни, достъпни за гледане в офлайн.
- Стабилизиран и сега разпространяван извън Origin Trials, програмният интерфейс , позволяващ на потребителя да избира записи от адресната книга и да предава определени детайли за тях на сайта. При заявка се определя списък с свойства, които трябва да се получат. Тези свойства се показват на потребителя, който решава дали да ги предаде или не. API може да се използва, например, в уеб пощенски клиент за избор на получатели за изпратеното писмо, в уеб приложение с VoIP функция за иницииране на обаждане на определен номер или в социална мрежа за търсене на вече регистрирани приятели. В рамките на Origin Trials са предложени нови свойства на Contact Picker: освен преди наличните имена, имейл и телефонен номер, добавена е възможността за предаване на пощенски адрес и изображение.
- В Web Workers нов начин за зареждане на ECMAScript модули, който позволява да се избегне използването на функцията importScripts(), която блокира работата на worker-а по време на обработка на импортируемия скрипт и изпълнява в глобалния контекст. Новият метод предполага създаването на специални модули за Web Workers, които поддържат стандартни механизми за импорт на JavaScript и могат да се зареждат динамично, без да блокират изпълнението на worker-а. За зареждане на модулите в конструктора Worker е предвиден нов тип ресурс — ‘module’:
const worker = new Worker('worker.js', {
type: 'module'
}); - вградена възможност за обработка в JavaScript на компресирани потоци, която не изисква използването на външни библиотеки. За компресия и разопаковане са добавени API . Поддържа се компресия с използване на алгоритми gzip и deflate.
const compressionReadableStream
= inputReadableStream.pipeThrough(new CompressionStream('gzip')); - Добавено е CSS свойство ««, позволяващо разрязване на ниво всеки типографски символ, включително разрези до символи на пунктуацията, предварително зададени интервали (<pre>) и в средата на думи. Също така, добавено е CSS свойство «» позволяващо разрязване на неразривни последователности от символи на всяко място, ако в реда не е намерена подходяща позиция за разрязване.
- За медиен контекст, обработван в криптиран вид, е реализирана поддръжка на метода , предоставящ информация за възможностите на браузъра, свързани с декодирането на защитено съдържание (например, посоченият метод може да се използва за избор на сценарии с високо качество или икономия на енергия за декодиране, като се има предвид наличната пропускателна способност и размера на екрана).
- Добавен е метод , чрез който може да се получи информация за производителността на видео възпроизвеждането за коригиране на битрейта, разрешението и другите параметри на видеото.
- В API , който опростява интеграцията с съществуващите платежни системи, е добавена възможност за обработката на адреса и контактната информация на външен обработчик на платежната система (приложението на платежната система може да притежава по-точни данни, отколкото браузърът).
- Добавена е поддръжка на HTTP заглавката , позволяваща изпращането на допълнителни метаданни относно типа на свързаното с заявката съдържание (например, за заявка чрез тага img се посочва тип „image“, за шрифтове – „font“, за скриптове – „script“, за стилове – „style“ и т.н.). На базата на посочения тип, сървърът може да предприеме мерки за защита от определени типове атаки (например, маловероятно е връзката на обработвача за прехвърляне на пари да бъде зададена чрез тага img, затова такива заявки не трябва да се обработват).
- В JavaScript двигателя V8 на съхранението на указатели в хипа. Вместо пълната 64-битова стойност е осигурено съхранение само на уникалните долни битове на указателя. Подобна оптимизация е позволила да се намали потреблението на памет в хипа с 40%, цената на която е намаление на производителността с 3-8%.


- в инструментите за уеб разработчици:
- В уеб конзолата е добавена възможност за презапис на изрази let и class.
- Подобрени инструменти за отстраняване на грешки в WebAssembly. Добавена е поддръжка за стъпково отстраняване на грешки, задаване на точки на спиране и анализ на стек трасировките в изходния код, на който е написано приложението WebAssembly.
- Подобрена е панелът за анализ на мрежовата активност. Добавена е възможност за преглед на веригата от извиквания на скриптове, свързани с инициирането на заявка.
Добавени са нови колони Path и URL, в които се показват абсолютният път и пълният URL адрес за всеки мрежов ресурс. Осигурено е оцветяване на избраната заявка в обзорната диаграма.
- В таба Network Conditions е добавена опция за промяна на параметъра User-Agent.
- Предложен е нов интерфейс за конфигуриране на панела за аудит.
- На таба предоставя възможност за събиране на данни за покритие за всяка функция или за всеки кодов блок (по-подробна статистика, но изисква повече ресурси).
- В уеб конзолата е добавена възможност за презапис на изрази let и class.
- Действието на манифеста AppCache (технология за организиране на работата на уеб приложението в офлайн режим) до текущата директория на сайта (ако манифестът е бил зареден от www.example.com/foo/bar/, то възможността за преопределяне на URL адреса ще важи само в /foo/bar/). В Chrome 82 се планира напълно да бъде премахната поддръжката на AppCache. Причината е желанието да се премахне един от векторите за атаки, свързани с крос-сайтово скриптиране. Вместо AppCache се препоръчва да се използва API .
- поддръжка на остарялото API WebVR 1.1, вместо което може да се използва API , позволяващ достъп до компоненти за създаване на виртуална и добавена реалност и унифициращ работа с различни класове устройства, от стационарни шлемове за виртуална реалност до решения на базата на мобилни устройства.
- Обработчиците на протоколи, свързани чрез методите registerProtocolHandler() и unregisterProtocolHandler(), вече могат да работят само в защитен контекст (при достъп през HTTPS).
Освен нововъведенията и корекциите на грешки, в новата версия са отстранени . Много от уязвимостите са открити в резултат на автоматизирано тестване с инструменти. , , , и Не са установени критични проблеми, които да позволят заобикалянето на всички нива на защита на браузъра и изпълнението на код в системата извън средата на sandbox. В рамките на програмата за изплащане на парични награди за откритие на уязвимости за текущото издание, компанията Google е изплатила 37 награди на стойност 48 хиляди долара (една награда от $10000, три награди от $5000, три награди от $3000, четири награди от $2000, три награди от $1000 и шест награди от $500). Размерът на 17 награди все още не е определен.
Източник: opennet.ru


