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 |