• Alexey Baskakov's avatar
    WebApp: Call RegistryOpenedCallback asynchronously. · 945fcd73
    Alexey Baskakov authored
    We should break down this synchronous call chain:
    
    web_app::WebAppSyncBridge::CommitUpdate()
    web_app::ScopedRegistryUpdate::~ScopedRegistryUpdate()
    web_app::WebAppInstallFinalizer::UninstallWebApp()
    web_app::WebAppInstallFinalizer::UninstallWebAppOrRemoveSource()
    web_app::WebAppInstallFinalizer::UninstallExternalWebApp()
    web_app::InstallFinalizer::UninstallExternalWebAppByUrl()
    web_app::PendingAppManagerImpl::UninstallApps()
    web_app::PendingAppManager::SynchronizeInstalledApps()
    web_app::ExternalWebAppManager::OnScanForExternalWebApps()
    web_app::ExternalWebAppManager::ScanForExternalWebApps()
    web_app::ExternalWebAppManager::Start()
    web_app::WebAppProvider::OnRegistryControllerReady()
    web_app::WebAppSyncBridge::OnDatabaseOpened()
    web_app::WebAppDatabase::OnAllMetadataRead()
    syncer::ModelTypeStoreImpl::ReadAllMetadataDone()
    
    WebAppSyncBridge::OnDatabaseOpened() must not cause immediate
    WebAppSyncBridge::CommitUpdate() on same `this`.
    
    Bug: 1084939
    Change-Id: Ib32c52780a647a0985418c0f92985f041869f104
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2212236Reviewed-by: default avatarEric Willigers <ericwilligers@chromium.org>
    Commit-Queue: Alexey Baskakov <loyso@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#771473}
    945fcd73
web_app_database.cc 17.8 KB