Функция обработки файлов позволяет настроить ChromeOS таким образом, чтобы ваше расширение могло открывать файлы либо с помощью меню «Открыть» в меню «Файл», либо с помощью меню «Открыть с помощью» в контекстном меню. После открытия вы обрабатываете данные файла с помощью API Launch Handler веб-платформы. Затем вы используете стандартные API веб-платформы для отображения или обработки файла .

Доступность в расширениях
ChromeOS 120 или более поздняя версия.
Разрешения
Для работы с файлами не требуются никакие разрешения.
Манифест
Необходимо добавить массив "file_handlers" в файл manifest.json.
Вспомогательные контексты
Этот API может использоваться в сервисных обработчиках расширений, всплывающих окнах, боковых панелях или скриптах контента.
Настройте обработчик файлов.
Каждый член класса "file_handlers" — то есть каждый обработчик файлов — указывает тип или типы файлов, которые должны обрабатываться конкретной страницей расширения.
Указанные вами обработчики будут добавлены в окно «Файлы» ChromeOS, а именно в меню «Открыть» и «Открыть с помощью». Они будут отображаться в этих меню только тогда, когда пользователь выберет файл с определенным расширением. Например, если обработчик файла указывает расширение .txt меню ChromeOS будут отображать этот обработчик только при выборе файла с этим расширением.
Обработка файла
Обработчик файла — это HTML-файл, содержащийся в вашем расширении. Когда пользователь выбирает ваш обработчик из меню, HTML-файл открывается в новой вкладке. Обработка файла, будь то его отображение или использование каким-либо другим способом, осуществляется с помощью JavaScript, используя соответствующие API веб-платформы. Код обработки должен находиться в отдельном JavaScript-файле и включаться через тег <script> , а также должен быть включен в ваше расширение. Скриптовый файл использует интерфейс LaunchQueue API обработчика запуска для получения объекта FileSystemFileHandle .
Пример
В следующем примере показано, как получить объект FileSystemFileHandle с помощью интерфейса LaunchQueue . Чтобы увидеть обработку файлов в действии, установите демонстрационный модуль File Handling Demo .
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````