Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 929a87e

Browse files
committed
Enhanced Tracking Protection
1 parent d4af5a0 commit 929a87e

39 files changed

Lines changed: 1045 additions & 243 deletions

app/src/common/shared/org/mozilla/vrbrowser/VRBrowserActivity.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,6 @@ protected void onDestroy() {
486486

487487
SessionStore.get().onDestroy();
488488

489-
490489
super.onDestroy();
491490
mLifeCycle.setCurrentState(Lifecycle.State.DESTROYED);
492491
mViewModelStore.clear();

app/src/common/shared/org/mozilla/vrbrowser/VRBrowserApplication.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public void onCreate() {
3434
mAppExecutors = new AppExecutors();
3535
mBitmapCache = new BitmapCache(this, mAppExecutors.diskIO(), mAppExecutors.mainThread());
3636

37-
3837
TelemetryWrapper.init(this);
3938
GleanMetricsService.init(this);
4039
}

app/src/common/shared/org/mozilla/vrbrowser/browser/PermissionDelegate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ public void setPermissionAllowed(String uri, @SitePermission.Category int catego
287287
mSitePermissionModel.deleteSite(site);
288288
} else {
289289
if (site == null) {
290-
site = new SitePermission(uri, false, category);
290+
site = new SitePermission(uri, uri, false, category);
291291
mSitePermissions.add(site);
292292
}
293293
site.allowed = false;

app/src/common/shared/org/mozilla/vrbrowser/browser/PromptDelegate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ private void showPopUp(int sessionId, @NonNull Pair<String, LinkedList<PopUpRequ
357357
boolean allowed = index != PopUpBlockDialogWidget.NEGATIVE;
358358
boolean askAgain = mPopUpPrompt.askAgain();
359359
if (allowed && !askAgain) {
360-
SitePermission permission = new SitePermission(uri, allowed, SitePermission.SITE_PERMISSION_POPUP);
360+
SitePermission permission = new SitePermission(uri, uri, allowed, SitePermission.SITE_PERMISSION_POPUP);
361361
mAllowedPopUpSites.add(permission);
362362
mViewModel.insertSite(permission);
363363
}

app/src/common/shared/org/mozilla/vrbrowser/browser/SettingsStore.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.json.JSONArray;
1313
import org.json.JSONObject;
14+
import org.mozilla.geckoview.ContentBlocking;
1415
import org.mozilla.geckoview.GeckoSessionSettings;
1516
import org.mozilla.telemetry.TelemetryHolder;
1617
import org.mozilla.vrbrowser.R;
@@ -53,7 +54,7 @@ SettingsStore getInstance(final @NonNull Context aContext) {
5354
public final static boolean UI_HARDWARE_ACCELERATION_DEFAULT_WAVEVR = false;
5455
public final static boolean PERFORMANCE_MONITOR_DEFAULT = true;
5556
public final static boolean DRM_PLAYBACK_DEFAULT = false;
56-
public final static boolean TRACKING_DEFAULT = true;
57+
public final static int TRACKING_DEFAULT = ContentBlocking.EtpLevel.DEFAULT;
5758
public final static boolean NOTIFICATIONS_DEFAULT = true;
5859
public final static boolean SPEECH_DATA_COLLECTION_DEFAULT = false;
5960
public final static boolean SPEECH_DATA_COLLECTION_REVIEWED_DEFAULT = false;
@@ -206,14 +207,14 @@ public void setDrmContentPlaybackEnabled(boolean isEnabled) {
206207
editor.commit();
207208
}
208209

209-
public boolean isTrackingProtectionEnabled() {
210-
return mPrefs.getBoolean(
211-
mContext.getString(R.string.settings_key_tracking_protection), TRACKING_DEFAULT);
210+
public int getTrackingProtectionLevel() {
211+
return mPrefs.getInt(
212+
mContext.getString(R.string.settings_key_tracking_protection_level), TRACKING_DEFAULT);
212213
}
213214

214-
public void setTrackingProtectionEnabled(boolean isEnabled) {
215+
public void setTrackingProtectionLevel(int level) {
215216
SharedPreferences.Editor editor = mPrefs.edit();
216-
editor.putBoolean(mContext.getString(R.string.settings_key_tracking_protection), isEnabled);
217+
editor.putInt(mContext.getString(R.string.settings_key_tracking_protection_level), level);
217218
editor.commit();
218219
}
219220

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package org.mozilla.vrbrowser.browser.content;
2+
3+
import org.mozilla.geckoview.ContentBlocking;
4+
import org.mozilla.geckoview.ContentBlocking.AntiTracking;
5+
6+
public class TrackingProtectionPolicy {
7+
8+
private static final int RECOMMENDED =
9+
AntiTracking.AD |
10+
AntiTracking.ANALYTIC |
11+
AntiTracking.SOCIAL |
12+
AntiTracking.TEST |
13+
AntiTracking.STP |
14+
AntiTracking.CRYPTOMINING;
15+
private static final int STRICT =
16+
RECOMMENDED | AntiTracking.FINGERPRINTING;
17+
18+
private int trackingPolicy;
19+
private int cookiePolicy;
20+
21+
private TrackingProtectionPolicy() {
22+
trackingPolicy = AntiTracking.NONE;
23+
}
24+
25+
/**
26+
* Strict policy.
27+
* Combining the [TrackingCategory.STRICT] plus a cookiePolicy of [ACCEPT_NON_TRACKERS]
28+
* This is the strictest setting and may cause issues on some web sites.
29+
*/
30+
static TrackingProtectionPolicy strict() {
31+
TrackingProtectionPolicy policy = new TrackingProtectionPolicy();
32+
policy.trackingPolicy = STRICT;
33+
policy.cookiePolicy = ContentBlocking.CookieBehavior.ACCEPT_NON_TRACKERS;
34+
return policy;
35+
}
36+
37+
/**
38+
* Recommended policy.
39+
* Combining the [TrackingCategory.RECOMMENDED] plus a [CookiePolicy] of [ACCEPT_NON_TRACKERS].
40+
* This is the recommended setting.
41+
*/
42+
static TrackingProtectionPolicy recommended() {
43+
TrackingProtectionPolicy policy = new TrackingProtectionPolicy();
44+
policy.trackingPolicy = RECOMMENDED;
45+
policy.cookiePolicy = ContentBlocking.CookieBehavior.ACCEPT_NON_TRACKERS;
46+
return policy;
47+
}
48+
49+
static TrackingProtectionPolicy none() {
50+
TrackingProtectionPolicy policy = new TrackingProtectionPolicy();
51+
policy.trackingPolicy = AntiTracking.NONE;
52+
policy.cookiePolicy = ContentBlocking.CookieBehavior.ACCEPT_ALL;
53+
return policy;
54+
}
55+
56+
public boolean shouldBlockContent() {
57+
return trackingPolicy == STRICT;
58+
}
59+
60+
int getCookiePolicy() {
61+
return cookiePolicy;
62+
}
63+
64+
int getAntiTrackingPolicy() {
65+
return trackingPolicy;
66+
}
67+
68+
}

0 commit comments

Comments
 (0)