Move section classification heuristics from the child process to the parent process
Categories
(Toolkit :: Form Autofill, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox130 | --- | fixed |
People
(Reporter: dimi, Assigned: dimi)
References
(Regressed 1 open bug)
Details
Attachments
(8 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
In order to support reference field information across multiple iframe, we need to run our section classification heuristics in the parent process
Assignee | ||
Comment 1•6 months ago
|
||
In order to run the field detection heuristics in the parent process,
the parent requires a unique identifier for DOM elements to facilitate
communication with the child.
Therefore, we utilize the id from ContentDOMReference as the unique identifier.
This identifier is stored in the FieldDetail structure, which the formautofill
module uses to maintain all information related to an identified field.
Assignee | ||
Comment 2•6 months ago
|
||
Depends on D211550
Assignee | ||
Comment 3•6 months ago
|
||
We have moved most of the logic from the child to the parent. This patch updates
the locations where telemetry is now recorded in the parent. Additionally,
it updates the API of AutofillTelemetry to comply with the new architecture.
Depends on D211551
Assignee | ||
Comment 4•6 months ago
|
||
The new architecture no longer has the notion of an "active" section.
When autocomplete is triggered, we pass the "element id" of the triggered element and
use this id to indicate which form we are currently processing.
Because of this change, we no longer need the code that deals with an active section, field, etc.
Depends on D211552
Assignee | ||
Comment 5•6 months ago
|
||
This patch makes the following changes:
- Converts the xpcshell tests test_clearPopulatedForm.js and test_previewFormFields.js to browser tests.
This change is necessary because the logic is moved from the child to the parent, requiring integration
tests instead. - Replaces the custom popup listener in FormAutofillChild with
BrowserTestUtils.waitForPopupEvent
- Updates add_heuristic_tests to align with the new architecture.
- Updates unit tests that use the 'active' section because there is no "active" section anymore.
Depends on D211553
Updated•5 months ago
|
Assignee | ||
Comment 6•5 months ago
|
||
Depends on D211554
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Assignee | ||
Comment 7•5 months ago
|
||
This patch removes setTimeout
in doIdentifyAutofillFields
because it causes the
formautofill module to mark a field as autocompletable AFTER the autocomplete controller
has already started searching for autocomplete entries. The issue with calling
markAsAutoCompletable
after searching has begun is that it resets the autocomplete
search state, which results in the autocomplete popup not being displayed.
Upon reviewing why we added the setTimeout in the first place (see Bug 1364818),
I believe it can be removed. Listening for the DOMContentLoaded
event should
be sufficient for handling the autofocus case.
Depends on D212239
Updated•5 months ago
|
Updated•5 months ago
|
Assignee | ||
Updated•5 months ago
|
Comment 10•5 months ago
|
||
Backed out for causing AccessibilityTest related junit failures.
- Backout link
- Push with failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | org.mozilla.geckoview.test.AccessibilityTest#testTextEntry | java.lang.AssertionError: onTextSelectionChanged call count should be within limit
Assignee | ||
Comment 11•5 months ago
|
||
The patch includes the following changes:
- Implements a workaround for a test failure (Bug 1905040). This issue occurs because,
in the current architecture, the child process calls markAsAutoCompletableField regardless of
whether the field is in a valid section. profile
is now stored infillMessageData
. Accordingly, updates where we useprofile
in
GeckoViewAutocomplete.sys.mjs
.- Autofill is triggered from the parent process, so the autofillFields API is called directly
instead of sending aFormAutofill:FillForm
message to the child process.
Assignee | ||
Comment 12•4 months ago
•
|
||
Hi owlish, Is it possible to get someone from your team to help review this patch? Really appreciate for your help!
Assignee | ||
Updated•4 months ago
|
Comment 13•4 months ago
|
||
Comment 14•4 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/93022697e00d
https://hg.mozilla.org/mozilla-central/rev/dd94baef2c71
https://hg.mozilla.org/mozilla-central/rev/38e902614b74
https://hg.mozilla.org/mozilla-central/rev/9f0148b3b49f
https://hg.mozilla.org/mozilla-central/rev/157fbfa2ed56
https://hg.mozilla.org/mozilla-central/rev/8c8d4cb4a785
https://hg.mozilla.org/mozilla-central/rev/38803a225a03
https://hg.mozilla.org/mozilla-central/rev/21237438a530
Description
•