Move from a single tracking flag to a matchedinfo object

NEW
Unassigned

Status

()

enhancement
P3
normal
Last year
11 months ago

People

(Reporter: francois, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

- nsUrlClassifierClassifyCallback::HandleEvent() should include, in its
  OnClassifyComplete() call, a new "matched info" object that will contain
  all of [[https://searchfox.org/mozilla-central/rev/da499aac682d0bbda5829327b60a865cbc491611/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp#1419][mMatchedArray]] and methods like:
  - IsBlockableTracker() -- urlclassifier.trackingTable
  - IsThottleable() -- urlclassifier.throttleableTrackingTable
  - IsTracker() -- urlclassifier.trackingAnnotationTable
  - (later we'll add IsAd(), IsAnalytics()...)

- move the [[https://searchfox.org/mozilla-central/rev/da499aac682d0bbda5829327b60a865cbc491611/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp#1433-1442][selection of the highest-priority match]] to a function inside
  [[https://searchfox.org/mozilla-central/rev/da499aac682d0bbda5829327b60a865cbc491611/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp#1409-1414][ClassifyMatchedInfo]] so that [[https://searchfox.org/mozilla-central/rev/d4b9e50875ad7e5d20f2fee6a53418315f6dfcc0/netwerk/base/nsChannelClassifier.cpp#1135][nsChannelClassifier]], [[https://searchfox.org/mozilla-central/rev/da499aac682d0bbda5829327b60a865cbc491611/dom/base/nsDocument.cpp#12816][PrincipalFlashClassifier]]
  and [[https://searchfox.org/mozilla-central/rev/da499aac682d0bbda5829327b60a865cbc491611/toolkit/components/reputationservice/LoginReputation.cpp#158][LoginWhitelist]] can use it whereas [[https://searchfox.org/mozilla-central/rev/d4b9e50875ad7e5d20f2fee6a53418315f6dfcc0/netwerk/base/nsChannelClassifier.cpp#933][TrackingURICallback]] won't need to do it

- change [[https://searchfox.org/mozilla-central/rev/d4b9e50875ad7e5d20f2fee6a53418315f6dfcc0/netwerk/base/nsChannelClassifier.cpp#925][mList]] to be the "matched info" object

- in TrackingURICallback::OnTrackerFound(), change
  nsChannelClassifier::ShouldEnableTrackingProtection() to pass in a list of
  the tables that matched and an output param to set the list & provider

- change nsIDocument::mTrackingScripts array to store "matched info" objects

- change nsIDocument::IsTrackingScript() to return objects

- update all existing users of tracking annotations to use these objects
  instead the of various mIsTracking flags
Blocks: 1466249
Blocks: 1461921
No longer blocks: antitracking
No longer blocks: 1466249
Priority: -- → P2
Priority: P2 → P3
You need to log in before you can comment on or make changes to this bug.