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 "content/browser/web_contents/web_contents_view_aura.h" | 5 #include "content/browser/web_contents/web_contents_view_aura.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/test/test_timeouts.h" | 10 #include "base/test/test_timeouts.h" |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 | 570 |
571 // Do a few navigations initiated by the page. | 571 // Do a few navigations initiated by the page. |
572 // Screenshots should never be captured since these are all in-page | 572 // Screenshots should never be captured since these are all in-page |
573 // navigations. | 573 // navigations. |
574 ExecuteSyncJSFunction(main_frame, "navigate_next()"); | 574 ExecuteSyncJSFunction(main_frame, "navigate_next()"); |
575 EXPECT_EQ(1, GetCurrentIndex()); | 575 EXPECT_EQ(1, GetCurrentIndex()); |
576 ExecuteSyncJSFunction(main_frame, "navigate_next()"); | 576 ExecuteSyncJSFunction(main_frame, "navigate_next()"); |
577 EXPECT_EQ(2, GetCurrentIndex()); | 577 EXPECT_EQ(2, GetCurrentIndex()); |
578 screenshot_manager()->WaitUntilScreenshotIsReady(); | 578 screenshot_manager()->WaitUntilScreenshotIsReady(); |
579 | 579 |
580 NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry( | 580 NavigationEntryImpl* entry = web_contents->GetController().GetEntryAtIndex(2); |
581 web_contents->GetController().GetEntryAtIndex(2)); | |
582 EXPECT_FALSE(entry->screenshot().get()); | 581 EXPECT_FALSE(entry->screenshot().get()); |
583 | 582 |
584 entry = NavigationEntryImpl::FromNavigationEntry( | 583 entry = web_contents->GetController().GetEntryAtIndex(1); |
585 web_contents->GetController().GetEntryAtIndex(1)); | |
586 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); | 584 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); |
587 | 585 |
588 entry = NavigationEntryImpl::FromNavigationEntry( | 586 entry = web_contents->GetController().GetEntryAtIndex(0); |
589 web_contents->GetController().GetEntryAtIndex(0)); | |
590 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); | 587 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); |
591 | 588 |
592 ExecuteSyncJSFunction(main_frame, "navigate_next()"); | 589 ExecuteSyncJSFunction(main_frame, "navigate_next()"); |
593 screenshot_manager()->WaitUntilScreenshotIsReady(); | 590 screenshot_manager()->WaitUntilScreenshotIsReady(); |
594 | 591 |
595 entry = NavigationEntryImpl::FromNavigationEntry( | 592 entry = web_contents->GetController().GetEntryAtIndex(2); |
596 web_contents->GetController().GetEntryAtIndex(2)); | |
597 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); | 593 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); |
598 | 594 |
599 entry = NavigationEntryImpl::FromNavigationEntry( | 595 entry = web_contents->GetController().GetEntryAtIndex(3); |
600 web_contents->GetController().GetEntryAtIndex(3)); | |
601 EXPECT_FALSE(entry->screenshot().get()); | 596 EXPECT_FALSE(entry->screenshot().get()); |
602 { | 597 { |
603 // Now, swipe right to navigate backwards. This should navigate away from | 598 // Now, swipe right to navigate backwards. This should navigate away from |
604 // index 3 to index 2. | 599 // index 3 to index 2. |
605 base::string16 expected_title = base::ASCIIToUTF16("Title: #2"); | 600 base::string16 expected_title = base::ASCIIToUTF16("Title: #2"); |
606 content::TitleWatcher title_watcher(web_contents, expected_title); | 601 content::TitleWatcher title_watcher(web_contents, expected_title); |
607 aura::Window* content = web_contents->GetContentNativeView(); | 602 aura::Window* content = web_contents->GetContentNativeView(); |
608 gfx::Rect bounds = content->GetBoundsInRootWindow(); | 603 gfx::Rect bounds = content->GetBoundsInRootWindow(); |
609 ui::test::EventGenerator generator(content->GetRootWindow(), content); | 604 ui::test::EventGenerator generator(content->GetRootWindow(), content); |
610 generator.GestureScrollSequence( | 605 generator.GestureScrollSequence( |
611 gfx::Point(bounds.x() + 2, bounds.y() + 10), | 606 gfx::Point(bounds.x() + 2, bounds.y() + 10), |
612 gfx::Point(bounds.right() - 10, bounds.y() + 10), | 607 gfx::Point(bounds.right() - 10, bounds.y() + 10), |
613 base::TimeDelta::FromMilliseconds(20), | 608 base::TimeDelta::FromMilliseconds(20), |
614 1); | 609 1); |
615 base::string16 actual_title = title_watcher.WaitAndGetTitle(); | 610 base::string16 actual_title = title_watcher.WaitAndGetTitle(); |
616 EXPECT_EQ(expected_title, actual_title); | 611 EXPECT_EQ(expected_title, actual_title); |
617 EXPECT_EQ(2, GetCurrentIndex()); | 612 EXPECT_EQ(2, GetCurrentIndex()); |
618 screenshot_manager()->WaitUntilScreenshotIsReady(); | 613 screenshot_manager()->WaitUntilScreenshotIsReady(); |
619 entry = NavigationEntryImpl::FromNavigationEntry( | 614 entry = web_contents->GetController().GetEntryAtIndex(3); |
620 web_contents->GetController().GetEntryAtIndex(3)); | |
621 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); | 615 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); |
622 } | 616 } |
623 | 617 |
624 // Navigate a couple more times. | 618 // Navigate a couple more times. |
625 ExecuteSyncJSFunction(main_frame, "navigate_next()"); | 619 ExecuteSyncJSFunction(main_frame, "navigate_next()"); |
626 EXPECT_EQ(3, GetCurrentIndex()); | 620 EXPECT_EQ(3, GetCurrentIndex()); |
627 ExecuteSyncJSFunction(main_frame, "navigate_next()"); | 621 ExecuteSyncJSFunction(main_frame, "navigate_next()"); |
628 EXPECT_EQ(4, GetCurrentIndex()); | 622 EXPECT_EQ(4, GetCurrentIndex()); |
629 screenshot_manager()->WaitUntilScreenshotIsReady(); | 623 screenshot_manager()->WaitUntilScreenshotIsReady(); |
630 entry = NavigationEntryImpl::FromNavigationEntry( | 624 entry = web_contents->GetController().GetEntryAtIndex(4); |
631 web_contents->GetController().GetEntryAtIndex(4)); | |
632 EXPECT_FALSE(entry->screenshot().get()); | 625 EXPECT_FALSE(entry->screenshot().get()); |
633 | 626 |
634 { | 627 { |
635 // Navigate back in history. | 628 // Navigate back in history. |
636 base::string16 expected_title = base::ASCIIToUTF16("Title: #3"); | 629 base::string16 expected_title = base::ASCIIToUTF16("Title: #3"); |
637 content::TitleWatcher title_watcher(web_contents, expected_title); | 630 content::TitleWatcher title_watcher(web_contents, expected_title); |
638 web_contents->GetController().GoBack(); | 631 web_contents->GetController().GoBack(); |
639 base::string16 actual_title = title_watcher.WaitAndGetTitle(); | 632 base::string16 actual_title = title_watcher.WaitAndGetTitle(); |
640 EXPECT_EQ(expected_title, actual_title); | 633 EXPECT_EQ(expected_title, actual_title); |
641 EXPECT_EQ(3, GetCurrentIndex()); | 634 EXPECT_EQ(3, GetCurrentIndex()); |
642 screenshot_manager()->WaitUntilScreenshotIsReady(); | 635 screenshot_manager()->WaitUntilScreenshotIsReady(); |
643 entry = NavigationEntryImpl::FromNavigationEntry( | 636 entry = web_contents->GetController().GetEntryAtIndex(4); |
644 web_contents->GetController().GetEntryAtIndex(4)); | |
645 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); | 637 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); |
646 } | 638 } |
647 } | 639 } |
648 | 640 |
649 // Crashes under ThreadSanitizer, http://crbug.com/356758. | 641 // Crashes under ThreadSanitizer, http://crbug.com/356758. |
650 #if defined(THREAD_SANITIZER) | 642 #if defined(THREAD_SANITIZER) |
651 #define MAYBE_ScreenshotForSwappedOutRenderViews \ | 643 #define MAYBE_ScreenshotForSwappedOutRenderViews \ |
652 DISABLED_ScreenshotForSwappedOutRenderViews | 644 DISABLED_ScreenshotForSwappedOutRenderViews |
653 #else | 645 #else |
654 #define MAYBE_ScreenshotForSwappedOutRenderViews \ | 646 #define MAYBE_ScreenshotForSwappedOutRenderViews \ |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
693 | 685 |
694 RenderViewHost* old_host = web_contents->GetRenderViewHost(); | 686 RenderViewHost* old_host = web_contents->GetRenderViewHost(); |
695 web_contents->GetController().LoadURLWithParams(params); | 687 web_contents->GetController().LoadURLWithParams(params); |
696 WaitForLoadStop(web_contents); | 688 WaitForLoadStop(web_contents); |
697 screenshot_manager()->WaitUntilScreenshotIsReady(); | 689 screenshot_manager()->WaitUntilScreenshotIsReady(); |
698 | 690 |
699 EXPECT_NE(old_host, web_contents->GetRenderViewHost()) | 691 EXPECT_NE(old_host, web_contents->GetRenderViewHost()) |
700 << navigations[i].url.spec(); | 692 << navigations[i].url.spec(); |
701 EXPECT_EQ(old_host, screenshot_manager()->screenshot_taken_for()); | 693 EXPECT_EQ(old_host, screenshot_manager()->screenshot_taken_for()); |
702 | 694 |
703 NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry( | 695 NavigationEntryImpl* entry = |
704 web_contents->GetController().GetEntryAtOffset(-1)); | 696 web_contents->GetController().GetEntryAtOffset(-1); |
705 EXPECT_TRUE(screenshot_manager()->ScreenshotSetForEntry(entry)); | 697 EXPECT_TRUE(screenshot_manager()->ScreenshotSetForEntry(entry)); |
706 | 698 |
707 entry = NavigationEntryImpl::FromNavigationEntry( | 699 entry = web_contents->GetController().GetLastCommittedEntry(); |
708 web_contents->GetController().GetLastCommittedEntry()); | |
709 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); | 700 EXPECT_FALSE(screenshot_manager()->ScreenshotSetForEntry(entry)); |
710 EXPECT_FALSE(entry->screenshot().get()); | 701 EXPECT_FALSE(entry->screenshot().get()); |
711 screenshot_manager()->Reset(); | 702 screenshot_manager()->Reset(); |
712 } | 703 } |
713 | 704 |
714 // Increase the minimum interval between taking screenshots. | 705 // Increase the minimum interval between taking screenshots. |
715 set_min_screenshot_interval(60000); | 706 set_min_screenshot_interval(60000); |
716 | 707 |
717 // Navigate again. This should not take any screenshot because of the | 708 // Navigate again. This should not take any screenshot because of the |
718 // increased screenshot interval. | 709 // increased screenshot interval. |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1147 details = dispatcher->OnEventFromSource(&release); | 1138 details = dispatcher->OnEventFromSource(&release); |
1148 ASSERT_FALSE(details.dispatcher_destroyed); | 1139 ASSERT_FALSE(details.dispatcher_destroyed); |
1149 WaitAFrame(); | 1140 WaitAFrame(); |
1150 | 1141 |
1151 EXPECT_LT(0, tracker.num_overscroll_updates()); | 1142 EXPECT_LT(0, tracker.num_overscroll_updates()); |
1152 EXPECT_FALSE(tracker.overscroll_completed()); | 1143 EXPECT_FALSE(tracker.overscroll_completed()); |
1153 } | 1144 } |
1154 } | 1145 } |
1155 | 1146 |
1156 } // namespace content | 1147 } // namespace content |
OLD | NEW |