Small FPP Bugs
Categories
(Core :: Privacy: Anti-Tracking, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox162 | --- | fixed |
People
(Reporter: tjr, Assigned: tjr)
References
(Blocks 1 open bug)
Details
Attachments
(4 external files)
While doing an audit over FPP's code, claude identified several small bugs/inconsistencies.
| Assignee | ||
Comment 1•11 days ago
|
||
FingerprintingWebCompatService imports the baseline and the FPP granular
override prefs in one loop. If the first of them failed to parse, or was not
an array, the loop returned early and the second pref was silently ignored.
Skip only the malformed pref instead.
Updated•11 days ago
|
| Assignee | ||
Comment 2•11 days ago
|
||
CreateOverridesFromText split the overrides on ',' and required each entry to
start with '+' or '-', so a hand-written value such as "+A, -B" silently
dropped every entry after the first. Trim whitespace around each entry and
skip empty entries. This applies to the global overrides prefs as well as to
granular overrides, which share the parser.
| Assignee | ||
Comment 3•11 days ago
|
||
The schema was passed to JsonSchema.Validator as a JSON string rather than an
object. The validator then sees no constraints, so every entry in the
granular overrides prefs was accepted, including malformed ones.
Pass the schema as an object. Doing that alone would have rejected valid
entries, because the domain pattern did not accept the bare '*' wildcard,
TLDs longer than six characters, or IDN TLDs in punycode form, so fix the
pattern as well. An empty thirdPartyDomain is accepted, since it is treated
the same as an absent one.
| Assignee | ||
Comment 4•11 days ago
|
||
Each granular override is applied on top of the global set of enabled targets
(FPP or baseline), which already includes the global overrides pref. That
result was computed once, when the granular overrides were imported, so a
later change to privacy.fingerprintingProtection.overrides or
privacy.baselineFingerprintingProtection.overrides (by the user, or by a Nimbus
enrollment mid-session) left the granular overrides based on the old global
set until the next Remote Settings sync or granular pref change.
FingerprintingWebCompatService already retains all the overrides it imported,
so when either global overrides pref changes, have nsRFPService ask it to send
them again after the global sets are updated. nsRFPService drives this, rather
than the service observing the prefs itself, so that the global sets are
guaranteed to be updated first. This adds no new state to nsRFPService.
While here, read the overrides out of the JS-implemented
nsIFingerprintingOverride objects before taking
sEnabledFingerprintingProtectionsMutex, so we no longer call into JS while
holding it.
Comment 6•9 days ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/49e6e7a98c1d
https://hg.mozilla.org/mozilla-central/rev/7300500bc900
https://hg.mozilla.org/mozilla-central/rev/fc2b20e1253e
https://hg.mozilla.org/mozilla-central/rev/8fe6d0eb02ba
Description
•