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

Side by Side Diff: content/browser/frame_host/navigation_request.cc

Issue 2797443005: PlzNavigate data pipe
Patch Set: cleanup Created 3 years, 8 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/browser/frame_host/navigation_request.h" 5 #include "content/browser/frame_host/navigation_request.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "content/browser/appcache/appcache_navigation_handle.h" 10 #include "content/browser/appcache/appcache_navigation_handle.h"
(...skipping 18 matching lines...) Expand all
29 #include "content/common/resource_request_body_impl.h" 29 #include "content/common/resource_request_body_impl.h"
30 #include "content/public/browser/browser_context.h" 30 #include "content/public/browser/browser_context.h"
31 #include "content/public/browser/browser_thread.h" 31 #include "content/public/browser/browser_thread.h"
32 #include "content/public/browser/content_browser_client.h" 32 #include "content/public/browser/content_browser_client.h"
33 #include "content/public/browser/global_request_id.h" 33 #include "content/public/browser/global_request_id.h"
34 #include "content/public/browser/navigation_controller.h" 34 #include "content/public/browser/navigation_controller.h"
35 #include "content/public/browser/navigation_data.h" 35 #include "content/public/browser/navigation_data.h"
36 #include "content/public/browser/navigation_ui_data.h" 36 #include "content/public/browser/navigation_ui_data.h"
37 #include "content/public/browser/render_view_host.h" 37 #include "content/public/browser/render_view_host.h"
38 #include "content/public/browser/storage_partition.h" 38 #include "content/public/browser/storage_partition.h"
39 #include "content/public/browser/stream_handle.h"
40 #include "content/public/common/appcache_info.h" 39 #include "content/public/common/appcache_info.h"
41 #include "content/public/common/content_client.h" 40 #include "content/public/common/content_client.h"
42 #include "content/public/common/origin_util.h" 41 #include "content/public/common/origin_util.h"
43 #include "content/public/common/request_context_type.h" 42 #include "content/public/common/request_context_type.h"
44 #include "content/public/common/resource_response.h" 43 #include "content/public/common/resource_response.h"
45 #include "content/public/common/url_constants.h" 44 #include "content/public/common/url_constants.h"
46 #include "content/public/common/web_preferences.h" 45 #include "content/public/common/web_preferences.h"
47 #include "net/base/load_flags.h" 46 #include "net/base/load_flags.h"
48 #include "net/base/net_errors.h" 47 #include "net/base/net_errors.h"
49 #include "net/base/url_util.h" 48 #include "net/base/url_util.h"
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 navigation_handle_->WillRedirectRequest( 500 navigation_handle_->WillRedirectRequest(
502 common_params_.url, common_params_.method, common_params_.referrer.url, 501 common_params_.url, common_params_.method, common_params_.referrer.url,
503 is_external_protocol, response->head.headers, 502 is_external_protocol, response->head.headers,
504 response->head.connection_info, 503 response->head.connection_info,
505 base::Bind(&NavigationRequest::OnRedirectChecksComplete, 504 base::Bind(&NavigationRequest::OnRedirectChecksComplete,
506 base::Unretained(this))); 505 base::Unretained(this)));
507 } 506 }
508 507
509 void NavigationRequest::OnResponseStarted( 508 void NavigationRequest::OnResponseStarted(
510 const scoped_refptr<ResourceResponse>& response, 509 const scoped_refptr<ResourceResponse>& response,
511 std::unique_ptr<StreamHandle> body, 510 mojo::ScopedDataPipeConsumerHandle handle,
512 const SSLStatus& ssl_status, 511 const SSLStatus& ssl_status,
513 std::unique_ptr<NavigationData> navigation_data, 512 std::unique_ptr<NavigationData> navigation_data,
514 const GlobalRequestID& request_id, 513 const GlobalRequestID& request_id,
515 bool is_download, 514 bool is_download,
516 bool is_stream) { 515 bool is_stream) {
516 DCHECK(handle.is_valid());
517 DCHECK(state_ == STARTED); 517 DCHECK(state_ == STARTED);
518 DCHECK(response); 518 DCHECK(response);
519 state_ = RESPONSE_STARTED; 519 state_ = RESPONSE_STARTED;
520 520
521 // Check if the response should be sent to a renderer. 521 // Check if the response should be sent to a renderer.
522 response_should_be_rendered_ = 522 response_should_be_rendered_ =
523 !is_download && (!response->head.headers.get() || 523 !is_download && (!response->head.headers.get() ||
524 (response->head.headers->response_code() != 204 && 524 (response->head.headers->response_code() != 204 &&
525 response->head.headers->response_code() != 205)); 525 response->head.headers->response_code() != 205));
526 526
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 if (!frame_tree_node_->navigator()->GetDelegate()->ShouldTransferNavigation( 571 if (!frame_tree_node_->navigator()->GetDelegate()->ShouldTransferNavigation(
572 frame_tree_node_->IsMainFrame())) { 572 frame_tree_node_->IsMainFrame())) {
573 frame_tree_node_->ResetNavigationRequest(false, true); 573 frame_tree_node_->ResetNavigationRequest(false, true);
574 return; 574 return;
575 } 575 }
576 } 576 }
577 577
578 if (navigation_data) 578 if (navigation_data)
579 navigation_handle_->set_navigation_data(std::move(navigation_data)); 579 navigation_handle_->set_navigation_data(std::move(navigation_data));
580 580
581 // Store the response and the StreamHandle until checks have been processed. 581 // Store the response and the data pipe until checks have been processed.
582 response_ = response; 582 response_ = response;
583 body_ = std::move(body); 583 handle_ = std::move(handle);
584 584
585 // Check if the navigation should be allowed to proceed. 585 // Check if the navigation should be allowed to proceed.
586 navigation_handle_->WillProcessResponse( 586 navigation_handle_->WillProcessResponse(
587 render_frame_host, response->head.headers.get(), 587 render_frame_host, response->head.headers.get(),
588 response->head.connection_info, ssl_status, request_id, 588 response->head.connection_info, ssl_status, request_id,
589 common_params_.should_replace_current_entry, is_download, is_stream, 589 common_params_.should_replace_current_entry, is_download, is_stream,
590 base::Closure(), 590 base::Closure(),
591 base::Bind(&NavigationRequest::OnWillProcessResponseChecksComplete, 591 base::Bind(&NavigationRequest::OnWillProcessResponseChecksComplete,
592 base::Unretained(this))); 592 base::Unretained(this)));
593 } 593 }
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 navigation_handle_->GetRenderFrameHost(); 835 navigation_handle_->GetRenderFrameHost();
836 DCHECK(render_frame_host == 836 DCHECK(render_frame_host ==
837 frame_tree_node_->render_manager()->current_frame_host() || 837 frame_tree_node_->render_manager()->current_frame_host() ||
838 render_frame_host == 838 render_frame_host ==
839 frame_tree_node_->render_manager()->speculative_frame_host()); 839 frame_tree_node_->render_manager()->speculative_frame_host());
840 840
841 TransferNavigationHandleOwnership(render_frame_host); 841 TransferNavigationHandleOwnership(render_frame_host);
842 842
843 DCHECK_EQ(request_params_.has_user_gesture, begin_params_.has_user_gesture); 843 DCHECK_EQ(request_params_.has_user_gesture, begin_params_.has_user_gesture);
844 844
845 render_frame_host->CommitNavigation(response_.get(), std::move(body_), 845 render_frame_host->CommitNavigation(response_.get(), std::move(handle_),
846 common_params_, request_params_, 846 common_params_, request_params_,
847 is_view_source_); 847 is_view_source_);
848 848
849 frame_tree_node_->ResetNavigationRequest(true, true); 849 frame_tree_node_->ResetNavigationRequest(true, true);
850 } 850 }
851 851
852 } // namespace content 852 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/navigation_request.h ('k') | content/browser/frame_host/navigator_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698