| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/test/test_render_frame_host.h" | 5 #include "content/test/test_render_frame_host.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "content/browser/frame_host/frame_tree.h" | 8 #include "content/browser/frame_host/frame_tree.h" |
| 9 #include "content/browser/frame_host/navigation_request.h" | 9 #include "content/browser/frame_host/navigation_request.h" |
| 10 #include "content/browser/frame_host/navigator.h" | 10 #include "content/browser/frame_host/navigator.h" |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 } | 68 } |
| 69 | 69 |
| 70 TestRenderFrameHost* TestRenderFrameHost::AppendChild( | 70 TestRenderFrameHost* TestRenderFrameHost::AppendChild( |
| 71 const std::string& frame_name) { | 71 const std::string& frame_name) { |
| 72 OnCreateChildFrame(GetProcess()->GetNextRoutingID(), frame_name, | 72 OnCreateChildFrame(GetProcess()->GetNextRoutingID(), frame_name, |
| 73 SandboxFlags::NONE); | 73 SandboxFlags::NONE); |
| 74 return static_cast<TestRenderFrameHost*>( | 74 return static_cast<TestRenderFrameHost*>( |
| 75 child_creation_observer_.last_created_frame()); | 75 child_creation_observer_.last_created_frame()); |
| 76 } | 76 } |
| 77 | 77 |
| 78 void TestRenderFrameHost::SendNavigateWithTransition( | |
| 79 int page_id, | |
| 80 const GURL& url, | |
| 81 ui::PageTransition transition) { | |
| 82 SendNavigateWithTransitionAndResponseCode(page_id, url, transition, 200); | |
| 83 } | |
| 84 | |
| 85 void TestRenderFrameHost::SetContentsMimeType(const std::string& mime_type) { | 78 void TestRenderFrameHost::SetContentsMimeType(const std::string& mime_type) { |
| 86 contents_mime_type_ = mime_type; | 79 contents_mime_type_ = mime_type; |
| 87 } | 80 } |
| 88 | 81 |
| 89 void TestRenderFrameHost::SendBeforeUnloadACK(bool proceed) { | 82 void TestRenderFrameHost::SendBeforeUnloadACK(bool proceed) { |
| 90 base::TimeTicks now = base::TimeTicks::Now(); | 83 base::TimeTicks now = base::TimeTicks::Now(); |
| 91 OnBeforeUnloadACK(proceed, now, now); | 84 OnBeforeUnloadACK(proceed, now, now); |
| 92 } | 85 } |
| 93 | 86 |
| 94 void TestRenderFrameHost::SimulateSwapOutACK() { | 87 void TestRenderFrameHost::SimulateSwapOutACK() { |
| 95 OnSwappedOut(); | 88 OnSwappedOut(); |
| 96 } | 89 } |
| 97 | 90 |
| 98 void TestRenderFrameHost::SendNavigate(int page_id, const GURL& url) { | 91 void TestRenderFrameHost::SendNavigate(int page_id, |
| 99 SendNavigateWithTransition(page_id, url, ui::PAGE_TRANSITION_LINK); | 92 int nav_entry_id, |
| 93 bool did_create_new_entry, |
| 94 const GURL& url) { |
| 95 SendNavigateWithTransition(page_id, nav_entry_id, did_create_new_entry, url, |
| 96 ui::PAGE_TRANSITION_LINK); |
| 100 } | 97 } |
| 101 | 98 |
| 102 void TestRenderFrameHost::SendFailedNavigate(int page_id, const GURL& url) { | 99 void TestRenderFrameHost::SendFailedNavigate(int page_id, |
| 100 int nav_entry_id, |
| 101 bool did_create_new_entry, |
| 102 const GURL& url) { |
| 103 SendNavigateWithTransitionAndResponseCode(page_id, nav_entry_id, |
| 104 did_create_new_entry, url, |
| 105 ui::PAGE_TRANSITION_RELOAD, 500); |
| 106 } |
| 107 |
| 108 void TestRenderFrameHost::SendNavigateWithTransition( |
| 109 int page_id, |
| 110 int nav_entry_id, |
| 111 bool did_create_new_entry, |
| 112 const GURL& url, |
| 113 ui::PageTransition transition) { |
| 103 SendNavigateWithTransitionAndResponseCode( | 114 SendNavigateWithTransitionAndResponseCode( |
| 104 page_id, url, ui::PAGE_TRANSITION_RELOAD, 500); | 115 page_id, nav_entry_id, did_create_new_entry, url, transition, 200); |
| 105 } | 116 } |
| 106 | 117 |
| 107 void TestRenderFrameHost::SendNavigateWithTransitionAndResponseCode( | 118 void TestRenderFrameHost::SendNavigateWithTransitionAndResponseCode( |
| 108 int page_id, | 119 int page_id, |
| 109 const GURL& url, ui::PageTransition transition, | 120 int nav_entry_id, |
| 121 bool did_create_new_entry, |
| 122 const GURL& url, |
| 123 ui::PageTransition transition, |
| 110 int response_code) { | 124 int response_code) { |
| 111 // DidStartProvisionalLoad may delete the pending entry that holds |url|, | 125 // DidStartProvisionalLoad may delete the pending entry that holds |url|, |
| 112 // so we keep a copy of it to use in SendNavigateWithParameters. | 126 // so we keep a copy of it to use in SendNavigateWithParameters. |
| 113 GURL url_copy(url); | 127 GURL url_copy(url); |
| 114 | 128 |
| 115 // Ensure that the RenderFrameCreated notification has been sent to observers | 129 // Ensure that the RenderFrameCreated notification has been sent to observers |
| 116 // before navigating the frame. | 130 // before navigating the frame. |
| 117 SetRenderFrameCreated(true); | 131 SetRenderFrameCreated(true); |
| 118 | 132 |
| 119 OnDidStartProvisionalLoadForFrame(url_copy, false); | 133 OnDidStartProvisionalLoadForFrame(url_copy, false); |
| 120 SendNavigateWithParameters(page_id, url_copy, transition, url_copy, | 134 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, |
| 121 response_code, 0, std::vector<GURL>()); | 135 url_copy, transition, url_copy, response_code, 0, |
| 136 std::vector<GURL>()); |
| 122 } | 137 } |
| 123 | 138 |
| 124 void TestRenderFrameHost::SendNavigateWithOriginalRequestURL( | 139 void TestRenderFrameHost::SendNavigateWithOriginalRequestURL( |
| 125 int page_id, | 140 int page_id, |
| 141 int nav_entry_id, |
| 142 bool did_create_new_entry, |
| 126 const GURL& url, | 143 const GURL& url, |
| 127 const GURL& original_request_url) { | 144 const GURL& original_request_url) { |
| 128 // Ensure that the RenderFrameCreated notification has been sent to observers | 145 // Ensure that the RenderFrameCreated notification has been sent to observers |
| 129 // before navigating the frame. | 146 // before navigating the frame. |
| 130 SetRenderFrameCreated(true); | 147 SetRenderFrameCreated(true); |
| 131 | 148 |
| 132 OnDidStartProvisionalLoadForFrame(url, false); | 149 OnDidStartProvisionalLoadForFrame(url, false); |
| 133 SendNavigateWithParameters(page_id, url, ui::PAGE_TRANSITION_LINK, | 150 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url, |
| 134 original_request_url, 200, 0, std::vector<GURL>()); | 151 ui::PAGE_TRANSITION_LINK, original_request_url, |
| 152 200, 0, std::vector<GURL>()); |
| 135 } | 153 } |
| 136 | 154 |
| 137 void TestRenderFrameHost::SendNavigateWithFile( | 155 void TestRenderFrameHost::SendNavigateWithFile( |
| 138 int page_id, | 156 int page_id, |
| 157 int nav_entry_id, |
| 158 bool did_create_new_entry, |
| 139 const GURL& url, | 159 const GURL& url, |
| 140 const base::FilePath& file_path) { | 160 const base::FilePath& file_path) { |
| 141 SendNavigateWithParameters(page_id, url, ui::PAGE_TRANSITION_LINK, url, 200, | 161 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url, |
| 142 &file_path, std::vector<GURL>()); | 162 ui::PAGE_TRANSITION_LINK, url, 200, &file_path, |
| 163 std::vector<GURL>()); |
| 143 } | 164 } |
| 144 | 165 |
| 145 void TestRenderFrameHost::SendNavigateWithParams( | 166 void TestRenderFrameHost::SendNavigateWithParams( |
| 146 FrameHostMsg_DidCommitProvisionalLoad_Params* params) { | 167 FrameHostMsg_DidCommitProvisionalLoad_Params* params) { |
| 147 FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), *params); | 168 FrameHostMsg_DidCommitProvisionalLoad msg(GetRoutingID(), *params); |
| 148 OnDidCommitProvisionalLoad(msg); | 169 OnDidCommitProvisionalLoad(msg); |
| 149 } | 170 } |
| 150 | 171 |
| 151 void TestRenderFrameHost::SendNavigateWithRedirects( | 172 void TestRenderFrameHost::SendNavigateWithRedirects( |
| 152 int page_id, | 173 int page_id, |
| 174 int nav_entry_id, |
| 175 bool did_create_new_entry, |
| 153 const GURL& url, | 176 const GURL& url, |
| 154 const std::vector<GURL>& redirects) { | 177 const std::vector<GURL>& redirects) { |
| 155 SendNavigateWithParameters( | 178 SendNavigateWithParameters(page_id, nav_entry_id, did_create_new_entry, url, |
| 156 page_id, url, ui::PAGE_TRANSITION_LINK, url, 200, 0, redirects); | 179 ui::PAGE_TRANSITION_LINK, url, 200, 0, redirects); |
| 157 } | 180 } |
| 158 | 181 |
| 159 void TestRenderFrameHost::SendNavigateWithParameters( | 182 void TestRenderFrameHost::SendNavigateWithParameters( |
| 160 int page_id, | 183 int page_id, |
| 184 int nav_entry_id, |
| 185 bool did_create_new_entry, |
| 161 const GURL& url, | 186 const GURL& url, |
| 162 ui::PageTransition transition, | 187 ui::PageTransition transition, |
| 163 const GURL& original_request_url, | 188 const GURL& original_request_url, |
| 164 int response_code, | 189 int response_code, |
| 165 const base::FilePath* file_path_for_history_item, | 190 const base::FilePath* file_path_for_history_item, |
| 166 const std::vector<GURL>& redirects) { | 191 const std::vector<GURL>& redirects) { |
| 167 FrameHostMsg_DidCommitProvisionalLoad_Params params; | 192 FrameHostMsg_DidCommitProvisionalLoad_Params params; |
| 168 params.page_id = page_id; | 193 params.page_id = page_id; |
| 194 params.nav_entry_id = nav_entry_id; |
| 169 params.url = url; | 195 params.url = url; |
| 170 params.referrer = Referrer(); | 196 params.referrer = Referrer(); |
| 171 params.transition = transition; | 197 params.transition = transition; |
| 172 params.redirects = redirects; | 198 params.redirects = redirects; |
| 173 params.should_update_history = true; | 199 params.should_update_history = true; |
| 174 params.searchable_form_url = GURL(); | 200 params.searchable_form_url = GURL(); |
| 175 params.searchable_form_encoding = std::string(); | 201 params.searchable_form_encoding = std::string(); |
| 202 params.did_create_new_entry = did_create_new_entry; |
| 176 params.security_info = std::string(); | 203 params.security_info = std::string(); |
| 177 params.gesture = NavigationGestureUser; | 204 params.gesture = NavigationGestureUser; |
| 178 params.contents_mime_type = contents_mime_type_; | 205 params.contents_mime_type = contents_mime_type_; |
| 179 params.is_post = false; | 206 params.is_post = false; |
| 180 params.http_status_code = response_code; | 207 params.http_status_code = response_code; |
| 181 params.socket_address.set_host("2001:db8::1"); | 208 params.socket_address.set_host("2001:db8::1"); |
| 182 params.socket_address.set_port(80); | 209 params.socket_address.set_port(80); |
| 183 params.history_list_was_cleared = simulate_history_list_was_cleared_; | 210 params.history_list_was_cleared = simulate_history_list_was_cleared_; |
| 184 params.original_request_url = original_request_url; | 211 params.original_request_url = original_request_url; |
| 185 | 212 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 url_loader->SimulateServerRedirect(redirect_url); | 289 url_loader->SimulateServerRedirect(redirect_url); |
| 263 | 290 |
| 264 // Simulate the network stack commit. | 291 // Simulate the network stack commit. |
| 265 scoped_refptr<ResourceResponse> response(new ResourceResponse); | 292 scoped_refptr<ResourceResponse> response(new ResourceResponse); |
| 266 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to | 293 // TODO(carlosk): ideally with PlzNavigate it should be possible someday to |
| 267 // fully commit the navigation at this call to CallOnResponseStarted. | 294 // fully commit the navigation at this call to CallOnResponseStarted. |
| 268 url_loader->CallOnResponseStarted(response, MakeEmptyStream()); | 295 url_loader->CallOnResponseStarted(response, MakeEmptyStream()); |
| 269 } | 296 } |
| 270 | 297 |
| 271 } // namespace content | 298 } // namespace content |
| OLD | NEW |