| 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 <set> | 5 #include <set> |
| 6 #include <utility> | 6 #include <utility> |
| 7 | 7 |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 base::MessageLoopForIO message_loop_; | 197 base::MessageLoopForIO message_loop_; |
| 198 content::TestBrowserThread ui_thread_; | 198 content::TestBrowserThread ui_thread_; |
| 199 content::TestBrowserThread io_thread_; | 199 content::TestBrowserThread io_thread_; |
| 200 | 200 |
| 201 TestPrerenderManager prerender_manager_; | 201 TestPrerenderManager prerender_manager_; |
| 202 TestPrerenderContents test_contents_; | 202 TestPrerenderContents test_contents_; |
| 203 }; | 203 }; |
| 204 | 204 |
| 205 // Checks that deferred redirects are throttled and resumed correctly. | 205 // Checks that deferred redirects are throttled and resumed correctly. |
| 206 TEST_F(PrerenderResourceThrottleTest, RedirectResume) { | 206 TEST_F(PrerenderResourceThrottleTest, RedirectResume) { |
| 207 const base::FilePath::CharType kRedirectPath[] = | |
| 208 FILE_PATH_LITERAL("prerender/image-deferred.png"); | |
| 209 | |
| 210 test_contents()->Start(); | 207 test_contents()->Start(); |
| 211 RunEvents(); | 208 RunEvents(); |
| 212 | 209 |
| 213 // Fake a request. | 210 // Fake a request. |
| 214 net::TestURLRequestContext url_request_context; | 211 net::TestURLRequestContext url_request_context; |
| 215 DeferredRedirectDelegate delegate; | 212 DeferredRedirectDelegate delegate; |
| 216 scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest( | 213 scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest( |
| 217 net::URLRequestMockHTTPJob::GetMockUrl(base::FilePath(kRedirectPath)), | 214 net::URLRequestMockHTTPJob::GetMockUrl("prerender/image-deferred.png"), |
| 218 net::DEFAULT_PRIORITY, | 215 net::DEFAULT_PRIORITY, |
| 219 &delegate)); | 216 &delegate)); |
| 220 content::ResourceRequestInfo::AllocateForTesting( | 217 content::ResourceRequestInfo::AllocateForTesting( |
| 221 request.get(), | 218 request.get(), |
| 222 content::RESOURCE_TYPE_IMAGE, | 219 content::RESOURCE_TYPE_IMAGE, |
| 223 NULL, | 220 NULL, |
| 224 kDefaultChildId, | 221 kDefaultChildId, |
| 225 kDefaultRouteId, | 222 kDefaultRouteId, |
| 226 MSG_ROUTING_NONE, | 223 MSG_ROUTING_NONE, |
| 227 false, // is_main_frame | 224 false, // is_main_frame |
| (...skipping 15 matching lines...) Expand all Loading... |
| 243 // Display the prerendered RenderView and wait for the throttle to | 240 // Display the prerendered RenderView and wait for the throttle to |
| 244 // notice. | 241 // notice. |
| 245 test_contents()->Use(); | 242 test_contents()->Use(); |
| 246 delegate.Run(); | 243 delegate.Run(); |
| 247 EXPECT_TRUE(delegate.resume_called()); | 244 EXPECT_TRUE(delegate.resume_called()); |
| 248 EXPECT_FALSE(delegate.cancel_called()); | 245 EXPECT_FALSE(delegate.cancel_called()); |
| 249 } | 246 } |
| 250 | 247 |
| 251 // Checks that redirects in main frame loads are not deferred. | 248 // Checks that redirects in main frame loads are not deferred. |
| 252 TEST_F(PrerenderResourceThrottleTest, RedirectMainFrame) { | 249 TEST_F(PrerenderResourceThrottleTest, RedirectMainFrame) { |
| 253 const base::FilePath::CharType kRedirectPath[] = | |
| 254 FILE_PATH_LITERAL("prerender/image-deferred.png"); | |
| 255 | |
| 256 test_contents()->Start(); | 250 test_contents()->Start(); |
| 257 RunEvents(); | 251 RunEvents(); |
| 258 | 252 |
| 259 // Fake a request. | 253 // Fake a request. |
| 260 net::TestURLRequestContext url_request_context; | 254 net::TestURLRequestContext url_request_context; |
| 261 DeferredRedirectDelegate delegate; | 255 DeferredRedirectDelegate delegate; |
| 262 scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest( | 256 scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest( |
| 263 net::URLRequestMockHTTPJob::GetMockUrl(base::FilePath(kRedirectPath)), | 257 net::URLRequestMockHTTPJob::GetMockUrl("prerender/image-deferred.png"), |
| 264 net::DEFAULT_PRIORITY, | 258 net::DEFAULT_PRIORITY, |
| 265 &delegate)); | 259 &delegate)); |
| 266 content::ResourceRequestInfo::AllocateForTesting( | 260 content::ResourceRequestInfo::AllocateForTesting( |
| 267 request.get(), | 261 request.get(), |
| 268 content::RESOURCE_TYPE_MAIN_FRAME, | 262 content::RESOURCE_TYPE_MAIN_FRAME, |
| 269 NULL, | 263 NULL, |
| 270 kDefaultChildId, | 264 kDefaultChildId, |
| 271 kDefaultRouteId, | 265 kDefaultRouteId, |
| 272 MSG_ROUTING_NONE, | 266 MSG_ROUTING_NONE, |
| 273 true, // is_main_frame | 267 true, // is_main_frame |
| (...skipping 13 matching lines...) Expand all Loading... |
| 287 RunEvents(); | 281 RunEvents(); |
| 288 | 282 |
| 289 // Cleanup work so the prerender is gone. | 283 // Cleanup work so the prerender is gone. |
| 290 test_contents()->Cancel(); | 284 test_contents()->Cancel(); |
| 291 RunEvents(); | 285 RunEvents(); |
| 292 } | 286 } |
| 293 | 287 |
| 294 // Checks that attempting to defer a synchronous request aborts the | 288 // Checks that attempting to defer a synchronous request aborts the |
| 295 // prerender. | 289 // prerender. |
| 296 TEST_F(PrerenderResourceThrottleTest, RedirectSyncXHR) { | 290 TEST_F(PrerenderResourceThrottleTest, RedirectSyncXHR) { |
| 297 const base::FilePath::CharType kRedirectPath[] = | |
| 298 FILE_PATH_LITERAL("prerender/image-deferred.png"); | |
| 299 | |
| 300 test_contents()->Start(); | 291 test_contents()->Start(); |
| 301 RunEvents(); | 292 RunEvents(); |
| 302 | 293 |
| 303 // Fake a request. | 294 // Fake a request. |
| 304 net::TestURLRequestContext url_request_context; | 295 net::TestURLRequestContext url_request_context; |
| 305 DeferredRedirectDelegate delegate; | 296 DeferredRedirectDelegate delegate; |
| 306 scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest( | 297 scoped_ptr<net::URLRequest> request(url_request_context.CreateRequest( |
| 307 net::URLRequestMockHTTPJob::GetMockUrl(base::FilePath(kRedirectPath)), | 298 net::URLRequestMockHTTPJob::GetMockUrl("prerender/image-deferred.png"), |
| 308 net::DEFAULT_PRIORITY, | 299 net::DEFAULT_PRIORITY, |
| 309 &delegate)); | 300 &delegate)); |
| 310 content::ResourceRequestInfo::AllocateForTesting( | 301 content::ResourceRequestInfo::AllocateForTesting( |
| 311 request.get(), | 302 request.get(), |
| 312 content::RESOURCE_TYPE_XHR, | 303 content::RESOURCE_TYPE_XHR, |
| 313 NULL, | 304 NULL, |
| 314 kDefaultChildId, | 305 kDefaultChildId, |
| 315 kDefaultRouteId, | 306 kDefaultRouteId, |
| 316 MSG_ROUTING_NONE, | 307 MSG_ROUTING_NONE, |
| 317 false, // is_main_frame | 308 false, // is_main_frame |
| (...skipping 14 matching lines...) Expand all Loading... |
| 332 // We should have cancelled the prerender. | 323 // We should have cancelled the prerender. |
| 333 EXPECT_EQ(FINAL_STATUS_BAD_DEFERRED_REDIRECT, | 324 EXPECT_EQ(FINAL_STATUS_BAD_DEFERRED_REDIRECT, |
| 334 test_contents()->final_status()); | 325 test_contents()->final_status()); |
| 335 | 326 |
| 336 // Cleanup work so the prerender is gone. | 327 // Cleanup work so the prerender is gone. |
| 337 test_contents()->Cancel(); | 328 test_contents()->Cancel(); |
| 338 RunEvents(); | 329 RunEvents(); |
| 339 } | 330 } |
| 340 | 331 |
| 341 } // namespace prerender | 332 } // namespace prerender |
| OLD | NEW |