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

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

Issue 1258273006: Remove page id from title and state updating. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@switch
Patch Set: comment nit Created 4 years, 2 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/renderer/render_view_impl.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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <tuple> 7 #include <tuple>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 PageStateToHistoryEntry(std::get<0>(host_nav_params).page_state); 637 PageStateToHistoryEntry(std::get<0>(host_nav_params).page_state);
638 blink::WebHTTPBody body = entry->root().httpBody(); 638 blink::WebHTTPBody body = entry->root().httpBody();
639 blink::WebHTTPBody::Element element; 639 blink::WebHTTPBody::Element element;
640 bool successful = body.elementAt(0, element); 640 bool successful = body.elementAt(0, element);
641 EXPECT_TRUE(successful); 641 EXPECT_TRUE(successful);
642 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type); 642 EXPECT_EQ(blink::WebHTTPBody::Element::TypeData, element.type);
643 EXPECT_EQ(length, element.data.size()); 643 EXPECT_EQ(length, element.data.size());
644 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length)); 644 EXPECT_EQ(0, memcmp(raw_data, element.data.data(), length));
645 } 645 }
646 646
647 // Check that page ID will be initialized in case of navigation
648 // that replaces current entry.
649 TEST_F(RenderViewImplTest, OnBrowserNavigationUpdatePageID) {
650 // An http url will trigger a resource load so cannot be used here.
651 CommonNavigationParams common_params;
652 StartNavigationParams start_params;
653 RequestNavigationParams request_params;
654 common_params.url = GURL("data:text/html,<div>Page</div>");
655 common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
656 common_params.transition = ui::PAGE_TRANSITION_TYPED;
657
658 // Set up params to emulate a browser side navigation
659 // that should replace current entry.
660 common_params.should_replace_current_entry = true;
661 request_params.page_id = -1;
662 request_params.nav_entry_id = 1;
663 request_params.current_history_list_length = 1;
664
665 frame()->Navigate(common_params, start_params, request_params);
666 ProcessPendingMessages();
667
668 // Page ID should be initialized.
669 EXPECT_NE(view_page_id(), -1);
670
671 const IPC::Message* frame_navigate_msg =
672 render_thread_->sink().GetUniqueMessageMatching(
673 FrameHostMsg_DidCommitProvisionalLoad::ID);
674 EXPECT_TRUE(frame_navigate_msg);
675
676 FrameHostMsg_DidCommitProvisionalLoad::Param host_nav_params;
677 FrameHostMsg_DidCommitProvisionalLoad::Read(frame_navigate_msg,
678 &host_nav_params);
679 EXPECT_TRUE(std::get<0>(host_nav_params).page_state.IsValid());
680
681 const IPC::Message* frame_page_id_msg =
682 render_thread_->sink().GetUniqueMessageMatching(
683 FrameHostMsg_DidAssignPageId::ID);
684 EXPECT_TRUE(frame_page_id_msg);
685
686 FrameHostMsg_DidAssignPageId::Param host_page_id_params;
687 FrameHostMsg_DidAssignPageId::Read(frame_page_id_msg, &host_page_id_params);
688
689 EXPECT_EQ(std::get<0>(host_page_id_params), view_page_id());
690 }
691
692 #if defined(OS_ANDROID) 647 #if defined(OS_ANDROID)
693 TEST_F(RenderViewImplTest, OnNavigationLoadDataWithBaseURL) { 648 TEST_F(RenderViewImplTest, OnNavigationLoadDataWithBaseURL) {
694 CommonNavigationParams common_params; 649 CommonNavigationParams common_params;
695 common_params.url = GURL("data:text/html,"); 650 common_params.url = GURL("data:text/html,");
696 common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; 651 common_params.navigation_type = FrameMsg_Navigate_Type::NORMAL;
697 common_params.transition = ui::PAGE_TRANSITION_TYPED; 652 common_params.transition = ui::PAGE_TRANSITION_TYPED;
698 common_params.base_url_for_data_url = GURL("about:blank"); 653 common_params.base_url_for_data_url = GURL("about:blank");
699 common_params.history_url_for_data_url = GURL("about:blank"); 654 common_params.history_url_for_data_url = GURL("about:blank");
700 RequestNavigationParams request_params; 655 RequestNavigationParams request_params;
701 request_params.data_url_as_string = 656 request_params.data_url_as_string =
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 // Load page B, which will trigger an UpdateState message for page A. 968 // Load page B, which will trigger an UpdateState message for page A.
1014 LoadHTML("<div>Page B</div>"); 969 LoadHTML("<div>Page B</div>");
1015 970
1016 // Check for a valid UpdateState message for page A. 971 // Check for a valid UpdateState message for page A.
1017 ProcessPendingMessages(); 972 ProcessPendingMessages();
1018 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( 973 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching(
1019 ViewHostMsg_UpdateState::ID); 974 ViewHostMsg_UpdateState::ID);
1020 ASSERT_TRUE(msg_A); 975 ASSERT_TRUE(msg_A);
1021 ViewHostMsg_UpdateState::Param param; 976 ViewHostMsg_UpdateState::Param param;
1022 ViewHostMsg_UpdateState::Read(msg_A, &param); 977 ViewHostMsg_UpdateState::Read(msg_A, &param);
1023 int page_id_A = std::get<0>(param); 978 PageState state_A = std::get<0>(param);
1024 PageState state_A = std::get<1>(param);
1025 EXPECT_EQ(1, page_id_A);
1026 render_thread_->sink().ClearMessages(); 979 render_thread_->sink().ClearMessages();
1027 980
1028 // Load page C, which will trigger an UpdateState message for page B. 981 // Load page C, which will trigger an UpdateState message for page B.
1029 LoadHTML("<div>Page C</div>"); 982 LoadHTML("<div>Page C</div>");
1030 983
1031 // Check for a valid UpdateState for page B. 984 // Check for a valid UpdateState for page B.
1032 ProcessPendingMessages(); 985 ProcessPendingMessages();
1033 const IPC::Message* msg_B = render_thread_->sink().GetUniqueMessageMatching( 986 const IPC::Message* msg_B = render_thread_->sink().GetUniqueMessageMatching(
1034 ViewHostMsg_UpdateState::ID); 987 ViewHostMsg_UpdateState::ID);
1035 ASSERT_TRUE(msg_B); 988 ASSERT_TRUE(msg_B);
1036 ViewHostMsg_UpdateState::Read(msg_B, &param); 989 ViewHostMsg_UpdateState::Read(msg_B, &param);
1037 int page_id_B = std::get<0>(param); 990 PageState state_B = std::get<0>(param);
1038 PageState state_B = std::get<1>(param);
1039 EXPECT_EQ(2, page_id_B);
1040 EXPECT_NE(state_A, state_B); 991 EXPECT_NE(state_A, state_B);
1041 render_thread_->sink().ClearMessages(); 992 render_thread_->sink().ClearMessages();
1042 993
1043 // Load page D, which will trigger an UpdateState message for page C. 994 // Load page D, which will trigger an UpdateState message for page C.
1044 LoadHTML("<div>Page D</div>"); 995 LoadHTML("<div>Page D</div>");
1045 996
1046 // Check for a valid UpdateState for page C. 997 // Check for a valid UpdateState for page C.
1047 ProcessPendingMessages(); 998 ProcessPendingMessages();
1048 const IPC::Message* msg_C = render_thread_->sink().GetUniqueMessageMatching( 999 const IPC::Message* msg_C = render_thread_->sink().GetUniqueMessageMatching(
1049 ViewHostMsg_UpdateState::ID); 1000 ViewHostMsg_UpdateState::ID);
1050 ASSERT_TRUE(msg_C); 1001 ASSERT_TRUE(msg_C);
1051 ViewHostMsg_UpdateState::Read(msg_C, &param); 1002 ViewHostMsg_UpdateState::Read(msg_C, &param);
1052 int page_id_C = std::get<0>(param); 1003 PageState state_C = std::get<0>(param);
1053 PageState state_C = std::get<1>(param);
1054 EXPECT_EQ(3, page_id_C);
1055 EXPECT_NE(state_B, state_C); 1004 EXPECT_NE(state_B, state_C);
1056 render_thread_->sink().ClearMessages(); 1005 render_thread_->sink().ClearMessages();
1057 1006
1058 // Go back to C and commit, preparing for our real test. 1007 // Go back to C and commit, preparing for our real test.
1059 CommonNavigationParams common_params_C; 1008 CommonNavigationParams common_params_C;
1060 RequestNavigationParams request_params_C; 1009 RequestNavigationParams request_params_C;
1061 common_params_C.navigation_type = FrameMsg_Navigate_Type::NORMAL; 1010 common_params_C.navigation_type = FrameMsg_Navigate_Type::NORMAL;
1062 common_params_C.transition = ui::PAGE_TRANSITION_FORWARD_BACK; 1011 common_params_C.transition = ui::PAGE_TRANSITION_FORWARD_BACK;
1063 request_params_C.current_history_list_length = 4; 1012 request_params_C.current_history_list_length = 4;
1064 request_params_C.current_history_list_offset = 3; 1013 request_params_C.current_history_list_offset = 3;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 request_params.page_state = state_A; 1046 request_params.page_state = state_A;
1098 frame()->Navigate(common_params, StartNavigationParams(), request_params); 1047 frame()->Navigate(common_params, StartNavigationParams(), request_params);
1099 ProcessPendingMessages(); 1048 ProcessPendingMessages();
1100 1049
1101 // Now ensure that the UpdateState message we receive is consistent 1050 // Now ensure that the UpdateState message we receive is consistent
1102 // and represents page C in both page_id and state. 1051 // and represents page C in both page_id and state.
1103 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching( 1052 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching(
1104 ViewHostMsg_UpdateState::ID); 1053 ViewHostMsg_UpdateState::ID);
1105 ASSERT_TRUE(msg); 1054 ASSERT_TRUE(msg);
1106 ViewHostMsg_UpdateState::Read(msg, &param); 1055 ViewHostMsg_UpdateState::Read(msg, &param);
1107 int page_id = std::get<0>(param); 1056 PageState state = std::get<0>(param);
1108 PageState state = std::get<1>(param);
1109 EXPECT_EQ(page_id_C, page_id);
1110 EXPECT_NE(state_A, state); 1057 EXPECT_NE(state_A, state);
1111 EXPECT_NE(state_B, state); 1058 EXPECT_NE(state_B, state);
1112 EXPECT_EQ(state_C, state); 1059 EXPECT_EQ(state_C, state);
1113 } 1060 }
1114 1061
1115 // Test that our IME backend sends a notification message when the input focus 1062 // Test that our IME backend sends a notification message when the input focus
1116 // changes. 1063 // changes.
1117 TEST_F(RenderViewImplTest, OnImeTypeChanged) { 1064 TEST_F(RenderViewImplTest, OnImeTypeChanged) {
1118 // Load an HTML page consisting of two input fields. 1065 // Load an HTML page consisting of two input fields.
1119 LoadHTML("<html>" 1066 LoadHTML("<html>"
(...skipping 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after
2557 ExpectPauseAndResume(3); 2504 ExpectPauseAndResume(3);
2558 blink::WebScriptSource source2( 2505 blink::WebScriptSource source2(
2559 WebString::fromUTF8("function func2() { func1(); }; func2();")); 2506 WebString::fromUTF8("function func2() { func1(); }; func2();"));
2560 frame()->GetWebFrame()->executeScriptInIsolatedWorld(17, &source2, 1, 1); 2507 frame()->GetWebFrame()->executeScriptInIsolatedWorld(17, &source2, 1, 1);
2561 2508
2562 EXPECT_FALSE(IsPaused()); 2509 EXPECT_FALSE(IsPaused());
2563 Detach(); 2510 Detach();
2564 } 2511 }
2565 2512
2566 } // namespace content 2513 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.cc ('k') | content/renderer/render_view_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698