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 "chrome/browser/extensions/extension_action_runner.h" | 5 #include "chrome/browser/extensions/extension_action_runner.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
466 // injected. | 466 // injected. |
467 ExtensionActionRunner* runner = | 467 ExtensionActionRunner* runner = |
468 ExtensionActionRunner::GetForWebContents(web_contents); | 468 ExtensionActionRunner::GetForWebContents(web_contents); |
469 ASSERT_TRUE(runner); | 469 ASSERT_TRUE(runner); |
470 EXPECT_TRUE(runner->WantsToRun(extension)); | 470 EXPECT_TRUE(runner->WantsToRun(extension)); |
471 EXPECT_EQ("undefined", GetValue(web_contents)); | 471 EXPECT_EQ("undefined", GetValue(web_contents)); |
472 | 472 |
473 // Wire up the runner to automatically accept the bubble to prompt for page | 473 // Wire up the runner to automatically accept the bubble to prompt for page |
474 // refresh. | 474 // refresh. |
475 runner->set_default_bubble_close_action_for_testing( | 475 runner->set_default_bubble_close_action_for_testing( |
476 base::WrapUnique(new ToolbarActionsBarBubbleDelegate::CloseAction( | 476 base::MakeUnique<ToolbarActionsBarBubbleDelegate::CloseAction>( |
477 ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE))); | 477 ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE)); |
478 | 478 |
479 content::NavigationEntry* entry = | 479 content::NavigationEntry* entry = |
480 web_contents->GetController().GetLastCommittedEntry(); | 480 web_contents->GetController().GetLastCommittedEntry(); |
481 ASSERT_TRUE(entry); | 481 ASSERT_TRUE(entry); |
482 const int first_nav_id = entry->GetUniqueID(); | 482 const int first_nav_id = entry->GetUniqueID(); |
483 | 483 |
484 // Run the extension action, which should cause a page refresh (since we | 484 // Run the extension action, which should cause a page refresh (since we |
485 // automatically accepted the bubble prompting us), and the extension should | 485 // automatically accepted the bubble prompting us), and the extension should |
486 // have injected at document start. | 486 // have injected at document start. |
487 runner->RunAction(extension, true); | 487 runner->RunAction(extension, true); |
(...skipping 14 matching lines...) Expand all Loading... |
502 web_contents->GetController().Reload(true); | 502 web_contents->GetController().Reload(true); |
503 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); | 503 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); |
504 | 504 |
505 // The extension should again want to run. Automatically dismiss the bubble | 505 // The extension should again want to run. Automatically dismiss the bubble |
506 // that pops up prompting for page refresh. | 506 // that pops up prompting for page refresh. |
507 EXPECT_TRUE(runner->WantsToRun(extension)); | 507 EXPECT_TRUE(runner->WantsToRun(extension)); |
508 EXPECT_EQ("undefined", GetValue(web_contents)); | 508 EXPECT_EQ("undefined", GetValue(web_contents)); |
509 const int next_nav_id = | 509 const int next_nav_id = |
510 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID(); | 510 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID(); |
511 runner->set_default_bubble_close_action_for_testing( | 511 runner->set_default_bubble_close_action_for_testing( |
512 base::WrapUnique(new ToolbarActionsBarBubbleDelegate::CloseAction( | 512 base::MakeUnique<ToolbarActionsBarBubbleDelegate::CloseAction>( |
513 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION))); | 513 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION)); |
514 | 514 |
515 // Try running the extension. Nothing should happen, because the user | 515 // Try running the extension. Nothing should happen, because the user |
516 // didn't agree to refresh the page. The extension should still want to run. | 516 // didn't agree to refresh the page. The extension should still want to run. |
517 runner->RunAction(extension, true); | 517 runner->RunAction(extension, true); |
518 base::RunLoop().RunUntilIdle(); | 518 base::RunLoop().RunUntilIdle(); |
519 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); | 519 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); |
520 EXPECT_EQ("undefined", GetValue(web_contents)); | 520 EXPECT_EQ("undefined", GetValue(web_contents)); |
521 EXPECT_EQ( | 521 EXPECT_EQ( |
522 next_nav_id, | 522 next_nav_id, |
523 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID()); | 523 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID()); |
524 | 524 |
525 // Repeat with a dismissal from bubble deactivation - same story. | 525 // Repeat with a dismissal from bubble deactivation - same story. |
526 runner->set_default_bubble_close_action_for_testing( | 526 runner->set_default_bubble_close_action_for_testing( |
527 base::WrapUnique(new ToolbarActionsBarBubbleDelegate::CloseAction( | 527 base::MakeUnique<ToolbarActionsBarBubbleDelegate::CloseAction>( |
528 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_DEACTIVATION))); | 528 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_DEACTIVATION)); |
529 runner->RunAction(extension, true); | 529 runner->RunAction(extension, true); |
530 base::RunLoop().RunUntilIdle(); | 530 base::RunLoop().RunUntilIdle(); |
531 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); | 531 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); |
532 EXPECT_EQ("undefined", GetValue(web_contents)); | 532 EXPECT_EQ("undefined", GetValue(web_contents)); |
533 EXPECT_EQ( | 533 EXPECT_EQ( |
534 next_nav_id, | 534 next_nav_id, |
535 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID()); | 535 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID()); |
536 } | 536 } |
537 | 537 |
538 // A version of the test with the flag off, in order to test that everything | 538 // A version of the test with the flag off, in order to test that everything |
(...skipping 23 matching lines...) Expand all Loading... |
562 | 562 |
563 ASSERT_TRUE(embedded_test_server()->Start()); | 563 ASSERT_TRUE(embedded_test_server()->Start()); |
564 ui_test_utils::NavigateToURL( | 564 ui_test_utils::NavigateToURL( |
565 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); | 565 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); |
566 | 566 |
567 for (size_t i = 0u; i < arraysize(testers); ++i) | 567 for (size_t i = 0u; i < arraysize(testers); ++i) |
568 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i]; | 568 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i]; |
569 } | 569 } |
570 | 570 |
571 } // namespace extensions | 571 } // namespace extensions |
OLD | NEW |