Этот сайт имеет ограниченную функциональность, пока мы проводим техническое обслуживание для улучшения его работы. Если какая-либо статья не решила вашу проблему и вы хотите задать вопрос, наше сообщество поддержки ждёт вас: @FirefoxSupport в Твиттере и /r/firefox на Reddit.

Поиск в Поддержке

Избегайте мошенников, выдающих себя за службу поддержки. Мы никогда не попросим вас позвонить, отправить текстовое сообщение или поделиться личной информацией. Сообщайте о подозрительной активности, используя функцию «Пожаловаться».

Подробнее

How can I delete all data associated with a temporary add-on?

  • 3 ответа
  • 1 имеет эту проблему
  • 11 просмотров
  • Последний ответ от Wesley Branton

more options

I have an add-on which I load via the about:debugging page. This add-on stores data using the localStorage and IndexedDB APIs. If I remove the add-on and then restart Firefox, the data is still there. How can I remove all data associated with an add-on?

I have an add-on which I load via the about:debugging page. This add-on stores data using the localStorage and IndexedDB APIs. If I remove the add-on and then restart Firefox, the data is still there. How can I remove all data associated with an add-on?

Все ответы (3)

more options

Before you remove the add-on, press the Inspect button in the about:debugging page and then click the Console tab within the tab that opens.

Then enter the following code:

storage.local.clear();
storage.sync.clear();

That clears the data from both the local and sync storage areas.

Hope this helps.

more options

Your answer of course works but is not really satisfactory since it's a bit of a hack, as I'm sure you realize. What if your add-on has a behavior which causes it to modify stored data every few seconds, or continually? Then that wouldn't work.

What I've decided to do is to not give my extension an ID ( remove the `applications.gecko.id` field in the manifest). This seems to cause FF to clear both storage and indexDB when the extension is removed and re-added on the about:debugging screen.

I suppose in a sense, this is the canonical way of doing what I'm trying to do. You set up a development version of your add-on so that Firefox treats it as a fresh install each time, so you can test how it behaves on a fresh machine. It still seems odd that there isn't a way to clear add-on data. Does that mean the data is just going to be sitting there taking up space until I uninstall Firefox? It's only a few hundred KB, but it still seems unfortunate.

more options

Extensions use two main types of storage: Local and Sync.

The local data is stored in your Firefox profile folder. It gets removed if you uninstall your extension or if you are using a temporary extension.

The sync data gets stored on the Firefox Sync cloud, so it's a little more permanent. It stays, even when the add-on is removed. That's why it will come back when you reinstall your extension.

I'm not sure if there's a more efficient way to do it, but if your extension constantly modifies data, it's still possible to clear the data. The method I would probably recommend for your situation is to create a dummy copy of your extension with the same ID. Make sure it's a blank extension that doesn't do anything. Then you can remove your real extension, install the dummy extension and you should be able to run the console commands I put in my above post.

Another alternative would be to include a runtime.onInstalled listener in your background script. It will trigger when you install or update your browser extension. You can include the code that I provided above in there instead to erase the data when the extension is first updated.

Hope this helps.