| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "base/macros.h" | 6 #include "base/macros.h" |
| 7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
| 8 #include "chrome/browser/extensions/active_script_controller.h" | 8 #include "chrome/browser/extensions/active_script_controller.h" |
| 9 #include "chrome/browser/extensions/extension_action.h" | 9 #include "chrome/browser/extensions/extension_action.h" |
| 10 #include "chrome/browser/extensions/extension_browsertest.h" | 10 #include "chrome/browser/extensions/extension_browsertest.h" |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 kExtensionNames[3], | 341 kExtensionNames[3], |
| 342 CreateExtension(EXPLICIT_HOSTS, CONTENT_SCRIPT), | 342 CreateExtension(EXPLICIT_HOSTS, CONTENT_SCRIPT), |
| 343 browser(), | 343 browser(), |
| 344 DOES_NOT_REQUIRE_CONSENT, | 344 DOES_NOT_REQUIRE_CONSENT, |
| 345 CONTENT_SCRIPT), | 345 CONTENT_SCRIPT), |
| 346 }; | 346 }; |
| 347 | 347 |
| 348 // Navigate to an URL (which matches the explicit host specified in the | 348 // Navigate to an URL (which matches the explicit host specified in the |
| 349 // extension content_scripts_explicit_hosts). All four extensions should | 349 // extension content_scripts_explicit_hosts). All four extensions should |
| 350 // inject the script. | 350 // inject the script. |
| 351 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 351 ASSERT_TRUE(embedded_test_server()->Start()); |
| 352 ui_test_utils::NavigateToURL( | 352 ui_test_utils::NavigateToURL( |
| 353 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); | 353 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); |
| 354 | 354 |
| 355 for (size_t i = 0u; i < arraysize(testers); ++i) | 355 for (size_t i = 0u; i < arraysize(testers); ++i) |
| 356 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i]; | 356 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i]; |
| 357 } | 357 } |
| 358 | 358 |
| 359 // Test that removing an extension with pending injections a) removes the | 359 // Test that removing an extension with pending injections a) removes the |
| 360 // pending injections for that extension, and b) does not affect pending | 360 // pending injections for that extension, and b) does not affect pending |
| 361 // injections for other extensions. | 361 // injections for other extensions. |
| 362 IN_PROC_BROWSER_TEST_F(ActiveScriptControllerBrowserTest, | 362 IN_PROC_BROWSER_TEST_F(ActiveScriptControllerBrowserTest, |
| 363 RemoveExtensionWithPendingInjections) { | 363 RemoveExtensionWithPendingInjections) { |
| 364 // Load up two extensions, each with content scripts. | 364 // Load up two extensions, each with content scripts. |
| 365 const Extension* extension1 = CreateExtension(ALL_HOSTS, CONTENT_SCRIPT); | 365 const Extension* extension1 = CreateExtension(ALL_HOSTS, CONTENT_SCRIPT); |
| 366 ASSERT_TRUE(extension1); | 366 ASSERT_TRUE(extension1); |
| 367 const Extension* extension2 = CreateExtension(ALL_HOSTS, CONTENT_SCRIPT); | 367 const Extension* extension2 = CreateExtension(ALL_HOSTS, CONTENT_SCRIPT); |
| 368 ASSERT_TRUE(extension2); | 368 ASSERT_TRUE(extension2); |
| 369 | 369 |
| 370 ASSERT_NE(extension1->id(), extension2->id()); | 370 ASSERT_NE(extension1->id(), extension2->id()); |
| 371 | 371 |
| 372 content::WebContents* web_contents = | 372 content::WebContents* web_contents = |
| 373 browser()->tab_strip_model()->GetActiveWebContents(); | 373 browser()->tab_strip_model()->GetActiveWebContents(); |
| 374 ASSERT_TRUE(web_contents); | 374 ASSERT_TRUE(web_contents); |
| 375 ActiveScriptController* active_script_controller = | 375 ActiveScriptController* active_script_controller = |
| 376 ActiveScriptController::GetForWebContents(web_contents); | 376 ActiveScriptController::GetForWebContents(web_contents); |
| 377 ASSERT_TRUE(active_script_controller); | 377 ASSERT_TRUE(active_script_controller); |
| 378 | 378 |
| 379 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 379 ASSERT_TRUE(embedded_test_server()->Start()); |
| 380 ui_test_utils::NavigateToURL( | 380 ui_test_utils::NavigateToURL( |
| 381 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); | 381 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); |
| 382 | 382 |
| 383 // Both extensions should have pending requests. | 383 // Both extensions should have pending requests. |
| 384 EXPECT_TRUE(active_script_controller->WantsToRun(extension1)); | 384 EXPECT_TRUE(active_script_controller->WantsToRun(extension1)); |
| 385 EXPECT_TRUE(active_script_controller->WantsToRun(extension2)); | 385 EXPECT_TRUE(active_script_controller->WantsToRun(extension2)); |
| 386 | 386 |
| 387 // Unload one of the extensions. | 387 // Unload one of the extensions. |
| 388 UnloadExtension(extension2->id()); | 388 UnloadExtension(extension2->id()); |
| 389 | 389 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 417 ASSERT_TRUE(web_contents); | 417 ASSERT_TRUE(web_contents); |
| 418 ActiveScriptController* active_script_controller = | 418 ActiveScriptController* active_script_controller = |
| 419 ActiveScriptController::GetForWebContents(web_contents); | 419 ActiveScriptController::GetForWebContents(web_contents); |
| 420 ASSERT_TRUE(active_script_controller); | 420 ASSERT_TRUE(active_script_controller); |
| 421 | 421 |
| 422 ExtensionTestMessageListener inject_success_listener( | 422 ExtensionTestMessageListener inject_success_listener( |
| 423 new ExtensionTestMessageListener(kInjectSucceeded, | 423 new ExtensionTestMessageListener(kInjectSucceeded, |
| 424 false /* won't reply */)); | 424 false /* won't reply */)); |
| 425 inject_success_listener.set_extension_id(extension->id()); | 425 inject_success_listener.set_extension_id(extension->id()); |
| 426 | 426 |
| 427 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 427 ASSERT_TRUE(embedded_test_server()->Start()); |
| 428 GURL url = embedded_test_server()->GetURL("/extensions/test_file.html"); | 428 GURL url = embedded_test_server()->GetURL("/extensions/test_file.html"); |
| 429 ui_test_utils::NavigateToURL(browser(), url); | 429 ui_test_utils::NavigateToURL(browser(), url); |
| 430 | 430 |
| 431 // The extension shouldn't be allowed to run. | 431 // The extension shouldn't be allowed to run. |
| 432 EXPECT_TRUE(active_script_controller->WantsToRun(extension)); | 432 EXPECT_TRUE(active_script_controller->WantsToRun(extension)); |
| 433 EXPECT_EQ(1, active_script_controller->num_page_requests()); | 433 EXPECT_EQ(1, active_script_controller->num_page_requests()); |
| 434 EXPECT_FALSE(inject_success_listener.was_satisfied()); | 434 EXPECT_FALSE(inject_success_listener.was_satisfied()); |
| 435 | 435 |
| 436 // Enable the extension to run on all urls. | 436 // Enable the extension to run on all urls. |
| 437 util::SetAllowedScriptingOnAllUrls(extension->id(), profile(), true); | 437 util::SetAllowedScriptingOnAllUrls(extension->id(), profile(), true); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 DOES_NOT_REQUIRE_CONSENT, | 481 DOES_NOT_REQUIRE_CONSENT, |
| 482 CONTENT_SCRIPT), | 482 CONTENT_SCRIPT), |
| 483 ActiveScriptTester( | 483 ActiveScriptTester( |
| 484 kExtensionNames[1], | 484 kExtensionNames[1], |
| 485 CreateExtension(ALL_HOSTS, EXECUTE_SCRIPT), | 485 CreateExtension(ALL_HOSTS, EXECUTE_SCRIPT), |
| 486 browser(), | 486 browser(), |
| 487 DOES_NOT_REQUIRE_CONSENT, | 487 DOES_NOT_REQUIRE_CONSENT, |
| 488 EXECUTE_SCRIPT), | 488 EXECUTE_SCRIPT), |
| 489 }; | 489 }; |
| 490 | 490 |
| 491 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 491 ASSERT_TRUE(embedded_test_server()->Start()); |
| 492 ui_test_utils::NavigateToURL( | 492 ui_test_utils::NavigateToURL( |
| 493 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); | 493 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); |
| 494 | 494 |
| 495 for (size_t i = 0u; i < arraysize(testers); ++i) | 495 for (size_t i = 0u; i < arraysize(testers); ++i) |
| 496 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i]; | 496 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i]; |
| 497 } | 497 } |
| 498 | 498 |
| 499 } // namespace extensions | 499 } // namespace extensions |
| OLD | NEW |