Commit d1c934c3 authored by Robert Ogden's avatar Robert Ogden Committed by Commit Bot

Fix IsolatedPrerender NSP Crash

If the SubresourceManager is destroyed in the same stack as the
TabHelper's page_.reset(), then it seg faults because TabHelper::
OnPrerenderStop changes state on page_.

To fix, the handle should not be observed when it is cancelled due to
destruction of the SubresourceManager.

FWIW, I checked all other code paths to ensure this is the only place
where this bug can occur.

TBR=ryansturm@chromium.org

Bug: 1107168
Change-Id: Id8f74e2433e2cec2f9c4c2f4ada9a31790df8219
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2306549Reviewed-by: default avatarRobert Ogden <robertogden@chromium.org>
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789792}
parent 65fc5bc0
...@@ -19,8 +19,8 @@ IsolatedPrerenderSubresourceManager::IsolatedPrerenderSubresourceManager( ...@@ -19,8 +19,8 @@ IsolatedPrerenderSubresourceManager::IsolatedPrerenderSubresourceManager(
IsolatedPrerenderSubresourceManager::~IsolatedPrerenderSubresourceManager() { IsolatedPrerenderSubresourceManager::~IsolatedPrerenderSubresourceManager() {
if (nsp_handle_) { if (nsp_handle_) {
nsp_handle_->OnCancel();
nsp_handle_->SetObserver(nullptr); nsp_handle_->SetObserver(nullptr);
nsp_handle_->OnCancel();
} }
UMA_HISTOGRAM_COUNTS_100("IsolatedPrerender.Prefetch.Subresources.Quantity", UMA_HISTOGRAM_COUNTS_100("IsolatedPrerender.Prefetch.Subresources.Quantity",
successfully_loaded_subresources_.size()); successfully_loaded_subresources_.size());
......
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