Vorschläge in der Adressleiste
Mit der omnibox API können Erweiterungen die Vorschläge anpassen, die im Dropdown-Menü der Adressleiste angezeigt werden, wenn Benutzer ein Schlüsselwort eingeben.

So kann Ihre Erweiterung beispielsweise eine Bibliothek kostenloser E-Books oder, wie im obigen Beispiel, eine Sammlung von Codebeispielen durchsuchen.
Omnibox-Anpassung festlegen
Um festzulegen, dass Ihre Erweiterung die Vorschläge in der Adressleiste anpasst, fügen Sie den Schlüssel omnibox und die Definition des auslösenden Schlüsselworts in die Datei manifest.json ein:
"omnibox": { "keyword" : "cs" }
In der Hintergrund-JavaScript-Datei der Erweiterung können Sie mit omnibox.setDefaultSuggestion() optional den ersten Vorschlag festlegen, der im Dropdown-Menü der Adressleiste angezeigt wird. Damit können Sie einen Hinweis zur Verwendung der Funktion geben:
browser.omnibox.setDefaultSuggestion({
description: `Search the Firefox codebase
(e.g. "hello world" | "path:omnibox.js onInputChanged")`,
});
Anschließend können Sie Code hinzufügen, der die angepassten Inhalte bereitstellt. Dazu überwachen Sie omnibox.onInputStarted, das ausgelöst wird, wenn Benutzer das Schlüsselwort gefolgt von einem Leerzeichen eingegeben haben, und omnibox.onInputChanged, das bei jeder Änderung der Eingabe in der Adressleiste ausgelöst wird. Danach können Sie die Vorschläge zusammenstellen – in diesem Fall eine Suche in mozilla-central mit dem von den Benutzern eingegebenen Begriff:
browser.omnibox.onInputChanged.addListener((text, addSuggestions) => {
let headers = new Headers({ Accept: "application/json" });
let init = { method: "GET", headers };
let url = buildSearchURL(text);
let request = new Request(url, init);
fetch(request).then(createSuggestionsFromResponse).then(addSuggestions);
});
Wenn die Erweiterung mit omnibox.setDefaultSuggestion() einen Standardvorschlag festgelegt hat, erscheint dieser im Dropdown-Menü an erster Stelle.
Die Erweiterung kann mit omnibox.onInputEntered darauf reagieren, dass Benutzer auf einen Vorschlag klicken. Wird der Standardvorschlag ausgewählt, wird der benutzerdefinierte Suchbegriff zurückgegeben; andernfalls wird die Zeichenfolge des Vorschlags zurückgegeben. Außerdem werden Informationen zu den Browsereinstellungen für den Umgang mit neuen Links übergeben. Im folgenden Code wird mit dem benutzerdefinierten Suchbegriff eine Suche erstellt; andernfalls wird die vorgeschlagene URL geöffnet:
browser.omnibox.onInputEntered.addListener((text, disposition) => {
let url = text;
if (!text.startsWith(SOURCE_URL)) {
// Update the URL if the user clicks on the default suggestion.
url = `${SEARCH_URL}?q=${text}`;
}
switch (disposition) {
case "currentTab":
browser.tabs.update({ url });
break;
case "newForegroundTab":
browser.tabs.create({ url });
break;
case "newBackgroundTab":
browser.tabs.create({ url, active: false });
break;
}
});
Beispiele
Das Repository webextensions-examples auf GitHub enthält das Beispiel firefox-code-search, das die Suchleiste anpasst.