Bug 1505917 - Only consider a resource as a tracker if we would be blocking its load from the network in strict content blocking mode; r=Honza

Differential Revision: https://phabricator.services.mozilla.com/D54029

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Ehsan Akhgari 2019-11-21 09:45:13 +00:00
Родитель eae928f35e
Коммит e580bb5d66
1 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@ -635,6 +635,14 @@ NetworkObserver.prototype = {
};
}
const trackingProtectionLevel2Enabled = Services.prefs
.getStringPref("urlclassifier.trackingTable")
.includes("content-track-digest256");
const tpFlagsMask = trackingProtectionLevel2Enabled
? ~Ci.nsIClassifiedChannel.CLASSIFIED_ANY_BASIC_TRACKING &
~Ci.nsIClassifiedChannel.CLASSIFIED_ANY_STRICT_TRACKING
: ~Ci.nsIClassifiedChannel.CLASSIFIED_ANY_BASIC_TRACKING &
Ci.nsIClassifiedChannel.CLASSIFIED_ANY_STRICT_TRACKING;
const event = {};
event.method = channel.requestMethod;
event.channelId = channel.channelId;
@ -647,7 +655,13 @@ NetworkObserver.prototype = {
).toISOString();
event.fromCache = fromCache;
event.fromServiceWorker = fromServiceWorker;
event.isThirdPartyTrackingResource = channel.isThirdPartyTrackingResource();
// Only consider channels classified as level-1 to be trackers if our preferences
// would not cause such channels to be blocked in strict content blocking mode.
// Make sure the value produced here is a boolean.
event.isThirdPartyTrackingResource = !!(
channel.isThirdPartyTrackingResource() &&
(channel.thirdPartyClassificationFlags & tpFlagsMask) == 0
);
const referrerInfo = channel.referrerInfo;
event.referrerPolicy = referrerInfo
? referrerInfo.getReferrerPolicyString()