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

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

Issue 2932453002: PlzNavigate: Release StreamHandle. (Closed)
Patch Set: Add real urls in tests ( rebase...) Created 3 years, 6 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
Index: content/browser/frame_host/render_frame_host_impl.cc
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 96fb5e17297cdd7154e8250f3581aa6e00c03acc..3754bebcc1199260ee1c9cc6f5b904c7936652a3 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -882,6 +882,8 @@ bool RenderFrameHostImpl::OnMessageReceived(const IPC::Message &msg) {
IPC_MESSAGE_HANDLER(FrameHostMsg_RequestOverlayRoutingToken,
OnRequestOverlayRoutingToken)
IPC_MESSAGE_HANDLER(FrameHostMsg_ShowCreatedWindow, OnShowCreatedWindow)
+ IPC_MESSAGE_HANDLER(FrameHostMsg_StreamHandleConsumed,
+ OnStreamHandleConsumed)
IPC_END_MESSAGE_MAP()
// No further actions here, since we may have been deleted.
@@ -985,6 +987,11 @@ void RenderFrameHostImpl::RenderProcessGone(SiteInstanceImpl* site_instance) {
navigation_handle_->set_net_error_code(net::ERR_ABORTED);
ResetLoadingState();
+ // The renderer process is gone, so the |stream_handle_| will no longer be
+ // used. It can be released.
+ // TODO(clamy): Remove this when we switch to Mojo streams.
+ stream_handle_.reset();
+
// Any future UpdateState or UpdateTitle messages from this or a recreated
// process should be ignored until the next commit.
set_nav_entry_id(0);
@@ -3182,8 +3189,7 @@ void RenderFrameHostImpl::CommitNavigation(
last_navigation_previews_state_ = common_params.previews_state;
}
- // TODO(clamy): Release the stream handle once the renderer has finished
- // reading it.
+ // Released in OnStreamHandleConsumed().
stream_handle_ = std::move(body);
// When navigating to a debug url, no commit is expected from the
@@ -4051,6 +4057,11 @@ void RenderFrameHostImpl::SetLastCommittedSiteUrl(const GURL& url) {
}
}
+void RenderFrameHostImpl::OnStreamHandleConsumed(const GURL& stream_url) {
+ if (stream_handle_ && stream_handle_->GetURL() == stream_url)
+ stream_handle_.reset();
+}
+
#if defined(OS_ANDROID)
class RenderFrameHostImpl::JavaInterfaceProvider
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/frame_host/render_frame_host_impl_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698