Есть расширение, которое использует общие css на случай, если пользователи выберут себе какую-нибудь нестандартную тему (скин).
Однако, если пользователь не менял дефолтный скин, то расширение должно подтягивать свои css, а не "по умолчанию".
Есть возможность как-нибудь в расширении узнать, какой скин сейчас использует пользователь?

П.С. Искал по слову скин - ничего похожего не нашел.

SnipeSP, вам чего-то такого хватит? —

Выделить код

Код:

if (gPrefService.getCharPref('general.skins.selectedSkin') == 'classic/1.0') 
{}

Спасибо, то что надо.

21-06-2010 12:33:25
А есть где-нибудь по этому всему делу упорядоченная инфа?
Я сейчас пользуюсь https://developer.mozilla.org/ и, например, по запросу "gPrefService" нашлась только одна заметка.

SnipeSP пишет

А есть где-нибудь по этому всему делу упорядоченная инфа?

"gPrefService" — это используемое в Firefox (про область видимости точно не скажу) сокращение для примерно следующего:

Выделить код

Код:

Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).QueryInterface(Components.interfaces.nsIPrefBranch2)

Под «всем этим делом» вы имеете в виду это?

Все, что не XUL и не JS. Как вернее назвать? :/

XPCOM, наверное. Я обычно пользуюсь гуглом, адресная строка при набитии в ней "nsI" вспоминает вот какие сайты:
http://mdn.beonex.com/
http://doxygen.db48x.net/
http://www.oxymoronical.com/

Еще раз спасибо.

Ну вот. :(
Все сделал, неделю поработало, Мозилла сделала другие скины. Теперь фоновая картинка меняется, а PrefService.getCharPref('general.skins.selectedSkin') теперь всегда равно 'classic/1.0'.
Можно как-то теперь узнать, поменялся фон или нет?

Вы про персонасы, наверное? Посмотрите в about:config параметры, содержащие "lightweightThemes" в названии.

Вот ещё по теме.

Вроде получилось, вроде работает. Одна беда, у меня аддон располагается над статусбаром, а статусбару в фон подставляется картинка из скина.
Картинку я саму выцепил и поставил в фоном в аддон, однако её еще надо сместить.
Можно как-то узнать высоту статусбара?

И еще проблема. В конфиге написаны все установленные темы, а которая в данный момент активна - нет.

SnipeSP пишет

Вроде получилось, вроде работает. Одна беда, у меня аддон располагается над статусбаром, а статусбару в фон подставляется картинка из скина.
Картинку я саму выцепил и поставил в фоном в аддон, однако её еще надо сместить.

Не очень понимаю, что вы хотите. Но уже есть подозрения, что это не нужно или может быть сделано другими способами :).

SnipeSP пишет

Можно как-то узнать высоту статусбара?

Выделить код

Код:

with (document) {
var myHeight = defaultView.getComputedStyle(getElementById('status-bar'), null).getPropertyValue('height');
}
SnipeSP пишет

И еще проблема. В конфиге написаны все установленные темы, а которая в данный момент активна - нет.

По-видимому, та, которая указана первой, является активной. Но это только если lightweightThemes.isThemeSelected :).

luitzen пишет

Не очень понимаю, что вы хотите. Но уже есть подозрения, что это не нужно или может быть сделано другими способами

Когда ставится скин у статусбара меняется фон на картинку из скина.
Т.к. аддон располагается сразу над статусбаром, то эта фоновая картинка должна переходить и на него.
Как еще это можно реализовать?

SnipeSP пишет

Т.к. аддон располагается сразу над статусбаром, то эта фоновая картинка должна переходить и на него.

Гм, сложно это и вряд ли нужно, наверное.

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

luitzen пишет
SnipeSP пишет

Т.к. аддон располагается сразу над статусбаром, то эта фоновая картинка должна переходить и на него.

Гм, сложно это и вряд ли нужно, наверное.

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

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

Спасибо за оперативную помощь. :beer: