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

Unified Diff: content/browser/renderer_host/cross_site_transferring_request.cc

Issue 143183009: When cross-site navigations are cancelled, delete the request being transferred (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: *Really* remove AbortTransfer Created 6 years, 10 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/renderer_host/cross_site_transferring_request.cc
===================================================================
--- content/browser/renderer_host/cross_site_transferring_request.cc (revision 0)
+++ content/browser/renderer_host/cross_site_transferring_request.cc (revision 0)
@@ -0,0 +1,46 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/renderer_host/cross_site_transferring_request.h"
+
+#include "base/logging.h"
+#include "content/browser/loader/cross_site_resource_handler.h"
+#include "content/browser/loader/resource_dispatcher_host_impl.h"
+#include "content/public/browser/browser_thread.h"
+
+namespace content {
+
+namespace {
+
+void CancelRequestOnIOThread(GlobalRequestID global_request_id) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+
+ ResourceDispatcherHostImpl::Get()->CancelTransferringNavigation(
+ global_request_id);
+}
+
+} // namespace
+
+CrossSiteTransferringRequest::CrossSiteTransferringRequest(
+ GlobalRequestID global_request_id)
+ : global_request_id_(global_request_id) {
+ DCHECK(global_request_id_ != GlobalRequestID());
+}
+
+CrossSiteTransferringRequest::~CrossSiteTransferringRequest() {
+ if (global_request_id_ == GlobalRequestID())
+ return;
+ BrowserThread::PostTask(
+ BrowserThread::IO,
+ FROM_HERE,
+ base::Bind(&CancelRequestOnIOThread, global_request_id_));
+}
+
+void CrossSiteTransferringRequest::ReleaseRequest() {
+ DCHECK_NE(-1, global_request_id_.child_id);
+ DCHECK_NE(-1, global_request_id_.request_id);
+ global_request_id_ = GlobalRequestID();
+}
+
+} // namespace content
Property changes on: content\browser\renderer_host\cross_site_transferring_request.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698