Bug 1567268 - [2.0] Update GVE and tests to reflect better ETP reporting. r=geckoview-reviewers,agi

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Dylan Roeh 2019-08-09 14:17:57 +00:00
Родитель 8ac0d59281
Коммит 94defbb792
2 изменённых файлов: 58 добавлений и 29 удалений

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

@ -197,8 +197,8 @@ class NavigationDelegateTest : BaseSessionTest() {
@Setting(key = Setting.Key.USE_TRACKING_PROTECTION, value = "true")
@Test fun trackingProtection() {
val category = ContentBlocking.AT_TEST
sessionRule.runtime.settings.contentBlocking.categories = category
val category = ContentBlocking.AntiTracking.TEST
sessionRule.runtime.settings.contentBlocking.setAntiTracking(category)
sessionRule.session.loadTestPath(TRACKERS_PATH)
sessionRule.waitUntilCalled(
@ -207,11 +207,15 @@ class NavigationDelegateTest : BaseSessionTest() {
override fun onContentBlocked(session: GeckoSession,
event: ContentBlocking.BlockEvent) {
assertThat("Category should be set",
event.categories,
event.antiTrackingCategory,
equalTo(category))
assertThat("URI should not be null", event.uri, notNullValue())
assertThat("URI should match", event.uri, endsWith("tracker.js"))
}
@AssertCalled(false)
override fun onContentLoaded(session: GeckoSession, event: ContentBlocking.BlockEvent) {
}
})
sessionRule.session.settings.useTrackingProtection = false
@ -225,6 +229,15 @@ class NavigationDelegateTest : BaseSessionTest() {
override fun onContentBlocked(session: GeckoSession,
event: ContentBlocking.BlockEvent) {
}
@AssertCalled(count = 3)
override fun onContentLoaded(session: GeckoSession, event: ContentBlocking.BlockEvent) {
assertThat("Category should be set",
event.antiTrackingCategory,
equalTo(category))
assertThat("URI should not be null", event.uri, notNullValue())
assertThat("URI should match", event.uri, endsWith("tracker.js"))
}
})
}
@ -291,9 +304,9 @@ class NavigationDelegateTest : BaseSessionTest() {
@Test fun bypassClassifier() {
val phishingUri = "https://www.itisatrap.org/firefox/its-a-trap.html"
val category = ContentBlocking.SB_PHISHING
val category = ContentBlocking.SafeBrowsing.PHISHING
sessionRule.runtime.settings.contentBlocking.categories = category
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(category)
sessionRule.session.loadUri(phishingUri + "?bypass=true",
GeckoSession.LOAD_FLAGS_BYPASS_CLASSIFIER)
@ -311,17 +324,16 @@ class NavigationDelegateTest : BaseSessionTest() {
@Test fun safebrowsingPhishing() {
val phishingUri = "https://www.itisatrap.org/firefox/its-a-trap.html"
val category = ContentBlocking.SB_PHISHING
val category = ContentBlocking.SafeBrowsing.PHISHING
sessionRule.runtime.settings.contentBlocking.categories = category
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(category)
// Add query string to avoid bypassing classifier check because of cache.
testLoadExpectError(phishingUri + "?block=true",
WebRequestError.ERROR_CATEGORY_SAFEBROWSING,
WebRequestError.ERROR_SAFEBROWSING_PHISHING_URI)
sessionRule.runtime.settings.contentBlocking.categories =
ContentBlocking.NONE
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
sessionRule.session.loadUri(phishingUri + "?block=false")
sessionRule.session.waitForPageStop()
@ -338,16 +350,15 @@ class NavigationDelegateTest : BaseSessionTest() {
@Test fun safebrowsingMalware() {
val malwareUri = "https://www.itisatrap.org/firefox/its-an-attack.html"
val category = ContentBlocking.SB_MALWARE
val category = ContentBlocking.SafeBrowsing.MALWARE
sessionRule.runtime.settings.contentBlocking.categories = category
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(category)
testLoadExpectError(malwareUri + "?block=true",
WebRequestError.ERROR_CATEGORY_SAFEBROWSING,
WebRequestError.ERROR_SAFEBROWSING_MALWARE_URI)
sessionRule.runtime.settings.contentBlocking.categories =
ContentBlocking.NONE
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
sessionRule.session.loadUri(malwareUri + "?block=false")
sessionRule.session.waitForPageStop()
@ -364,16 +375,15 @@ class NavigationDelegateTest : BaseSessionTest() {
@Test fun safebrowsingUnwanted() {
val unwantedUri = "https://www.itisatrap.org/firefox/unwanted.html"
val category = ContentBlocking.SB_UNWANTED
val category = ContentBlocking.SafeBrowsing.UNWANTED
sessionRule.runtime.settings.contentBlocking.categories = category
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(category)
testLoadExpectError(unwantedUri + "?block=true",
WebRequestError.ERROR_CATEGORY_SAFEBROWSING,
WebRequestError.ERROR_SAFEBROWSING_UNWANTED_URI)
sessionRule.runtime.settings.contentBlocking.categories =
ContentBlocking.NONE
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
sessionRule.session.loadUri(unwantedUri + "?block=false")
sessionRule.session.waitForPageStop()
@ -390,16 +400,15 @@ class NavigationDelegateTest : BaseSessionTest() {
@Test fun safebrowsingHarmful() {
val harmfulUri = "https://www.itisatrap.org/firefox/harmful.html"
val category = ContentBlocking.SB_HARMFUL
val category = ContentBlocking.SafeBrowsing.HARMFUL
sessionRule.runtime.settings.contentBlocking.categories = category
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(category)
testLoadExpectError(harmfulUri + "?block=true",
WebRequestError.ERROR_CATEGORY_SAFEBROWSING,
WebRequestError.ERROR_SAFEBROWSING_HARMFUL_URI)
sessionRule.runtime.settings.contentBlocking.categories =
ContentBlocking.NONE
sessionRule.runtime.settings.contentBlocking.setSafeBrowsing(ContentBlocking.SafeBrowsing.NONE)
sessionRule.session.loadUri(harmfulUri + "?block=false")
sessionRule.session.waitForPageStop()

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

@ -151,7 +151,9 @@ public class GeckoViewActivity extends AppCompatActivity {
.remoteDebuggingEnabled(mEnableRemoteDebugging)
.consoleOutput(true)
.contentBlocking(new ContentBlocking.Settings.Builder()
.categories(ContentBlocking.AT_DEFAULT)
.antiTracking(ContentBlocking.AntiTracking.DEFAULT)
.safeBrowsing(ContentBlocking.SafeBrowsing.DEFAULT)
.cookieBehavior(ContentBlocking.CookieBehavior.ACCEPT_NON_TRACKERS)
.build())
.crashHandler(ExampleCrashHandler.class)
.telemetryDelegate(new ExampleTelemetryDelegate());
@ -1063,24 +1065,42 @@ public class GeckoViewActivity extends AppCompatActivity {
@Override
public void onContentBlocked(final GeckoSession session,
final ContentBlocking.BlockEvent event) {
Log.d(LOGTAG, "onContentBlocked " + event.categories +
" (" + event.uri + ")");
if ((event.categories & ContentBlocking.AT_TEST) != 0) {
Log.d(LOGTAG, "onContentBlocked" +
" AT: " + event.getAntiTrackingCategory() +
" SB: " + event.getSafeBrowsingCategory() +
" CB: " + event.getCookieBehaviorCategory() +
" URI: " + event.uri);
if ((event.getAntiTrackingCategory() &
ContentBlocking.AntiTracking.TEST) != 0) {
mBlockedTest++;
}
if ((event.categories & ContentBlocking.AT_AD) != 0) {
if ((event.getAntiTrackingCategory() &
ContentBlocking.AntiTracking.AD) != 0) {
mBlockedAds++;
}
if ((event.categories & ContentBlocking.AT_ANALYTIC) != 0) {
if ((event.getAntiTrackingCategory() &
ContentBlocking.AntiTracking.ANALYTIC) != 0) {
mBlockedAnalytics++;
}
if ((event.categories & ContentBlocking.AT_SOCIAL) != 0) {
if ((event.getAntiTrackingCategory() &
ContentBlocking.AntiTracking.SOCIAL) != 0) {
mBlockedSocial++;
}
if ((event.categories & ContentBlocking.AT_CONTENT) != 0) {
if ((event.getAntiTrackingCategory() &
ContentBlocking.AntiTracking.CONTENT) != 0) {
mBlockedContent++;
}
}
@Override
public void onContentLoaded(final GeckoSession session,
final ContentBlocking.BlockEvent event) {
Log.d(LOGTAG, "onContentLoaded" +
" AT: " + event.getAntiTrackingCategory() +
" SB: " + event.getSafeBrowsingCategory() +
" CB: " + event.getCookieBehaviorCategory() +
" URI: " + event.uri);
}
}
private class ExampleMediaDelegate