タグ

ブックマーク / www.xuldev.org (2)

  • SCRAPBLOG : XPCOM サービスへの頻繁なアクセスを効率化するテクニック

    拡張機能や XUL アプリにて、 JavaScript から特定の XPCOM サービスを頻繁に使用するケースがよくあります。そのような場合に処理やソースコードを効率化するためのテクニックをいくつか紹介します。ここでは、例として nsIObserverService を頻繁に利用するケースを想定します。なお、Cc は Components.classes, Ci は Components.interfaces への参照です。 方式1: 毎回 XPCOM サービスを呼び出す 特に工夫をしない場合、以下のように XPCOM サービスを利用するたびに毎回そのスコープ内で呼び出し手続きを行うことになります。 var MyExtension = { init: function() { var observerSvc = Cc["@mozilla.org/observer-service;1"].

  • SCRAPBLOG : Firefox を再起動する

    Firefox 3 以前 Firefox を再起動するとき、 Firefox 3 までは以下のようなコードを書く必要があった。 var appStartup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup); appStartup.quit(appStartup.eRestart | appStartup.eAttemptQuit); ただし、上記コードでは Firefox 終了直前に「開いているタブを保存して次回起動時に復元しますか?」の確認ダイアログを表示する設定になっていた場合などに、ダイアログを表示せずに強制的に終了してしまう欠点がある。そのような場合でもちゃんとダイアログを表示させるようにするためには、 chrome://mozapps/content/extensions/extens

  • 1