mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1063831 - Support tracking protection in SiteIdentity.java r=margaret
This commit is contained in:
parent
8321137592
commit
8940a260d0
@ -11,20 +11,20 @@ import android.text.TextUtils;
|
||||
|
||||
public class SiteIdentity {
|
||||
private SecurityMode mSecurityMode;
|
||||
private MixedMode mMixedMode;
|
||||
private TrackingMode mTrackingMode;
|
||||
private String mHost;
|
||||
private String mOwner;
|
||||
private String mSupplemental;
|
||||
private String mVerifier;
|
||||
private String mEncrypted;
|
||||
|
||||
// The order of the items here correspond to image
|
||||
// levels in site_security_level.xml
|
||||
// The order of the items here relate to image levels in
|
||||
// site_security_level.xml
|
||||
public enum SecurityMode {
|
||||
UNKNOWN("unknown"),
|
||||
IDENTIFIED("identified"),
|
||||
VERIFIED("verified"),
|
||||
MIXED_CONTENT_BLOCKED("mixed_content_blocked"),
|
||||
MIXED_CONTENT_LOADED("mixed_content_loaded");
|
||||
VERIFIED("verified");
|
||||
|
||||
private final String mId;
|
||||
|
||||
@ -52,12 +52,81 @@ public class SiteIdentity {
|
||||
}
|
||||
}
|
||||
|
||||
public SiteIdentity() {
|
||||
reset(SecurityMode.UNKNOWN);
|
||||
// The order of the items here relate to image levels in
|
||||
// site_security_level.xml
|
||||
public enum MixedMode {
|
||||
UNKNOWN("unknown"),
|
||||
MIXED_CONTENT_BLOCKED("mixed_content_blocked"),
|
||||
MIXED_CONTENT_LOADED("mixed_content_loaded");
|
||||
|
||||
private final String mId;
|
||||
|
||||
private MixedMode(String id) {
|
||||
mId = id;
|
||||
}
|
||||
|
||||
public static MixedMode fromString(String id) {
|
||||
if (id == null) {
|
||||
throw new IllegalArgumentException("Can't convert null String to MixedMode");
|
||||
}
|
||||
|
||||
for (MixedMode mode : MixedMode.values()) {
|
||||
if (TextUtils.equals(mode.mId, id.toLowerCase())) {
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException("Could not convert String id to MixedMode");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return mId;
|
||||
}
|
||||
}
|
||||
|
||||
private void reset(SecurityMode securityMode) {
|
||||
mSecurityMode = securityMode;
|
||||
// The order of the items here relate to image levels in
|
||||
// site_security_level.xml
|
||||
public enum TrackingMode {
|
||||
UNKNOWN("unknown"),
|
||||
TRACKING_CONTENT_BLOCKED("tracking_content_blocked"),
|
||||
TRACKING_CONTENT_LOADED("tracking_content_loaded");
|
||||
|
||||
private final String mId;
|
||||
|
||||
private TrackingMode(String id) {
|
||||
mId = id;
|
||||
}
|
||||
|
||||
public static TrackingMode fromString(String id) {
|
||||
if (id == null) {
|
||||
throw new IllegalArgumentException("Can't convert null String to TrackingMode");
|
||||
}
|
||||
|
||||
for (TrackingMode mode : TrackingMode.values()) {
|
||||
if (TextUtils.equals(mode.mId, id.toLowerCase())) {
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException("Could not convert String id to TrackingMode");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return mId;
|
||||
}
|
||||
}
|
||||
|
||||
public SiteIdentity() {
|
||||
resetIdentityData();
|
||||
|
||||
mMixedMode = MixedMode.UNKNOWN;
|
||||
mTrackingMode = TrackingMode.UNKNOWN;
|
||||
}
|
||||
|
||||
private void resetIdentityData() {
|
||||
mSecurityMode = SecurityMode.UNKNOWN;
|
||||
mHost = null;
|
||||
mOwner = null;
|
||||
mSupplemental = null;
|
||||
@ -67,20 +136,40 @@ public class SiteIdentity {
|
||||
|
||||
void update(JSONObject identityData) {
|
||||
try {
|
||||
mSecurityMode = SecurityMode.fromString(identityData.getString("mode"));
|
||||
} catch (Exception e) {
|
||||
reset(SecurityMode.UNKNOWN);
|
||||
return;
|
||||
}
|
||||
JSONObject mode = identityData.getJSONObject("mode");
|
||||
|
||||
try {
|
||||
mHost = identityData.getString("host");
|
||||
mOwner = identityData.getString("owner");
|
||||
mSupplemental = identityData.optString("supplemental", null);
|
||||
mVerifier = identityData.getString("verifier");
|
||||
mEncrypted = identityData.getString("encrypted");
|
||||
try {
|
||||
mMixedMode = MixedMode.fromString(mode.getString("mixed"));
|
||||
} catch (Exception e) {
|
||||
mMixedMode = MixedMode.UNKNOWN;
|
||||
}
|
||||
|
||||
try {
|
||||
mTrackingMode = TrackingMode.fromString(mode.getString("tracking"));
|
||||
} catch (Exception e) {
|
||||
mTrackingMode = TrackingMode.UNKNOWN;
|
||||
}
|
||||
|
||||
try {
|
||||
mSecurityMode = SecurityMode.fromString(mode.getString("identity"));
|
||||
} catch (Exception e) {
|
||||
resetIdentityData();
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
mHost = identityData.getString("host");
|
||||
mOwner = identityData.getString("owner");
|
||||
mSupplemental = identityData.optString("supplemental", null);
|
||||
mVerifier = identityData.getString("verifier");
|
||||
mEncrypted = identityData.getString("encrypted");
|
||||
} catch (Exception e) {
|
||||
resetIdentityData();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
reset(mSecurityMode);
|
||||
resetIdentityData();
|
||||
mMixedMode = MixedMode.UNKNOWN;
|
||||
mTrackingMode = TrackingMode.UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
@ -107,4 +196,12 @@ public class SiteIdentity {
|
||||
public String getEncrypted() {
|
||||
return mEncrypted;
|
||||
}
|
||||
}
|
||||
|
||||
public MixedMode getMixedMode() {
|
||||
return mMixedMode;
|
||||
}
|
||||
|
||||
public TrackingMode getTrackingMode() {
|
||||
return mTrackingMode;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user