Jetpackのちょっとしたメモ
つい先日公開されたばかりと思ったらVer0.1.5までどんどん更新されているJetpackですが、「Jetpack Enhancement Proposal」なるものまで提案されているようです。
公式ページ: Labs/Jetpack/JEP - MozillaWiki
これは新しいAPIの候補について、コミュニティの意見などを集約して掲載しています。
現状では制限が多いですが、次期バージョンではもっとFxを制御出来るようにAPIが追加される事を期待します。
Jetpack Featureについていくつかメモ
var cWindow = jetpack.tabs.focused.contentWindow; //○ var cWindow = Jetpack.tabs.focused.contentWindow; //×
Jetpac本体内で使用している名前空間と被っているという警告がでます。
問題なく動きますが。
- Jetpack Featureの更新確認は1時間毎
jetpack-runtime.js内に
FEED_UPDATE_INTERVAL: 60 * 60 * 1000
と書かれています。
拡張は内部ではFeedと呼ばれているようです。
1時間毎にインストール済みのJetpack Featureを確認しています。
更新はどうやって確認しているか見てみました。
165行目付近
_getRemoteFeed: function _getRemoteFeed(feed) { var self = this; return jQuery.ajax( {url: feed.srcUri.spec, timeout: self.FEED_UPDATE_REMOTE_TIMEOUT, dataType: "text", complete: function(xhr, textStatus) { if (feed.uri.spec in self._feedUpdates) delete self._feedUpdates[feed.uri.spec]; }, error: function(xhr, textStatus, errorThrown) { // TODO: Log the error? }, success: function(data) { var currCode = feed.getCode(); if (currCode != data) { feed.setCode(data); feed.broadcastChangeEvent(); } }}); },
1つずつJetpackを取得しているのですが、178行目のsuccess内の処理は、取得してきたJSをSQLite内に保存されている現在のコードと単純に!=で比較して違ったら保存しなおすという処理ですね。
If-Modified-Sinceは使っていないようですね。
JQueryの中で最終更新時間を保存しているので、Jetpack Featureが再読込みされたりすると消えてしまうためかと思います。
JQueryを使わずに、XMLHttpRequestを使って、最終更新時間をコードと一緒に保存する方法もあると思いましたが、Jetpack Featureのサイズから考えるとそこまでする必要は無いのかな。
- Firebug1.4との連携がうまくいかない
改善されるのを待ちます。Updateしなければ問題ないです。