Commit 6baae908 authored by Alan Cutter's avatar Alan Cutter Committed by Commit Bot

Ensure observers of AppBannerManager are removed on destruction

This CL addresses use-after-free crashes when observers of the
AppBannerManager outlive it.

Bug: 982454
Change-Id: Id9a85f3be7b5129d14774923bd90473679cb48e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1695321
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Auto-Submit: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#676011}
parent 706a8db3
...@@ -242,7 +242,11 @@ AppBannerManager::AppBannerManager(content::WebContents* web_contents) ...@@ -242,7 +242,11 @@ AppBannerManager::AppBannerManager(content::WebContents* web_contents)
AppBannerSettingsHelper::UpdateFromFieldTrial(); AppBannerSettingsHelper::UpdateFromFieldTrial();
} }
AppBannerManager::~AppBannerManager() { } AppBannerManager::~AppBannerManager() {
for (Observer& observer : observer_list_)
observer.ObserveAppBannerManager(nullptr);
CHECK(!observer_list_.might_have_observers());
}
bool AppBannerManager::CheckIfShouldShowBanner() { bool AppBannerManager::CheckIfShouldShowBanner() {
if (ShouldBypassEngagementChecks()) if (ShouldBypassEngagementChecks())
......
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