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•1 year 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•1 year ago
|
||
Depends on D211550
Assignee | ||
Comment 3•1 year 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•1 year 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•1 year 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•1 year ago
|
Assignee | ||
Comment 6•1 year ago
|
||
Depends on D211554
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Assignee | ||
Comment 7•1 year 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•1 year ago
|
Updated•1 year ago
|
Assignee | ||
Updated•1 year ago
|
Comment 10•1 year 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•1 year 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•1 year ago
•
|
||
Hi owlish, Is it possible to get someone from your team to help review this patch? Really appreciate for your help!
Assignee | ||
Updated•1 year ago
|
Comment 13•1 year ago
|
||
Comment 14•1 year 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
•