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

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

Issue 1222203004: PlzNavigate: Do not send synchronous navigations from the renderer to the browser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment refactoring Created 5 years, 5 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 "content/browser/frame_host/frame_tree.h" 7 #include "content/browser/frame_host/frame_tree.h"
8 #include "content/browser/frame_host/frame_tree_node.h" 8 #include "content/browser/frame_host/frame_tree_node.h"
9 #include "content/browser/frame_host/navigation_controller_impl.h" 9 #include "content/browser/frame_host/navigation_controller_impl.h"
10 #include "content/browser/frame_host/navigation_request_info.h" 10 #include "content/browser/frame_host/navigation_request_info.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 case FrameMsg_Navigate_Type::NORMAL: 44 case FrameMsg_Navigate_Type::NORMAL:
45 default: 45 default:
46 break; 46 break;
47 } 47 }
48 return load_flags; 48 return load_flags;
49 } 49 }
50 50
51 } // namespace 51 } // namespace
52 52
53 // static 53 // static
54 bool NavigationRequest::ShouldMakeNetworkRequest(const GURL& url) {
55 // Data and Javascript urls should not make network requests.
56 // TODO(clamy): same document navigations should not make network requests.
57 return !url.SchemeIs(url::kDataScheme) && url != GURL(url::kAboutBlankURL) &&
58 !url.SchemeIs(url::kJavaScriptScheme);
59 }
60
61 // static
62 scoped_ptr<NavigationRequest> NavigationRequest::CreateBrowserInitiated( 54 scoped_ptr<NavigationRequest> NavigationRequest::CreateBrowserInitiated(
63 FrameTreeNode* frame_tree_node, 55 FrameTreeNode* frame_tree_node,
64 const FrameNavigationEntry& frame_entry, 56 const FrameNavigationEntry& frame_entry,
65 const NavigationEntryImpl& entry, 57 const NavigationEntryImpl& entry,
66 FrameMsg_Navigate_Type::Value navigation_type, 58 FrameMsg_Navigate_Type::Value navigation_type,
67 bool is_same_document_history_load, 59 bool is_same_document_history_load,
68 base::TimeTicks navigation_start, 60 base::TimeTicks navigation_start,
69 NavigationControllerImpl* controller) { 61 NavigationControllerImpl* controller) {
70 std::string method = entry.GetHasPostData() ? "POST" : "GET"; 62 std::string method = entry.GetHasPostData() ? "POST" : "GET";
71 63
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 } 167 }
176 168
177 NavigationRequest::~NavigationRequest() { 169 NavigationRequest::~NavigationRequest() {
178 } 170 }
179 171
180 bool NavigationRequest::BeginNavigation() { 172 bool NavigationRequest::BeginNavigation() {
181 DCHECK(!loader_); 173 DCHECK(!loader_);
182 DCHECK(state_ == NOT_STARTED || state_ == WAITING_FOR_RENDERER_RESPONSE); 174 DCHECK(state_ == NOT_STARTED || state_ == WAITING_FOR_RENDERER_RESPONSE);
183 state_ = STARTED; 175 state_ = STARTED;
184 176
185 if (ShouldMakeNetworkRequest(common_params_.url)) { 177 if (ShouldMakeNetworkRequestForURL(common_params_.url)) {
186 loader_ = NavigationURLLoader::Create( 178 loader_ = NavigationURLLoader::Create(
187 frame_tree_node_->navigator()->GetController()->GetBrowserContext(), 179 frame_tree_node_->navigator()->GetController()->GetBrowserContext(),
188 frame_tree_node_->frame_tree_node_id(), info_.Pass(), this); 180 frame_tree_node_->frame_tree_node_id(), info_.Pass(), this);
189 return true; 181 return true;
190 } 182 }
191 183
192 // There is no need to make a network request for this navigation, so commit 184 // There is no need to make a network request for this navigation, so commit
193 // it immediately. 185 // it immediately.
194 state_ = RESPONSE_STARTED; 186 state_ = RESPONSE_STARTED;
195 frame_tree_node_->navigator()->CommitNavigation( 187 frame_tree_node_->navigator()->CommitNavigation(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 frame_tree_node_->navigator()->FailedNavigation( 220 frame_tree_node_->navigator()->FailedNavigation(
229 frame_tree_node_, has_stale_copy_in_cache, net_error); 221 frame_tree_node_, has_stale_copy_in_cache, net_error);
230 } 222 }
231 223
232 void NavigationRequest::OnRequestStarted(base::TimeTicks timestamp) { 224 void NavigationRequest::OnRequestStarted(base::TimeTicks timestamp) {
233 frame_tree_node_->navigator()->LogResourceRequestTime(timestamp, 225 frame_tree_node_->navigator()->LogResourceRequestTime(timestamp,
234 common_params_.url); 226 common_params_.url);
235 } 227 }
236 228
237 } // namespace content 229 } // 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