# Overview
This API has been optimized to meet the specific storage needs of extensions. It provides the same storage capabilities as the localStorage API with the following key differences:
- User data can be automatically synced with Chrome sync (using ).
- Your extension’s content scripts can directly access user data without the need for a background page.
- A user’s extension settings can be persisted even when using split incognito behavior.
- It’s asynchronous with bulk read and write operations, and therefore faster than the blocking and serial .
- User data can be stored as objects (the stores data in strings).
- Enterprise policies configured by the administrator for the extension can be read (using with a schema).
# Introduce a user interface
Extensions can have many forms of a user interface; this one will use a . Create and add a file named to the extension’s directory. This extension uses a button to change the background color.
Like the background script, this file must be declared in the manifest in order for Chrome to present it in the extension’s popup. To do this, add an object to the manifest and set as the action’s .
This popup’s HTML references an external CSS file named . Add another file to the extension’s directory, name it appropriately, and add the following code.
Designation for toolbar icons is also included under in the field. Download the images folder here, unzip it, and place it in the extension’s directory. Update the manifest so the extension knows how to use the images.
Extensions also display images on the extension management page, the permissions warning, and favicon. These images are designated in the manifest under .
By default, extensions appear in the extensions menu (the puzzle piece). Pinning the extension will display the icon in the toolbar.
If the extension is reloaded at this stage, it will include the provided icon rather than the default placeholder, and clicking the action will open a popup that displays a button showing the default color.
The last step for the popup UI is adding color to the button. Create and add a file named with the following code to the extension’s directory.
This code grabs the button from and requests the color value from storage. It then applies the color as the background of the button. Include a script tag to in .
Reload the extension to view the green button.
API
Теперь рассмотрим API, который я использовала для создания этого расширения.
Таймеры
Таймеры Chrome — это в основном setTimeout и setInterval. Для получения дополнительной информации, ознакомьтесь с документацией.
Одно интересное замечание о таймерах в Chrome — они работают постоянно. Так как освобождение ресурсов памяти реализовано здесь плохо. В этом я убедилась, когда использовала метод clearAll для удаления таймеров, созданных при предыдущих загрузках или установках расширения. Единственный способ решения данной проблемы – указывать уникальное имя таймера каждый раз, когда загружается расширение. А также сбрасывать другие таймеры без этого уникального имени.
Фоновые скрипты
В своем расширении Eye Rest используется два фоновых скрипта: прослушиватель событий и файл вспомогательных функций.
Я хотела, чтобы фоновый скрипт очищал все существующие таймеры, создавал новый таймер и добавлял оставшееся время до истечения таймера в локальное хранилище сразу после загрузки расширения.
Чтобы сделать функцию clearAndCreateAlarm доступной для фонового скрипта, я добавила первый элемент helpers.js в background> scripts в файле manifest.json.
Я также хотела, чтобы скрипт всплывающего окна делал то же самое, когда пользователь отключал функционал расширения. Чтобы сделать функцию доступной для всплывающего окна, я размещаю вспомогательный скрипт в HTML-файле вплывающего окна.
Документация
Изучите:
- Руководство Google по расширениям браузера.
- Руководство по началу работы.
- Обзор по расширениям Chrome.
Файл manifest.json предоставляет браузеру информацию о расширении. В том числе о том, где расположены файлы и иконки расширения, а также данные для доступа к API. Вот как выглядел мой файл manifest.json:
https://github.com/jennz0r/eye-rest/blob/master/manifest.json
Изображение, которое описывает архитектуру расширения.
Файл background.js является обработчиком событий расширения. Он постоянно прослушивает события браузера, которые вы передаете через Chrome Extension API. Google говорит, что эффективный фоновый скрипт загружается только тогда, когда он необходим, и выгружается, когда простаивает.
Popup — это маленькое окно, которое появляется при клике по иконке расширения в меню Chrome. Оно состоит из разметки и скрипта. Вы можете указать браузеру, где его найти, в разделе manifest.json — page_action: { «default_popup»: FILE_NAME_HERE }.
Страница параметров является именно тем, что ожидается. На ней отображаются настраиваемые параметры, выводимые пользователю, только когда он кликает правой кнопкой мыши в меню Chrome и выбирают пункт «Параметры» для расширения. Эта страница также состоит из разметки и скриптов. Вы можете указать браузеру, где ее найти, в разделе options_page: FILE_NAME_HERE файла manifest.json.
Content scripts — это крипты, которые будут взаимодействовать с любыми окнами или вкладками, открытыми пользователем. Они также будут взаимодействовать с вкладками и окнами, открытыми расширением.
# Give users options
The extension currently only allows users to change the background to green. Including an options page gives users more control over the extension’s functionality, further customizing their browsing experience.
Start by creating a file in the directory named and include the following code.
Then register the options page in the manifest,
Reload the extension and right-click the extension icon in the toolbar then select Options. Alternatively, click DETAILS and scroll down the details page and select Extension options.
The last step is to add the options logic. Create a file named in the extension’s directory with the following code.
Four color options are provided then generated as buttons on the options page with onclick event listeners. When the user clicks a button, it updates the color value in the extension’s storage. Since all of the extension’s files pull the color information from this storage, no other values need to be updated.
Что нас ждет в скором времени
Кроме API для работы с файловой системой, есть и другие, которые пока находятся в разработке.
- Scheduled Notifications (Event Alarms) позволит работать с запланированными задачами (преимущественно с оповещениями). Планируется, что с помощью этого API будут обходиться системы защиты, блокирующие выполнение заданий или отображение уведомлений.
- Web Share Target даст возможность обмениваться данными между пользователями (текст, ссылки и изображения).
- Wake Lock сможет блокировать ориентацию устройства и запрещать ему уходить в спящий режим.
- WebHID откроет доступ к работе с устройствами интерфейса ввода-вывода (монитор, мышь, клавиатура).
- Local Font Access даст возможность посмотреть и использовать локальные шрифты пользователя.
- Async Cookies позволит проводить асинхронные операции с Cookies.
- User Idle Detection поможет определять, когда пользователь активен, а когда нет. Также с помощью этого API можно будет проверить, не заблокирован ли экран устройства.
Что дает новое API
Пока запущено только одно API, которое позволяет работать с файловой системой пользователя. Оно помогает создавать графические, аудио-, видео- и текстовые редакторы, работающие онлайн. Такие инструменты существуют и сейчас, но пока что пользователю на самом деле приходится загружать файл на сервер, выполнять необходимые действия, а потом скачивать его обратно. Новые функции же позволят работать с файлами прямо на компьютере.
С одной стороны, это позволит расширить возможности редактирования, которые ранее были недоступны, а также снизить нагрузку на серверы — разработчикам больше не придется тратить деньги на то, чтобы хранить все файлы пользователей.
С другой, — бреши. Разрешив доступ к своим файлам, конечный пользователь рискует тем, что они станут доступны третьим лицам, будут повреждены или удалены. И тут опасность может исходить как от разработчиков таких приложений, так и от уязвимостей новой технологии. Будем надеяться, что их устранят до того, как появятся первые общедоступные решения.
Пока известно, что доступ к файлам происходит через асинхронное API, которое позволяет проводить дополнительные проверки безопасности.
Также существуют два значительных недостатка:
- Приложения будут работать только в Chrome (хотя это плюс, если вы не фанат адаптивной разработки), но для Google это дополнительная возможность переманить пользователей других браузеров.
- Приложения не смогут работать без интернета: если соединение пропало или отсутствует, будет проблематично проводить операции с файлами.
Планируется, что это и другие API будут работать на всех устройствах и платформах одинаково.
Responsive Viewer
Изменять размер окна браузера может быть неудобно, особенно если нужно проверить внешний вид приложения больше, чем на 2-3 размерах экрана. В Chrome есть встроенная возможность увидеть приложение на экранах других размеров, но эта функциональность ограничена одновременным просмотром только одного viewport-а.
Когда нужно протестировать, как работает приложение на разных размерах экрана, можно использовать Responsive Viewer — расширение позволяет сделать это одновременно. Можно переключаться между режимами телефона и планшета, много предопределенных размеров экрана для разных девайсов.
Функционал Responsive Viewer включает:
- синхронный скролл
- просмотр приложения на разных экранах одновременно
- набор предопределённых размеров экрана популярных девайсов
- спрятать/показать экран
- добавление своих размеров экрана
Цветовая дифференциация профилей и поиск вкладок
В Chrome 89 разработчики добавили возможность кастомизации пользовательских профилей. Для каждого из аккаунтов в браузере теперь можно выбрать свою цветовую схему, что позволяет быстро определить, какой из профилей используется в данный момент времени.
Нововведение позволит отличать профили в браузере по выбранному оттенку
Изменился и сам интерфейс работы с учетными записями, став более интуитивным. Это нововведение пока недоступно мобильным пользователям – оно реализовано исключительно в настольной версии браузера.
Еще одна новая функция в Chrome – это поиск вкладок, доступный по нажатию пиктограммы со стрелочкой в верхнем правом углу окна браузера. Это выпадающий список всех открытых страниц во всех открытых окнах Chrome, в котором по умолчанию отображается пять вкладок, плюс есть строка поиска.
Поиск вкладок
Эта строка нужна для нахождения нужных вкладок по ключевым словам. Функция пригодится тем, у кого в браузере регулярно открыты десятки вкладок, и им приходится тратить много времени для поиска нужной среди них. Как и в случае со списком для чтения, поиск вкладок следует активировать через флаги (chrome://flags/#enable-tab-search).
Properties
local
Items in the storage area are local to each machine.
Properties
QUOTA_BYTES
5242880
The maximum amount (in bytes) of data that can be stored in local storage, as measured by the JSON stringification of every value plus every key’s length. This value will be ignored if the extension has the unlimitedStorage permission. Updates that would cause this limit to be exceeded fail immediately and set runtime.lastError.
managed
Items in the storage area are set by the domain administrator, and are read-only for the extension; trying to modify this namespace results in an error.
Properties
-
MAX_ITEMS
512The maximum number of items that can be stored in sync storage. Updates that would cause this limit to be exceeded will fail immediately and set .
-
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
1000000Deprecated
The storage.sync API no longer has a sustained write operation quota.
-
MAX_WRITE_OPERATIONS_PER_HOUR
1800The maximum number of , , or operations that can be performed each hour. This is 1 every 2 seconds, a lower ceiling than the short term higher writes-per-minute limit.
Updates that would cause this limit to be exceeded fail immediately and set .
-
MAX_WRITE_OPERATIONS_PER_MINUTE
120The maximum number of , , or operations that can be performed each minute. This is 2 per second, providing higher throughput than writes-per-hour over a shorter period of time.
Updates that would cause this limit to be exceeded fail immediately and set .
-
QUOTA_BYTES
102400The maximum total amount (in bytes) of data that can be stored in sync storage, as measured by the JSON stringification of every value plus every key’s length. Updates that would cause this limit to be exceeded fail immediately and set .
-
QUOTA_BYTES_PER_ITEM
8192The maximum size (in bytes) of each individual item in sync storage, as measured by the JSON stringification of its value plus its key length. Updates containing items larger than this limit will fail immediately and set .
Types
StorageArea
Properties
-
onChanged
eventChrome 73+
Fired when one or more items change.
The function looks like:
-
callback
functionThe parameter looks like:
-
-
clear
functionPromise
Removes all items from storage.
The function looks like:
-
get
functionPromise
Gets one or more items from storage.
The function looks like:
-
keys
string | string[] | object optionalA single key to get, list of keys to get, or a dictionary specifying default values (see description of the object). An empty list or object will return an empty result object. Pass in to get the entire contents of storage.
-
callback
function optionalThe parameter looks like:
-
-
getBytesInUse
functionPromise
Gets the amount of space (in bytes) being used by one or more items.
The function looks like:
-
keys
string | string[] optionalA single key or list of keys to get the total usage for. An empty list will return 0. Pass in to get the total usage of all of storage.
-
callback
function optionalThe parameter looks like:
-
-
remove
functionPromise
Removes one or more items from storage.
The function looks like:
-
keys
string | string[]A single key or a list of keys for items to remove.
-
callback
function optionalThe parameter looks like:
-
-
set
functionPromise
Sets multiple items.
The function looks like:
-
items
objectAn object which gives each key/value pair to update storage with. Any other key/value pairs in storage will not be affected.
Primitive values such as numbers will serialize as expected. Values with a and will typically serialize to , with the exception of (serializes as expected), , and (serialize using their representation).
-
callback
function optionalThe parameter looks like:
-
Properties
-
newValue
any optionalThe new value of the item, if there is a new value.
-
oldValue
any optionalThe old value of the item, if there was an old value.
Функционал Eye Rest
Что за расширение я создала? Оно позволяет отдохнуть глазам в течение двадцати секунд каждые двадцать минут.
Схема работы расширения:
- Если расширение работает,
- Если пользователь не нажал кнопку «Пауза» во всплывающем окне,
- Если счетчик во всплывающем окне достиг отметки 00:00, ТОГДА
- Открывается новое окно с HTML-таймером, И
- Начинается 20-секундный обратный отсчет в HTML-таймере, И
- Сбрасывается счетчик всплывающего окна на 20:00.
- Если HTML-таймер достиг нуля, ТОГДА
Звучит довольно просто, но эти таймеры запутали меня. Чтобы понять суть проблемы, посетите репозиторий GitHub для Eye Rest.
Настройка
Что нужно знать:
- Обратные вызовы;
- Таймауты;
- Инструменты разработчика Chrome.
При создании расширений под Chrome используется большое количество обратных вызовов. Поэтому перед началом я рекомендую освежить в памяти эту тему.
Преувеличение
При создании расширения я не учла, что одновременно буду работать с тремя таймерами. И я сэкономила бы много времени, если бы уделила внимание их организации и ознакомлению с документацией. Обратите внимание, что это руководство описывает только создание собственного пользовательского окна
Но не редактирование существующих окон или вкладок
Обратите внимание, что это руководство описывает только создание собственного пользовательского окна. Но не редактирование существующих окон или вкладок
Дополнительные изменения
В Chrome 89 Google реализовала ряд новых API (WebHID и Web Serial) для быстрого взаимодействия браузера с целым списком периферийных устройств, в том числе и с 3D-принтерами без необходимости установки дополнительного ПО.
Новые функции для разработчиков
В мобильной версии Chrome 89 для Android заработала функция WebNFC. Она дает веб-сайтам возможность считывать и записывать NFC-метки.
Также в Android-версию Chrome разработчики добавили возможность декодирования AVIF-изображений в исходном формате. Изображения в этом формате весят меньше в сравнении с JPG или WebP и позволяют сайтам загружаться быстрее, потребляя меньше трафика.
Web Developer Form Filler
Тестировщики, работающие с формами прекрасно знают, как приятно может быть многократное заполнение одной и той же большой формы. После пятого раза, обычно изобретается новый язык для заполнения.
Для решения таких проблем отлично подходят автофиллеры для форм. WDFF — одно из таких расширений. Когда форма заполняется в первый раз, оно позволяет одним кликом сохранить значения всех полей. Когда нужно будет заполнить форму еще раз, расширение восстановит эти значения.
WDFF позволяет:
- сохранять данные для повторной вставки в форму
- изменять и обновлять селекторы, которые используются расширением
- сохранять несколько наборов значений для одной и той же формы
- заполнять форму рандомно сгенерированными значениями
Ни одно из этих расширений не заменит ручного тестирования, но каждое из них поможет упростить вам жизнь. Все они значительно сэкономят время на выполнение однотипных рутинных задач и позволят сфокусироваться на реально важных вещах во время тестирования.
Другие API
Windows
Для создания окна таймера используется Windows API. Этот процесс инициируется фоновым скриптом. Я передаю timer.html, type, size, position и другие визуальные опции как параметр URL.
Хранилище
Чтобы передавать информацию между фоновым скриптом и скриптом всплывающего окна, используйте хранилище Chrome или локальное . Одним из преимуществ использования локального хранилища является отсутствие лимитов на операции записи.
Обратный отсчет должен изменяться каждую секунду. Он довольно сложный, и для этого нужно много записей. Вот почему я выбрала вариант локального хранилища. Вы можете увидеть, как я получаю и устанавливаю эти переменные в скриптах Background, Helper и Popup. Найдите в коде date, nextAlarmTime и isPaused.
Declarative Content
Declarative Content API позволяет вывести страницу расширения на основе несколько типов сопоставлений без необходимости получать права доступа к хосту Поэтому он нужен нам, чтобы расширение работало в браузере!
Я реализовала это в моем фоновом скрипте. Всплывающее окно расширения должно отображать на каждой просматриваемой странице в браузере.
Как открыть Chrome DevTools
Открывается «Инструмент разработчика» через главное меню Хрома.
- Жмём на кнопку в виде трёх полос и здесь наводим курсор на пункт «Дополнительные инструменты».
- В следующем всплывающем окне выбираем, собственно, «Инструменты разработчика».
- Или нажимаем комбинацию клавиш Ctrl + Shift + I для Windows и Command + Option + I на MacOS.
- Либо можно просто кликнуть правой кнопкой мыши по любому элементу и в контекстном меню выбрать «Просмотреть код».
Иногда бывает нужно посмотреть на исходник страницы и в этом случае можно выбрать «Просмотр кода страницы» или воспользоваться горячими клавишами, например, F12 для Windows. Открывается он в отдельном окне и представлен в виде сплошного кода, который не редактируется. Его можно просмотреть, скопировать, перейти по имеющимся к коде ссылкам.
Основные кнопки меню и навигации
Инструменты разработчика открываются непосредственно на той странице, откуда вы их вызвали. Окно содержит в себе достаточно много элементов:
- В правой части окна инструментов расположена кнопка, которая закрывает инспектор.
- Рядом кнопка «кебаб» – при нажатии на нее появляется выпадающее меню, с перечнем других функций:
-
Dock Side — окно инструментов разработчика можно перевести несколько режимов:
- слева;
- снизу;
- справа;
- в отдельном окне.
Hide console drawer скрывает консоль в нижней части окна — быстро открыть/закрыть консоль, находясь на любой вкладке, можно клавишей Esc.
Search
Инструмент Search позволяет искать по всем файлам ресурса, связанных с текущей веб-страницей. Чтобы активировать поиск нажмите комбинацию клавиш Ctrl + Shift + F.
Здесь есть дополнительные инструменты и полезные шорткаты, а также настройки и документация. Возле кнопки меню отображаются иконки предупреждения и ошибок, если они есть на странице. При клике на неё можно перейти к просмотру подробностей.
Адаптив
Кнопка активации инструмента для просмотра сайтов в различных разрешениях находится в левом верхнем углу. Это очень важный инструмент, который очень удобен при разработке адаптивных интерфейсов, мобильных версий сайтов, а также для тестирования интерфейсов в разных разрешениях мониторов и при разных ориентациях устройств.
После того как вы активировали этот режим вверху вы можете выбрать тип устройства, который вы хотите эмулировать. Здесь представлены несколько моделей Nexus, IPhone и IPod. Выбрав устройство, вы увидите его разрешение экрана, физический его размер относительно размера вашего экрана, а также появится возможность сменить ориентацию устройства с вертикальной на горизонтальную и наоборот.
В самом низу этого выпадающего списка есть пункт Edit, нажав на который мы попадаем в меню редактирования устройств, где мы можем добавить другие заготовленные устройства или удалить любое из уже выбранных.
Если вам не подходят варианты предложенных устройств, то вы можете выбрать вариант Responsive и задать разрешение экрана вручную.
5 ответов
Лучший ответ
Проект W3C говорит об этом
Поэтому, если браузеры следуют спецификации, она должна сохраняться до тех пор, пока пользователь не удалит ее во всех браузерах, я не нашел ни одного, что было бы удалено ни в одном из моих проектов.
Хорошая статья для чтения — также http://ejohn.org/blog/dom-storage/
122
Dominic Green
16 Дек 2011 в 16:39
Вместимость
Каждый домен может хранить минимум 5 МБ данных в LocalStorage.
Для некоторых браузеров можно хранить до 1 ГБ данных .
3
Hasan Sefa Ozalp
15 Ноя 2020 в 00:31
Если в Chrome при выполнении «очистки данных просмотра» вы выберете параметр «Файлы cookie и другие данные сайтов и плагинов», то данные sessionStorage будут удалены.
3
Uday Sravan K
17 Апр 2016 в 19:03
Контент в localstorage сохраняется до тех пор, пока пользователь решает очистить хранилище (полностью или одно значение внутри него).
3
Fabrizio Calderan
16 Дек 2011 в 16:46
LocalStorage также известен как веб-хранилище, хранилище HTML5 и хранилище DOM (все они означают одно и то же).
LocalStorage похож на sessionStorage, за исключением того, что данные, хранящиеся в localStorage, не имеют срока действия, а данные, хранящиеся в sessionStorage, очищаются при завершении сеанса просмотра (т. е. когда браузер / браузер вкладка закрыта). Хранилище сеансов используется гораздо реже, чем localStorage, и существует только в пределах текущей вкладки браузера — даже две вкладки, загруженные с одного и того же веб-сайта, будут иметь разные данные sessionStorage. Данные sessionStorage сохраняются при обновлении страницы, но не при закрытии / открытии вкладки. С другой стороны, данные LocalStorage используются всеми вкладками и окнами из одного источника. Срок действия данных LocalStorage не истекает; он остается после перезапуска браузера и даже после перезагрузки ОС.
LocalStorage доступен во всех браузерах, но постоянство реализовано не всегда. В частности, localStorage может быть очищен действием пользователя и может быть очищен случайно (кто мог подумать, что очистка всех файлов cookie также очищает localStorage?).
В Firefox localStorage очищается при соблюдении этих трех условий: (а) пользователь очищает недавнюю историю, (б) файлы cookie выбраны для очистки, (в) временной диапазон — «Все».
В Chrome localStorage очищается, когда выполняются следующие условия: (а) очистить данные просмотра, (б) выбраны «файлы cookie и другие данные сайта», (в) временной интервал — «с начала времени». В Chrome теперь также можно удалить localStorage для одного конкретного сайта .
В IE, чтобы очистить localStorage: (a) Инструменты — Свойства обозревателя, (b) вкладка «Общие», (c) удалить историю просмотров при выходе, (d) убедиться, что «Файлы cookie и данные веб-сайтов» (или «временные файлы Интернета и файлы веб-сайтов» «) выбрано, (д) рассмотрите возможность снятия флажка» Сохранить данные избранного веб-сайта «вверху
В Safari: (a) Щелкните Safari (b) Настройки (c) Выберите вкладку Конфиденциальность (d) Щелкните Удалить все данные веб-сайта (e) Щелкните Удалить сейчас
Opera: Несмотря на отличные статьи о localStorage с сайта Opera, я еще не нашел четких (непрограммных) инструкций для пользователей о том, как очистить localStorage. Если кто-нибудь найдет, оставьте, пожалуйста, комментарий под этим ответом со ссылочной ссылкой.
На сайте разработчиков Opera есть отличное описание localStorage:
Ресурсы:
146
cssyphus
8 Май 2020 в 20:13
Get a Chrome update when available
Normally updates happen in the background when you close and reopen your computer’s browser. But if you haven’t closed your browser in a while, you might see a pending update:
- On your computer, open Chrome.
- At the top right, look at More .
- If an update is pending, the icon will be colored:
- Green: An update was released less than 2 days ago.
- Orange: An update was released about 4 days ago.
- Red: An update was released at least a week ago.
To update Google Chrome:
- On your computer, open Chrome.
- At the top right, click More .
- Click Help About Google Chrome.
- Click Update Google Chrome
Important: If you can’t find this button, you’re on the latest version.
.
- Click Relaunch.
The browser saves your opened tabs and windows and reopens them automatically when it restarts. Your Incognito windows won’t reopen when Chrome restarts. If you’d prefer not to restart right away, click Not now. The next time you restart your browser, the update will be applied.
# Take the next step
Congratulations! The directory now holds a fully-functional, albeit simplistic, Chrome extension.
What’s next?
- The Chrome Extension Overview backs up a bit, and fills in a lot of detail about the Extensions architecture in general, and some specific concepts developers will want to be familiar with.
- Learn about the options available for debugging Extensions in the debugging tutorial.
- Chrome Extensions have access to powerful APIs above and beyond what’s available on the open web. The chrome.* APIs documentation will walk through each API.
- The developer’s guide has dozens of additional links to pieces of documentation relevant to advanced extension creation.
# Create the manifest
Extensions start with their manifest. Create a file called and include the following code.
The directory holding the manifest file can be added as an extension in developer mode in its current state.
- Open the Extension Management page by navigating to .
- Alternatively, open this page by clicking on the Extensions menu button and selecting Manage Extensions at the bottom of the menu.
- Alternatively, open this page by clicking on the Chrome menu, hovering over More Tools then selecting Extensions
- Enable Developer Mode by clicking the toggle switch next to Developer mode.
- Click the Load unpacked button and select the extension directory.
Ta-da! The extension has been successfully installed. Because no icons were included in the manifest, a generic icon will be created for the extension.
Обновленный Chrome
Интернет-гигант Google выпустил браузер Chrome 89 с новыми функциями, в том числе и заимствованными из Microsoft Edge и Apple Safari. Распространение обновления началось – к примеру, пользователи Windows 10 уже получили его.
Изменения в Chrome 89 касаются, по большей части, взаимодействия пользователя с браузером и направлены на упрощение и улучшение пользования им. Определенные новые функции найдут в браузере и разработчики. Однако установить новую версию смогут не все – еще в начале февраля 2021 г. CNews писал, что с этой версии браузер перестанет поддерживать старые процессоры Intel и AMD.
В итоге тем, кто до сих пор работает на ПК или ноутбуке старше 15 лет, придется и дальше пользоваться Chrome 88 или искать альтернативный обозреватель.