commit | 051504f89faf799c893d5ea69202b2f17002ad11 | [log] [tgz] |
---|---|---|
author | Christoph Schwering <schwering@google.com> | Thu Oct 17 14:38:46 2024 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Oct 17 14:38:46 2024 |
tree | a87c874c59dba9e6d68a1a2baf810131d2ab576e | |
parent | be9e9b493fbc30d28f7570a7326c8afd9f9c6a84 [diff] |
[Autofill] Partially fix asynchronous import On submission, Autofill Prediction Improvements runs nested, slow asynchronous calls. By the time the response BAM::OnUserAnnotationsMaybeImportableFormFound() is called, the BAM may already be destroyed. This is a fundamental problem that existed before Autofill Prediction Improvements already, but previously it only concerned votes. With Autofill Prediction Improvements it also concerns all kinds of form import (Autofill Prediction Improvements, Autofill, Autocomplete). However, the impact is currently limited to the cases where Autofill Prediction Improvements wants to offer import (i.e., where `!skip_import` in AutofillPredictionImprovementsManager) because otherwise it calls BAM::OnUserAnnotationsMaybeImportableFormFound() synchronously. This CL fixes it partially by decoupling Autofill Prediction Improvement's import UI from BAM's lifecycle. As a result, the import UI is called as long as the AutofillClient is still alive, even if the BrowserAutofillManager isn't. This is meant as a temporary fix. A long-term fix will come as described in crbug.com/373831707#comment13 and be part of fixing crbug.com/40284887. Bug: 373831707, 40284887 Change-Id: I20ec72fadefd5a05cd41396e979af0b1e97106d4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5939178 Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com> Commit-Queue: Christoph Schwering <schwering@google.com> Reviewed-by: Tommy Martino <tmartino@chromium.org> Reviewed-by: Dominic Battré <battre@chromium.org> Auto-Submit: Christoph Schwering <schwering@google.com> Cr-Commit-Position: refs/heads/main@{#1370001}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.