Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: content/renderer/render_view_browsertest.cc

Issue 562603002: Move PageTransition from //content/public/common to //ui/base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | content/shell/browser/shell.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/memory/shared_memory.h" 8 #include "base/memory/shared_memory.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 EXPECT_TRUE(render_thread_->sink().GetUniqueMessageMatching( 361 EXPECT_TRUE(render_thread_->sink().GetUniqueMessageMatching(
362 ViewHostMsg_UpdateState::ID)); 362 ViewHostMsg_UpdateState::ID));
363 } 363 }
364 364
365 TEST_F(RenderViewImplTest, OnNavigationHttpPost) { 365 TEST_F(RenderViewImplTest, OnNavigationHttpPost) {
366 FrameMsg_Navigate_Params nav_params; 366 FrameMsg_Navigate_Params nav_params;
367 367
368 // An http url will trigger a resource load so cannot be used here. 368 // An http url will trigger a resource load so cannot be used here.
369 nav_params.url = GURL("data:text/html,<div>Page</div>"); 369 nav_params.url = GURL("data:text/html,<div>Page</div>");
370 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 370 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
371 nav_params.transition = PAGE_TRANSITION_TYPED; 371 nav_params.transition = ui::PAGE_TRANSITION_TYPED;
372 nav_params.page_id = -1; 372 nav_params.page_id = -1;
373 nav_params.is_post = true; 373 nav_params.is_post = true;
374 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 374 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
375 375
376 // Set up post data. 376 // Set up post data.
377 const unsigned char* raw_data = reinterpret_cast<const unsigned char*>( 377 const unsigned char* raw_data = reinterpret_cast<const unsigned char*>(
378 "post \0\ndata"); 378 "post \0\ndata");
379 const unsigned int length = 11; 379 const unsigned int length = 11;
380 const std::vector<unsigned char> post_data(raw_data, raw_data + length); 380 const std::vector<unsigned char> post_data(raw_data, raw_data + length);
381 nav_params.browser_initiated_post_data = post_data; 381 nav_params.browser_initiated_post_data = post_data;
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 view()->GetMainRenderFrame()->OnSwapOut(kProxyRoutingId); 566 view()->GetMainRenderFrame()->OnSwapOut(kProxyRoutingId);
567 const IPC::Message* msg2 = render_thread_->sink().GetUniqueMessageMatching( 567 const IPC::Message* msg2 = render_thread_->sink().GetUniqueMessageMatching(
568 FrameHostMsg_SwapOut_ACK::ID); 568 FrameHostMsg_SwapOut_ACK::ID);
569 ASSERT_TRUE(msg2); 569 ASSERT_TRUE(msg2);
570 570
571 // If we navigate back to this RenderView, ensure we don't send a state 571 // If we navigate back to this RenderView, ensure we don't send a state
572 // update for the swapped out URL. (http://crbug.com/72235) 572 // update for the swapped out URL. (http://crbug.com/72235)
573 FrameMsg_Navigate_Params nav_params; 573 FrameMsg_Navigate_Params nav_params;
574 nav_params.url = GURL("data:text/html,<div>Page B</div>"); 574 nav_params.url = GURL("data:text/html,<div>Page B</div>");
575 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 575 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
576 nav_params.transition = PAGE_TRANSITION_TYPED; 576 nav_params.transition = ui::PAGE_TRANSITION_TYPED;
577 nav_params.current_history_list_length = 1; 577 nav_params.current_history_list_length = 1;
578 nav_params.current_history_list_offset = 0; 578 nav_params.current_history_list_offset = 0;
579 nav_params.pending_history_list_offset = 1; 579 nav_params.pending_history_list_offset = 1;
580 nav_params.page_id = -1; 580 nav_params.page_id = -1;
581 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 581 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
582 frame()->OnNavigate(nav_params); 582 frame()->OnNavigate(nav_params);
583 ProcessPendingMessages(); 583 ProcessPendingMessages();
584 const IPC::Message* msg3 = render_thread_->sink().GetUniqueMessageMatching( 584 const IPC::Message* msg3 = render_thread_->sink().GetUniqueMessageMatching(
585 ViewHostMsg_UpdateState::ID); 585 ViewHostMsg_UpdateState::ID);
586 EXPECT_FALSE(msg3); 586 EXPECT_FALSE(msg3);
(...skipping 16 matching lines...) Expand all
603 ViewHostMsg_UpdateState::Param params; 603 ViewHostMsg_UpdateState::Param params;
604 ViewHostMsg_UpdateState::Read(msg_A, &params); 604 ViewHostMsg_UpdateState::Read(msg_A, &params);
605 int page_id_A = params.a; 605 int page_id_A = params.a;
606 PageState state_A = params.b; 606 PageState state_A = params.b;
607 EXPECT_EQ(1, page_id_A); 607 EXPECT_EQ(1, page_id_A);
608 render_thread_->sink().ClearMessages(); 608 render_thread_->sink().ClearMessages();
609 609
610 // Back to page A (page_id 1) and commit. 610 // Back to page A (page_id 1) and commit.
611 FrameMsg_Navigate_Params params_A; 611 FrameMsg_Navigate_Params params_A;
612 params_A.navigation_type = FrameMsg_Navigate_Type::NORMAL; 612 params_A.navigation_type = FrameMsg_Navigate_Type::NORMAL;
613 params_A.transition = PAGE_TRANSITION_FORWARD_BACK; 613 params_A.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
614 params_A.current_history_list_length = 2; 614 params_A.current_history_list_length = 2;
615 params_A.current_history_list_offset = 1; 615 params_A.current_history_list_offset = 1;
616 params_A.pending_history_list_offset = 0; 616 params_A.pending_history_list_offset = 0;
617 params_A.page_id = 1; 617 params_A.page_id = 1;
618 params_A.page_state = state_A; 618 params_A.page_state = state_A;
619 params_A.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 619 params_A.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
620 frame()->OnNavigate(params_A); 620 frame()->OnNavigate(params_A);
621 ProcessPendingMessages(); 621 ProcessPendingMessages();
622 622
623 // Respond to a swap out request. 623 // Respond to a swap out request.
624 view()->GetMainRenderFrame()->OnSwapOut(kProxyRoutingId); 624 view()->GetMainRenderFrame()->OnSwapOut(kProxyRoutingId);
625 625
626 // Check for a OnSwapOutACK. 626 // Check for a OnSwapOutACK.
627 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching( 627 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching(
628 FrameHostMsg_SwapOut_ACK::ID); 628 FrameHostMsg_SwapOut_ACK::ID);
629 ASSERT_TRUE(msg); 629 ASSERT_TRUE(msg);
630 render_thread_->sink().ClearMessages(); 630 render_thread_->sink().ClearMessages();
631 631
632 // It is possible to get a reload request at this point, containing the 632 // It is possible to get a reload request at this point, containing the
633 // params.page_state of the initial page (e.g., if the new page fails the 633 // params.page_state of the initial page (e.g., if the new page fails the
634 // provisional load in the renderer process, after we unload the old page). 634 // provisional load in the renderer process, after we unload the old page).
635 // Ensure the old page gets reloaded, not swappedout://. 635 // Ensure the old page gets reloaded, not swappedout://.
636 FrameMsg_Navigate_Params nav_params; 636 FrameMsg_Navigate_Params nav_params;
637 nav_params.url = GURL("data:text/html,<div>Page A</div>"); 637 nav_params.url = GURL("data:text/html,<div>Page A</div>");
638 nav_params.navigation_type = FrameMsg_Navigate_Type::RELOAD; 638 nav_params.navigation_type = FrameMsg_Navigate_Type::RELOAD;
639 nav_params.transition = PAGE_TRANSITION_RELOAD; 639 nav_params.transition = ui::PAGE_TRANSITION_RELOAD;
640 nav_params.current_history_list_length = 2; 640 nav_params.current_history_list_length = 2;
641 nav_params.current_history_list_offset = 0; 641 nav_params.current_history_list_offset = 0;
642 nav_params.pending_history_list_offset = 0; 642 nav_params.pending_history_list_offset = 0;
643 nav_params.page_id = 1; 643 nav_params.page_id = 1;
644 nav_params.page_state = state_A; 644 nav_params.page_state = state_A;
645 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 645 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
646 frame()->OnNavigate(nav_params); 646 frame()->OnNavigate(nav_params);
647 ProcessPendingMessages(); 647 ProcessPendingMessages();
648 648
649 // Verify page A committed, not swappedout://. 649 // Verify page A committed, not swappedout://.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 ViewHostMsg_UpdateState::Read(msg_C, &param); 708 ViewHostMsg_UpdateState::Read(msg_C, &param);
709 int page_id_C = param.a; 709 int page_id_C = param.a;
710 PageState state_C = param.b; 710 PageState state_C = param.b;
711 EXPECT_EQ(3, page_id_C); 711 EXPECT_EQ(3, page_id_C);
712 EXPECT_NE(state_B, state_C); 712 EXPECT_NE(state_B, state_C);
713 render_thread_->sink().ClearMessages(); 713 render_thread_->sink().ClearMessages();
714 714
715 // Go back to C and commit, preparing for our real test. 715 // Go back to C and commit, preparing for our real test.
716 FrameMsg_Navigate_Params params_C; 716 FrameMsg_Navigate_Params params_C;
717 params_C.navigation_type = FrameMsg_Navigate_Type::NORMAL; 717 params_C.navigation_type = FrameMsg_Navigate_Type::NORMAL;
718 params_C.transition = PAGE_TRANSITION_FORWARD_BACK; 718 params_C.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
719 params_C.current_history_list_length = 4; 719 params_C.current_history_list_length = 4;
720 params_C.current_history_list_offset = 3; 720 params_C.current_history_list_offset = 3;
721 params_C.pending_history_list_offset = 2; 721 params_C.pending_history_list_offset = 2;
722 params_C.page_id = 3; 722 params_C.page_id = 3;
723 params_C.page_state = state_C; 723 params_C.page_state = state_C;
724 params_C.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 724 params_C.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
725 frame()->OnNavigate(params_C); 725 frame()->OnNavigate(params_C);
726 ProcessPendingMessages(); 726 ProcessPendingMessages();
727 render_thread_->sink().ClearMessages(); 727 render_thread_->sink().ClearMessages();
728 728
729 // Go back twice quickly, such that page B does not have a chance to commit. 729 // Go back twice quickly, such that page B does not have a chance to commit.
730 // This leads to two changes to the back/forward list but only one change to 730 // This leads to two changes to the back/forward list but only one change to
731 // the RenderView's page ID. 731 // the RenderView's page ID.
732 732
733 // Back to page B (page_id 2), without committing. 733 // Back to page B (page_id 2), without committing.
734 FrameMsg_Navigate_Params params_B; 734 FrameMsg_Navigate_Params params_B;
735 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL; 735 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL;
736 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; 736 params_B.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
737 params_B.current_history_list_length = 4; 737 params_B.current_history_list_length = 4;
738 params_B.current_history_list_offset = 2; 738 params_B.current_history_list_offset = 2;
739 params_B.pending_history_list_offset = 1; 739 params_B.pending_history_list_offset = 1;
740 params_B.page_id = 2; 740 params_B.page_id = 2;
741 params_B.page_state = state_B; 741 params_B.page_state = state_B;
742 params_B.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 742 params_B.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
743 frame()->OnNavigate(params_B); 743 frame()->OnNavigate(params_B);
744 744
745 // Back to page A (page_id 1) and commit. 745 // Back to page A (page_id 1) and commit.
746 FrameMsg_Navigate_Params params; 746 FrameMsg_Navigate_Params params;
747 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 747 params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
748 params.transition = PAGE_TRANSITION_FORWARD_BACK; 748 params.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
749 params_B.current_history_list_length = 4; 749 params_B.current_history_list_length = 4;
750 params_B.current_history_list_offset = 2; 750 params_B.current_history_list_offset = 2;
751 params_B.pending_history_list_offset = 0; 751 params_B.pending_history_list_offset = 0;
752 params.page_id = 1; 752 params.page_id = 1;
753 params.page_state = state_A; 753 params.page_state = state_A;
754 params.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 754 params.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
755 frame()->OnNavigate(params); 755 frame()->OnNavigate(params);
756 ProcessPendingMessages(); 756 ProcessPendingMessages();
757 757
758 // Now ensure that the UpdateState message we receive is consistent 758 // Now ensure that the UpdateState message we receive is consistent
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 ViewHostMsg_UpdateState::Param param; 793 ViewHostMsg_UpdateState::Param param;
794 ViewHostMsg_UpdateState::Read(msg_A, &param); 794 ViewHostMsg_UpdateState::Read(msg_A, &param);
795 int page_id_A = param.a; 795 int page_id_A = param.a;
796 PageState state_A = param.b; 796 PageState state_A = param.b;
797 EXPECT_EQ(1, page_id_A); 797 EXPECT_EQ(1, page_id_A);
798 render_thread_->sink().ClearMessages(); 798 render_thread_->sink().ClearMessages();
799 799
800 // Back to page A (page_id 1) and commit. 800 // Back to page A (page_id 1) and commit.
801 FrameMsg_Navigate_Params params_A; 801 FrameMsg_Navigate_Params params_A;
802 params_A.navigation_type = FrameMsg_Navigate_Type::NORMAL; 802 params_A.navigation_type = FrameMsg_Navigate_Type::NORMAL;
803 params_A.transition = PAGE_TRANSITION_FORWARD_BACK; 803 params_A.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
804 params_A.current_history_list_length = 2; 804 params_A.current_history_list_length = 2;
805 params_A.current_history_list_offset = 1; 805 params_A.current_history_list_offset = 1;
806 params_A.pending_history_list_offset = 0; 806 params_A.pending_history_list_offset = 0;
807 params_A.page_id = 1; 807 params_A.page_id = 1;
808 params_A.page_state = state_A; 808 params_A.page_state = state_A;
809 params_A.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 809 params_A.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
810 frame()->OnNavigate(params_A); 810 frame()->OnNavigate(params_A);
811 ProcessPendingMessages(); 811 ProcessPendingMessages();
812 812
813 // A new navigation commits, clearing the forward history. 813 // A new navigation commits, clearing the forward history.
814 LoadHTML("<div>Page C</div>"); 814 LoadHTML("<div>Page C</div>");
815 EXPECT_EQ(2, view()->history_list_length_); 815 EXPECT_EQ(2, view()->history_list_length_);
816 EXPECT_EQ(1, view()->history_list_offset_); 816 EXPECT_EQ(1, view()->history_list_offset_);
817 EXPECT_EQ(3, view()->history_page_ids_[1]); 817 EXPECT_EQ(3, view()->history_page_ids_[1]);
818 818
819 // The browser then sends a stale navigation to B, which should be ignored. 819 // The browser then sends a stale navigation to B, which should be ignored.
820 FrameMsg_Navigate_Params params_B; 820 FrameMsg_Navigate_Params params_B;
821 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL; 821 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL;
822 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; 822 params_B.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
823 params_B.current_history_list_length = 2; 823 params_B.current_history_list_length = 2;
824 params_B.current_history_list_offset = 0; 824 params_B.current_history_list_offset = 0;
825 params_B.pending_history_list_offset = 1; 825 params_B.pending_history_list_offset = 1;
826 params_B.page_id = 2; 826 params_B.page_id = 2;
827 params_B.page_state = state_A; // Doesn't matter, just has to be present. 827 params_B.page_state = state_A; // Doesn't matter, just has to be present.
828 params_B.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 828 params_B.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
829 frame()->OnNavigate(params_B); 829 frame()->OnNavigate(params_B);
830 830
831 // State should be unchanged. 831 // State should be unchanged.
832 EXPECT_EQ(2, view()->history_list_length_); 832 EXPECT_EQ(2, view()->history_list_length_);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 int page_id_B = param.a; 880 int page_id_B = param.a;
881 PageState state_B = param.b; 881 PageState state_B = param.b;
882 EXPECT_EQ(2, page_id_B); 882 EXPECT_EQ(2, page_id_B);
883 render_thread_->sink().ClearMessages(); 883 render_thread_->sink().ClearMessages();
884 884
885 // Suppose the browser has limited the number of NavigationEntries to 2. 885 // Suppose the browser has limited the number of NavigationEntries to 2.
886 // It has now dropped the first entry, but the renderer isn't notified. 886 // It has now dropped the first entry, but the renderer isn't notified.
887 // Ensure that going back to page B (page_id 2) at offset 0 is successful. 887 // Ensure that going back to page B (page_id 2) at offset 0 is successful.
888 FrameMsg_Navigate_Params params_B; 888 FrameMsg_Navigate_Params params_B;
889 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL; 889 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL;
890 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; 890 params_B.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
891 params_B.current_history_list_length = 2; 891 params_B.current_history_list_length = 2;
892 params_B.current_history_list_offset = 1; 892 params_B.current_history_list_offset = 1;
893 params_B.pending_history_list_offset = 0; 893 params_B.pending_history_list_offset = 0;
894 params_B.page_id = 2; 894 params_B.page_id = 2;
895 params_B.page_state = state_B; 895 params_B.page_state = state_B;
896 params_B.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 896 params_B.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
897 frame()->OnNavigate(params_B); 897 frame()->OnNavigate(params_B);
898 ProcessPendingMessages(); 898 ProcessPendingMessages();
899 899
900 EXPECT_EQ(2, view()->history_list_length_); 900 EXPECT_EQ(2, view()->history_list_length_);
(...skipping 1176 matching lines...) Expand 10 before | Expand all | Expand 10 after
2077 2077
2078 // Test that the navigating specific frames works correctly. 2078 // Test that the navigating specific frames works correctly.
2079 TEST_F(RenderViewImplTest, NavigateFrame) { 2079 TEST_F(RenderViewImplTest, NavigateFrame) {
2080 // Load page A. 2080 // Load page A.
2081 LoadHTML("hello <iframe srcdoc='fail' name='frame'></iframe>"); 2081 LoadHTML("hello <iframe srcdoc='fail' name='frame'></iframe>");
2082 2082
2083 // Navigate the frame only. 2083 // Navigate the frame only.
2084 FrameMsg_Navigate_Params nav_params; 2084 FrameMsg_Navigate_Params nav_params;
2085 nav_params.url = GURL("data:text/html,world"); 2085 nav_params.url = GURL("data:text/html,world");
2086 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 2086 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
2087 nav_params.transition = PAGE_TRANSITION_TYPED; 2087 nav_params.transition = ui::PAGE_TRANSITION_TYPED;
2088 nav_params.current_history_list_length = 1; 2088 nav_params.current_history_list_length = 1;
2089 nav_params.current_history_list_offset = 0; 2089 nav_params.current_history_list_offset = 0;
2090 nav_params.pending_history_list_offset = 1; 2090 nav_params.pending_history_list_offset = 1;
2091 nav_params.page_id = -1; 2091 nav_params.page_id = -1;
2092 nav_params.frame_to_navigate = "frame"; 2092 nav_params.frame_to_navigate = "frame";
2093 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1); 2093 nav_params.browser_navigation_start = base::TimeTicks::FromInternalValue(1);
2094 frame()->OnNavigate(nav_params); 2094 frame()->OnNavigate(nav_params);
2095 FrameLoadWaiter( 2095 FrameLoadWaiter(
2096 RenderFrame::FromWebFrame(frame()->GetWebFrame()->firstChild())).Wait(); 2096 RenderFrame::FromWebFrame(frame()->GetWebFrame()->firstChild())).Wait();
2097 2097
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
2446 // are asserting only most basic constraints, as TimeTicks (passed as the 2446 // are asserting only most basic constraints, as TimeTicks (passed as the
2447 // override) are not comparable with the wall time (returned by the Blink API). 2447 // override) are not comparable with the wall time (returned by the Blink API).
2448 TEST_F(RenderViewImplTest, NavigationStartOverride) { 2448 TEST_F(RenderViewImplTest, NavigationStartOverride) {
2449 // Verify that a navigation that claims to have started at the earliest 2449 // Verify that a navigation that claims to have started at the earliest
2450 // possible TimeTicks is indeed reported as one that started before 2450 // possible TimeTicks is indeed reported as one that started before
2451 // OnNavigate() is called. 2451 // OnNavigate() is called.
2452 base::Time before_navigation = base::Time::Now(); 2452 base::Time before_navigation = base::Time::Now();
2453 FrameMsg_Navigate_Params early_nav_params; 2453 FrameMsg_Navigate_Params early_nav_params;
2454 early_nav_params.url = GURL("data:text/html,<div>Page</div>"); 2454 early_nav_params.url = GURL("data:text/html,<div>Page</div>");
2455 early_nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 2455 early_nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
2456 early_nav_params.transition = PAGE_TRANSITION_TYPED; 2456 early_nav_params.transition = ui::PAGE_TRANSITION_TYPED;
2457 early_nav_params.page_id = -1; 2457 early_nav_params.page_id = -1;
2458 early_nav_params.is_post = true; 2458 early_nav_params.is_post = true;
2459 early_nav_params.browser_navigation_start = 2459 early_nav_params.browser_navigation_start =
2460 base::TimeTicks::FromInternalValue(1); 2460 base::TimeTicks::FromInternalValue(1);
2461 2461
2462 frame()->OnNavigate(early_nav_params); 2462 frame()->OnNavigate(early_nav_params);
2463 ProcessPendingMessages(); 2463 ProcessPendingMessages();
2464 2464
2465 base::Time early_nav_reported_start = 2465 base::Time early_nav_reported_start =
2466 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart()); 2466 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart());
2467 EXPECT_LT(early_nav_reported_start, before_navigation); 2467 EXPECT_LT(early_nav_reported_start, before_navigation);
2468 2468
2469 // Verify that a navigation that claims to have started in the future - 42 2469 // Verify that a navigation that claims to have started in the future - 42
2470 // days from now is *not* reported as one that starts in the future; as we 2470 // days from now is *not* reported as one that starts in the future; as we
2471 // sanitize the override allowing a maximum of ::Now(). 2471 // sanitize the override allowing a maximum of ::Now().
2472 FrameMsg_Navigate_Params late_nav_params; 2472 FrameMsg_Navigate_Params late_nav_params;
2473 late_nav_params.url = GURL("data:text/html,<div>Another page</div>"); 2473 late_nav_params.url = GURL("data:text/html,<div>Another page</div>");
2474 late_nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 2474 late_nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
2475 late_nav_params.transition = PAGE_TRANSITION_TYPED; 2475 late_nav_params.transition = ui::PAGE_TRANSITION_TYPED;
2476 late_nav_params.page_id = -1; 2476 late_nav_params.page_id = -1;
2477 late_nav_params.is_post = true; 2477 late_nav_params.is_post = true;
2478 late_nav_params.browser_navigation_start = 2478 late_nav_params.browser_navigation_start =
2479 base::TimeTicks::Now() + base::TimeDelta::FromDays(42); 2479 base::TimeTicks::Now() + base::TimeDelta::FromDays(42);
2480 2480
2481 frame()->OnNavigate(late_nav_params); 2481 frame()->OnNavigate(late_nav_params);
2482 ProcessPendingMessages(); 2482 ProcessPendingMessages();
2483 base::Time after_navigation = 2483 base::Time after_navigation =
2484 base::Time::Now() + base::TimeDelta::FromDays(1); 2484 base::Time::Now() + base::TimeDelta::FromDays(1);
2485 2485
2486 base::Time late_nav_reported_start = 2486 base::Time late_nav_reported_start =
2487 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart()); 2487 base::Time::FromDoubleT(GetMainFrame()->performance().navigationStart());
2488 EXPECT_LE(late_nav_reported_start, after_navigation); 2488 EXPECT_LE(late_nav_reported_start, after_navigation);
2489 } 2489 }
2490 2490
2491 } // namespace content 2491 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | content/shell/browser/shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698