В расширении Google Chrome я хочу обработать пользовательскую строку таким же или аналогичным образом, как работает омнибокс.
Я думаю, что это проще всего продемонстрировать на нескольких примерах:
http://example.org => We should open the website
example.org => We should also open the website
example.co.uk/test => We should also open the website
example => We should open the default search engine for that term
wp Test => Given that 'wp' is a shortcut for Wikipedia, we should
open the wiki page for 'Test'
По сути, я хочу достичь этого, чтобы никогда больше не использовать омнибокс и вместо этого использовать вдохновленный VIMНавигация только с клавиатуры, предоставляемая vimium с дополнительным преимуществом, позволяющим мне переходить к пользовательским страницам.
Теперь на самом деле есть два вопроса:
В какой степени API-интерфейс Chrome или неприятные обходные пути позволяют мне избежать и воспроизвести логику, необходимую для анализа входных данных? Могу ли я воспользоваться, например, существующим списком доменов верхнего уровня илидоступные схемы URL?Есть ли способ позволить Chrome делать всю работу?В конце концов, этот материал должен быть уже где-то внутри Chrome, поскольку омнибокс использует тот же алгоритм.
Если мне не повезло, и я должен сам реализовать логику, как я могу получить необходимую информацию, например, настроенную поисковую систему по умолчанию или доступные ярлыки и связанные с ними строки формата URL-адреса?
Чтобы уточнить: я не заинтересованы в реализации самого алгоритма синтаксического анализа.Если необходимая информация доступна, реализация алгоритма не должна быть слишком сложной, в конце концов.