Xpoint
   [напомнить пароль]

tabbrowser.showMessage - не нашел документацию о нем

2006-08-31 20:00:56 [обр] KML [досье]
Меня интересует можно ли перехватить появление этого сообщения на лету и заблокировать его отображение из своего расширения.
спустя 23 часа [обр] Владимир Палант [досье]

Это же не сообщение, а метод. Если нужно — просто заменяйте его из своего расширения.

var tabbrowser = getBrowser();
var oldShowMessage = tabbrowser.showMessage;
tabbrowser.showMessage = function(aBrowser, aIconURL, aMessage, aButtonLabel, aDocShell, aSource, aPopup, aTopBottom, aShowCloseButton, aButtonAccesskey) {
  // Делаем что-то
  ...
  // А теперь вызываем старый метод -- если нужно
  return oldShowMessage.apply(this, arguments);
}

Документацию я, кстати, и сам совсем недавно искал. Нет такой :-(

спустя 5 дней [обр] KML [досье]
Обычно при нажатии на кнопку что-то происходит, но я так и не нашел эту информацию у какого-нибудь из этих параметров. Например, если не найден плагин, то при нажатии кнопки браузер будет пытаться найти его. Вот хотелось бы достучаться до этого запроса. Это возможно?
спустя 3 часа 44 минуты [обр] Владимир Палант [досье]

Раскопал все-таки... При щелчке на этой кнопке уведомляются observer'ы, таким образом его и можно отловить. Параметры:

  • subject: значение параметра aDocShell
  • topic: значение параметра aSource
  • someData: пустая строка

Откуда: реализация xul:browsermessage в browser.xml

спустя 54 минуты [обр] KML [досье]

Это немного не то... Мне нужно до нажатия на кнопку скрыть showMessage. Вот что приходит в этот метод:

aBrowser = [object XULElement]
aIconURL = chrome://mozapps/skin/xpinstall/xpinstallItemGeneric.png
aMessage = Additional plugins are required to display all the media on this page.
aButtonLabel = Install Missing Plugins...
aDocShell =
aSource = missing-plugin
aPopup = null
aTopBottom = top
aShowCloseButton = true
aButtonAccesskey = I

Может aBrowser содержит какие-то инструкции для кнопки, но там пропертей до черта. Наверное прийдётся самому анализировать содерживао страницы и уже потом решать отображать showMessage или нет.

спустя 29 минут [обр] Владимир Палант [досье]
Так я же вроде уже сказал — заменяйте этот метод у tabbrowser окна и просто не показывайте сообщение тогда, когда вам оно не нужно. Или я что-то не понимаю?
спустя 8 минут [обр] KML [досье]
Всё правильно, просто я надеялся обойтись без дополнительного парсинга HTML, ведь браузер по сути дела уже провёл эту работу. И я надеялся ,что в этот метод приходит более детальная информация.
спустя 32 минуты [обр] Владимир Палант [досье]
Объясните — какая информация вам нужна?
спустя 8 минут [обр] KML [досье]
Мне нужна информация, которая будет передана в "Plugin Finder Service ". В частности - application-type ненайденного плагина.
спустя 50 минут [обр] Владимир Палант [досье]
Браузер хранит ее в tabbrowser.mCurrentTab.missingPlugins. Это хеш-таблица, в которой ключем служит mime-type, а значением — объект {mimetype: tagMimetype, pluginsPage: pluginsPage} (см. getPluginInfo() в browser.js). Вот только можно ли на это завязываться...
спустя 17 часов [обр] KML [досье]
Владимир Палант[досье], то что нужно, спасибо!
Powered by POEM™ Engine Copyright © 2002-2005