← ドキュメント一覧に戻る

状態遷移図

1. 拡張機能の全体状態

stateDiagram-v2
    [*] --> 未同期: 初回インストール
    未同期 --> 同期済み: ミュート設定ページを開く\nまたは手動追加

    state 同期済み {
        [*] --> 通常閲覧
        通常閲覧 --> モーダル表示: ミュートユーザーのページを開く
        モーダル表示 --> 通常閲覧: 「このまま閲覧する」\nまたはEsc
        モーダル表示 --> ページ離脱: 「戻る」\n「トップページへ」
        ページ離脱 --> 通常閲覧: 別のページを開く
    }

    同期済み --> 同期済み: 再同期\nリスト更新
      

2. モーダルの状態遷移

stateDiagram-v2
    [*] --> 非表示

    非表示 --> 表示中: ミュートユーザー検出

    state 表示中 {
        [*] --> フォーカス取得
        フォーカス取得 --> ユーザー操作待ち
    }

    表示中 --> 非表示: 「このまま閲覧する」クリック
    表示中 --> 非表示: Escキー
    表示中 --> リダイレクト: 「戻る」クリック
    表示中 --> リダイレクト: 「トップページへ」クリック
    表示中 --> 非表示: SPA遷移検知(別ページ)

    リダイレクト --> [*]
      

3. スクレイピングのリトライ状態

stateDiagram-v2
    [*] --> 待機中: ページ読み込み完了

    待機中 --> DOM探索中: 1秒後

    DOM探索中 --> 成功: ユーザーリンク発見
    DOM探索中 --> リトライ待ち: リンク未発見 & 試行回数 < 20
    DOM探索中 --> 失敗: リンク未発見 & 試行回数 >= 20

    リトライ待ち --> DOM探索中: 500ms後

    成功 --> 保存完了: storage.localに保存
    保存完了 --> [*]: 通知表示

    失敗 --> [*]: 失敗通知表示