Bug 1888908 - Rename current onEngagement to onLegacyEngagement r=mak

Differential Revision: https://phabricator.services.mozilla.com/D206251
This commit is contained in:
Karandeep
2024-04-09 13:07:23 +00:00
parent 645f79c496
commit d8690f18b5
35 changed files with 79 additions and 75 deletions

View File

@@ -604,8 +604,8 @@ export class UrlbarController {
/**
* Triggers a "dismiss" engagement for the selected result if one is selected
* and it's not the heuristic. Providers that can respond to dismissals of
* their results should implement `onEngagement()`, handle the dismissal, and
* call `controller.removeResult()`.
* their results should implement `onLegacyEngagement()`, handle the
* dismissal, and call `controller.removeResult()`.
*
* @param {Event} event
* The event that triggered dismissal.

View File

@@ -157,7 +157,7 @@ class ProviderCalculator extends UrlbarProvider {
return viewUpdate;
}
onEngagement(state, queryContext, details) {
onLegacyEngagement(state, queryContext, details) {
let { result } = details;
if (result?.providerName == this.name) {
lazy.ClipboardHelper.copyString(result.payload.value);

View File

@@ -143,7 +143,7 @@ class ProviderClipboard extends UrlbarProvider {
addCallback(this, result);
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
const visibleResults = controller.view?.visibleResults ?? [];
for (const result of visibleResults) {
if (

View File

@@ -246,7 +246,7 @@ class ProviderContextualSearch extends UrlbarProvider {
};
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
if (result?.providerName == this.name) {
this.#pickResult(result, controller.browserWindow);

View File

@@ -200,7 +200,7 @@ class ProviderInputHistory extends UrlbarProvider {
}
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
if (result?.providerName != this.name) {
return;

View File

@@ -703,7 +703,7 @@ class ProviderInterventions extends UrlbarProvider {
}
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
// `selType` is "tip" when the tip's main button is picked. Ignore clicks on

View File

@@ -178,7 +178,7 @@ class ProviderOmnibox extends UrlbarProvider {
);
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
if (result?.providerName != this.name) {
return;

View File

@@ -1517,7 +1517,7 @@ class ProviderPlaces extends UrlbarProvider {
search.notifyResult(false);
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
if (result?.providerName != this.name) {
return;

View File

@@ -241,7 +241,7 @@ class ProviderQuickActions extends UrlbarProvider {
}
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
// Ignore engagements on other results that didn't end the session.
if (details.result?.providerName != this.name && details.isSessionOngoing) {
return;

View File

@@ -229,7 +229,7 @@ class ProviderQuickSuggest extends UrlbarProvider {
}
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
// Ignore engagements on other results that didn't end the session.
if (details.result?.providerName != this.name && details.isSessionOngoing) {
return;
@@ -486,8 +486,8 @@ class ProviderQuickSuggest extends UrlbarProvider {
* end of the engagement or that was dismissed. Null if no quick suggest
* result was present.
* @param {object} details
* The `details` object that was passed to `onEngagement()`. It must look
* like this: `{ selType, selIndex }`
* The `details` object that was passed to `onLegacyEngagement()`. It must
* look like this: `{ selType, selIndex }`
*/
#recordEngagement(queryContext, result, details) {
let resultSelType = "";
@@ -781,8 +781,8 @@ class ProviderQuickSuggest extends UrlbarProvider {
* True if the main part of the result's row was clicked; false if a button
* like help or dismiss was clicked or if no part of the row was clicked.
* @param {object} options.details
* The `details` object that was passed to `onEngagement()`. It must look
* like this: `{ selType, selIndex }`
* The `details` object that was passed to `onLegacyEngagement()`. It must
* look like this: `{ selType, selIndex }`
*/
#recordNavSuggestionTelemetry({
queryContext,

View File

@@ -188,7 +188,7 @@ class ProviderQuickSuggestContextualOptIn extends UrlbarProvider {
row.ownerGlobal.A11yUtils.announce({ raw: alertText });
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
if (result?.providerName != this.name) {
return;

View File

@@ -63,7 +63,7 @@ class ProviderRecentSearches extends UrlbarProvider {
return 1;
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
if (result?.providerName != this.name) {
return;

View File

@@ -352,7 +352,7 @@ class ProviderSearchSuggestions extends UrlbarProvider {
return undefined;
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
let { result } = details;
if (result?.providerName != this.name) {
return;

View File

@@ -273,7 +273,7 @@ class ProviderSearchTips extends UrlbarProvider {
lazy.UrlbarPrefs.set(`tipShownCount.${tip}`, MAX_SHOWN_COUNT);
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
// Ignore engagements on other results that didn't end the session.
let { result } = details;
if (result?.providerName != this.name && details.isSessionOngoing) {

View File

@@ -194,7 +194,7 @@ class ProviderTabToSearch extends UrlbarProvider {
* Called when a result from the provider is selected. "Selected" refers to
* the user highlighing the result with the arrow keys/Tab, before it is
* picked. onSelection is also called when a user clicks a result. In the
* event of a click, onSelection is called just before onEngagement.
* event of a click, onSelection is called just before onLegacyEngagement.
*
* @param {UrlbarResult} result
* The result that was selected.
@@ -226,7 +226,7 @@ class ProviderTabToSearch extends UrlbarProvider {
}
}
onEngagement(state, queryContext, details) {
onLegacyEngagement(state, queryContext, details) {
let { result, element } = details;
if (
result?.providerName == this.name &&

View File

@@ -193,7 +193,7 @@ class ProviderTopSites extends UrlbarProvider {
return site;
});
// Store Sponsored Top Sites so we can use it in `onEngagement`
// Store Sponsored Top Sites so we can use it in `onLegacyEngagement`
if (sponsoredSites.length) {
this.sponsoredSites = sponsoredSites;
}
@@ -333,7 +333,7 @@ class ProviderTopSites extends UrlbarProvider {
}
}
onEngagement(state, queryContext) {
onLegacyEngagement(state, queryContext) {
if (!queryContext.isPrivate && this.sponsoredSites) {
for (let site of this.sponsoredSites) {
Services.telemetry.keyedScalarAdd(

View File

@@ -169,7 +169,7 @@ class ProviderUnitConversion extends UrlbarProvider {
addCallback(this, result);
}
onEngagement(state, queryContext, details) {
onLegacyEngagement(state, queryContext, details) {
let { result, element } = details;
if (result?.providerName == this.name) {
const { textContent } = element.querySelector(

View File

@@ -163,7 +163,7 @@ class ProviderWeather extends UrlbarProvider {
return lazy.QuickSuggest.weather.getViewUpdate(result);
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
// Ignore engagements on other results that didn't end the session.
if (details.result?.providerName != this.name && details.isSessionOngoing) {
return;
@@ -243,7 +243,7 @@ class ProviderWeather extends UrlbarProvider {
* A non-empty string means the user picked the weather row or some part of
* it, and both impression and click telemetry will be recorded. The
* non-empty-string values come from the `details.selType` passed in to
* `onEngagement()`; see `TelemetryEvent.typeFromElement()`.
* `onLegacyEngagement()`; see `TelemetryEvent.typeFromElement()`.
*/
#recordEngagementTelemetry(result, isPrivate, selType) {
// Indexes recorded in quick suggest telemetry are 1-based, so add 1 to the

View File

@@ -334,7 +334,8 @@ class ProvidersManager {
/**
* Notifies all providers when the user starts and ends an engagement with the
* urlbar. For details on parameters, see UrlbarProvider.onEngagement().
* urlbar. For details on parameters, see
* UrlbarProvider.onLegacyEngagement().
*
* @param {string} state
* The state of the engagement, one of: engagement, abandonment
@@ -348,7 +349,7 @@ class ProvidersManager {
notifyEngagementChange(state, queryContext, details = {}, controller) {
for (let provider of this.providers) {
provider.tryMethod(
"onEngagement",
"onLegacyEngagement",
state,
queryContext,
details,

View File

@@ -2475,7 +2475,7 @@ export class UrlbarProvider {
* @param {UrlbarController} _controller
* The associated controller.
*/
onEngagement(_state, _queryContext, _details, _controller) {}
onLegacyEngagement(_state, _queryContext, _details, _controller) {}
/**
* Called before a result from the provider is selected. See `onSelection`
@@ -2493,8 +2493,8 @@ export class UrlbarProvider {
* Called when a result from the provider is selected. "Selected" refers to
* the user highlighing the result with the arrow keys/Tab, before it is
* picked. onSelection is also called when a user clicks a result. In the
* event of a click, onSelection is called just before onEngagement. Note that
* this is called when heuristic results are pre-selected.
* event of a click, onSelection is called just before onLegacyEngagement.
* Note that this is called when heuristic results are pre-selected.
*
* @param {UrlbarResult} _result
* The result that was selected.
@@ -2577,8 +2577,8 @@ export class UrlbarProvider {
/**
* Gets the list of commands that should be shown in the result menu for a
* given result from the provider. All commands returned by this method should
* be handled by implementing `onEngagement()` with the possible exception of
* commands automatically handled by the urlbar, like "help".
* be handled by implementing `onLegacyEngagement()` with the possible
* exception of commands automatically handled by the urlbar, like "help".
*
* @param {UrlbarResult} _result
* The menu will be shown for this result.
@@ -2590,8 +2590,8 @@ export class UrlbarProvider {
* {string} name
* The name of the command. Must be specified unless `children` is
* present. When a command is picked, its name will be passed as
* `details.selType` to `onEngagement()`. The special name "separator"
* will create a menu separator.
* `details.selType` to `onLegacyEngagement()`. The special name
* "separator" will create a menu separator.
* {object} l10n
* An l10n object for the command's label: `{ id, args }`
* Must be specified unless `name` is "separator".

View File

@@ -152,8 +152,8 @@ aren't relevant to dynamic result types, and you should choose values
appropriate to your use case.
If any elements created in the view for your results can be picked with the
keyboard or mouse, then be sure to implement your provider's ``onEngagement``
method.
keyboard or mouse, then be sure to implement your provider's
``onLegacyEngagement`` method.
For help on implementing providers in general, see the address bar's
`Architecture Overview`__.
@@ -616,7 +616,7 @@ URL Navigation
If a result's payload includes a string ``url`` property and a boolean
``shouldNavigate: true`` property, then picking the result will navigate to the
URL. The ``onEngagement`` method of the result's provider will still be called
URL. The ``onLegacyEngagement`` method of the result's provider will still be called
before navigation.
Text Highlighting

View File

@@ -1487,7 +1487,7 @@ class TestProvider extends UrlbarProvider {
* @param {Function} [options.onSelection]
* If given, a function that will be called when
* {@link UrlbarView.#selectElement} method is called.
* @param {Function} [options.onEngagement]
* @param {Function} [options.onLegacyEngagement]
* If given, a function that will be called when engagement.
* @param {Function} [options.delayResultsPromise]
* If given, we'll await on this before returning results.
@@ -1500,7 +1500,7 @@ class TestProvider extends UrlbarProvider {
addTimeout = 0,
onCancel = null,
onSelection = null,
onEngagement = null,
onLegacyEngagement = null,
delayResultsPromise = null,
} = {}) {
if (delayResultsPromise && addTimeout) {
@@ -1517,7 +1517,7 @@ class TestProvider extends UrlbarProvider {
this._type = type;
this._onCancel = onCancel;
this._onSelection = onSelection;
this._onEngagement = onEngagement;
this._onLegacyEngagement = onLegacyEngagement;
// As this has been a common source of mistakes, auto-upgrade the provider
// type to heuristic if any result is heuristic.
@@ -1571,8 +1571,8 @@ class TestProvider extends UrlbarProvider {
this._onSelection?.(result, element);
}
onEngagement(state, queryContext, details, controller) {
this._onEngagement?.(state, queryContext, details, controller);
onLegacyEngagement(state, queryContext, details, controller) {
this._onLegacyEngagement?.(state, queryContext, details, controller);
}
}

View File

@@ -117,8 +117,8 @@ async function doTest({ click, buttonUrl = undefined, helpUrl = undefined }) {
});
UrlbarProvidersManager.registerProvider(provider);
let onEngagementPromise = new Promise(
resolve => (provider.onEngagement = resolve)
let onLegacyEngagementPromise = new Promise(
resolve => (provider.onLegacyEngagement = resolve)
);
// Do a search to show our tip result.
@@ -142,8 +142,8 @@ async function doTest({ click, buttonUrl = undefined, helpUrl = undefined }) {
);
}
// Now pick the target and wait for provider.onEngagement to be called and
// the URL to load if necessary.
// Now pick the target and wait for provider.onLegacyEngagement to be called
// and the URL to load if necessary.
let loadPromise;
if (buttonUrl || helpUrl) {
loadPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
@@ -160,7 +160,7 @@ async function doTest({ click, buttonUrl = undefined, helpUrl = undefined }) {
EventUtils.synthesizeKey("KEY_Enter");
}
});
await onEngagementPromise;
await onLegacyEngagementPromise;
await loadPromise;
// Check telemetry.

View File

@@ -389,11 +389,11 @@ class TestProvider extends UrlbarTestUtils.TestProvider {
];
}
onEngagement(state, queryContext, details, controller) {
onLegacyEngagement(state, queryContext, details, controller) {
if (details.result?.providerName == this.name) {
let { selType } = details;
info(`onEngagement called, selType=` + selType);
info(`onLegacyEngagement called, selType=` + selType);
if (!this.commandCount.hasOwnProperty(selType)) {
this.commandCount[selType] = 0;

View File

@@ -511,7 +511,7 @@ add_task(async function shouldNavigate() {
await UrlbarTestUtils.promisePopupClose(window, () =>
EventUtils.synthesizeKey("KEY_Enter")
);
// Verify that onEngagement was still called.
// Verify that onLegacyEngagement was still called.
let [result, pickedElement] = await pickPromise;
Assert.equal(result, row.result, "Picked result");
Assert.equal(pickedElement, element, "Picked element");
@@ -904,7 +904,7 @@ class TestProvider extends UrlbarTestUtils.TestProvider {
};
}
onEngagement(state, queryContext, details, _controller) {
onLegacyEngagement(state, queryContext, details, _controller) {
if (this._pickPromiseResolve) {
let { result, element } = details;
this._pickPromiseResolve([result, element]);

View File

@@ -1,7 +1,7 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Tests the UrlbarProvider.onEngagement() method.
// Tests the UrlbarProvider.onLegacyEngagement() method.
"use strict";
@@ -168,7 +168,7 @@ async function doTest({
}
/**
* Test provider that resolves promises when onEngagement is called.
* Test provider that resolves promises when onLegacyEngagement is called.
*/
class TestProvider extends UrlbarTestUtils.TestProvider {
_resolves = [];
@@ -186,7 +186,7 @@ class TestProvider extends UrlbarTestUtils.TestProvider {
});
}
onEngagement(...args) {
onLegacyEngagement(...args) {
let resolve = this._resolves.shift();
if (resolve) {
resolve(args);

View File

@@ -201,10 +201,10 @@ add_task(async function firefoxSuggest() {
],
});
// Implement the provider's `onEngagement()` so it removes the result.
let onEngagementCallCount = 0;
provider.onEngagement = (state, queryContext, details, controller) => {
onEngagementCallCount++;
// Implement the provider's `onLegacyEngagement()` so it removes the result.
let onLegacyEngagementCallCount = 0;
provider.onLegacyEngagement = (state, queryContext, details, controller) => {
onLegacyEngagementCallCount++;
controller.removeResult(details.result);
};
@@ -245,9 +245,9 @@ add_task(async function firefoxSuggest() {
});
Assert.greater(
onEngagementCallCount,
onLegacyEngagementCallCount,
0,
"onEngagement() should have been called"
"onLegacyEngagement() should have been called"
);
Assert.equal(
UrlbarTestUtils.getResultCount(window),

View File

@@ -344,8 +344,8 @@ async function impressions_test(isOnboarding) {
5
);
// See javadoc for UrlbarProviderTabToSearch.onEngagement for discussion
// about retained results.
// See javadoc for UrlbarProviderTabToSearch.onLegacyEngagement for
// discussion about retained results.
info("Reopen the result set with retained results. Record impression.");
await UrlbarTestUtils.promisePopupOpen(window, () => {
EventUtils.synthesizeMouseAtCenter(gURLBar.inputField, {});

View File

@@ -63,7 +63,7 @@ add_task(async function selected_result_tip() {
),
],
priority: 1,
onEngagement: () => {
onLegacyEngagement: () => {
deferred.resolve();
},
});

View File

@@ -11,7 +11,7 @@ add_setup(async function () {
await initExposureTest();
});
add_task(async function exposureSponsoredOnEngagement() {
add_task(async function exposureSponsoredOnLegacyEngagement() {
await doExposureTest({
prefs: [
["browser.urlbar.exposureResults", suggestResultType("adm_sponsored")],

View File

@@ -26,8 +26,8 @@ add_task(async function () {
),
],
priority: 999,
onEngagement: () => {
info("Blur the address bar during the onEngagement notification");
onLegacyEngagement: () => {
info("Blur the address bar during the onLegacyEngagement notification");
gURLBar.blur();
// Run at the next tick to be sure spurious events would have happened.
TestUtils.waitForTick().then(() => {
@@ -37,7 +37,7 @@ add_task(async function () {
});
UrlbarProvidersManager.registerProvider(provider);
// This should cover at least engagement and abandonment.
let engagementSpy = sinon.spy(provider, "onEngagement");
let engagementSpy = sinon.spy(provider, "onLegacyEngagement");
let beforeRecordCall = false,
recordReentered = false;
@@ -68,7 +68,7 @@ add_task(async function () {
Assert.equal(
engagementSpy.callCount,
1,
"`onEngagement` was invoked twice"
"`onLegacyEngagement` was invoked twice"
);
Assert.equal(
engagementSpy.args[0][0],

View File

@@ -374,8 +374,11 @@ async function doEngagementWithoutAddingResultToView(
let getPriorityStub = sandbox.stub(UrlbarProviderQuickSuggest, "getPriority");
getPriorityStub.returns(Infinity);
// Spy on `UrlbarProviderQuickSuggest.onEngagement()`.
let onEngagementSpy = sandbox.spy(UrlbarProviderQuickSuggest, "onEngagement");
// Spy on `UrlbarProviderQuickSuggest.onLegacyEngagement()`.
let onLegacyEngagementSpy = sandbox.spy(
UrlbarProviderQuickSuggest,
"onLegacyEngagement"
);
let sandboxCleanup = () => {
getPriorityStub?.restore();
@@ -452,7 +455,7 @@ async function doEngagementWithoutAddingResultToView(
});
await loadPromise;
let engagementCalls = onEngagementSpy.getCalls().filter(call => {
let engagementCalls = onLegacyEngagementSpy.getCalls().filter(call => {
let state = call.args[0];
return state == "engagement";
});

View File

@@ -3884,7 +3884,7 @@ async function checkSearch({ name, searchString, expectedResults }) {
removeResult() {},
},
});
UrlbarProviderQuickSuggest.onEngagement(
UrlbarProviderQuickSuggest.onLegacyEngagement(
"engagement",
context,
{

View File

@@ -149,7 +149,7 @@ add_task(async function canceledQueries() {
});
function endEngagement({ controller, context = null, state = "engagement" }) {
UrlbarProviderQuickSuggest.onEngagement(
UrlbarProviderQuickSuggest.onLegacyEngagement(
state,
context ||
createContext("endEngagement", {

View File

@@ -723,7 +723,7 @@ add_tasks_with_rust(async function block() {
let result = context.results[0];
let provider = UrlbarProvidersManager.getProvider(result.providerName);
Assert.ok(provider, "Sanity check: Result provider found");
provider.onEngagement(
provider.onLegacyEngagement(
"engagement",
context,
{