Динамический способ отсоединения динамически связанного XBL

Я применяю связывание, как это в перезапускаемом дополнении:

var css = '.findbar-container { -moz-binding:url("' + self.path.chrome + 'findbar.xml#matchword") }';
var cssEnc = encodeURIComponent(css);
var newURIParam = {
    aURL: 'data:text/css,' + cssEnc,
    aOriginCharset: null,
    aBaseURI: null
}
cssUri = Services.io.newURI(newURIParam.aURL, newURIParam.aOriginCharset, newURIParam.aBaseURI);
myServices.sss.loadAndRegisterSheet(cssUri, myServices.sss.USER_SHEET);

findbar.xml Содержание:

<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <binding id="matchword">
        <content>
            <children/>
            <xul:toolbarbutton anonid="matchwordbtn" accesskey="w" class="tabbable" label="Whole Word Only" tooltiptext="Match only whole words" oncommand="console.log('hi')" type="checkbox"/>
        </content>
    </binding>
</bindings>

Это просто добавляет кнопку кFindBar с пометкой "только целое слово". Но теперь, чтобы удалить его, я просто отменяю регистрацию таблицы стилейmyServices.sss.unregisterSheet(cssUri, myServices.sss.USER_SHEET);Однако это не освобождает от обязательств.

ответ на ask.mozilla.org сказал мне, что это ожидаемое поведение, но не предложил никакого решения.

Я подумал, может, мне стоит динамически добавить привязку, а не через CSS, я не проверял это, но это не соответствует трем причинам для обновлений XBL:

Связанный элемент соответствует правилу стиля, которое определяет другую привязкуЭлемент удален из связанного документаЭлемент уничтожен (например, при закрытии документа)

Ответ сказал мне, что это ожидаемое поведение.

Ответы на вопрос(1)

Ваш ответ на вопрос