[tbb-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:19:46 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
-------------------------------------------------+-------------------------
Comment (by gk):
Replying to [comment:3 acat]:
> 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.
Please do.
> 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.*`.
Good questions. I don't know the answers without looking closer. Maybe we
could file a ticket for that? Sounds like we should go with the other
option for now. What are the drawbacks for that one?
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/31396#comment:4>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tbb-bugs
mailing list