アノテーターの設計概要

アノテーターはコンテンツスクリプトを使用してユーザーインターフェイスを構築し、ユーザー入力を取得し、ユーザーが読み込んだページの DOM を調べます。

一方、main モジュールにはアプリケーションロジックが格納され、異なる SDK オブジェクト間でのやりとりを調整します。

main モジュールと多様なコンテンツスクリプトの間の基本的なやりとりは、以下の図のように表すことができます。

Annotator Design

ユーザーインターフェイス

アノテーターの主要なユーザーインターフェイスは、ウィジェットと 3 つのパネルで構成されます。

  • ウィジェットは、アノテーターのオン / オフの切り替えや、保存されているすべての注釈のリストの表示に使用します。
  • annotation-editor パネルでは、ユーザーが新しい注釈を入力することができます。* annotation-list パネルは、保存されているすべての注釈のリストを表示します。
  • annotation パネルは、個別の注釈のみを表示します。

またここでは、アドオンのストレージクオータが一杯になったときに、notifications モジュールを使用してユーザーに通知します。

DOM の操作

ユーザーが開いたページの DOM とのやりとりには、次の 2 つの page-mod を使用します。

  • セレクタ は、ユーザーが注釈を付ける要素を選択できるようにする page-mod です。注釈可能なページ要素を識別し、ユーザーがそれらにマウスを合わせたときにハイライトし、ハイライトされた要素をユーザーがクリックするとそれをメインのアドオンコードに通知します。

  • マッチャー は、注釈が付けられた要素を検索する page-mod です。注釈のリストを初期化し、Web ページでそれらの注釈が関連付けられている要素を検索します。また検出された注釈付きの要素をハイライトします。ユーザーが注釈付きの要素にマウスを合わせると、マッチャーはそれをアドオンのメインコードに通知し、メインコードが annotation パネルを表示します。

データの操作

注釈の保存には、simple-storage モジュールを使用します。

潜在的に機密性の高い情報を記録するので、ユーザーによるプライベートブラウジングモードでの注釈作成を禁止します。この処理には、private-browsing モジュールを使用します。

開始のための手順

まず「annotator」というディレクトリを作成し、そのディレクトリに移動して cfx init と入力します。

次のチュートリアルでは、ウィジェットを実装します。