Index: content/browser/cross_site_transfer_browsertest.cc |
diff --git a/content/browser/cross_site_transfer_browsertest.cc b/content/browser/cross_site_transfer_browsertest.cc |
index 0ce755c21b069ce60a4f8caf9fec5d69f6682ae0..1bca396fd1a177809fd87714a41aa670df9208ae 100644 |
--- a/content/browser/cross_site_transfer_browsertest.cc |
+++ b/content/browser/cross_site_transfer_browsertest.cc |
@@ -64,11 +64,10 @@ class TrackingResourceDispatcherHostDelegate |
BrowserThread::IO, FROM_HERE, |
base::Bind( |
&TrackingResourceDispatcherHostDelegate::SetTrackedURLOnIOThread, |
- base::Unretained(this), |
- tracked_url)); |
+ base::Unretained(this), tracked_url, run_loop_->QuitClosure())); |
} |
- // Waits until the tracked URL has been requests, and the request for it has |
+ // Waits until the tracked URL has been requested, and the request for it has |
// been destroyed. |
bool WaitForTrackedURLAndGetCompleted() { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -107,10 +106,12 @@ class TrackingResourceDispatcherHostDelegate |
DISALLOW_COPY_AND_ASSIGN(TrackingThrottle); |
}; |
- void SetTrackedURLOnIOThread(const GURL& tracked_url) { |
+ void SetTrackedURLOnIOThread(const GURL& tracked_url, |
+ const base::Closure& run_loop_quit_closure) { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
throttle_created_ = false; |
tracked_url_ = tracked_url; |
+ run_loop_quit_closure_ = run_loop_quit_closure; |
} |
void OnTrackedRequestDestroyed(bool completed) { |
@@ -118,16 +119,16 @@ class TrackingResourceDispatcherHostDelegate |
tracked_request_completed_ = completed; |
tracked_url_ = GURL(); |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, run_loop_->QuitClosure()); |
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
+ run_loop_quit_closure_); |
} |
// These live on the IO thread. |
GURL tracked_url_; |
bool throttle_created_; |
+ base::Closure run_loop_quit_closure_; |
- // This is created and destroyed on the UI thread, but stopped on the IO |
- // thread. |
+ // This lives on the UI thread. |
scoped_ptr<base::RunLoop> run_loop_; |
// Set on the IO thread while |run_loop_| is non-NULL, read on the UI thread |
@@ -174,9 +175,8 @@ class CrossSiteTransferTest : public ContentBrowserTest { |
void SetUpOnMainThread() override { |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
- base::Bind( |
- &CrossSiteTransferTest::InjectResourceDisptcherHostDelegate, |
- base::Unretained(this))); |
+ base::Bind(&CrossSiteTransferTest::InjectResourceDispatcherHostDelegate, |
+ base::Unretained(this))); |
host_resolver()->AddRule("*", "127.0.0.1"); |
ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
content::SetupCrossSiteRedirector(embedded_test_server()); |
@@ -211,7 +211,7 @@ class CrossSiteTransferTest : public ContentBrowserTest { |
IsolateAllSitesForTesting(command_line); |
} |
- void InjectResourceDisptcherHostDelegate() { |
+ void InjectResourceDispatcherHostDelegate() { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
old_delegate_ = ResourceDispatcherHostImpl::Get()->delegate(); |
ResourceDispatcherHostImpl::Get()->SetDelegate(&tracking_delegate_); |