[iOS] Handle a SafeBrowsingQueryManager getting destroyed while calling observer
A SafeBrowsingQueryManager can get destroyed in |UrlCheckFinished| when it calls |SafeBrowsingQueryFinished| on its observers. This happens when a prerendered WebState tries to load an unsafe URL: upon receiving the unsafe result, SafeBrowsingTabHelper cancels the prerender, which causes the prerendered WebState to be destroyed, and this destroys the SafeBrowsingQueryManager. Continuing to use the SafeBrowsingQueryManager's instance variables after this point causes a crash in |UrlCheckFinished|. This CL guards against this crash by using a weak pointer to detect that the SafeBrowsingQueryManager has been destroyed. Bug: 1153887 Change-Id: I7913f1bbb26253c0fbdfa5d46ca0b2312ba5558e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2566092Reviewed-by:Eugene But <eugenebut@chromium.org> Commit-Queue: Ali Juma <ajuma@chromium.org> Cr-Commit-Position: refs/heads/master@{#832417}
Showing
Please register or sign in to comment