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

Unified Diff: content/browser/frame_host/navigator_impl.cc

Issue 1811913003: PlzNavigate: support NavigationThrottle::WillProcessResponse (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on top of 1832803002 Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/frame_host/navigator_impl.h ('k') | content/browser/frame_host/render_frame_host_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/frame_host/navigator_impl.cc
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc
index eec6bd666edc4cb0a7356fcbdc2339d1f167e781..dfce24616f435e8bf5e4c266ad2d9c1fe48b6461 100644
--- a/content/browser/frame_host/navigator_impl.cc
+++ b/content/browser/frame_host/navigator_impl.cc
@@ -104,6 +104,27 @@ NavigatorImpl::NavigatorImpl(
NavigatorImpl::~NavigatorImpl() {}
+// static
+void NavigatorImpl::CheckWebUIRendererDoesNotDisplayNormalURL(
+ RenderFrameHostImpl* render_frame_host,
+ const GURL& url) {
+ int enabled_bindings =
+ render_frame_host->render_view_host()->GetEnabledBindings();
+ bool is_allowed_in_web_ui_renderer =
+ WebUIControllerFactoryRegistry::GetInstance()->IsURLAcceptableForWebUI(
+ render_frame_host->frame_tree_node()
+ ->navigator()
+ ->GetController()
+ ->GetBrowserContext(),
+ url);
+ if ((enabled_bindings & BINDINGS_POLICY_WEB_UI) &&
+ !is_allowed_in_web_ui_renderer) {
+ // Log the URL to help us diagnose any future failures of this CHECK.
+ GetContentClient()->SetActiveURL(url);
+ CHECK(0);
+ }
+}
+
NavigatorDelegate* NavigatorImpl::GetDelegate() {
return delegate_;
}
@@ -825,54 +846,6 @@ void NavigatorImpl::OnBeginNavigation(
}
// PlzNavigate
-void NavigatorImpl::CommitNavigation(NavigationRequest* navigation_request,
- ResourceResponse* response,
- scoped_ptr<StreamHandle> body) {
- CHECK(IsBrowserSideNavigationEnabled());
-
- DCHECK(navigation_request);
- FrameTreeNode* frame_tree_node = navigation_request->frame_tree_node();
- DCHECK(frame_tree_node);
- DCHECK(response ||
- !ShouldMakeNetworkRequestForURL(
- navigation_request->common_params().url));
-
- // HTTP 204 (No Content) and HTTP 205 (Reset Content) responses should not
- // commit; they leave the frame showing the previous page.
- if (response && response->head.headers.get() &&
- (response->head.headers->response_code() == 204 ||
- response->head.headers->response_code() == 205)) {
- CancelNavigation(frame_tree_node);
- return;
- }
-
- // Select an appropriate renderer to commit the navigation.
- RenderFrameHostImpl* render_frame_host =
- frame_tree_node->render_manager()->GetFrameHostForNavigation(
- *navigation_request);
-
- // The renderer can exit view source mode when any error or cancellation
- // happen. When reusing the same renderer, overwrite to recover the mode.
- if (navigation_request->is_view_source() &&
- render_frame_host ==
- frame_tree_node->render_manager()->current_frame_host()) {
- DCHECK(!render_frame_host->GetParent());
- render_frame_host->Send(
- new FrameMsg_EnableViewSourceMode(render_frame_host->GetRoutingID()));
- }
-
- CheckWebUIRendererDoesNotDisplayNormalURL(
- render_frame_host, navigation_request->common_params().url);
-
- navigation_request->TransferNavigationHandleOwnership(render_frame_host);
- render_frame_host->navigation_handle()->ReadyToCommitNavigation(
- render_frame_host, response ? response->head.headers : nullptr);
- render_frame_host->CommitNavigation(response, std::move(body),
- navigation_request->common_params(),
- navigation_request->request_params());
-}
-
-// PlzNavigate
void NavigatorImpl::FailedNavigation(FrameTreeNode* frame_tree_node,
bool has_stale_copy_in_cache,
int error_code) {
@@ -898,7 +871,7 @@ void NavigatorImpl::FailedNavigation(FrameTreeNode* frame_tree_node,
navigation_request->TransferNavigationHandleOwnership(render_frame_host);
render_frame_host->navigation_handle()->ReadyToCommitNavigation(
- render_frame_host, scoped_refptr<net::HttpResponseHeaders>());
+ render_frame_host);
render_frame_host->FailedNavigation(navigation_request->common_params(),
navigation_request->request_params(),
has_stale_copy_in_cache, error_code);
@@ -934,22 +907,6 @@ void NavigatorImpl::LogBeforeUnloadTime(
}
}
-void NavigatorImpl::CheckWebUIRendererDoesNotDisplayNormalURL(
- RenderFrameHostImpl* render_frame_host,
- const GURL& url) {
- int enabled_bindings =
- render_frame_host->render_view_host()->GetEnabledBindings();
- bool is_allowed_in_web_ui_renderer =
- WebUIControllerFactoryRegistry::GetInstance()->IsURLAcceptableForWebUI(
- controller_->GetBrowserContext(), url);
- if ((enabled_bindings & BINDINGS_POLICY_WEB_UI) &&
- !is_allowed_in_web_ui_renderer) {
- // Log the URL to help us diagnose any future failures of this CHECK.
- GetContentClient()->SetActiveURL(url);
- CHECK(0);
- }
-}
-
// PlzNavigate
void NavigatorImpl::RequestNavigation(
FrameTreeNode* frame_tree_node,
« no previous file with comments | « content/browser/frame_host/navigator_impl.h ('k') | content/browser/frame_host/render_frame_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698