In addition to addressing the bug, this also adds some exposure tests to make
sure that they can be triggered in non-Suggest locales and that non-exposure
suggestions are not triggered.
Depends on D220501
Differential Revision: https://phabricator.services.mozilla.com/D221097
We no longer need to start the add-on manager before the search service starts, so init it only when it is needed for installing add-ons.
Differential Revision: https://phabricator.services.mozilla.com/D216406
This leaves out `security.insecure_connection_text.enabled` and
`security.insecure_connection_text.pbmode.enabled`, that should also be part of
ScotchBonnet, but are managed by a different component.
Differential Revision: https://phabricator.services.mozilla.com/D216181
There's a timing issue where sometimes formatting happens too early on new
windows opening, so we await for the next RAF to happen.
Note there's already a test in browser_UrlbarInput_formatValue_detachedTab.js
covering this, and it's indeed failing intermittently, this may fix it.
The patch also avoids trimming when active mixed content may show a strikeout
https protocol. This is an uncommon state anyway because we block active mixed
content, and in the future we'll rely on the insecure label.
Differential Revision: https://phabricator.services.mozilla.com/D212906
The enrollmentHelper was much more complicated than it needed to be. The
internal asynchrony that required awaiting an additional promise was fixed in
bug 1773583.
The returned cleanup function is no longer async, so unnecessary awaits have
been removed. This also applies to enrollWithFeatureConfig, as it is a wrapper
around enrollmentHelper.
Differential Revision: https://phabricator.services.mozilla.com/D212318
enrollWithRollout skipped all enrollment logic in ExperimentManager.enroll by
calling ExperimentStore.addEnrollment directly. This prevents prefs being set
by Nimbus correctly when enrolling. enrollWithFeatureConfig already supports
enrolling as a rollout, so all uses of enrollWithRollout have been replaced.
Differential Revision: https://phabricator.services.mozilla.com/D209936
enrollWithRollout skipped all enrollment logic in ExperimentManager.enroll by
calling ExperimentStore.addEnrollment directly. This prevents prefs being set
by Nimbus correctly when enrolling. enrollWithFeatureConfig already supports
enrolling as a rollout, so all uses of enrollWithRollout have been replaced.
Differential Revision: https://phabricator.services.mozilla.com/D209936
enrollWithRollout skipped all enrollment logic in ExperimentManager.enroll by
calling ExperimentStore.addEnrollment directly. This prevents prefs being set
by Nimbus correctly when enrolling. enrollWithFeatureConfig already supports
enrolling as a rollout, so all uses of enrollWithRollout have been replaced.
Differential Revision: https://phabricator.services.mozilla.com/D209936
Untrim the address bar value when the user starts manipulating it.
This doesn't untrim on focus, because that would break double-click to select
word, and drag-select. In the future we'll evaluate untrim on focus, but we'll
need additional platform support to replicate that functionality.
The behavior is currently controlled by the feature-gate preference
`browser.urlbar.untrimOnUserInteraction.featureGate`.
Original patch by Marc Seibert.
Differential Revision: https://phabricator.services.mozilla.com/D206135
In the end I wasn't able to remove underscores on a lot of these since the base
`UrlbarProvider` class defines getters and methods with the same names, but at
least `results` is no longer "private".
Depends on D199176
Differential Revision: https://phabricator.services.mozilla.com/D199594
This fixes the two `#addExposure()` calls in `UrlbarView.#updateResults()` so
that hidden exposures are properly counted. Right now we overcount them because
we record them in cases where the result would not have been shown anyway.
The new test tries to cover all possible `UrlbarView.#updateResults()` paths:
* When the view is full and a new result can't replace any of the old rows, the
new result is appended and hidden. If the query is then canceled, the new row
will never be shown
* When the vew isn't full, a new row can be appended and visible immediately
* When a new row replaces an old row, it can be visible immediately
Differential Revision: https://phabricator.services.mozilla.com/D199176
#selectedElement may end up pointing to disconnected nodes. And so the public
.selectedElement getter.
This is how it was happening: a first call to onQueryResults adds and selects a
heuristic result. Then a second call to onQueryResults brings a new heuristic
result that requires new content (not compatible with the previous one), so the
old heuristic is emptied out, and new DOM is generated.
Because the code in onQueryResults relies on .selectedElement, at the second
invokation it thinks the selection is still valid, and doesn't select the new
heuristic. In reality .selectedElement at that time is pointing to a removed
DOM node.
The patch introduces a #rawSelectedElement and converts #selectedElement
into a getter.
Plus some minor logging improvements, and removing unused #mainContainer property.
Differential Revision: https://phabricator.services.mozilla.com/D195779