アドオンのレビュー申請の前というか、アドオン作るときに知っておくこと

とても悲しいことがおきました。
Fixscrollが削除されていました。何かの手続きの不備か、申請中の状態のものはFirefox更新とともに闇に葬られるのかもしれません。
ちょうど新しく対応したものがあったので、FullReview申請とともに再度アップしました。
#ようやくストレス少なく使えるように仕上がってきたので、ある意味気持ちの切り替えになりました。


さて、前回のエントリでレビュー前にやっておくことと書いたことができていませんでしたorz
禁則事項やら、基本の名前空間は事前にぐぐって調べておいたほうが幸せになれると思います。
アドオンバリデータでwarningになったらNGというぐらいの気構えのほうがいいかもしれません。
#このエントリもその一助になればと。


指摘いただいたのは以下です。

1) You are still defining the symbol animationManager in the global namespace.


2) Please remove the evalInSandbox calls from your timer implementation. I realize the intention is to ape the standard functions, but a) it doesn't, and b) such uses of setTimeout are not allowed in AMO add-ons.


1) 使わせてもらっていたpiroさんのライブラリのimportの仕方がまずかったです。

Components.utils.import('resource://snipescroll-modules/animationManager.js');


こうすると、globalネームスペースで宣言されます。(事前に存在チェックをかければ良いかもしれません。)
今回は、globalを使うことを避けてローカルのネームスペースを利用することにしました。

var hoge = {};
Components.utils.import('resource://snipescroll-modules/animationManager.js', hoge);

2)使わせてもらっていたpiroさんのライブラリのバージョンが古いままで更新してなかったのが原因です。
あと、evalInSandboxをライブラリのjsmtimer.jsm内で呼んでいるのもいけないようなので、L131,132の以下の行をコメントアウトしています。


ダウンロードしたもの

else
	evalInSandbox(this.callback);


レビュー申請時

//else
//	evalInSandbox(this.callback);


この処理は、実行部の引数に文字列(関数名)を記載したときにも動くようにしているので、自分が使うときに関数を渡すようにしていれば呼び出されることはありません。