ダメダメなJetpackスクリプト(スライドのアイコンを出しっぱなしにするもの)

Jetpackのスライドバーがちょっと面白いわけだが、毎回矢印を押してアイコンを出した後に、ってのが面倒なので書いてみた。
何がダメって、JetpackAPIをほとんど使ってないところ。
jetpack.statusbar.appendを使うとステータスバーにiframeが入って中身がHTMLなのが気に食わない、かつ、オイラはjQueryが分からない、という理由なわけだが。

let [chromeWin, chromeDoc] = let (doc=jetpack.tabs.focused.raw.ownerDocument.defaultView) [doc.window, doc.document];
let bar = chromeWin.slideBar;
function getSlideState(){
  return !!bar.state.size;
}
function getImageSrc(bool){
  return bool ? bar.slideButtonLeft : bar.slideButtonRight;
}
let ID = "jetpack-slide-feature-ext";
let panel = chromeDoc.getElementById(ID);
if (panel){
  chromeDoc.createElement('statusbarpanel');
  panel.setAttribute('id',ID);
  panel.setAttribute('class','statusbarpanel-menu-iconic');
  panel.setAttribute('image',getImageSrc(getSlideState()));
  panel.addEventListener("click", function(){
    let state = getSlideState();
    state ? bar.slide(0) : bar.slide(32,true);
    this.setAttribute('image', getImageSrc(!state));
  },false);
  chromeDoc.getElementById('status-bar').appendChild(panel);
}

やっぱりこういうコードは書いちゃダメだね。おそらくアンインストールしてもステータスバーのものとかが消えなくて、Fxの再起動をしないといけないと思われる。
Jetpackの良さが完全に失われてしまう悪例だな。

というか、jetpack.statusbar.appendXULもサポートすべき。引数のオプジェクトにxulプロパティがあったら、要素化してstatusbarpanel要素とともに追加するとかの方が既存の拡張開発者にとっては分かりやすい気がする。

HTMLでインターフェースを記述するのは間違ってる。