Моё расширения изменяло загруженные из сети странички, добавляя свои элементы, в том числе интерактивные, связанные с AJAX. В Firefox 2 и в ранних бетах Firefox 3 для изображений в таких элементах можно было использовать локальные файлы, загружаемые вместе с расширением. Для этого через скрипты создавался элемент img и определялся его src:

Выделить код

Код:

image.setAttribute(src, "chrome://extension_name/content/image.gif");

или

Выделить код

Код:

image.src="chrome://extension_name/content/image.gif";

Недавно (кажется, начиная с Firefox 3.0pre) такие ссылки перестали работать, вместо изображений пустое место. Проверял и на других расширениях: например, в FEBE (иконки в списке заархивированных расширений), в FlashBlock и NoScript (графические заглушки вместо отключённых элементов).

Имеет ли кто-то сведения - это временная неполадка или сознательное изменение политики, которое закрепится в Firefox 3? Имеет ли кто-то опыт обхода этого ограничения? Можно, конечно, всё делать через src="data:image/gif;base64,...", но уж больно неудобно, особенно когда много изображений.

был такой фикс, пару недель назад видел на mozillazine

А ссылку не вспомните? Или хотя бы о чём там говорилось, в общих чертах?

там была ссылка на баг, но я не могу найти что-то его по ключевым словам.
в общем, теперь доступа к изображениям из chrome у обычнах страниц нету

Промотал там до марта два форума - посвящённый разработке расширений и багам в  Trunk & Branch Builds - и ничего не нашёл, к сожалению.

А как Вы поняли - этот доступ сознательно убрали? То есть, его и не будет в релизе?

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

Похоже, действительно закрыли остатки дыры. По идее, такие попытки должны были вызывать сообщения "Security Error: Content at http://... may not load or link to chrome://..." Странно, что столько расширений пользовались этой дырой в своих целях, даже NoScript. Придётся с base64 мучиться.

Спасибо Вам за помощь.

homo_nudus
Не надо ни с чем мучаться, просто надо добавить в chrome.manifest флаг contentaccessible=yes
Подробнее можно прочесть в этом посте

Добавлено Sun Apr 27 17:52:12 2008 :

Промотал там до марта два форума - посвящённый разработке расширений и багам в  Trunk & Branch Builds - и ничего не нашёл, к сожалению.

Форумы - не самый лучший источник информации об изменениях в Firefox 3. Любое изменение, влияющее на разработчиков расширений, немедленно документируется на developer.mozilla.org.
И это изменение тоже было задокументировано.

Unghost

Огромное спасибо. developer.mozilla.org я просматриваю регулярно, и все новости в третьей версии читал, но этот пункт, наверное, забылся, потому что во время чтения был для меня не актуален. Жаль, что Ваш совет запоздал, я уже версию выпустил, где все изображенния перекодировал в base64. Но на будущее будет легче. Спасибо Вам ещё раз.

Unghost, большое спасибо за информацию! Она мне тоже очень пригодилась. Столкнулся с такой же проблемой в RC1.