in src/js/background/context-menu.js [310:372]
create: async (data, options = null, aliases) => {
// Loop Through Existing Aliases
if (options?.createExistingAliases) {
// https://github.com/mozilla/fx-private-relay-add-on/issues/239
// There is a bug in the order in which the aliases are stored when synced with the server versus local storage.
// We need to determine which method is used to determine if need to flip that order.
const shouldAliasOrderBeReversed = await getCachedServerStoragePref();
const filteredAliases = options.exisitingSite
? relayContextMenus.utils.getSiteSpecificAliases(
aliases,
options.currentWebsite,
{ shouldAliasOrderBeReversed }
)
: relayContextMenus.utils.getMostRecentAliases(
aliases,
options.currentWebsite,
{ shouldAliasOrderBeReversed }
);
// Only create the parent menu if we will create sub-items
if (filteredAliases.length > 0) {
await browser.contextMenus.create(
options.parentMenu,
relayContextMenus.utils.onCreatedCallback
);
} else {
// Exit early. Nothing else to create.
return Promise.resolve(1);
}
const STRING_LENGTH = 30;
for (const alias of filteredAliases) {
let title = alias.description
? alias.description
: alias.full_address;
if (title.length > STRING_LENGTH) {
title = title.substr(0, STRING_LENGTH - 1) + "…";
}
const id = reuseAliasMenuIdPrefix + alias.id;
data.title = title;
data.id = id;
data.parentId = options.parentMenu.id;
await browser.contextMenus.create(
data,
relayContextMenus.utils.onCreatedCallback
);
}
return Promise.resolve(1);
}
await browser.contextMenus.create(
data,
relayContextMenus.utils.onCreatedCallback
);
return Promise.resolve(1);
},