Commit Graph

171 Commits

Author SHA1 Message Date
Drew Willcoxon
d798414004 Bug 1938517 - Implement new "simplest" weather suggestion UI. r=fluent-reviewers,desktop-theme-reviewers,urlbar-reviewers,emilio,bolsson,daisuke
This makes a number of changes to support a new UI treatment for weather
suggestions in addition to the two existing treatments. Unfortunately we need
all three to experiment with, but hopefully after experimentation is done we can
remove the two existing treatments.

This patch refers to the new treatment as the "simplest" UI. The Figma is at [1]
although it doesn't reflect some details Josh and I have discussed. One of the
existing treatments is already called "simple", and this patch changes its name
to "simpler". The patch refers to the other existing treatment as "full". These
names are only informal because the Nimbus variable and fallback pref are
integers.

Because the new UI treatment is so simple, we can pretty much use the standard
rich suggestion UI for it. The existing treatments are dynamic. I say "pretty
much" because I did need to add a capability to rich suggestions,
`result.richSuggestionIconVariation`, which lets results set an `icon-variation`
attribute on their rows. Weather suggestions use it to choose the appropriate
weather icon in the CSS.

I also modified l10n string caching in a few ways to address a couple of
problems:

* I like how dynamic results can cache their strings lazily by setting
  `cacheable` in their l10n objects. Standard results can only cache their
  strings by adding them to `UrlbarView.#cacheL10nStrings()`. That method is
  getting pretty big, and it also doesn't work well with strings that have
  arguments since it's called to pre-cache strings before they're used, when
  there are no arguments. So I extended `cacheable` support to all l10n objects,
  not only those from dynamic results.
* Josh's spec calls for the temperature in the suggestion title to be bolded.
  There's no good way to do that right now. We have highlights, but they aren't
  useable for l10n strings. The simplest thing -- and what I've done before in
  cases like this -- is to include `<strong>` tags in the l10n string itself.
  That works except for when we have a cache hit with the l10n cache. In that
  case, we set the `textContent`, which of course renders the tag literally. So
  I added a `parseMarkup` option to l10n objects that says the cached string
  should be set as `innerHTML` instead. Actually, for security I parse the
  string into a sanitized document fragment. We could just always do this and
  get rid of `parseMarkup`, but it seems wasteful since most l10n strings don't
  need it.
* While addressing the previous two points, it made sense to move
  `setElementL10n()` from the view to `L10nCache`. That way all these
  cache-related functions are together.

Finally, Josh noticed one of the dark-mode colors in the icon SVG didn't have
enough contrast with the standard dark-mode panel background, so I updated that
to a new color he chose (from `#80808F` to `#9393A8`).

[1] https://www.figma.com/design/Hdi0oHB7trRcncyVAKZypO/accuweather-explorations?node-id=3548-15992&t=f4YUShEe5RkP2KEg-1

Differential Revision: https://phabricator.services.mozilla.com/D232703
2024-12-27 18:11:23 +00:00
Dale Harvey
54534a73d2 Bug 1930547 - Reenable contextual search in ScotchBonnet. r=daisuke,urlbar-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D229279
2024-11-18 20:33:08 +00:00
Dale Harvey
d6bf7c5a2d Bug 1926241 - Provide tab-to-search results via actions. r=urlbar-reviewers,mak
Differential Revision: https://phabricator.services.mozilla.com/D227236
2024-11-08 13:35:12 +00:00
Moritz Beier
1bcaefc14e Bug 1389229 - Deduplicate urlbar history results that only differ by their URL fragment. r=mak,urlbar-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D222672
2024-10-11 07:18:04 +00:00
mcheang
ce3fcffe0e Bug 1921549 - List the keywords in the results panel when a user types @. r=mak,fluent-reviewers,urlbar-reviewers
This patch adds the keywords to the result title for TokenAliasEngine and
RestrictKeyword results. The TokenAliasEngine results may have more than one
keyword if the user has set a custom keyword for that engine. This can help
remind the user what keywords are available as they are typing or if they
have forgotten a keyword, they can type `@` to quickly see the list of keywords
to search with.

The result title looks like this:

For Engines:
 @[keywords] - Search with [Engine]
For Restrict Keywords:
@[keyword] - Search [Restrict]

Differential Revision: https://phabricator.services.mozilla.com/D224017
2024-10-02 18:42:29 +00:00
Karandeep
c81bb956f2 Bug 1838604 - Replace TestProvider with UrlbarTestUtils.TestProvider. r=mak,urlbar-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D220561
2024-08-30 14:28:38 +00:00
Drew Willcoxon
26cdd4f115 Bug 1914542 - Replace UrlbarResult.exposureResultType and exposureResultHidden with a single simple value. r=mak
This replaces `UrlbarResult.exposureResultType` and `exposureResultHidden` with
a single simple value called `exposureTelemetry`. Please see the bug for the
rationale.

Other changes:

* For convenience, make `UrlbarPrefs.get("exposureResults")` return a `Set` so
  consumers don't have to parse the string value.
* Simplify handling of result properties in `check_results()` (xpcshell tests)
* Add more tasks/checks to test_exposure.js

Depends on D219939

Differential Revision: https://phabricator.services.mozilla.com/D219942
2024-08-27 20:12:55 +00:00
Drew Willcoxon
067c9bc5b1 Bug 1911683 - Remove shouldNavigate for dynamic result types and make UrlbarUtils.getUrlFromResult() fall back to payload.url for all results. r=daisuke
Please see the bug for info.

Differential Revision: https://phabricator.services.mozilla.com/D218607
2024-08-06 01:41:04 +00:00
Mark Banner
58104578ca Bug 1907588 - In tests, only startup the Addon Manager when necessary, now that the search service doesn't require it all the time. r=search-reviewers,home-newtab-reviewers,jteow
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
2024-07-17 11:20:20 +00:00
Moritz Beier
9d7c26eff8 Bug 1903247 - Remove SearchEngine.searchForm. r=Standard8,omc-reviewers,home-newtab-reviewers,aminomancer,urlbar-reviewers,nbarrett
Differential Revision: https://phabricator.services.mozilla.com/D214240
2024-06-26 16:03:23 +00:00
Drew Willcoxon
29c41bdfc1 Bug 1881606 - Add a Nimbus variable and pref for configuring Yelp suggestion index/position. r=daisuke
Depends on D202773

Differential Revision: https://phabricator.services.mozilla.com/D202777
2024-02-27 06:54:07 +00:00
Marco Bonardo
3883c9c4d3 Bug 1879885 - Improve Places origins frecency. r=daisuke,places-reviewers
This makes a small change to the origins frecency by introducing a cut-off
of 90 days to the sum of frecencies in the origin. That will make the ranking
more recency prone. Bookmarks continue being autofilled regardless.
This also simplifies the threshold removing the stddev that we pretty much
never used.

Differential Revision: https://phabricator.services.mozilla.com/D201723
2024-02-21 15:07:13 +00:00
Daisuke Akatsuka
211fd27959 Bug 1876400: Make cached-icon and page-icon protocol independent r=places-reviewers,mak
Differential Revision: https://phabricator.services.mozilla.com/D199600
2024-01-25 22:32:11 +00:00
Drew Willcoxon
d13fa84db8 Bug 1876381 - Remove underscores for some UrlbarTestUtils.TestProvider properties. r=mak
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
2024-01-25 20:15:55 +00:00
Daisuke Akatsuka
352c077df4 Bug 1849866: Rename moz-anno:favicon protocol to cached-favicon r=necko-reviewers,places-reviewers,valentin,mak
Differential Revision: https://phabricator.services.mozilla.com/D198130
2024-01-24 22:05:42 +00:00
Dão Gottwald
fe07007fb3 Bug 1810113 - UrlbarProviderPlaces and UrlbarProviderSearchSuggestions should set isBlockable and blockL10n for history results. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D168993
2024-01-19 21:43:28 +00:00
Mark Banner
e2e80f646d Bug 1864821 - Replace PromiseUtils.defer() with Promise.withResolvers() in system modules. r=Gijs,perftest-reviewers,necko-reviewers,extension-reviewers,application-update-reviewers,fxview-reviewers,sync-reviewers,sessionstore-reviewers,reusable-components-reviewers,rpl,jesup,hjones,kshampur,skhamis,nalexander,sclements
Differential Revision: https://phabricator.services.mozilla.com/D197489
2024-01-05 09:22:34 +00:00
Mark Banner
41aa2fb746 Bug 1870275 - Change more urlbar tests to use add_setup. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D196575
2023-12-16 14:00:13 +00:00
Dale Harvey
3cce477392 Bug 1868368 - Show suggestions without icons when richsuggestions are disabled. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D196140
2023-12-14 11:50:19 +00:00
Dale Harvey
f050034465 Bug 1865273 - Don't group rich suggestions last in urlbar results. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D194177
2023-11-29 15:56:08 +00:00
Cristian Tuns
11a7654db7 Backed out changeset d7e5b4cd4c20 (bug 1865273) for causing bc failures in browser_searchShowSuggestionsFirst.js CLOSED TREE 2023-11-29 11:53:54 -05:00
Dale Harvey
263da5e4cd Bug 1865273 - Don't group rich suggestions last in urlbar results. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D194177
2023-11-29 15:56:08 +00:00
Dale Harvey
0acb040191 Bug 1858978 - Restrict search history deletions by engine. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D191122
2023-10-17 13:18:42 +00:00
Marc Seibert
d102db072b Bug 1479858 - Added option for UrlBar search open tabs to ignore userContextId.r=mak,dao
Oiriginal patch author: Paresh Malalur <atararx@gmail.com>

Differential Revision: https://phabricator.services.mozilla.com/D187465
2023-10-13 08:48:46 +00:00
Marco Bonardo
e8db79b5ea Bug 1846781 - Use recalc_frecency for updating origins frecency instead of triggers. r=daisuke
Until now we updated origins frecency using direct SQL triggers.
While that guaranteed good performance, it also had some downsides:
 * replacing the algorithms is complicate, the current system only works
   with a straight sum of page frecencies. We are planning to experiment with
   different algorithms in the future.
 * it requires using multiple temp tables and DELETE triggers, that is error
   prone for consumers, that may forget to DELETE from the temp tables, and thus
   break data coherency.
 * there's not much atomicity, since the origins update must be triggered apart
   and a crash would lose some of the changes

This patch is changing the behavior to be closer to the recalc_frecency one that
is already used for pages.
When a page is added, visited, or removed, recalc_frecency of its origin is set
to 1. Later frecency of invalidated origins will be recalculated in chunks.
While this is surely less efficient than the existing system, it solves the
problems presented above.
A threshold is recalculated at each chunk, and stored in the moz_meta table.
This patch continues using the old STATS in the moz_meta table, to allow for
easier downgrades. Once a new threshold will be introduced we'll be able to
stop updating those.

The after delete temp table is maintained because there's no more efficient way
to remove orphan origins promptly. Thus, after a removal from moz_places,
consumers MUST still DELETE from the temp table to cleanup orphan origins.
This also introduces a delayed removal of orphan origins when their frecency
becomes 0.

Differential Revision: https://phabricator.services.mozilla.com/D186070
2023-09-13 13:58:30 +00:00
Drew Willcoxon
657f813e79 Bug 1852300 - Make dismissal acknowledgments go through UrlbarController.removeResult(). r=dao
The problem is that showing the dismissal acknowledgment tip does not remove the
result from the query context, so when the view later opens and reuses the
cached query context, it still has the dismissed result in it.

At first I thought I should modify `UrlbarView.acknowledgeDismissal()` so it
either invalidates the context cache or removes the result from the cached
context, but I saw that dismissals without the acknowledgment tip do not have
this problem. That's because they go through `UrlbarController.removeResult()`,
which removes the result from the context and then notifies the view.

The real problem is that I implemented dismissal acknowledgments wrong. They
should start by going through `UrlbarController.removeResult()` too.

This patch updates all callers of `acknowledgeDismissal()` so they call
`removeResult()` instead. To signal that an acknowledgment should be shown, they
first set a `result.acknowledgeDismissalL10n` property. When the view is
notified that a result was removed, it shows the tip if this property is
present.

Differential Revision: https://phabricator.services.mozilla.com/D187830
2023-09-11 17:04:09 +00:00
Gregory Pappas
a57c4f9405 Bug 1845311 - [Part 2] Use ChromeUtils.defineLazyGetter in more places r=arai,webcompat-reviewers,necko-reviewers,extension-reviewers,settings-reviewers,application-update-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sync-reviewers,anti-tracking-reviewers,tabbrowser-reviewers,bytesized,twisniewski,sgalich,mak,kershaw,sclements,pbz,robwu,geckoview-reviewers,amejiamarmol
Differential Revision: https://phabricator.services.mozilla.com/D184623
2023-08-01 23:01:02 +00:00
Mark Banner
544ecba3af Bug 1837176 - Convert imports of httpd.js to consume the ES module directly. r=necko-reviewers,webcompat-reviewers,extension-reviewers,settings-reviewers,application-update-reviewers,credential-management-reviewers,devtools-reviewers,cookie-reviewers,twisniewski,robwu,issammani,bytesized,pbz,valentin
Differential Revision: https://phabricator.services.mozilla.com/D181159
2023-07-12 13:38:34 +00:00
Marco Bonardo
ff3c4323fc Bug 1827770 - Remove QueryContext.view and pass the controller to onEngagement() instead. r=daleharvey
Differential Revision: https://phabricator.services.mozilla.com/D182771
2023-07-07 10:01:50 +00:00
Drew Willcoxon
bf1430c569 Bug 1841408 - Unify rich suggestions, best match, Firefox Suggest sponsored results, and Pocket Suggestions. r=dao,daleharvey
This does a few things:

* Unify the view implementations of rich suggestions, Firefox Suggest sponsored
  results, and best match. I did this by using the best match implementation
  and extending it to rich suggestions and Suggest sponsored.
* Use the unified implementation for Pocket suggestions too.
* Add a bottom-text concept since Pocket suggestions shown as top picks need to
  show both a description and some text below it. (The actual bottom text per
  result is added in D182632 since I didn't want to make this patch bigger than
  necessary)

I have a couple motivations for these changes:

* I'm implementing Pocket suggestions, which need to show some text below the
  suggestion title as well as the URL. I was going to just use the Firefox
  Suggest sponsored approach, where the action text is wrapped below the title,
  but that doesn't work because it can't show both the wrapped action text and
  the URL.
* IMO we should use rich suggestions as the basis for all rows going forward,
  i.e., unify the different row implementations around rich suggestions.

The reason I chose the best match implementation instead of the rich suggestions
implementation is because the grid-based approach of rich suggestions doesn't
work well when the URL also needs to be shown. The URL should be
baseline-aligned with the row title, which isn't easy to do when the URL is
outside the grid. The rich suggestions implementation also doesn't wrap the URL.

Other details:

* The `rich-suggestion=no-icon` attribute value is only used for styling, so we
  can replace it with `@supports -moz-bool-pref()`. That lets us make the
  `rich-suggestion` attribute a simple boolean.
* I kept the `isBestMatch` property for results since
  `searchEngagementTelemetryGroup()` uses it to return "top_pick", and the view
  also uses it to create the "Top pick" row/group label. It still has semantic
  meaning so I think that's OK. It's no longer used by the view to create
  different DOM or styling.
* Move `isRichSuggestion` from the payload to the result itself, since it's no
  longer used for only one type of result. It's like `isBestMatch`, which is
  also on the result.
* Add `richSuggestionIconSize` to the result too. The best match icon size
  is 52. The Pocket best match icon size is 24 (but will have added padding and
  a background color to make it appear 52px). IMO this is better than adding
  rules for each type of suggestion to the CSS. It's cleaner and also indicates
  what the "standard" icon sizes are.

Depends on D182580

Differential Revision: https://phabricator.services.mozilla.com/D182537
2023-07-05 15:47:24 +00:00
mcheang
719249fa5b Bug 1840558 - Remove autofill search engines code. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D182163
2023-06-29 12:36:08 +00:00
Mark Banner
232facd440 Bug 1824613 - Convert consumers of toolkit/mozapps/extensions/ to import ES modules directly. r=extension-reviewers,settings-reviewers,application-update-reviewers,credential-management-reviewers,devtools-reviewers,sync-reviewers,sgalich,bytesized,robwu,skhamis
Depends on D179819

Differential Revision: https://phabricator.services.mozilla.com/D179820
2023-06-02 20:00:35 +00:00
Marco Bonardo
ddbafa4329 Bug 1834989 - Clean up UrlbarTestUtils use. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D179056
2023-05-26 14:56:55 +00:00
Mark Banner
0666077666 Bug 1826062 - Automatic fixes for upgrading Prettier to 2.8.8. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,calu
Differential Revision: https://phabricator.services.mozilla.com/D177027
2023-05-20 12:26:53 +00:00
Dale Harvey
a8d49a9e03 Bug 1826447 - Initial support for Rich Suggestions. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D174693
2023-05-11 21:27:36 +00:00
Drew Willcoxon
e6de21f076 Bug 1832300 - Show is_top_pick suggestions as top picks only when the best match prefs are enabled. r=daisuke
This keeps the current behavior where Firefox shows a suggestion as a top pick
when `is_top_pick` is true, but in addition the two best-match prefs must also
be true.

I cp'ed test_quicksuggest_bestMatch.js to test_quicksuggest_topPicks.js so that
we have a test specifically for top picks, and I added tasks for all preference
combinations. The terms "best match" and "top picks" are overloaded and I tried
to explain what they mean in the code comments I added.

Depends on  D176114

Differential Revision: https://phabricator.services.mozilla.com/D177712
2023-05-11 04:14:40 +00:00
Drew Willcoxon
42a104c6fa Bug 1830385 - Implement the dismissal "Thanks for your feedback" message in Suggest results. r=dao,fluent-reviewers,flod
This implements the second "thanks for your feedback" UI for weather, Pocket,
addon, MDN, etc. suggestions. The first UI is in D175729, which this revision
builds on.

This UI is shown when a result is dismissed. It's essentially a tip with a
smaller icon and padding. It has the "Got it" button that dismisses the tip
itself when clicked.

I noticed tip top and bottom borders use `--panel-separator-color`, which
doesn't seem right. They're supposed to be the same color as the borders between
the input and view and between the results and one-off buttons, which is
`--autocomplete-popup-separator-color`. The spec for this feature uses the same
colors too. So I changed that too. (The use of `--panel-separator-color` goes
back to [the initial tip implementation](https://hg.mozilla.org/mozilla-central/rev/78886081d45b09987c1825cc5a160fd6bec61cb8) in 70, but search tips and
interventions weren't added until 74, in bug 1606909 and bug 1606917. I checked,
and in 74 all the borders are the same color.)

References:

* [Figma](https://www.figma.com/file/Hdi0oHB7trRcncyVAKZypO/accuweather-explorations?node-id=2421%3A62540&t=svOk7TxQv4V7Y9L4-1) (see "A11y review - user feedback" in sidebar)
* [Clickable prototype](https://www.figma.com/proto/Hdi0oHB7trRcncyVAKZypO/accuweather-explorations?page-id=2192%3A42825&node-id=2394-52468&viewport=246%2C526%2C0.12&scaling=min-zoom&starting-point-node-id=2394%3A52468&show-proto-sidebar=1) (see "Revised 4/3" in sidebar)
* [Content design](https://docs.google.com/document/d/1Mgt_oAIEDz_sF-YBqqUGtfKHQCAtRzEQohpfqk-2X8U/edit?usp=sharing)

Depends on D175729

Differential Revision: https://phabricator.services.mozilla.com/D176468
2023-05-02 20:15:18 +00:00
Wil Stuckey
51509a8495 Bug 1819766 - Add support for exposure based experiments. r=adw
This change adds support for exposure based experiments by allowing
a Nimbus variable/pref to specify the urlbar provider that should
trigger an exposure event as well as a secondary boolean variable/pref
that controls the visibility of the exposed result. The exposure should
be registered when a result 'can be added' but may or may not be shown
based on the value of the `displayExposureProvider` variable.

* Add exposure event to metrics.yaml
* Add new Nimbus variable (`exposureProvider`) to specify the urlbar
  providers that should trigger exposure events .
* Add new Nimbus variable (`displayExposureProvider`) that controls the visibility
  of the provider results that matched the `exposureProvider` variable.

Differential Revision: https://phabricator.services.mozilla.com/D174209
2023-04-24 20:04:21 +00:00
Marco Bonardo
5803aa315a Bug 1829192 - use PlacesTestUtils.getDatabaseValue more extensively. r=jteow
Differential Revision: https://phabricator.services.mozilla.com/D176075
2023-04-21 08:42:26 +00:00
Abhishek Tiwari
98d068c69c Bug 1771508 - Add a getDatabaseValue helper to PlacesTestUtils. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D172597
2023-04-19 15:24:15 +00:00
Drew Willcoxon
c26ec9b3d6 Bug 1827762 - Replace UrlbarProvider.pickResult() and blockResult() with onEngagement() r=mak
This removes `UrlbarProvider.pickResult()` and `blockResult()` in favor of
handling picks and dismissals through `onEngagement()`. A number of providers
use those two methods, so this revision touches a lot of files.

Handling dismissals through `onEngagement()` means `UrlbarInput.pickResult()`
can no longer tell whether a result is successfully dismissed, so it can't
remove the result anymore. (Maybe `onEngagement()` could return some value
indicating it dismissed the result, but I don't want to go down that road.)
Instead, I split `UrlbarController.handleDeleteEntry()` into two methods: a
public one that removes the result and notifies listeners, and a private one
that handles dismissing the selected result internally in
UrlbarController. Providers that have dismissable results should now implement
`onEngagement()` and call `controller.removeResult()`.

I made some other improvements to engagement handling. There's still room for
more but this patch is big enough already.

Other notable changes:

Include the engaged result in engagement notifications so providers have easy
access to it and can respond to clicks and dismissals more easily. That also
lets us stop passing `selIndex` and `provider` to `engagementEvent.record()`
since now it can compute those from the passed-in result.

Add the concept of `isSessionOngoing` to engagement notifications so providers
can tell whether an engagement ended the search session. Right now, providers
like quick suggest that record a bunch of provider-specific legacy telemetry
assume that `onEngagement()` ends the session, but that's no longer true.

Unify result buttons and result menu commands by setting
`element.dataset.command` on buttons (hopefully we can remove buttons soon, at
least the ones that aren't tip buttons)

Make sure we always notify providers on engagement even on dismissals or
when skipping legacy telemetry

Move dismissal of restyled search suggestions and history results from
`UrlbarController.handleDeleteEntry()` to the Places provider

Move dismissal of form history results from
`UrlbarController.handleDeleteEntry()` to the search suggestions provider

In the Places provider, remove the unused `_addSearchEngineMatch()` method. Also
remove the code in the "searchengine" case that creates a non-search-history
result. This code is unreached because the only time the provider creates a
"searchengine" match it also sets `isSearchHistory` to true.

In `UrlbarTestUtils.promiseAutocompleteResultPopup()`, change the default value
of the `fireInputEvent` param from false to true. This is necessary because
without a starting input event, the start event info in `engagementEvent` will
be null, so when `engagementEvent.record()` is called at the end of the
engagement, it will bail, and providers will not be notified of the engagement.
IMO true is a better default value anyway because input events will typically be
fired when the user performs a search.

Differential Revision: https://phabricator.services.mozilla.com/D174941
2023-04-13 06:03:33 +00:00
CanadaHonk
de0de3489c Bug 1801379 - Migrate Sinon.jsm to an ES module r=extension-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,fxview-reviewers,devtools-reviewers,Standard8,nchevobbe,sclements,dimi,mconley,bytesized,robwu
Migrated `testing/modules/Sinon.sys.mjs` to an ES module.

`testing` should now be 100% ESM 🎉

Differential Revision: https://phabricator.services.mozilla.com/D173643
2023-03-29 07:34:10 +00:00
Dale Harvey
e83e85de76 Bug 1819775 - Add icon for trending suggestions. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D171404
2023-03-08 21:00:27 +00:00
Marco Bonardo
e6d6c68aa4 Bug 1810772 - Stop recalculating frecency immediately for bookmarks. r=daisuke
Differential Revision: https://phabricator.services.mozilla.com/D168779
2023-02-08 08:54:57 +00:00
Drew Willcoxon
5f9e3b5752 Bug 1814795 - Support keyword-based weather suggestions in addition to zero-prefix. r=daisuke
This adds a new pref, `browser.urlbar.weather.zeroPrefix`. When true, weather
suggestions are shown on "zero prefix" like they are now, which means they're
shown when the user focuses the urlbar and before they type anything. When the
pref is false, the weather provider will show suggestions only if the search
string matches a keyword in a set of keywords managed by `QuickSuggest.weather`.

My plan is to store the keywords in the quick suggest config object in remote
settings. Nan suggested this too. Currently the config does not contain any
keywords, but this patch can be tested by setting the pref to false, running the
following in the browser console, and then typing "weather" in the urlbar:

```lang=js
ChromeUtils.importESModule("resource:///modules/QuickSuggest.sys.mjs")
  .QuickSuggest.remoteSettings._test_setConfig({
    weather_keywords: ["weather"],
  });
```

Other changes:

* It's possible for a keyword to match both the weather suggestion and a quick
  suggest suggestion. Only the weather suggestion should be shown. This patch
  modifies to the muxer for that.
* This modifies `UrlbarView.#rowLabel()` to show the "Top pick" (a.k.a. best
  match) label for keyword-based weather suggestions, in addition to zero-prefix
  suggestions like we currently do.
* This modifies the remote settings client so it becomes enabled when keyword-
  based weather suggestions are enabled, so that the config can be accessed.

Depends on D168738

Differential Revision: https://phabricator.services.mozilla.com/D168757
2023-02-07 02:26:55 +00:00
Gregory Pappas
7d1502f86d Bug 1813302 - Add missing blockL10n property to UrlbarProviderOmnibox payload r=dao,adw
Differential Revision: https://phabricator.services.mozilla.com/D168191
2023-01-31 18:50:23 +00:00
Daisuke Akatsuka
d46b22b675 Bug 1791657: Introduce fallbackTitle into payload. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D159243
2023-01-24 22:35:14 +00:00
Gregory Pappas
61f7f15f7d Bug 1779400 - Let omnibox API work in private windows r=mak
Differential Revision: https://phabricator.services.mozilla.com/D166681
2023-01-13 10:55:59 +00:00
Drew Willcoxon
51937fb742 Bug 1808697 - Allow Merino and remote settings suggestions to be passed separately to ensureQuickSuggestInit(). r=daleharvey
`QuickSuggestTestUtils.ensureQuickSuggestInit()` was written before Merino, so
it assumes the suggestion objects passed in are remote settings suggestions.
This revision modifies it so Merino and remote settings suggestions can both be
passed in. That makes it a little nicer for tests that need to test Merino
suggestions in particular, like navigational suggestions, dynamic Wikipedia,
etc.

Another motivation for this change is that it makes it clear which type of
suggestion is being passed to `ensureQuickSuggestInit()`. Unfortunately Merino
suggestion objects are slightly different from remote settings result objects
(`block_id` vs. `id` for example), which are both different from UrlbarResult
objects, and it can be confusing when reading tests. Since "result" is the name
of remote settings objects used internally in the remote settings client, I've
used that term here, and I've updated all callers to use it instead of
"suggestion".

This also makes `MerinoTestUtils` and `QuickSuggestTestUtils` singletons.
Otherwise the new `MerinoTestUtils` instance used inside `QuickSuggestTestUtils`
isn't the same as the one used in the test that calls into
`QuickSuggestTestUtils`, which is very confusing. This made me realize it's a
good idea for these test utils objects to be singletons.

Finally I removed `is_top_pick` handling from the remote settings client and
remote settings suggestions, since the related test is now using Merino. I also
removed `_test_is_best_match` since only one test was using it and it's not
necessary.

Depends on D166019

Differential Revision: https://phabricator.services.mozilla.com/D166050
2023-01-09 20:46:00 +00:00
Daisuke Akatsuka
42601e6a91 Bug 1800579: Implement the impression event. r=mak,Dexter
Differential Revision: https://phabricator.services.mozilla.com/D162085
2022-12-07 06:35:50 +00:00