ExtJS上のFirefoxの2ペインブックマークマネージャー

ハブラジテラムの挨拶。 私の拡張機能について話し、少し助けを求めたいです。

拡張機能はTotal bookmarksと呼ばれます。 そのインターフェイスは、Total Commanderからほぼ完全に借用されています。



画像





なぜそれをする必要があったのですか?



実際、多くの人々は事前に作成されたフォルダーにブックマークを配置し、見つけるのが難しい閉塞に遭遇することはありません。 残念ながら、ある時点で、私は彼らに属していないことに気付きました。 今読んでいる時間がない面白い記事に出会ったら、忘れないようにブックマークをルートに置いて、記事自体とブックマークを忘れます。 そして、ブックマークのリストを約15秒間スクロールすると、このブロックに対処する時だと気付きました。 問題は、標準のFirefoxインターフェースがそのようなタスクに完全に適していないことでした。 たとえば、重要なブックマークをリストの末尾から先頭に移動する場合、15秒以上マウスでドラッグする必要があります。 そして、私がいくつのブックマークを蓄積したかを考えると、プロセス全体がそのペースで数時間かかる可能性があります。 この状況で唯一便利なインターフェースは2パネルのTCインターフェースのように思えましたが、インターネット上でその実現を見つけることができませんでした。 実際、マウスを使ってブックマークをドラッグする愚かな退屈な作業の前にとても怠け者だったので、私は問題を完全に解決するより知的な作業により多くの時間を費やしました。



なぜそんなに奇妙な(そして多くの人がブレーキをかける)ExtJSのような選択なのですか?



事実、標準のXULは高速ですが、非常に貧弱で拡張不可能です。 たとえば、行に複数の行のテキストを含めることができ、これらの行ごとに異なるフォーマットのテーブルが必要でした。 Firefoxのバグトラッカーにはタスクもあります。テーブルの行を複数行にすることですが、長年そこにぶら下がっていて、そのようなサポート自体を追加することは不可能です。 さらに、コンポーネントパレットの豊富さの観点から、他のライブラリがExtJSと比較されることはほとんどありません。 それに、その瞬間、私は別のプロジェクトに関連してそれを習得していました。



もちろん、ExtJSには重大な欠点が1つあります。 そして、開発者自身が苦労しているスローダウンについては話していません。正しく使用すれば、それを最小限に抑えたり隠したりすることさえできます。 私は、Senchaの暗黙のポリシーについて話しています:修正された(それほど重要ではない)バグがプロジェクトに追加されるまで、リリースをリリースしないでください。 バグレポートを積極的に書いているとしても、新しいバージョンのリリースで何かが変わるとは考えないでください。 *参照 暗黙の企業ポリシー:)

ただし、長所は短所を上回ります。



機能について



ほとんどすべての機能がスクリーンショットに表示されます。 この拡張機能は、主にブックマークグループの便利な操作を目的としています。 いくつかの重要なポイントをリストします。



それとは別に、macOSのテストは、ほぼすべての機能の準備が完了した後(より正確には、仮想マシンの下のhackintoshで、ケシがないため)に行われ、ケシで削除するように割り当てられたF9が既に何らかのシステムに占有されていることに気付きましたしたがって、マクロは再度ctrlを押す必要があります。 誰かがF9をインターセプトしない場合、他の軸と同じように機能します。



実装について少し



ご存じのように、ほとんどのJSライブラリはXULで直接使用できません。 jQueryなどにはいくつかの分岐点がありますが、これはすべて安定した結果にはほど遠いものです。 ただし、プラグインライブラリを介してインターフェイスのXUL部分と対話しない拡張機能には解決策があります。 ウィンドウ全体でiframeを作成し、通常のhtmlおよび使い慣れたJSライブラリで作業する必要があります。



アセンブリについては、Mozillaのドキュメントではmakeの使用が推奨されていますが、以前gradleで作業したことがあるため、それを使用しました。 スクリプト内で標準のJavaライブラリを直接接続できるため、どのような場合でもより便利だと思います。 私の場合、別のユーティリティを作成せずにアセンブリを実装できるかどうかはわかりません。理由は、SenchaCMDを簡単に置き換える必要があるためです*参照 Senchaの暗黙のポリシー。



Habrに聞きたかったこと



残念なことに 、2か月間、 addons.mozilla.orgに拡張機能を投稿できませんでした。 すべては、ExtJSの使用により、拡張機能をロードする際の自動テストが失敗したという事実から始まりました。 これは、編集者と話し合った直後に修正されました。 その後、数週間並んで待機しましたが、ソースを添付するのを忘れたため、拡張機能は拒否されました。 その後、スキャンを再開する方法をすぐに理解できなかったため、数週間が経過しました。 私の質問はすぐには答えられず、言語の壁が影響を受けました。 一部の手紙は未回答のままでした。 しかし、それはポイントではなく、編集者が十分な注意を払うべき多くの仕事があることは明らかです。



最後のチェックの後、次の答えが書かれた手紙を受け取りました。

知る
アドオン、Total bookmarks 2.2.201308201235はエディターによってレビューされており、ギャラリーでホストされるための基準を満たしていません。



レビュアー:

クリス・マグリオーネ



コメント:

次の問題のため、バージョンは拒否されました。



1)アドオンは、innerHTMLへの割り当て、document.writeの呼び出し、または同様の手段により、非サニタイズデータを含むHTML文字列からDOMノードを作成します。 非効率的であることに加えて、これは重大なセキュリティリスクです。 詳細については、 developer.mozilla.org / en / XUL_School / DOM_Building_and_HTML_Insertionを参照してください



2)アドオンは「eval」関数またはFunctionコンストラクタを不必要に使用しますが、これは通常受け入れられません。 「eval」を使用する理由は*多くはありません*。また、それを使用する単純な代替方法もあります。 詳細については、こちらをご覧ください: developer.mozilla.org/en/XUL_School/Appendix_C :_Avoid_using_eval_in_Add-ons



次の問題のため、このバージョンは完全なレビューに合格しませんでした。



1)これにより、ブラウザが完全にフリーズします。



それらを修正して、もう一度送信してください。 よろしくお願いします。



このバージョンのアドオンは無効になっています。 編集者のコメントに対処し、新しいバージョンをアップロードすることにより、レビューを再リクエストできます。 レビュープロセスの詳細については、 addons.mozilla.org / developers / docs / policies / reviews#selectionをご覧ください



このレビューについて質問やコメントがある場合は、このメールに返信するか、irc.mozilla.orgの#amo-editorsに参加してください

-Mozillaアドオン

addons.mozilla.org



要するに、ブラウザがエディタにハングアップしました。 問題は、私が多くのマシン、異なるOSでテストしたことであると同時に、すべてが私と友人の両方にとって問題なく機能したことです。 したがって、「すべてが失われ、何も機能しない」などのレポートの場合、どこで問題を探すべきかまったくわかりません。 おそらく、エディターはいくつかのsamopisny拡張機能と競合していました(拡張機能の動作を確認するための部分が14個あります)。



一般的に、誰かが私の拡張機能でブラウザをハングアップして、これについてフィードバックを送ってくれれば非常に感謝します。 そうでなければ、アドオンをMozillaサイトに投稿できません。



リポジトリ

bitbucket.org/cs0ip/total-bookmarks



コメントやPMでフィードバックを書くことができない場合は、cs0ip @ ya.ruに書いてください。



upd:1年も経っていません(もう少し...):

addons.mozilla.org/firefox/addon/total-bookmarks



All Articles