Сначала я поискал в разделе "Управление дополнениями" расширение по ключевым словам "speed dial", но все найденные расширения при попытке установки просили дать им "Доступ к вашим данным для всех веб-сайтов", я подумал, что это не безопасно. Поэтому стал изучать вопрос, можно ли изменить новую вкладку на указанный мной адрес страницы, но оказалось нет, нельзя. Можно конечно использовать стандартную страницу, и там есть "Топ сайтов", но мне не понятно, как пользоваться этими функциями, обычные визуальные закладки намного удобнее. Поэтому я решил создать новое расширение.

В яндексе легко найти по словам "firefox extension hello world" документацию, описывающую, как создать новое расширение для браузера firefox, в основном документация на английском, но составлена она понятно. Оказалось, что расширения - это архивы в формате zip. Чтобы набраться опыта, я скачал расширение "methodgrab/firefox-custom-new-tab-page", переименовал расширение xpi  в zip,  и распаковал. Затем я пару дней экспериментировал, и у меня получилось две версии приложения:

первая - новая вкладка меняется на сайт визуальных закладок путём изменения адреса страницы,

вторая - новая вкладка загружает сайт визуальных закладок внутрь ифрейма.

По правилам форума я не могу назвать адрес сайта, но сложность в том, что сессия пользователя живёт на этом сайте не долго, пару минут, так что мне пришлось добавлять в расширение jquery и автоматически осуществлять вход на сайт. Но во второй версии расширения автовход на сайт срабатывает через раз. Видимо в первом случае использование метода content_scripts и matches всегда вызывает функцию проверки входа, а во втором случае я не могу получить доступ к содержимому ифрейма, а могу только выполнить новый ajax get запрос.

Как выяснилось установку расширения можно выполнить лишь получив специальное разрешение - подпись мозилла, но чтобы не регистрироваться и не ждать неизвестно чего, я просто указал в about:config xpinstall.signatures.required = false. Всем желающим могу выслать мои расширения на электронную почту.

Выяснилось, что для того чтобы скрипты выполнялись не только, когда адресная строка браузера совпадает с маской, но и когда нужный адрес грузится в iframe, нужно в "content_scripts" добавить параметр "all_frames": true

Как оказалось, регистрация на сайте firefox довольно простая, мне удалось загрузить дополнение и в течение 24 часов оно уже было опубликовано на сайте. Вы можете установить дополнение, набрав в поиске "Новая вкладка null-page", выбрав дополнение и нажав "Добавить в Firefox".

1. Почему на странице в АМО всё на китайском? Вы китаец?
2. Зачем внутре у null_pagecom-0.6-fx.xpi лежит ещё и null_page3.xpi, с манифестом и иконками?

username1 пишет

но все найденные расширения при попытке установки просили дать им "Доступ к вашим данным для всех веб-сайтов", я подумал, что это не безопасно.

3. Для чего вся затея, если это требуют любые дополнения. И ваше, разумеется, не исключение.

скрытый текст
lrpaq5notcs6tbv0rrtsqsxzfja.jpeg

Coroner пишет

Почему на странице в АМО всё на китайском? Вы китаец?

на странице расширения "Новая вкладка null-page" название и описание написаны на русском языке

Внутренним поиском АМО в первый раз найти не смог.
Поиск гугля же выдавал https://addons.mozilla.org/zh-CN/firefox/addon/новая-вкладка-null-page-com

16-12-2018 21:17:21
Сейчас нашёл уже русскую.

Coroner пишет

Зачем внутре у null_pagecom-0.6-fx.xpi лежит ещё и null_page3.xpi?

удалил

17-12-2018 09:49:21

Coroner пишет

Для чего вся затея

написано в первом сообщении темы

username1 пишет

написано в первом сообщении темы

Там написано: «все найденные расширения при попытке установки просили дать им "Доступ к вашим данным для всех веб-сайтов"»
Ваше дополнение также просит  доступа «к вашим данным».

Перефразирую вопрос «Для чего вся затея» на такой:

В чём разница между найденными вами дополнениями и созданным вами, если ваше точно также просит доступ к данным пользователя?

в том, что доступ не "для всех сайтов", а только на null-page

username1 пишет

а только на null-page

...которая сама по себе бесполезна без добавления функционала, который потребует тот самый «доступ к вашим данным для всех веб-сайтов»...

Понятно, спасибо за объяснение.

которая сама по себе бесполезна без добавления функционала, который потребует тот самый «доступ к вашим данным для всех веб-сайтов»

какого функционала?