Сохранение в SQLite из расширения Chrome

Существует новый подход JSWASM, который позволяет сохранять в SQLite (быстрый способ OPFS) в браузере через javascript Worker. Образец здесь , который (вроде) для расширения Chrome. В идеале можно было бы сохранить из background.js, но неясно, можно ли оттуда вызывать воркер в MV3 на основе this и this. Есть ли у кого-нибудь простой рабочий пример, более близкий к моему варианту использования, который сохраняет содержимое с активной вкладки пользователя в базу данных SQLite? Спасибо.

Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP
В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS
Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и...
Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow
В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По...
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.
Конфигурация Jest в angular
Конфигурация Jest в angular
В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.
0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

OPFS зависит от метода createSyncAccessHandle(), который предоставляется в Worker потоках. Обычное обнаружение признаков выглядит следующим образом:

if (self instanceof WorkerGlobalScope && 'createSyncAccessHandle' in self.FileSystemFileHandle.prototype) {
  // OPFS in `Worker` is supported!
}

Теперь работник службы расширений (как в настоящее время реализовано в Chrome) является экземпляром ServiceWorkerGlobalScope, поэтому API там не поддерживается.

К сожалению, на данный момент единственный выход — открыть страницу расширения и запустить оттуда код OPFS.

Спасибо... Боже, так из (а) контента js, (б) фона js, (в) всплывающего окна js, (г) отдельно запущенной страницы, только (г) позволяет получить доступ к SQLite через OPFS? (Я предполагаю, что нет никакого трюка с «c», чтобы получить сообщение «пожалуйста, сохраните»). Это действительно сокращает варианты использования. Думаю, мне нужно кешировать в обычное хранилище и периодически подталкивать пользователя открывать страницу для сохранения... :-(

Vince 15.02.2023 16:37

Да, на данный момент это сводится к этому. Было бы интересно выяснить, можно ли сделать API доступным и из ServiceWorkerGlobalScope. Возможно, стоит перенести это на WebExtensions CG.

DenverCoder9 15.02.2023 17:28

Спасибо. Я создал задачу на сайте, на который вы ссылались: github.com/w3c/webextensions/issues/352

Vince 15.02.2023 19:09

Другие вопросы по теме