| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 // Test that when injecting a blocking content script, other scripts don't run | 447 // Test that when injecting a blocking content script, other scripts don't run |
| 448 // until the blocking script finishes. | 448 // until the blocking script finishes. |
| 449 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ContentScriptBlockingScript) { | 449 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ContentScriptBlockingScript) { |
| 450 ASSERT_TRUE(StartEmbeddedTestServer()); | 450 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 451 | 451 |
| 452 // Load up two extensions. | 452 // Load up two extensions. |
| 453 TestExtensionDir ext_dir1; | 453 TestExtensionDir ext_dir1; |
| 454 ext_dir1.WriteManifest( | 454 ext_dir1.WriteManifest( |
| 455 base::StringPrintf(kManifest, "ext1", "document_start")); | 455 base::StringPrintf(kManifest, "ext1", "document_start")); |
| 456 ext_dir1.WriteFile(FILE_PATH_LITERAL("script.js"), kBlockingScript); | 456 ext_dir1.WriteFile(FILE_PATH_LITERAL("script.js"), kBlockingScript); |
| 457 const Extension* ext1 = LoadExtension(ext_dir1.unpacked_path()); | 457 const Extension* ext1 = LoadExtension(ext_dir1.UnpackedPath()); |
| 458 ASSERT_TRUE(ext1); | 458 ASSERT_TRUE(ext1); |
| 459 | 459 |
| 460 TestExtensionDir ext_dir2; | 460 TestExtensionDir ext_dir2; |
| 461 ext_dir2.WriteManifest(base::StringPrintf(kManifest, "ext2", "document_end")); | 461 ext_dir2.WriteManifest(base::StringPrintf(kManifest, "ext2", "document_end")); |
| 462 ext_dir2.WriteFile(FILE_PATH_LITERAL("script.js"), kNonBlockingScript); | 462 ext_dir2.WriteFile(FILE_PATH_LITERAL("script.js"), kNonBlockingScript); |
| 463 const Extension* ext2 = LoadExtension(ext_dir2.unpacked_path()); | 463 const Extension* ext2 = LoadExtension(ext_dir2.UnpackedPath()); |
| 464 ASSERT_TRUE(ext2); | 464 ASSERT_TRUE(ext2); |
| 465 | 465 |
| 466 content::WebContents* web_contents = | 466 content::WebContents* web_contents = |
| 467 browser()->tab_strip_model()->GetActiveWebContents(); | 467 browser()->tab_strip_model()->GetActiveWebContents(); |
| 468 DialogHelper dialog_helper(web_contents); | 468 DialogHelper dialog_helper(web_contents); |
| 469 base::RunLoop run_loop; | 469 base::RunLoop run_loop; |
| 470 dialog_helper.set_quit_closure(run_loop.QuitClosure()); | 470 dialog_helper.set_quit_closure(run_loop.QuitClosure()); |
| 471 | 471 |
| 472 ExtensionTestMessageListener listener("done", false); | 472 ExtensionTestMessageListener listener("done", false); |
| 473 listener.set_extension_id(ext2->id()); | 473 listener.set_extension_id(ext2->id()); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 499 ui_test_utils::NavigateToURLWithDisposition( | 499 ui_test_utils::NavigateToURLWithDisposition( |
| 500 browser(), embedded_test_server()->GetURL("/empty.html"), | 500 browser(), embedded_test_server()->GetURL("/empty.html"), |
| 501 WindowOpenDisposition::NEW_FOREGROUND_TAB, | 501 WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 502 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 502 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 503 | 503 |
| 504 // Set up the same as the previous test case. | 504 // Set up the same as the previous test case. |
| 505 TestExtensionDir ext_dir1; | 505 TestExtensionDir ext_dir1; |
| 506 ext_dir1.WriteManifest( | 506 ext_dir1.WriteManifest( |
| 507 base::StringPrintf(kManifest, "ext1", "document_start")); | 507 base::StringPrintf(kManifest, "ext1", "document_start")); |
| 508 ext_dir1.WriteFile(FILE_PATH_LITERAL("script.js"), kBlockingScript); | 508 ext_dir1.WriteFile(FILE_PATH_LITERAL("script.js"), kBlockingScript); |
| 509 const Extension* ext1 = LoadExtension(ext_dir1.unpacked_path()); | 509 const Extension* ext1 = LoadExtension(ext_dir1.UnpackedPath()); |
| 510 ASSERT_TRUE(ext1); | 510 ASSERT_TRUE(ext1); |
| 511 | 511 |
| 512 TestExtensionDir ext_dir2; | 512 TestExtensionDir ext_dir2; |
| 513 ext_dir2.WriteManifest(base::StringPrintf(kManifest, "ext2", "document_end")); | 513 ext_dir2.WriteManifest(base::StringPrintf(kManifest, "ext2", "document_end")); |
| 514 ext_dir2.WriteFile(FILE_PATH_LITERAL("script.js"), kNonBlockingScript); | 514 ext_dir2.WriteFile(FILE_PATH_LITERAL("script.js"), kNonBlockingScript); |
| 515 const Extension* ext2 = LoadExtension(ext_dir2.unpacked_path()); | 515 const Extension* ext2 = LoadExtension(ext_dir2.UnpackedPath()); |
| 516 ASSERT_TRUE(ext2); | 516 ASSERT_TRUE(ext2); |
| 517 | 517 |
| 518 content::WebContents* web_contents = | 518 content::WebContents* web_contents = |
| 519 browser()->tab_strip_model()->GetActiveWebContents(); | 519 browser()->tab_strip_model()->GetActiveWebContents(); |
| 520 DialogHelper dialog_helper(web_contents); | 520 DialogHelper dialog_helper(web_contents); |
| 521 base::RunLoop run_loop; | 521 base::RunLoop run_loop; |
| 522 dialog_helper.set_quit_closure(run_loop.QuitClosure()); | 522 dialog_helper.set_quit_closure(run_loop.QuitClosure()); |
| 523 | 523 |
| 524 ExtensionTestMessageListener listener("done", false); | 524 ExtensionTestMessageListener listener("done", false); |
| 525 listener.set_extension_id(ext2->id()); | 525 listener.set_extension_id(ext2->id()); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 543 // regression. | 543 // regression. |
| 544 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, | 544 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, |
| 545 ContentScriptBlockingScriptsDontRunTwice) { | 545 ContentScriptBlockingScriptsDontRunTwice) { |
| 546 ASSERT_TRUE(StartEmbeddedTestServer()); | 546 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 547 | 547 |
| 548 // Load up an extension. | 548 // Load up an extension. |
| 549 TestExtensionDir ext_dir1; | 549 TestExtensionDir ext_dir1; |
| 550 ext_dir1.WriteManifest( | 550 ext_dir1.WriteManifest( |
| 551 base::StringPrintf(kManifest, "ext1", "document_idle")); | 551 base::StringPrintf(kManifest, "ext1", "document_idle")); |
| 552 ext_dir1.WriteFile(FILE_PATH_LITERAL("script.js"), kBlockingScript); | 552 ext_dir1.WriteFile(FILE_PATH_LITERAL("script.js"), kBlockingScript); |
| 553 const Extension* ext1 = LoadExtension(ext_dir1.unpacked_path()); | 553 const Extension* ext1 = LoadExtension(ext_dir1.UnpackedPath()); |
| 554 ASSERT_TRUE(ext1); | 554 ASSERT_TRUE(ext1); |
| 555 | 555 |
| 556 content::WebContents* web_contents = | 556 content::WebContents* web_contents = |
| 557 browser()->tab_strip_model()->GetActiveWebContents(); | 557 browser()->tab_strip_model()->GetActiveWebContents(); |
| 558 DialogHelper dialog_helper(web_contents); | 558 DialogHelper dialog_helper(web_contents); |
| 559 base::RunLoop run_loop; | 559 base::RunLoop run_loop; |
| 560 dialog_helper.set_quit_closure(run_loop.QuitClosure()); | 560 dialog_helper.set_quit_closure(run_loop.QuitClosure()); |
| 561 | 561 |
| 562 // Navigate! | 562 // Navigate! |
| 563 ui_test_utils::NavigateToURLWithDisposition( | 563 ui_test_utils::NavigateToURLWithDisposition( |
| (...skipping 11 matching lines...) Expand all Loading... |
| 575 | 575 |
| 576 // Bug fix for crbug.com/507461. | 576 // Bug fix for crbug.com/507461. |
| 577 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, | 577 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, |
| 578 DocumentStartInjectionFromExtensionTabNavigation) { | 578 DocumentStartInjectionFromExtensionTabNavigation) { |
| 579 ASSERT_TRUE(StartEmbeddedTestServer()); | 579 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 580 | 580 |
| 581 TestExtensionDir new_tab_override_dir; | 581 TestExtensionDir new_tab_override_dir; |
| 582 new_tab_override_dir.WriteManifest(kNewTabOverrideManifest); | 582 new_tab_override_dir.WriteManifest(kNewTabOverrideManifest); |
| 583 new_tab_override_dir.WriteFile(FILE_PATH_LITERAL("newtab.html"), kNewTabHtml); | 583 new_tab_override_dir.WriteFile(FILE_PATH_LITERAL("newtab.html"), kNewTabHtml); |
| 584 const Extension* new_tab_override = | 584 const Extension* new_tab_override = |
| 585 LoadExtension(new_tab_override_dir.unpacked_path()); | 585 LoadExtension(new_tab_override_dir.UnpackedPath()); |
| 586 ASSERT_TRUE(new_tab_override); | 586 ASSERT_TRUE(new_tab_override); |
| 587 | 587 |
| 588 TestExtensionDir injector_dir; | 588 TestExtensionDir injector_dir; |
| 589 injector_dir.WriteManifest( | 589 injector_dir.WriteManifest( |
| 590 base::StringPrintf(kManifest, "injector", "document_start")); | 590 base::StringPrintf(kManifest, "injector", "document_start")); |
| 591 injector_dir.WriteFile(FILE_PATH_LITERAL("script.js"), kNonBlockingScript); | 591 injector_dir.WriteFile(FILE_PATH_LITERAL("script.js"), kNonBlockingScript); |
| 592 const Extension* injector = LoadExtension(injector_dir.unpacked_path()); | 592 const Extension* injector = LoadExtension(injector_dir.UnpackedPath()); |
| 593 ASSERT_TRUE(injector); | 593 ASSERT_TRUE(injector); |
| 594 | 594 |
| 595 ExtensionTestMessageListener listener("done", false); | 595 ExtensionTestMessageListener listener("done", false); |
| 596 AddTabAtIndex(0, GURL("chrome://newtab"), ui::PAGE_TRANSITION_LINK); | 596 AddTabAtIndex(0, GURL("chrome://newtab"), ui::PAGE_TRANSITION_LINK); |
| 597 browser()->tab_strip_model()->ActivateTabAt(0, false); | 597 browser()->tab_strip_model()->ActivateTabAt(0, false); |
| 598 content::WebContents* tab_contents = | 598 content::WebContents* tab_contents = |
| 599 browser()->tab_strip_model()->GetActiveWebContents(); | 599 browser()->tab_strip_model()->GetActiveWebContents(); |
| 600 | 600 |
| 601 EXPECT_EQ(new_tab_override->GetResourceURL("newtab.html"), | 601 EXPECT_EQ(new_tab_override->GetResourceURL("newtab.html"), |
| 602 tab_contents->GetMainFrame()->GetLastCommittedURL()); | 602 tab_contents->GetMainFrame()->GetLastCommittedURL()); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 623 ExtensionTestMessageListener iframe_loaded_listener("iframe loaded", false); | 623 ExtensionTestMessageListener iframe_loaded_listener("iframe loaded", false); |
| 624 ExtensionTestMessageListener content_script_listener("script injected", | 624 ExtensionTestMessageListener content_script_listener("script injected", |
| 625 false); | 625 false); |
| 626 LoadExtension(data_dir.AppendASCII("script_a_com")); | 626 LoadExtension(data_dir.AppendASCII("script_a_com")); |
| 627 LoadExtension(data_dir.AppendASCII("background_page_iframe")); | 627 LoadExtension(data_dir.AppendASCII("background_page_iframe")); |
| 628 iframe_loaded_listener.WaitUntilSatisfied(); | 628 iframe_loaded_listener.WaitUntilSatisfied(); |
| 629 EXPECT_FALSE(content_script_listener.was_satisfied()); | 629 EXPECT_FALSE(content_script_listener.was_satisfied()); |
| 630 } | 630 } |
| 631 | 631 |
| 632 } // namespace extensions | 632 } // namespace extensions |
| OLD | NEW |