| 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 "base/basictypes.h" | 5 #include "base/basictypes.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/memory/shared_memory.h" | 9 #include "base/memory/shared_memory.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 | 432 |
| 433 // Change the value of the input. We should have gotten an update state | 433 // Change the value of the input. We should have gotten an update state |
| 434 // notification. We need to spin the message loop to catch this update. | 434 // notification. We need to spin the message loop to catch this update. |
| 435 ExecuteJavaScript("document.getElementById('elt_text').value = 'foo';"); | 435 ExecuteJavaScript("document.getElementById('elt_text').value = 'foo';"); |
| 436 ProcessPendingMessages(); | 436 ProcessPendingMessages(); |
| 437 EXPECT_TRUE(render_thread_->sink().GetUniqueMessageMatching( | 437 EXPECT_TRUE(render_thread_->sink().GetUniqueMessageMatching( |
| 438 ViewHostMsg_UpdateState::ID)); | 438 ViewHostMsg_UpdateState::ID)); |
| 439 } | 439 } |
| 440 | 440 |
| 441 TEST_F(RenderViewImplTest, OnNavigationHttpPost) { | 441 TEST_F(RenderViewImplTest, OnNavigationHttpPost) { |
| 442 ViewMsg_Navigate_Params nav_params; | 442 FrameMsg_Navigate_Params nav_params; |
| 443 | 443 |
| 444 // An http url will trigger a resource load so cannot be used here. | 444 // An http url will trigger a resource load so cannot be used here. |
| 445 nav_params.url = GURL("data:text/html,<div>Page</div>"); | 445 nav_params.url = GURL("data:text/html,<div>Page</div>"); |
| 446 nav_params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 446 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 447 nav_params.transition = PAGE_TRANSITION_TYPED; | 447 nav_params.transition = PAGE_TRANSITION_TYPED; |
| 448 nav_params.page_id = -1; | 448 nav_params.page_id = -1; |
| 449 nav_params.is_post = true; | 449 nav_params.is_post = true; |
| 450 | 450 |
| 451 // Set up post data. | 451 // Set up post data. |
| 452 const unsigned char* raw_data = reinterpret_cast<const unsigned char*>( | 452 const unsigned char* raw_data = reinterpret_cast<const unsigned char*>( |
| 453 "post \0\ndata"); | 453 "post \0\ndata"); |
| 454 const unsigned int length = 11; | 454 const unsigned int length = 11; |
| 455 const std::vector<unsigned char> post_data(raw_data, raw_data + length); | 455 const std::vector<unsigned char> post_data(raw_data, raw_data + length); |
| 456 nav_params.browser_initiated_post_data = post_data; | 456 nav_params.browser_initiated_post_data = post_data; |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 // It is possible to get another swap out request. Ensure that we send | 637 // It is possible to get another swap out request. Ensure that we send |
| 638 // an ACK, even if we don't have to do anything else. | 638 // an ACK, even if we don't have to do anything else. |
| 639 render_thread_->sink().ClearMessages(); | 639 render_thread_->sink().ClearMessages(); |
| 640 view()->OnSwapOut(); | 640 view()->OnSwapOut(); |
| 641 const IPC::Message* msg2 = render_thread_->sink().GetUniqueMessageMatching( | 641 const IPC::Message* msg2 = render_thread_->sink().GetUniqueMessageMatching( |
| 642 ViewHostMsg_SwapOut_ACK::ID); | 642 ViewHostMsg_SwapOut_ACK::ID); |
| 643 ASSERT_TRUE(msg2); | 643 ASSERT_TRUE(msg2); |
| 644 | 644 |
| 645 // If we navigate back to this RenderView, ensure we don't send a state | 645 // If we navigate back to this RenderView, ensure we don't send a state |
| 646 // update for the swapped out URL. (http://crbug.com/72235) | 646 // update for the swapped out URL. (http://crbug.com/72235) |
| 647 ViewMsg_Navigate_Params nav_params; | 647 FrameMsg_Navigate_Params nav_params; |
| 648 nav_params.url = GURL("data:text/html,<div>Page B</div>"); | 648 nav_params.url = GURL("data:text/html,<div>Page B</div>"); |
| 649 nav_params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 649 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 650 nav_params.transition = PAGE_TRANSITION_TYPED; | 650 nav_params.transition = PAGE_TRANSITION_TYPED; |
| 651 nav_params.current_history_list_length = 1; | 651 nav_params.current_history_list_length = 1; |
| 652 nav_params.current_history_list_offset = 0; | 652 nav_params.current_history_list_offset = 0; |
| 653 nav_params.pending_history_list_offset = 1; | 653 nav_params.pending_history_list_offset = 1; |
| 654 nav_params.page_id = -1; | 654 nav_params.page_id = -1; |
| 655 view()->OnNavigate(nav_params); | 655 view()->OnNavigate(nav_params); |
| 656 ProcessPendingMessages(); | 656 ProcessPendingMessages(); |
| 657 const IPC::Message* msg3 = render_thread_->sink().GetUniqueMessageMatching( | 657 const IPC::Message* msg3 = render_thread_->sink().GetUniqueMessageMatching( |
| 658 ViewHostMsg_UpdateState::ID); | 658 ViewHostMsg_UpdateState::ID); |
| 659 EXPECT_FALSE(msg3); | 659 EXPECT_FALSE(msg3); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 673 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( | 673 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( |
| 674 ViewHostMsg_UpdateState::ID); | 674 ViewHostMsg_UpdateState::ID); |
| 675 ASSERT_TRUE(msg_A); | 675 ASSERT_TRUE(msg_A); |
| 676 int page_id_A; | 676 int page_id_A; |
| 677 PageState state_A; | 677 PageState state_A; |
| 678 ViewHostMsg_UpdateState::Read(msg_A, &page_id_A, &state_A); | 678 ViewHostMsg_UpdateState::Read(msg_A, &page_id_A, &state_A); |
| 679 EXPECT_EQ(1, page_id_A); | 679 EXPECT_EQ(1, page_id_A); |
| 680 render_thread_->sink().ClearMessages(); | 680 render_thread_->sink().ClearMessages(); |
| 681 | 681 |
| 682 // Back to page A (page_id 1) and commit. | 682 // Back to page A (page_id 1) and commit. |
| 683 ViewMsg_Navigate_Params params_A; | 683 FrameMsg_Navigate_Params params_A; |
| 684 params_A.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 684 params_A.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 685 params_A.transition = PAGE_TRANSITION_FORWARD_BACK; | 685 params_A.transition = PAGE_TRANSITION_FORWARD_BACK; |
| 686 params_A.current_history_list_length = 2; | 686 params_A.current_history_list_length = 2; |
| 687 params_A.current_history_list_offset = 1; | 687 params_A.current_history_list_offset = 1; |
| 688 params_A.pending_history_list_offset = 0; | 688 params_A.pending_history_list_offset = 0; |
| 689 params_A.page_id = 1; | 689 params_A.page_id = 1; |
| 690 params_A.page_state = state_A; | 690 params_A.page_state = state_A; |
| 691 view()->OnNavigate(params_A); | 691 view()->OnNavigate(params_A); |
| 692 ProcessPendingMessages(); | 692 ProcessPendingMessages(); |
| 693 | 693 |
| 694 // Respond to a swap out request. | 694 // Respond to a swap out request. |
| 695 view()->OnSwapOut(); | 695 view()->OnSwapOut(); |
| 696 | 696 |
| 697 // Check for a OnSwapOutACK. | 697 // Check for a OnSwapOutACK. |
| 698 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching( | 698 const IPC::Message* msg = render_thread_->sink().GetUniqueMessageMatching( |
| 699 ViewHostMsg_SwapOut_ACK::ID); | 699 ViewHostMsg_SwapOut_ACK::ID); |
| 700 ASSERT_TRUE(msg); | 700 ASSERT_TRUE(msg); |
| 701 render_thread_->sink().ClearMessages(); | 701 render_thread_->sink().ClearMessages(); |
| 702 | 702 |
| 703 // It is possible to get a reload request at this point, containing the | 703 // It is possible to get a reload request at this point, containing the |
| 704 // params.page_state of the initial page (e.g., if the new page fails the | 704 // params.page_state of the initial page (e.g., if the new page fails the |
| 705 // provisional load in the renderer process, after we unload the old page). | 705 // provisional load in the renderer process, after we unload the old page). |
| 706 // Ensure the old page gets reloaded, not swappedout://. | 706 // Ensure the old page gets reloaded, not swappedout://. |
| 707 ViewMsg_Navigate_Params nav_params; | 707 FrameMsg_Navigate_Params nav_params; |
| 708 nav_params.url = GURL("data:text/html,<div>Page A</div>"); | 708 nav_params.url = GURL("data:text/html,<div>Page A</div>"); |
| 709 nav_params.navigation_type = ViewMsg_Navigate_Type::RELOAD; | 709 nav_params.navigation_type = FrameMsg_Navigate_Type::RELOAD; |
| 710 nav_params.transition = PAGE_TRANSITION_RELOAD; | 710 nav_params.transition = PAGE_TRANSITION_RELOAD; |
| 711 nav_params.current_history_list_length = 2; | 711 nav_params.current_history_list_length = 2; |
| 712 nav_params.current_history_list_offset = 0; | 712 nav_params.current_history_list_offset = 0; |
| 713 nav_params.pending_history_list_offset = 0; | 713 nav_params.pending_history_list_offset = 0; |
| 714 nav_params.page_id = 1; | 714 nav_params.page_id = 1; |
| 715 nav_params.page_state = state_A; | 715 nav_params.page_state = state_A; |
| 716 view()->OnNavigate(nav_params); | 716 view()->OnNavigate(nav_params); |
| 717 ProcessPendingMessages(); | 717 ProcessPendingMessages(); |
| 718 | 718 |
| 719 // Verify page A committed, not swappedout://. | 719 // Verify page A committed, not swappedout://. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 ViewHostMsg_UpdateState::ID); | 775 ViewHostMsg_UpdateState::ID); |
| 776 ASSERT_TRUE(msg_C); | 776 ASSERT_TRUE(msg_C); |
| 777 int page_id_C; | 777 int page_id_C; |
| 778 PageState state_C; | 778 PageState state_C; |
| 779 ViewHostMsg_UpdateState::Read(msg_C, &page_id_C, &state_C); | 779 ViewHostMsg_UpdateState::Read(msg_C, &page_id_C, &state_C); |
| 780 EXPECT_EQ(3, page_id_C); | 780 EXPECT_EQ(3, page_id_C); |
| 781 EXPECT_NE(state_B, state_C); | 781 EXPECT_NE(state_B, state_C); |
| 782 render_thread_->sink().ClearMessages(); | 782 render_thread_->sink().ClearMessages(); |
| 783 | 783 |
| 784 // Go back to C and commit, preparing for our real test. | 784 // Go back to C and commit, preparing for our real test. |
| 785 ViewMsg_Navigate_Params params_C; | 785 FrameMsg_Navigate_Params params_C; |
| 786 params_C.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 786 params_C.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 787 params_C.transition = PAGE_TRANSITION_FORWARD_BACK; | 787 params_C.transition = PAGE_TRANSITION_FORWARD_BACK; |
| 788 params_C.current_history_list_length = 4; | 788 params_C.current_history_list_length = 4; |
| 789 params_C.current_history_list_offset = 3; | 789 params_C.current_history_list_offset = 3; |
| 790 params_C.pending_history_list_offset = 2; | 790 params_C.pending_history_list_offset = 2; |
| 791 params_C.page_id = 3; | 791 params_C.page_id = 3; |
| 792 params_C.page_state = state_C; | 792 params_C.page_state = state_C; |
| 793 view()->OnNavigate(params_C); | 793 view()->OnNavigate(params_C); |
| 794 ProcessPendingMessages(); | 794 ProcessPendingMessages(); |
| 795 render_thread_->sink().ClearMessages(); | 795 render_thread_->sink().ClearMessages(); |
| 796 | 796 |
| 797 // Go back twice quickly, such that page B does not have a chance to commit. | 797 // Go back twice quickly, such that page B does not have a chance to commit. |
| 798 // This leads to two changes to the back/forward list but only one change to | 798 // This leads to two changes to the back/forward list but only one change to |
| 799 // the RenderView's page ID. | 799 // the RenderView's page ID. |
| 800 | 800 |
| 801 // Back to page B (page_id 2), without committing. | 801 // Back to page B (page_id 2), without committing. |
| 802 ViewMsg_Navigate_Params params_B; | 802 FrameMsg_Navigate_Params params_B; |
| 803 params_B.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 803 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 804 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; | 804 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; |
| 805 params_B.current_history_list_length = 4; | 805 params_B.current_history_list_length = 4; |
| 806 params_B.current_history_list_offset = 2; | 806 params_B.current_history_list_offset = 2; |
| 807 params_B.pending_history_list_offset = 1; | 807 params_B.pending_history_list_offset = 1; |
| 808 params_B.page_id = 2; | 808 params_B.page_id = 2; |
| 809 params_B.page_state = state_B; | 809 params_B.page_state = state_B; |
| 810 view()->OnNavigate(params_B); | 810 view()->OnNavigate(params_B); |
| 811 | 811 |
| 812 // Back to page A (page_id 1) and commit. | 812 // Back to page A (page_id 1) and commit. |
| 813 ViewMsg_Navigate_Params params; | 813 FrameMsg_Navigate_Params params; |
| 814 params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 814 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 815 params.transition = PAGE_TRANSITION_FORWARD_BACK; | 815 params.transition = PAGE_TRANSITION_FORWARD_BACK; |
| 816 params_B.current_history_list_length = 4; | 816 params_B.current_history_list_length = 4; |
| 817 params_B.current_history_list_offset = 2; | 817 params_B.current_history_list_offset = 2; |
| 818 params_B.pending_history_list_offset = 0; | 818 params_B.pending_history_list_offset = 0; |
| 819 params.page_id = 1; | 819 params.page_id = 1; |
| 820 params.page_state = state_A; | 820 params.page_state = state_A; |
| 821 view()->OnNavigate(params); | 821 view()->OnNavigate(params); |
| 822 ProcessPendingMessages(); | 822 ProcessPendingMessages(); |
| 823 | 823 |
| 824 // Now ensure that the UpdateState message we receive is consistent | 824 // Now ensure that the UpdateState message we receive is consistent |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 856 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( | 856 const IPC::Message* msg_A = render_thread_->sink().GetUniqueMessageMatching( |
| 857 ViewHostMsg_UpdateState::ID); | 857 ViewHostMsg_UpdateState::ID); |
| 858 ASSERT_TRUE(msg_A); | 858 ASSERT_TRUE(msg_A); |
| 859 int page_id_A; | 859 int page_id_A; |
| 860 PageState state_A; | 860 PageState state_A; |
| 861 ViewHostMsg_UpdateState::Read(msg_A, &page_id_A, &state_A); | 861 ViewHostMsg_UpdateState::Read(msg_A, &page_id_A, &state_A); |
| 862 EXPECT_EQ(1, page_id_A); | 862 EXPECT_EQ(1, page_id_A); |
| 863 render_thread_->sink().ClearMessages(); | 863 render_thread_->sink().ClearMessages(); |
| 864 | 864 |
| 865 // Back to page A (page_id 1) and commit. | 865 // Back to page A (page_id 1) and commit. |
| 866 ViewMsg_Navigate_Params params_A; | 866 FrameMsg_Navigate_Params params_A; |
| 867 params_A.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 867 params_A.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 868 params_A.transition = PAGE_TRANSITION_FORWARD_BACK; | 868 params_A.transition = PAGE_TRANSITION_FORWARD_BACK; |
| 869 params_A.current_history_list_length = 2; | 869 params_A.current_history_list_length = 2; |
| 870 params_A.current_history_list_offset = 1; | 870 params_A.current_history_list_offset = 1; |
| 871 params_A.pending_history_list_offset = 0; | 871 params_A.pending_history_list_offset = 0; |
| 872 params_A.page_id = 1; | 872 params_A.page_id = 1; |
| 873 params_A.page_state = state_A; | 873 params_A.page_state = state_A; |
| 874 view()->OnNavigate(params_A); | 874 view()->OnNavigate(params_A); |
| 875 ProcessPendingMessages(); | 875 ProcessPendingMessages(); |
| 876 | 876 |
| 877 // A new navigation commits, clearing the forward history. | 877 // A new navigation commits, clearing the forward history. |
| 878 LoadHTML("<div>Page C</div>"); | 878 LoadHTML("<div>Page C</div>"); |
| 879 EXPECT_EQ(2, view()->history_list_length_); | 879 EXPECT_EQ(2, view()->history_list_length_); |
| 880 EXPECT_EQ(1, view()->history_list_offset_); | 880 EXPECT_EQ(1, view()->history_list_offset_); |
| 881 EXPECT_EQ(3, view()->history_page_ids_[1]); | 881 EXPECT_EQ(3, view()->history_page_ids_[1]); |
| 882 | 882 |
| 883 // The browser then sends a stale navigation to B, which should be ignored. | 883 // The browser then sends a stale navigation to B, which should be ignored. |
| 884 ViewMsg_Navigate_Params params_B; | 884 FrameMsg_Navigate_Params params_B; |
| 885 params_B.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 885 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 886 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; | 886 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; |
| 887 params_B.current_history_list_length = 2; | 887 params_B.current_history_list_length = 2; |
| 888 params_B.current_history_list_offset = 0; | 888 params_B.current_history_list_offset = 0; |
| 889 params_B.pending_history_list_offset = 1; | 889 params_B.pending_history_list_offset = 1; |
| 890 params_B.page_id = 2; | 890 params_B.page_id = 2; |
| 891 params_B.page_state = state_A; // Doesn't matter, just has to be present. | 891 params_B.page_state = state_A; // Doesn't matter, just has to be present. |
| 892 view()->OnNavigate(params_B); | 892 view()->OnNavigate(params_B); |
| 893 | 893 |
| 894 // State should be unchanged. | 894 // State should be unchanged. |
| 895 EXPECT_EQ(2, view()->history_list_length_); | 895 EXPECT_EQ(2, view()->history_list_length_); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 940 ASSERT_TRUE(msg_B); | 940 ASSERT_TRUE(msg_B); |
| 941 int page_id_B; | 941 int page_id_B; |
| 942 PageState state_B; | 942 PageState state_B; |
| 943 ViewHostMsg_UpdateState::Read(msg_B, &page_id_B, &state_B); | 943 ViewHostMsg_UpdateState::Read(msg_B, &page_id_B, &state_B); |
| 944 EXPECT_EQ(2, page_id_B); | 944 EXPECT_EQ(2, page_id_B); |
| 945 render_thread_->sink().ClearMessages(); | 945 render_thread_->sink().ClearMessages(); |
| 946 | 946 |
| 947 // Suppose the browser has limited the number of NavigationEntries to 2. | 947 // Suppose the browser has limited the number of NavigationEntries to 2. |
| 948 // It has now dropped the first entry, but the renderer isn't notified. | 948 // It has now dropped the first entry, but the renderer isn't notified. |
| 949 // Ensure that going back to page B (page_id 2) at offset 0 is successful. | 949 // Ensure that going back to page B (page_id 2) at offset 0 is successful. |
| 950 ViewMsg_Navigate_Params params_B; | 950 FrameMsg_Navigate_Params params_B; |
| 951 params_B.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 951 params_B.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 952 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; | 952 params_B.transition = PAGE_TRANSITION_FORWARD_BACK; |
| 953 params_B.current_history_list_length = 2; | 953 params_B.current_history_list_length = 2; |
| 954 params_B.current_history_list_offset = 1; | 954 params_B.current_history_list_offset = 1; |
| 955 params_B.pending_history_list_offset = 0; | 955 params_B.pending_history_list_offset = 0; |
| 956 params_B.page_id = 2; | 956 params_B.page_id = 2; |
| 957 params_B.page_state = state_B; | 957 params_B.page_state = state_B; |
| 958 view()->OnNavigate(params_B); | 958 view()->OnNavigate(params_B); |
| 959 ProcessPendingMessages(); | 959 ProcessPendingMessages(); |
| 960 | 960 |
| 961 EXPECT_EQ(2, view()->history_list_length_); | 961 EXPECT_EQ(2, view()->history_list_length_); |
| (...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1659 TEST_F(RenderViewImplTest, DISABLED_DidFailProvisionalLoadWithErrorForError) { | 1659 TEST_F(RenderViewImplTest, DISABLED_DidFailProvisionalLoadWithErrorForError) { |
| 1660 GetMainFrame()->enableViewSourceMode(true); | 1660 GetMainFrame()->enableViewSourceMode(true); |
| 1661 WebURLError error; | 1661 WebURLError error; |
| 1662 error.domain = WebString::fromUTF8(net::kErrorDomain); | 1662 error.domain = WebString::fromUTF8(net::kErrorDomain); |
| 1663 error.reason = net::ERR_FILE_NOT_FOUND; | 1663 error.reason = net::ERR_FILE_NOT_FOUND; |
| 1664 error.unreachableURL = GURL("http://foo"); | 1664 error.unreachableURL = GURL("http://foo"); |
| 1665 WebFrame* web_frame = GetMainFrame(); | 1665 WebFrame* web_frame = GetMainFrame(); |
| 1666 | 1666 |
| 1667 // Start a load that will reach provisional state synchronously, | 1667 // Start a load that will reach provisional state synchronously, |
| 1668 // but won't complete synchronously. | 1668 // but won't complete synchronously. |
| 1669 ViewMsg_Navigate_Params params; | 1669 FrameMsg_Navigate_Params params; |
| 1670 params.page_id = -1; | 1670 params.page_id = -1; |
| 1671 params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 1671 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 1672 params.url = GURL("data:text/html,test data"); | 1672 params.url = GURL("data:text/html,test data"); |
| 1673 view()->OnNavigate(params); | 1673 view()->OnNavigate(params); |
| 1674 | 1674 |
| 1675 // An error occurred. | 1675 // An error occurred. |
| 1676 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); | 1676 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); |
| 1677 // Frame should exit view-source mode. | 1677 // Frame should exit view-source mode. |
| 1678 EXPECT_FALSE(web_frame->isViewSourceModeEnabled()); | 1678 EXPECT_FALSE(web_frame->isViewSourceModeEnabled()); |
| 1679 } | 1679 } |
| 1680 | 1680 |
| 1681 TEST_F(RenderViewImplTest, DidFailProvisionalLoadWithErrorForCancellation) { | 1681 TEST_F(RenderViewImplTest, DidFailProvisionalLoadWithErrorForCancellation) { |
| 1682 GetMainFrame()->enableViewSourceMode(true); | 1682 GetMainFrame()->enableViewSourceMode(true); |
| 1683 WebURLError error; | 1683 WebURLError error; |
| 1684 error.domain = WebString::fromUTF8(net::kErrorDomain); | 1684 error.domain = WebString::fromUTF8(net::kErrorDomain); |
| 1685 error.reason = net::ERR_ABORTED; | 1685 error.reason = net::ERR_ABORTED; |
| 1686 error.unreachableURL = GURL("http://foo"); | 1686 error.unreachableURL = GURL("http://foo"); |
| 1687 WebFrame* web_frame = GetMainFrame(); | 1687 WebFrame* web_frame = GetMainFrame(); |
| 1688 | 1688 |
| 1689 // Start a load that will reach provisional state synchronously, | 1689 // Start a load that will reach provisional state synchronously, |
| 1690 // but won't complete synchronously. | 1690 // but won't complete synchronously. |
| 1691 ViewMsg_Navigate_Params params; | 1691 FrameMsg_Navigate_Params params; |
| 1692 params.page_id = -1; | 1692 params.page_id = -1; |
| 1693 params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 1693 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 1694 params.url = GURL("data:text/html,test data"); | 1694 params.url = GURL("data:text/html,test data"); |
| 1695 view()->OnNavigate(params); | 1695 view()->OnNavigate(params); |
| 1696 | 1696 |
| 1697 // A cancellation occurred. | 1697 // A cancellation occurred. |
| 1698 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); | 1698 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); |
| 1699 // Frame should stay in view-source mode. | 1699 // Frame should stay in view-source mode. |
| 1700 EXPECT_TRUE(web_frame->isViewSourceModeEnabled()); | 1700 EXPECT_TRUE(web_frame->isViewSourceModeEnabled()); |
| 1701 } | 1701 } |
| 1702 | 1702 |
| 1703 // Regression test for http://crbug.com/41562 | 1703 // Regression test for http://crbug.com/41562 |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2014 } | 2014 } |
| 2015 view()->OnImeConfirmComposition( | 2015 view()->OnImeConfirmComposition( |
| 2016 empty_string, gfx::Range::InvalidRange(), false); | 2016 empty_string, gfx::Range::InvalidRange(), false); |
| 2017 } | 2017 } |
| 2018 #endif | 2018 #endif |
| 2019 | 2019 |
| 2020 TEST_F(RenderViewImplTest, ZoomLimit) { | 2020 TEST_F(RenderViewImplTest, ZoomLimit) { |
| 2021 const double kMinZoomLevel = ZoomFactorToZoomLevel(kMinimumZoomFactor); | 2021 const double kMinZoomLevel = ZoomFactorToZoomLevel(kMinimumZoomFactor); |
| 2022 const double kMaxZoomLevel = ZoomFactorToZoomLevel(kMaximumZoomFactor); | 2022 const double kMaxZoomLevel = ZoomFactorToZoomLevel(kMaximumZoomFactor); |
| 2023 | 2023 |
| 2024 ViewMsg_Navigate_Params params; | 2024 FrameMsg_Navigate_Params params; |
| 2025 params.page_id = -1; | 2025 params.page_id = -1; |
| 2026 params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 2026 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 2027 | 2027 |
| 2028 // Verifies navigation to a URL with preset zoom level indeed sets the level. | 2028 // Verifies navigation to a URL with preset zoom level indeed sets the level. |
| 2029 // Regression test for http://crbug.com/139559, where the level was not | 2029 // Regression test for http://crbug.com/139559, where the level was not |
| 2030 // properly set when it is out of the default zoom limits of WebView. | 2030 // properly set when it is out of the default zoom limits of WebView. |
| 2031 params.url = GURL("data:text/html,min_zoomlimit_test"); | 2031 params.url = GURL("data:text/html,min_zoomlimit_test"); |
| 2032 view()->OnSetZoomLevelForLoadingURL(params.url, kMinZoomLevel); | 2032 view()->OnSetZoomLevelForLoadingURL(params.url, kMinZoomLevel); |
| 2033 view()->OnNavigate(params); | 2033 view()->OnNavigate(params); |
| 2034 ProcessPendingMessages(); | 2034 ProcessPendingMessages(); |
| 2035 EXPECT_DOUBLE_EQ(kMinZoomLevel, view()->GetWebView()->zoomLevel()); | 2035 EXPECT_DOUBLE_EQ(kMinZoomLevel, view()->GetWebView()->zoomLevel()); |
| 2036 | 2036 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2092 EXPECT_EQ(2, info.selectionStart); | 2092 EXPECT_EQ(2, info.selectionStart); |
| 2093 EXPECT_EQ(2, info.selectionEnd); | 2093 EXPECT_EQ(2, info.selectionEnd); |
| 2094 } | 2094 } |
| 2095 | 2095 |
| 2096 // Test that the navigating specific frames works correctly. | 2096 // Test that the navigating specific frames works correctly. |
| 2097 TEST_F(RenderViewImplTest, NavigateFrame) { | 2097 TEST_F(RenderViewImplTest, NavigateFrame) { |
| 2098 // Load page A. | 2098 // Load page A. |
| 2099 LoadHTML("hello <iframe srcdoc='fail' name='frame'></iframe>"); | 2099 LoadHTML("hello <iframe srcdoc='fail' name='frame'></iframe>"); |
| 2100 | 2100 |
| 2101 // Navigate the frame only. | 2101 // Navigate the frame only. |
| 2102 ViewMsg_Navigate_Params nav_params; | 2102 FrameMsg_Navigate_Params nav_params; |
| 2103 nav_params.url = GURL("data:text/html,world"); | 2103 nav_params.url = GURL("data:text/html,world"); |
| 2104 nav_params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 2104 nav_params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 2105 nav_params.transition = PAGE_TRANSITION_TYPED; | 2105 nav_params.transition = PAGE_TRANSITION_TYPED; |
| 2106 nav_params.current_history_list_length = 1; | 2106 nav_params.current_history_list_length = 1; |
| 2107 nav_params.current_history_list_offset = 0; | 2107 nav_params.current_history_list_offset = 0; |
| 2108 nav_params.pending_history_list_offset = 1; | 2108 nav_params.pending_history_list_offset = 1; |
| 2109 nav_params.page_id = -1; | 2109 nav_params.page_id = -1; |
| 2110 nav_params.frame_to_navigate = "frame"; | 2110 nav_params.frame_to_navigate = "frame"; |
| 2111 view()->OnNavigate(nav_params); | 2111 view()->OnNavigate(nav_params); |
| 2112 ProcessPendingMessages(); | 2112 ProcessPendingMessages(); |
| 2113 | 2113 |
| 2114 // Copy the document content to std::wstring and compare with the | 2114 // Copy the document content to std::wstring and compare with the |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2214 | 2214 |
| 2215 TEST_F(SuppressErrorPageTest, MAYBE_Suppresses) { | 2215 TEST_F(SuppressErrorPageTest, MAYBE_Suppresses) { |
| 2216 WebURLError error; | 2216 WebURLError error; |
| 2217 error.domain = WebString::fromUTF8(net::kErrorDomain); | 2217 error.domain = WebString::fromUTF8(net::kErrorDomain); |
| 2218 error.reason = net::ERR_FILE_NOT_FOUND; | 2218 error.reason = net::ERR_FILE_NOT_FOUND; |
| 2219 error.unreachableURL = GURL("http://example.com/suppress"); | 2219 error.unreachableURL = GURL("http://example.com/suppress"); |
| 2220 WebFrame* web_frame = GetMainFrame(); | 2220 WebFrame* web_frame = GetMainFrame(); |
| 2221 | 2221 |
| 2222 // Start a load that will reach provisional state synchronously, | 2222 // Start a load that will reach provisional state synchronously, |
| 2223 // but won't complete synchronously. | 2223 // but won't complete synchronously. |
| 2224 ViewMsg_Navigate_Params params; | 2224 FrameMsg_Navigate_Params params; |
| 2225 params.page_id = -1; | 2225 params.page_id = -1; |
| 2226 params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 2226 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 2227 params.url = GURL("data:text/html,test data"); | 2227 params.url = GURL("data:text/html,test data"); |
| 2228 view()->OnNavigate(params); | 2228 view()->OnNavigate(params); |
| 2229 | 2229 |
| 2230 // An error occurred. | 2230 // An error occurred. |
| 2231 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); | 2231 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); |
| 2232 const int kMaxOutputCharacters = 22; | 2232 const int kMaxOutputCharacters = 22; |
| 2233 EXPECT_EQ("", UTF16ToASCII(web_frame->contentAsText(kMaxOutputCharacters))); | 2233 EXPECT_EQ("", UTF16ToASCII(web_frame->contentAsText(kMaxOutputCharacters))); |
| 2234 } | 2234 } |
| 2235 | 2235 |
| 2236 #if defined(OS_ANDROID) | 2236 #if defined(OS_ANDROID) |
| 2237 // Crashing on Android: http://crbug.com/311341 | 2237 // Crashing on Android: http://crbug.com/311341 |
| 2238 #define MAYBE_DoesNotSuppress DISABLED_DoesNotSuppress | 2238 #define MAYBE_DoesNotSuppress DISABLED_DoesNotSuppress |
| 2239 #else | 2239 #else |
| 2240 #define MAYBE_DoesNotSuppress DoesNotSuppress | 2240 #define MAYBE_DoesNotSuppress DoesNotSuppress |
| 2241 #endif | 2241 #endif |
| 2242 | 2242 |
| 2243 TEST_F(SuppressErrorPageTest, MAYBE_DoesNotSuppress) { | 2243 TEST_F(SuppressErrorPageTest, MAYBE_DoesNotSuppress) { |
| 2244 WebURLError error; | 2244 WebURLError error; |
| 2245 error.domain = WebString::fromUTF8(net::kErrorDomain); | 2245 error.domain = WebString::fromUTF8(net::kErrorDomain); |
| 2246 error.reason = net::ERR_FILE_NOT_FOUND; | 2246 error.reason = net::ERR_FILE_NOT_FOUND; |
| 2247 error.unreachableURL = GURL("http://example.com/dont-suppress"); | 2247 error.unreachableURL = GURL("http://example.com/dont-suppress"); |
| 2248 WebFrame* web_frame = GetMainFrame(); | 2248 WebFrame* web_frame = GetMainFrame(); |
| 2249 | 2249 |
| 2250 // Start a load that will reach provisional state synchronously, | 2250 // Start a load that will reach provisional state synchronously, |
| 2251 // but won't complete synchronously. | 2251 // but won't complete synchronously. |
| 2252 ViewMsg_Navigate_Params params; | 2252 FrameMsg_Navigate_Params params; |
| 2253 params.page_id = -1; | 2253 params.page_id = -1; |
| 2254 params.navigation_type = ViewMsg_Navigate_Type::NORMAL; | 2254 params.navigation_type = FrameMsg_Navigate_Type::NORMAL; |
| 2255 params.url = GURL("data:text/html,test data"); | 2255 params.url = GURL("data:text/html,test data"); |
| 2256 view()->OnNavigate(params); | 2256 view()->OnNavigate(params); |
| 2257 | 2257 |
| 2258 // An error occurred. | 2258 // An error occurred. |
| 2259 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); | 2259 view()->main_render_frame()->didFailProvisionalLoad(web_frame, error); |
| 2260 ProcessPendingMessages(); | 2260 ProcessPendingMessages(); |
| 2261 const int kMaxOutputCharacters = 22; | 2261 const int kMaxOutputCharacters = 22; |
| 2262 EXPECT_EQ("A suffusion of yellow.", | 2262 EXPECT_EQ("A suffusion of yellow.", |
| 2263 UTF16ToASCII(web_frame->contentAsText(kMaxOutputCharacters))); | 2263 UTF16ToASCII(web_frame->contentAsText(kMaxOutputCharacters))); |
| 2264 } | 2264 } |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2466 | 2466 |
| 2467 error_code = net::OK; | 2467 error_code = net::OK; |
| 2468 stale_cache_entry_present = true; | 2468 stale_cache_entry_present = true; |
| 2469 ASSERT_TRUE(GetLatestErrorFromRendererClient( | 2469 ASSERT_TRUE(GetLatestErrorFromRendererClient( |
| 2470 &error_code, &stale_cache_entry_present)); | 2470 &error_code, &stale_cache_entry_present)); |
| 2471 EXPECT_EQ(net::ERR_FAILED, error_code); | 2471 EXPECT_EQ(net::ERR_FAILED, error_code); |
| 2472 EXPECT_FALSE(stale_cache_entry_present); | 2472 EXPECT_FALSE(stale_cache_entry_present); |
| 2473 } | 2473 } |
| 2474 | 2474 |
| 2475 } // namespace content | 2475 } // namespace content |
| OLD | NEW |