[tor-bugs] #31396 [Applications/Tor Browser]: Communication with noscript for security settings not working in nightlies
Tor Bug Tracker & Wiki
blackhole at torproject.org
Wed Aug 28 12:14:51 UTC 2019
#31396: Communication with noscript for security settings not working in nightlies
-------------------------------------------------+-------------------------
Reporter: acat | Owner: tbb-
| team
Type: defect | Status:
| needs_information
Priority: Medium | Milestone:
Component: Applications/Tor Browser | Version:
Severity: Normal | Resolution:
Keywords: ff68-esr, TorBrowserTeam201908, | Actual Points:
tbb-9.0-must-alpha |
Parent ID: | Points:
Reviewer: | Sponsor:
| Sponsor44-can
-------------------------------------------------+-------------------------
Changes (by acat):
* status: new => needs_information
Comment:
The issue has to do with a indexedDB error (`InvalidStateError: A mutation
operation was attempted on a database that did not allow mutations.`),
which is thrown when noscript tries to store something via
`browser.storage.local` API (when it receives the setting change message
from torbutton). This API moved to a indexedDB implementation in 62.
I tracked down the cause of indexedDB not working to the quota manager
service clearing (`Services.qms.clear()`) in torbutton. This is done on
startup and on `New Identity`.
I can reproduce this also on Firefox 68:
1. Create a new profile.
2. Install noscript from AMO.
3. Set `dom.quotaManager.testing` pref to `true`.
4. Call `Services.qms.clear()` in console.
5. Set `dom.quotaManager.testing` pref to `false`.
6. Open debug addon window for noscript in `about:debugging`.
7. Run `browser.storage.local.set({foo:bar})`, it should throw
`InvalidStateError: A mutation operation was attempted on a database that
did not allow mutations.`.
I think this does not affect indexeddb itself, but just the
`browser.storage.*` implementation that uses indexeddb internally. I
suspect `Services.qms.clear()` must be clearing some internal indexedDB
data that is preventing the webextension storage API from working
properly.
Not sure if this is really a bug from Firefox side, since probably we
should not be calling `Services.qms.clear()` directly. But perhaps we can
file one.
So we can solve this by not calling `Services.qms.clear()` (do we still
need it? was it just for asm.js?). Or we can set
`extensions.webextensions.ExtensionStorageIDB.enabled` to `false`, to use
the previous non-indexedDB backend for `browser.storage.*`.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/31396#comment:3>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list