Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: chrome/browser/subresource_filter/subresource_filter_browsertest.cc

Issue 2838063002: [on-hold][subresource_filter] Add ActivationTracker to track all activated contents (Closed)
Patch Set: fix incognito Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/subresource_filter/subresource_filter_browsertest.cc
diff --git a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
index 61e93674f650ec1f7ab7e28416e58eaf3002a530..72ee00c9b785b0cc8fdb3068b8e9f805f6d9ef78 100644
--- a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
+++ b/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
@@ -26,6 +26,9 @@
#include "chrome/browser/safe_browsing/test_safe_browsing_service.h"
#include "chrome/browser/safe_browsing/v4_test_utils.h"
#include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h"
+#include "chrome/browser/subresource_filter/subresource_filter_activation_tracker.h"
+#include "chrome/browser/subresource_filter/subresource_filter_profile_context.h"
+#include "chrome/browser/subresource_filter/subresource_filter_profile_context_factory.h"
#include "chrome/browser/subresource_filter/test_ruleset_publisher.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h"
@@ -485,6 +488,20 @@ class SubresourceFilterListBrowserTest
};
#endif
+class SubresourceFilterDryRunBrowserTest
+ : public SubresourceFilterBrowserTestImpl {
+ public:
+ SubresourceFilterDryRunBrowserTest()
+ : SubresourceFilterBrowserTestImpl(false, false) {}
+
+ void SetUpActivationFeature() override {
+ ToggleFeatures(base::MakeUnique<ScopedSubresourceFilterFeatureToggle>(
+ base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelDryRun,
+ kActivationScopeActivationList, kActivationListSubresourceFilter, "0",
+ "" /* suppress_notifications */, "false"));
+ }
+};
+
// Tests -----------------------------------------------------------------------
IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest, MainFrameActivation) {
@@ -1018,6 +1035,66 @@ IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest,
EXPECT_FALSE(WasParsedScriptElementLoaded(web_contents()->GetMainFrame()));
}
+IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest, ActivationTracking) {
+ SetRulesetWithRules(std::vector<proto::UrlRule>());
+ SubresourceFilterProfileContext* context =
+ SubresourceFilterProfileContextFactory::GetForProfile(
+ browser()->profile());
+
+ const GURL kActivatedUrl = GetTestUrl(kTestFrameSetPath);
+ ConfigureAsPhishingURL(kActivatedUrl);
+
+ EXPECT_FALSE(context->activation_tracker()->HasActivatedWebContents());
+ ui_test_utils::NavigateToURL(browser(), kActivatedUrl);
+ EXPECT_TRUE(context->activation_tracker()->HasActivatedWebContents());
+
+ // Add another tab without activation.
+ AddTabAtIndex(0, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
+ EXPECT_TRUE(context->activation_tracker()->HasActivatedWebContents());
+ ui_test_utils::NavigateToURL(browser(), GURL("https://example.test"));
+ EXPECT_TRUE(context->activation_tracker()->HasActivatedWebContents());
+
+ // Add another tab with activation, but close it.
+ AddTabAtIndex(0, kActivatedUrl, ui::PAGE_TRANSITION_LINK);
+ EXPECT_TRUE(context->activation_tracker()->HasActivatedWebContents());
+ browser()->tab_strip_model()->CloseSelectedTabs();
+ EXPECT_TRUE(context->activation_tracker()->HasActivatedWebContents());
+
+ // Go back to the original tab and navigate away.
+ browser()->tab_strip_model()->ActivateTabAt(1, true /* user_gesture */);
+ ui_test_utils::NavigateToURL(browser(), GURL("https://example.test"));
+ EXPECT_FALSE(context->activation_tracker()->HasActivatedWebContents());
+
+ // Navigate once again, and close all the tabs.
+ ui_test_utils::NavigateToURL(browser(), kActivatedUrl);
+ EXPECT_TRUE(context->activation_tracker()->HasActivatedWebContents());
+
+ browser()->tab_strip_model()->CloseAllTabs();
+ EXPECT_FALSE(context->activation_tracker()->HasActivatedWebContents());
+}
+
+// Dry run activation should not be tracked by that activation tracker.
+IN_PROC_BROWSER_TEST_F(SubresourceFilterDryRunBrowserTest,
+ DryRun_NoActivationTracking) {
+ SetRulesetWithRules(std::vector<proto::UrlRule>());
+ SubresourceFilterProfileContext* context =
+ SubresourceFilterProfileContextFactory::GetForProfile(
+ browser()->profile());
+
+ const GURL kActivatedUrl = GetTestUrl(kTestFrameSetPath);
+ ConfigureAsPhishingURL(kActivatedUrl);
+
+ EXPECT_FALSE(context->activation_tracker()->HasActivatedWebContents());
+ ui_test_utils::NavigateToURL(browser(), kActivatedUrl);
+ EXPECT_FALSE(context->activation_tracker()->HasActivatedWebContents());
+
+ // Add another tab with activation, but close it.
+ AddTabAtIndex(0, kActivatedUrl, ui::PAGE_TRANSITION_LINK);
+ EXPECT_FALSE(context->activation_tracker()->HasActivatedWebContents());
+ browser()->tab_strip_model()->CloseSelectedTabs();
+ EXPECT_FALSE(context->activation_tracker()->HasActivatedWebContents());
+}
+
IN_PROC_BROWSER_TEST_P(SubresourceFilterWebSocketBrowserTest, BlockWebSocket) {
GURL url(GetTestUrl(
base::StringPrintf("subresource_filter/page_with_websocket.html?%s",

Powered by Google App Engine
This is Rietveld 408576698