Skip to content

Commit 86dbbeb

Browse files
committed
fix: key search suggestion callbacks by alias instead of URL
Multiple search engines sharing the same suggestionURL would overwrite each other's callbacks. Key by alias, which is guaranteed unique.
1 parent 0f8e3f0 commit 86dbbeb

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

src/content_scripts/front.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ function createFront(insert, normal, hints, visual, browser) {
7979
var _listSuggestions = {};
8080
self.addSearchAlias = function (alias, prompt, url, suggestionURL, listSuggestion, options) {
8181
if (suggestionURL && listSuggestion) {
82-
_listSuggestions[suggestionURL] = listSuggestion;
82+
_listSuggestions[alias] = listSuggestion;
8383
}
8484
applyUICommand({
8585
action: 'addSearchAlias',
@@ -137,8 +137,8 @@ function createFront(insert, normal, hints, visual, browser) {
137137

138138
_actions["getSearchSuggestions"] = function (message) {
139139
var ret = null;
140-
if (_listSuggestions.hasOwnProperty(message.url)) {
141-
const listSuggestion = _listSuggestions[message.url];
140+
if (_listSuggestions.hasOwnProperty(message.alias)) {
141+
const listSuggestion = _listSuggestions[message.alias];
142142
if (typeof listSuggestion === "function") {
143143
ret = listSuggestion(message.response, {
144144
url: message.requestUrl,
@@ -151,7 +151,7 @@ function createFront(insert, normal, hints, visual, browser) {
151151
resolve(res);
152152
};
153153

154-
dispatchSKEvent('user', ["getSearchSuggestions", message.url, message.response, {
154+
dispatchSKEvent('user', ["getSearchSuggestions", message.alias, message.response, {
155155
url: message.requestUrl,
156156
query: message.query,
157157
}, callbackId]);

src/content_scripts/ui/omnibar.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1231,6 +1231,7 @@ function OpenVIMarks(omnibar) {
12311231

12321232
function SearchEngine(omnibar, front) {
12331233
var self = {};
1234+
self.alias = undefined;
12341235
self.aliases = {};
12351236

12361237
var _pendingRequest = undefined; // timeout ID
@@ -1316,7 +1317,7 @@ function SearchEngine(omnibar, front) {
13161317
}, function (resp) {
13171318
front.contentCommand({
13181319
action: 'getSearchSuggestions',
1319-
url: self.suggestionURL,
1320+
alias: self.alias,
13201321
query: omnibar.input.value,
13211322
requestUrl,
13221323
response: resp
@@ -1333,6 +1334,7 @@ function SearchEngine(omnibar, front) {
13331334

13341335
front._actions['addSearchAlias'] = function (message) {
13351336
self.aliases[message.alias] = {
1337+
alias: message.alias,
13361338
prompt: '' + message.prompt + separatorHtml,
13371339
url: message.url,
13381340
suggestionURL: message.suggestionURL

src/user_scripts/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ initSKFunctionListener("user", {
8888
userDefinedCommands[name](...args);
8989
}
9090
},
91-
getSearchSuggestions: async (url, response, request, callbackId, origin) => {
92-
if (functionsToListSuggestions.hasOwnProperty(url)) {
91+
getSearchSuggestions: async (alias, response, request, callbackId, origin) => {
92+
if (functionsToListSuggestions.hasOwnProperty(alias)) {
9393
try {
94-
const ret = await functionsToListSuggestions[url](response, request);
94+
const ret = await functionsToListSuggestions[alias](response, request);
9595
dispatchSKEvent("front", [callbackId, ret]);
9696
} catch (e) {
9797
console.error("Search suggestion callback error:", e);
@@ -138,7 +138,7 @@ function addSearchAlias(alias, prompt, search_url, search_leader_key, suggestion
138138
if (!/^[\u0000-\u007f]*$/.test(alias)) {
139139
throw `Invalid alias ${alias}, which must be ASCII characters.`;
140140
}
141-
functionsToListSuggestions[suggestion_url] = callback_to_parse_suggestion;
141+
functionsToListSuggestions[alias] = callback_to_parse_suggestion;
142142
dispatchSKEvent('api', ['addSearchAlias', alias, prompt, search_url, search_leader_key, suggestion_url, "user", only_this_site_key, options]);
143143
}
144144

0 commit comments

Comments
 (0)