Fix WebApkInstallService::IsInstallInProgress() crash.
The crash happens in a incognito page when a A2HS banner shows for a WebApp. It is caused since WebApkInstallServiceFactory didn't implemtent GetBrowserContextToUse() which returns a nullptr as default. In this CL, the same pointer of the original browser context is returned for the incognito page, so calling of WebApkInstallerService::Get() can return an null-empty instance of WebApkInstallerService. Crash Stacktrace: Thread 0 CRASHED [SIGSEGV @ 0x0000000c ] MAGIC SIGNATURE THREAD Stack Quality20%Show frame trust levels 0xd1af55a0 (libmonochrome.so -__tree:878 ) WebApkInstallService::IsInstallInProgress(GURL const&) 0xd1aefe43 (libmonochrome.so -shortcut_helper.cc:273 ) ShortcutHelper::IsWebApkInstalled(content::BrowserContext*, GURL const&, GURL const&) 0xd1a24ea3 (libmonochrome.so -app_banner_manager.cc:244 ) banners::AppBannerManager::PerformInstallableCheck() 0xd1abafd7 (libmonochrome.so -app_banner_manager_android.cc:180 ) banners::AppBannerManagerAndroid::PerformInstallableCheck() 0xd1a25c91 (libmonochrome.so -app_banner_manager.cc:239 ) banners::AppBannerManager::OnDidGetManifest(InstallableData const&) 0xd1a548d5 (libmonochrome.so -callback.h:85 ) InstallableManager::RunCallback(std::__ndk1::pair<InstallableParams, base::Callback<void (InstallableData const&), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> > const&, InstallableStatusCode) 0xd1a54a4d (libmonochrome.so -installable_manager.cc:246 ) InstallableManager::WorkOnTask() 0xd1a54d55 (libmonochrome.so -installable_manager.cc:288 ) InstallableManager::OnDidGetManifest(GURL const&, content::Manifest const&) BUG=679826 Review-Url: https://codereview.chromium.org/2620403002 Cr-Commit-Position: refs/heads/master@{#443293}
Showing
Please register or sign in to comment