LINUX.ORG.RU

Firefox: прямая ссылка на кешированную фавиконку.

 ,


0

2

Здравствуйте.

Насколько я понимаю, при посещении страницы какого-либо сайта firefox находит фавиконку этого сайта и кеширует в favicons.sqlite. Эту иконку мне в явной форме видно в истории (и закладках, если я эту страницу туда внесу). Мне нужна на неё прямая ссылка - чтоб тупо и цинично вписать её себе в кастомный хоумпейдж, и она там сама собой обновлялась при изменениях.

Полез в браузер со стетоскопом, в коде меню закладок нашёл строчку

<image xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" class="menu-icon" aria-hidden="true" src="page-icon:https://www.linux.org.ru/"/>

Вот этот image, собственно, и есть то, что я хочу.

Вбил в браузер «page-icon:www.linux.org.ru/", и „Gah. Your tab just crashed.“ Это стабильно.

На этом мои невеликие познания в интерфейсе файрфокса кончились. Прошу более подкованных в этой области пользователей помочь мне советом. Спасибо за внимание.

★★★★★

Последнее исправление: piyavking (всего исправлений: 4)
Ответ на: комментарий от dmitry237

Ты описал добытие из лисы интернет-ссылки на картинку. А мне надо добыть из лисы саму картинку. Выше мне привели формулу получения иконок в 64base виде.

Но метод огонь, положу в копилочку, может пригодиться)

piyavking ★★★★★
() автор топика
Ответ на: комментарий от debugger

Вопрос: А если я, воспользовавшись добрым советом, создам «iconz» с 64-иконками и тупо-цинично упакую его в extension.xpi, то яваскрипт в этом extension будет способен этот iconz читать? И как его читать, это же столько понять надо...

Попробую покуролесить сегодня в этом ключе.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 3)
Ответ на: комментарий от superuser

Немножечко, чуть-чуть мне не поможешь? Я допетрил просто свою текущую favicons.sqlite упаковать прямо в дополнение, архиватором. И он доступен теперь для чтения в content.js.

Но я не понимаю чисто синтаксически, как его читать. Сейчас мой кусок из content.js, отвечающий за фавикон, выглядит достаточно простецки, чтоб я его интуитивно понял и подправил (img.src, где я ориг закомментировал):

        img = document.createElement("img");
        img.className = "favicon";
/*        img.src = 'https://s2.googleusercontent.com/s2/favicons?domain_url=' + hostname; */
        img.src = hostname + '/favicon.ico';
Задача в том, чтоб имея на входе переменную hostname, вытащить по ней поиском строку из этой локальной копии favicons.sqlite, регекспами сформировать из этой строк 64 url, и присвоить img.src полученное. Если есть пара заклинаний из яваскрипта - очень поможет, а то всё это совсем ново для меня на данный момент...

piyavking ★★★★★
() автор топика
Ответ на: комментарий от piyavking

А если сделать линк на favicons.sqlite в директорию дополнения, будет доступно для чтения? Или ты планируешь распространять его?

superuser ★★★★☆
()
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от superuser

если сделать линк на favicons.sqlite в директорию дополнения, будет доступно для чтения?

Попробую, но вряд ли. Наверняка давно огорожено.

Погугли как на javascript работать с sqlite3

Да вот уже, собственно, и занимаюсь. Не зная ни того, ни другого)))

piyavking ★★★★★
() автор топика
Ответ на: комментарий от superuser

Локальную копию, впакованную в расширение, получится. Но да, проще в явной форме иконки в расширение впаковать. Так и сделал.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 1)