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

Unified Diff: chrome/browser/extensions/content_script_apitest.cc

Issue 2978953002: [Extensions] Don't allow content scripts on the New Tab Page (Closed)
Patch Set: . Created 3 years, 5 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/extensions/content_script_apitest.cc
diff --git a/chrome/browser/extensions/content_script_apitest.cc b/chrome/browser/extensions/content_script_apitest.cc
index 242b99ddbed745b2542336ab3d686dc2684d782e..5ff39e4ce1d7ba9659999c69c04ff4ca394abd5f 100644
--- a/chrome/browser/extensions/content_script_apitest.cc
+++ b/chrome/browser/extensions/content_script_apitest.cc
@@ -18,6 +18,7 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_with_management_policy_apitest.h"
#include "chrome/browser/extensions/test_extension_dir.h"
+#include "chrome/browser/search/search.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/javascript_dialogs/javascript_dialog_tab_helper.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -622,6 +623,35 @@ IN_PROC_BROWSER_TEST_P(ContentScriptApiTest,
EXPECT_FALSE(content_script_listener.was_satisfied());
}
+IN_PROC_BROWSER_TEST_P(ContentScriptApiTest, CannotScriptTheNewTabPage) {
+ ASSERT_TRUE(StartEmbeddedTestServer());
+
+ ExtensionTestMessageListener test_listener("ready", true);
+ LoadExtension(test_data_dir_.AppendASCII("content_scripts/ntp"));
+ ASSERT_TRUE(test_listener.WaitUntilSatisfied());
+
+ auto did_script_inject = [](content::WebContents* web_contents) {
+ bool did_inject = false;
+ EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
+ web_contents,
+ "domAutomationController.send(window.didInject != undefined);",
+ &did_inject));
+ return did_inject;
+ };
+
+ // First, test the executeScript() method.
+ ResultCatcher catcher;
+ test_listener.Reply(std::string());
+ ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
+ EXPECT_FALSE(
karandeepb 2017/07/18 19:26:59 nit: Also verify that the active web contents url
Devlin 2017/07/18 20:53:46 Done.
+ did_script_inject(browser()->tab_strip_model()->GetActiveWebContents()));
+
+ // Next, check content script injection.
karandeepb 2017/07/18 19:27:00 Also check injection on a normal page first, to ve
Devlin 2017/07/18 20:53:46 Done. Good suggestion; this helped flush out a bu
+ ui_test_utils::NavigateToURL(browser(), search::GetNewTabPageURL(profile()));
+ EXPECT_FALSE(
+ did_script_inject(browser()->tab_strip_model()->GetActiveWebContents()));
+}
+
INSTANTIATE_TEST_CASE_P(
ContentScriptApiTests,
ContentScriptApiTest,

Powered by Google App Engine
This is Rietveld 408576698