Fenix: FNX-5225 โƒ Enhanced Tracking Protection

Created on 18 Apr 2019  ยท  29Comments  ยท  Source: mozilla-mobile/fenix

Why/User Benefit/User Problem

As a user, I want to be protected from 3rd party tracking cookies so I don't have ads following me around as I browser the web and my browsing information stays private.

Acceptance Criteria (how do I know when Iโ€™m done?)

-I am protected from 3rd party ad and analytics tracking cookies, as well as cryptomining and fingerprinting trackers by default.
-I can go in my settings and change my preferred level of tracker protection (standard/strict)
-My default setting is strict (Here is the list of pros/cons that went into this decision)

What / Requirements

MVP of Enhanced Tracking Protection: set a pref ("network.cookie.cookieBehavior")

_Full implementation of Enhanced Tracking Protection includes a Storage Access API for third-party content to request access to their first-party storage.

MDN docs about the Storage Access API:
https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API

Description of the Storage Access prompts needed:
https://bugzilla.mozilla.org/show_bug.cgi?id=1543721

Testing:

When testing this API, this test page will be handy: https://senglehardt.com/test/storage_access/. Please pay attention to the prefs listed at the top of the page, and also the link at the bottom of the page (you need to click on the link and interact with the page that opens up, e.g. click somewhere on it -- Gecko blocks calls to requestStorageAccess() from third-party trackers which the user has never interacted with in a first-party context before.)_

E13 TrackingProtection engverified

All 29 comments

@vesta0 says Enhanced Tracking Protection can be a post-MVP feature.

@vesta0 - FYI, enabling ETP may be easier than I thought: GV can just set a pref ("network.cookie.cookieBehavior") without implementing all the Storage Access API and UI. The Fennec team may be enabling ETP in Fennec 68 (https://bugzilla.mozilla.org/show_bug.cgi?id=1554071) without the Storage Access API or UI. For an ETP MVP, Fenix would just need to implement a setting UI to switch between off / ETP / full TP.

The GV team wants to enable ETP by default in GV for all GV-powered apps, including third-party apps. They can manually disable ETP if they need to. This is GV bug https://bugzilla.mozilla.org/show_bug.cgi?id=1561385.

In the meantime, Fenix can still manually enable ETP itself like Fennec bug https://bugzilla.mozilla.org/show_bug.cgi?id=1554071.

GV 69 will enable ETP by default. If Fenix wants a different ETP default, it will need to override ContentBlocking.cookieBehavior.

https://bugzilla.mozilla.org/show_bug.cgi?id=1561385#c3

On AC 4.0.0 we exposed an API to indicate how cookies should behave for a given tracking protection policy, to be aligned with now GeckoView by default:

| TrackingProtectionPolicy | CookiePolicy (Behavior) |
|-------------------------- |------------------------- |
| none | ACCEPT_ALL |
| all | ACCEPT_NON_TRACKERS |
| recommended | ACCEPT_NON_TRACKERS |

For more info take a look at the changelog

If you are using recommended or all you will be using "Enhanced Tracking Protection"

Sizing and Milestone will happen in the Feasibility meeting on 7/19 @ekager

We assume this will need the longer QA period + Beta.

Since this is planned to be part of Beta Bake, just a reminder that we should be able to pref off this feature w/ feature flags. @ekager encouraging you to pair on this with Jeff or someone, because we should also do this for other features.

EDIT:
I filed #4305 for this feature flag work.

We should still consider if this can be done w/ Feature Flags, but it sounds tricky and maybe we need to make this hold the release.

Hey @ekager, I was talking to @kbrosnan about how much time QA would need for this feature. He said if it lands early in the sprint, then they wouldn't need a bake period (on say, Beta - or, if Beta isn't ready, we skip a release).

I remember you saying this was pretty much all done, but could you give a rough estimate on when the bulk of this would land in master (and what parts would need to wait) until later? And when you think the whole thing would end up on master where QA can take a look at it?

I'm thinking about whether we should push this 1.3 release to Beta for a bake period (since this is the main feature), or if we could just release it in 2 weeks like a "normal" release.

This work is completed (based on the acceptance criteria) but the team will keep it open until it lands in nightly.

We may also change one of the acceptance criteria (change default to strict) based on the performance testing results.

See https://github.com/orgs/mozilla-mobile/projects/33 for full view of GV and AC accompanying work

@ekager since we're on GV 70 Beta now, but I'm not sure which of these issues are/are not affected by the TP exceptions, can you update the waiting labels for the ETP bugs and move them into the Feature Backlog?

Thought I'd clarify the categories referenced in the mocks:

standard means blocking:

  • Cross-site tracking cookies (new category)
  • New social tracking list (new category)
  • Cryptomining trackers (new category)
  • Fingerprinting trackers (new category)

strict means blocking:

  • Cross-site tracking cookies (new category)
  • New social tracking list (new category)
  • Cryptomining trackers (new category)
  • Fingerprinting trackers (new category)
  • Sub-resources from the level 1 disconnect lists: ads, analytics, social (current Fenix TP implementation)

FYI @Amejia481 @ekager @liuche

Thanks for the clarification @vesta0.
Does that mean that neither on standard nor strict should have AD and ANALYTICS on it?

The default policies on ac have been updated on 12.0.0 to be aligned with the mockups and what Desktop is using https://github.com/mozilla-mobile/android-components/issues/4349.

Now the cohorts should match as follow:

  • Cohort A: (Standard on the mockups)

TrackingProtectionPolicy.recommended()

  • Cohort B: (Strict on the mockups)

TrackingProtectionPolicy.strict()

Our default in Fenix will be TrackingProtectionPolicy.strict()

(Here is the list of pros/cons that went into this decision)

Please not that strict is the same level of Tracking Protection that we have in Fenix at the moment.

@jpfaller we need a copy decision on the wording of basic and strict tracking protection settings. The default will be strict. Should we just remove the recommended string or replace it with default instead? i.e. strict (default)

(Here is the list of pros/cons that went into the decision to choose strict as default on Fenix)

@lime124 FYI

@vesta0 I think we can close this issue as "ETP" with categories aligning with desktop have been activated in Fenix. We can keep https://github.com/mozilla-mobile/fenix/issues/3901 open for remaining issues about the visibility?

QA please test:

-I can go in my settings and change my preferred level of tracker protection (standard/strict)
-My default setting is strict (Here is the list of pros/cons that went into this decision)

mocks:

standard means blocking:

  • Cross-site tracking cookies (new category)
  • New social tracking list (new category)
  • Cryptomining trackers (new category)
  • Fingerprinting trackers (new category)

strict means blocking:

  • Cross-site tracking cookies (new category)
  • New social tracking list (new category)
  • Cryptomining trackers (new category)
  • Fingerprinting trackers (new category)
  • Sub-resources from the level 1 disconnect lists: ads, analytics, social (current Fenix TP implementation)

Chasing down a couple answers from legal but I'll have the strings here soon.

Proposed strings:
@lime124 @vesta0

Standard:
Pages will load normally, but block fewer trackers.

Strict (Default)
Stronger tracking protection and faster performance, but some sites may not work properly.

Proposed strings:
@lime124 @vesta0

Standard:
Pages will load normally, but block fewer trackers.

๐Ÿ‘

Strict (Default)
Stronger tracking protection and faster performance, but some sites not work properly.

@jpfaller Should it say some sites may not or will not work properly?

Verified on the latest Nightly 190916 (#12591838) with Samsung Galaxy Note 8 (Android 9) that:

  • from settings, the users can change the preferred level of tracker protection (standard/strict),
  • the default setting is strict.

I will leave this issue open in order for the "may not" / "will not" to be decided.

Yes, apologies. Updated the string with "may" @vesta0

@ekager re-opened as the strings are yet to be updated to:

Standard:
Pages will load normally, but block fewer trackers.

Strict (Default)
Stronger tracking protection and faster performance, but some sites may not work properly.

I sent these to legal for review as well. I'm not anticipating any issues, but just FYI.

Thank you @jpfaller ๐Ÿ‘

Feldman approved copy.

The string has been updated and it is QA verified, so I am closing this bug ๐Ÿ‘

This issue has been fixed, so I will remove the waiting label.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

thelazyoxymoron picture thelazyoxymoron  ยท  3Comments

lindongbin picture lindongbin  ยท  3Comments

andreicristianpetcu picture andreicristianpetcu  ยท  3Comments

clitetailor picture clitetailor  ยท  3Comments

topotropic picture topotropic  ยท  3Comments