Commit e689ce05 authored by Matthew Cary's avatar Matthew Cary Committed by Commit Bot

Revert "Fix crash when NoStatePrefetch is running a sync XHR."

As per jam@'s suggestion, this should no longer be necessary after crrev.com/c/973613. Reverting this and watching for crashes on canary will confirm this.

@jam: It still seems like a good defensive idea to make sure the dispatcher is running on the right thread. But you may have more context.


This reverts commit 943f2a2b.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Fix crash when NoStatePrefetch is running a sync XHR.
> 
> I'm not sure why scripts are executing, but until that's figured out this should fix the symptom of the null dereference (and usage of PrerenderDispatcher on the wrong thread).
> 
> Bug: 819937, 823306
> Change-Id: I30cd24c7b5275a8f1a46babc437a9bcf7f6e8348
> Reviewed-on: https://chromium-review.googlesource.com/969082
> Reviewed-by: Matthew Cary <mattcary@chromium.org>
> Commit-Queue: John Abd-El-Malek <jam@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#544743}

TBR=jam@chromium.org,mattcary@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 819937, 823306
Change-Id: Ic6c792e4b0be23e1ce515b2b3aacef0e8b4e8d89
Reviewed-on: https://chromium-review.googlesource.com/977829Reviewed-by: default avatarMatthew Cary <mattcary@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545528}
parent 5921f848
...@@ -46,22 +46,6 @@ chrome::mojom::PrerenderCanceler* GetPrerenderCanceller(int render_frame_id) { ...@@ -46,22 +46,6 @@ chrome::mojom::PrerenderCanceler* GetPrerenderCanceller(int render_frame_id) {
return canceler->get(); return canceler->get();
} }
void PrerenderThrottleDestructed(
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
prerender::PrerenderDispatcher* prerender_dispatcher) {
// http://crbug.com/823306: nostateprefetch shouldn't be executing XHR since
// it's not supposed to be running scripts.
if (!task_runner->BelongsToCurrentThread()) {
task_runner->PostTask(
FROM_HERE,
base::BindOnce(&prerender::PrerenderDispatcher::DecrementPrefetchCount,
base::Unretained(prerender_dispatcher)));
return;
}
prerender_dispatcher->DecrementPrefetchCount();
}
} // namespace } // namespace
URLLoaderThrottleProviderImpl::URLLoaderThrottleProviderImpl( URLLoaderThrottleProviderImpl::URLLoaderThrottleProviderImpl(
...@@ -132,8 +116,8 @@ URLLoaderThrottleProviderImpl::CreateThrottles( ...@@ -132,8 +116,8 @@ URLLoaderThrottleProviderImpl::CreateThrottles(
chrome_content_renderer_client_->prerender_dispatcher(); chrome_content_renderer_client_->prerender_dispatcher();
prerender_dispatcher->IncrementPrefetchCount(); prerender_dispatcher->IncrementPrefetchCount();
throttle->set_destruction_closure(base::BindOnce( throttle->set_destruction_closure(base::BindOnce(
PrerenderThrottleDestructed, &prerender::PrerenderDispatcher::DecrementPrefetchCount,
base::MessageLoop::current()->task_runner(), prerender_dispatcher)); base::Unretained(prerender_dispatcher)));
} }
throttles.push_back(std::move(throttle)); throttles.push_back(std::move(throttle));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment