chrome://global/content/nsUserSettings.js @mozilla.org/preferences-service;1(nsIPrefService)のラッパーなんだけど。最近、調べ始めたばかりだから間違ってるかもしれないけど、Mozillaのソースコードには、この手のラッパーが散在してて気持ちがわるい。コンポーネント名を定数で保持していたり、コンポーネントそのものを定数で保持していたり。インスタンスがムダになるのを避けるため、関数でラップしてるものも多い。とにかく、そこここにラッパーと、違うレベルの抽象化の嵐で、コードにポリシーが感じられない。なんじゃらげ。 まず、なんでコンポーネントを受け取ってすぐに全てのインターフェースが使えないのかがわからない。動的言語なのに。いちいちQueryInterfaceで、実質キャストを行わないといけない。この理由がわか