webext.hsb.horse

Changelog

Every published Header Relay release, generated from the repository's versioned CHANGELOG.md.

Release-note entries are shown in their original Japanese, which is the source language of the project changelog.

RSS →

Header Relay

Minor changes

  • Profile に固定 Cookie と追跡 Cookie を追加できるようになりました。対象オリジンのレスポンスに含まれるSet-Cookieから登録済み Cookie の値を自動取得し、次回以降の対象リクエストでCookieヘッダーを完全に置き換えます。送信候補が 0 件のリクエストでは Chrome が生成したCookieをそのまま通します。 固定/追跡 Cookie 名の登録、Max-AgeExpiresによる削除判定、複数 Profile の決定的な統合順、同名 Cookie 競合時の DNR Session Ruleset 停止、URL Probe への最終Cookie値表示を含みます。Fixed Header Cookie は自動的に専用の固定 Cookie へ変換され、変換できない設定は移行時の問題として保持されます。監査ログには Cookie 名と処理結果のみを記録し、値と元のSet-Cookieは記録しません。cookies権限は追加していません。
  • 管理画面のプロファイル切替・新規作成とナビゲーションを整理し、ヘッダー設定の統合画面と URL プローブ・監査ログ・JSON 編集の高度な設定タブを追加しました。移行時の問題は必要な場合だけ Cookie 画面に表示します。

Patch changes

  • Cookie 機能: Excluded Path を持つ origin で、除外パスの Chrome 既存 Cookie が意図せず上書きされる問題を修正。この場合はその origin の Cookie 送信を行わず、Runtime Status と URL Probe に警告を表示します。あわせて Popup の選択肢がname=value形式のまま表示されることがある移行時の問題を修正。
  • ルール適用に失敗したときの挙動を改善。不要になったルールが残る場合は自動で削除を再試行し、それでも失敗した場合は「古いルールが送信され続けている可能性」を Runtime Status に表示します。Popup にも同じ警告をインライン表示します(全 8 ロケール対応)。

Minor changes

  • UI の対応言語にスペイン語・フランス語・ドイツ語・簡体字中国語・繁体字中国語を追加

Patch changes

  • Popup の設定ボタンの遷移先を manage.html#/settings から manage.html#/(Profile 概要)に変更。ユーザが Popup から manage を開く目的は主に Profile 操作であり、UI 設定ではないため。

Minor changes

  • 監査ログにリクエスト URL を永続化しないように変更。URL はオリジン一致判定のためメモリ上でのみ処理し、直近ログへの表示用に現在のブラウザセッション中だけ session storage(メモリのみ)へ保持、ブラウザ終了時に破棄する。アップグレード時には IndexedDB の監査ログストアを再作成し、旧バージョンが保存した URL 入りログを完全に削除する。
  • Profile を削除できるようにし、UI にコンパクト表示モードを追加した。
    • 管理画面のプロファイル一覧から各プロファイルを削除できるようにした(プロファイルが 1 つだけのときは削除ボタンを表示しない)。削除すると取得済みの値も破棄し、選択中プロファイルを削除した場合は先頭のプロファイルへ切り替える。
    • 管理画面の Settings セクションに「コンパクト表示」トグルを追加した。設定は uiDensity として保存され、Popup・管理画面の行やコントロールの余白を詰めて表示する。表示のみの設定で、適用されるヘッダーには影響しない。
  • manage.html をブラウザの拡張機能オプションページ (options_ui) として開けるようにした。Profile 管理を既定表示とし、拡張機能全体の設定は同じ画面のサイドバーから開ける。
  • キャプチャしたヘッダー値を管理画面でデフォルトマスク表示に変更し、「表示」「コピー」の明示的な操作を追加。あわせて、Popup からの固定ヘッダー値更新時に監査ログへ新旧の値が記録されていた問題を修正し、ヘッダー値が監査ログへ混入しないことをテストで保証するようにした。
  • 監査ログを障害解析に必要な診断イベントのみに最小化。ユーザー操作履歴にあたる profile_enabled / profile_disabled / fixed_header_value_updated と成功時の session_cleared を記録しないように変更(session_cleared は DNR 同期失敗時のみ warn として記録)。
  • ホスト権限を optional_host_permissions へ移行。インストール時に全サイトへのアクセス権限(<all_urls>)を要求せず、Target Origin の保存・Profile の有効化・「アクセスを許可」ボタンの操作時に、対象ホストへの権限だけを要求するように変更。未許可のオリジンには DNR ルールを生成せず(fail-closed)、権限の付与・取消を検知してルールを自動再同期する。管理画面にはオリジンごとの権限状態(許可済み / 要許可 / 非対応)と許可ボタンを表示し、Popup には要許可オリジンの警告を表示する。どのプロファイルからも使われなくなったホスト権限は確認付きで解除を提案する。
  • 機密ヘッダーに警告と安全な禁止ルールを追加し、取得値のセッション限定保持・削除タイミングを明確化しました。ホスト権限取消時は影響するプロファイルの取得値を自動消去します。

Patch changes

  • localhost の HTTP 通信を追加の権限許可なしで扱えるようにする
  • Compact 表示を管理画面サイドバーの Settings セクションに集約し、Popup と管理画面ヘッダーを簡潔にするとともにトグルを小型化しました。サイドバー下部から Homepage と Buy Me a Coffee も開けます。

Minor changes

  • 複数の Profile を同時に有効化できるようにしました。
    • Profile の「選択(管理画面で編集中)」と「有効化(ブラウザへ適用)」を分離しました。管理画面の Profile 一覧では、行の選択と有効化トグルが別の操作になります。トグルは即時反映されます。
    • 有効な Profile 群をコンパイルし、単一の DNR Session Ruleset として適用します。DNR 生成・URL Probe・Runtime Status は同じコンパイル結果を参照するため、Probe の表示と実際の挙動が一致します。
    • Captured Header と Session を Profile 単位で保持するようになりました。ある Profile を無効化・保存しても、他の Profile の取得済みヘッダーは保持されます。
    • 同一 Origin・同一 Header Name を複数の有効 Profile が付与する場合は競合として検出し、DNR ルールを適用せずにエラーを表示します(fixed/captured の組み合わせを問いません)。
    • URL Probe は一致した全ての有効 Profile と、最終的に付与されるヘッダーを表示します。Overview に有効 Profile 数・DNR ルール総数・コンパイルエラー/警告の Runtime Status を追加しました。
    • popup は全 Profile の一覧とトグル、有効 Profile 全体の固定ヘッダー・取得値を表示します。
    • 既存設定は自動で移行されます(activeProfileIdselectedProfileId)。各 Profile の enabled 値はそのまま維持されます。
  • Popup から、現在のタブに適用される固定ヘッダーの値を変更できるようにしました。管理画面の固定ヘッダー設定に「ポップアップに表示」を追加し、入力形式(テキスト / 選択肢)と選択肢の Label・Value・並び順を設定できます。公開したヘッダーだけが Popup に表示され、既存の固定ヘッダーは初期状態で非表示のままです。値の変更は対象ヘッダーのみを部分更新し、Compiler と DNR 同期を経て即時反映されます。

Minor changes

  • 除外パスのマッチングを前方一致から glob(全体一致)に変更。* は同一パスセグメント内、** はセグメントを跨ぐ任意、? は 1 文字に一致し、パターンは pathname 全体に一致する(配下すべてを対象にするには /assets/** のように指定)。DNR ルールの regexFilter も同じ glob セマンティクスで生成する。あわせて除外パステスターが無効化中のプロファイルでも対象オリジン・除外判定を評価できるよう修正。 また、プロファイル名の編集中にサイドバーの表示名が即時変更されていた挙動を修正し、保存後に反映されるようにした。
  • manage 画面ヘッダーを簡素化: プロファイル名・有効/無効バッジ・未保存バッジを削除し、保存ボタンを未保存時に強調表示へ変更。プライバシーリンクをサイドバー最下部へ移動。
  • 管理画面の保存状態をセクション単位に分離。対象オリジン・固定ヘッダー・取得ヘッダー・除外パス・プロファイル基本情報の各セクションが独立した未保存状態と保存ボタンを持つようになり、変更したセクションだけを個別に保存できる。保存時は該当セクションのみをストレージへ書き込み、DNR ルールを再構築する。ヘッダーのグローバル保存ボタンと「未保存の変更」表示は廃止した。

Minor changes

  • 管理画面の情報設計と Application Shell を再構成し、未保存 Draft の URL プローブ、除外パスの共有検証と判定テスター、監査ログ展開状態の保持、空の初期設定、未保存変更の保護を追加しました。
  • 管理画面を Popup と共通の iOS 風デザインに統一し、ダークモードとアクセシビリティに対応しました。
  • 管理画面にセクション単位の URL ルーティングを導入し、直接表示やブラウザの戻る・進む操作に対応しました。
  • i18n 対応を追加(デフォルト: 英語、日本語・韓国語をサポート)。UI 文字列と manifest を browser.i18n(_locales)で多言語化

Patch changes

  • Popup UI をコンパクト化(幅 480px、行高さ 36px、セクション間余白縮小)し、セクション構成を Fixed Headers / Captured Headers に再編
  • プライバシーポリシーページを拡張機能内から外部サイト(hsblabs.github.io)へのリンクに変更。UI の言語設定(ja/ko/その他)に応じて対応する言語ページへ遷移する。

Nandemo Formatter

Patch changes

  • 分析及顯示結構化文件時,不再重複解析相同的 JSON。
  • 將設定、分析及網站控制訊息移至延遲載入的共用執行環境。介面顯示前,各格式執行環境需要解析的程式碼更少。
  • 針對現代瀏覽器建置注入執行環境,不轉換 Chromium 已支援的語法。
  • .geojson URL 識別為 JSON 文件,並依功能整理相關的核心模組。
  • 集中管理重複的格式副檔名及 MIME 類型,讓核心、介面及擴充功能執行環境共用。
  • 以深度及明確的例外儲存 JSON 樹狀結構的初始收合狀態。
  • MIME 類型已識別出支援的格式時,略過本文啟發式檢查。
  • 只有在轉換文件時才載入結構化格式序列化器,讓初始格式化執行環境更小。

Patch changes

  • 在每個已翻譯的 Chrome 線上應用程式商店標題中說明自動原始文件檢視器的用途。

Patch changes

  • 同意後傳送安裝、更新及主要功能使用事件。無論同意狀態為何,超過 500ms 的效能異常事件都使用一次性 ID 傳送。
  • 將傳送至 GA4 的 Client ID 轉換為 Measurement Protocol 接受的格式,並啟用正式環境的使用統計。

Patch changes

  • 使用原始回應的位元組數計算圖片大小,而不是重新編碼後的值。大型圖片不再執行不必要的 Canvas 處理。
  • 壓縮大型 JSON 的虛擬列中繼資料,修正保留 1 MiB 文件時的記憶體回歸。
  • 從 React 遷移至 Solid,將注入執行環境的 raw JavaScript 總大小減少 63%。

Patch changes

  • 集中驗證擴充功能訊息的傳送者,並明確定義格式化檢視模式,同時維持現有行為。
  • 從正式版擴充功能建置中移除測試專用選擇器,並在 E2E 建置中保留穩定的選擇器。
  • 注入的格式化檢視使用英文,彈出式視窗及選項仍維持在地化,藉此減少擴充功能的 raw 大小。
  • 簡化工具列彈出式視窗。它會顯示頁面狀態、還原已停用的來源,並開啟設定。

Minor changes

  • 在工具列新增下載按鈕。它會使用文件名稱及檢視格式的副檔名,儲存目前畫面上的原始文件、最小化 JSON 或轉換後的格式。將 config.json 轉換為 YAML 時會儲存為 config.yaml
  • 將巢狀 JSON 樹狀結構的呈現虛擬化,讓大型文件在捲動時維持有限的 DOM 大小。
  • 將支援連結指向產品網站的擴充功能支援頁面。日文會開啟 /ja/,其他語言會開啟預設頁面。About 選單連結會附上擴充功能版本及使用者代理程式。
  • 可從格式化工具頁尾在新分頁開啟設定頁面。
  • 無論是否同意使用統計,在安裝或更新時建立並儲存一個 UUIDv7 Client ID。同意只控制資料傳送,因此拒絕或撤回同意後仍會使用相同的本機 ID。

Minor changes

  • 新增系統、淺色及深色主題、一次性的原始檢視、依來源設定格式化,以及以同意為基礎的使用統計。非格式化頁面會更早結束處理,也不會誤取代 URL 含有支援副檔名的 HTML 頁面。

Minor changes

  • 在 Chrome 線上應用程式商店推出第一個公開版本。
  • 連結偵測從只支援 HTTPS 擴充至 HTTP、HTTPS 及 mailto URL。含有指令碼或內容的通訊協定,例如 javascript:data:blob:file:,永遠不會轉換為連結。
  • 在使用嚴格 CSP 的主機上呈現 Markdown。WASM 呈現器無法在 raw.githubusercontent.com 等主機啟動,因此改用純 JavaScript 呈現器,並將套件從 806 kB 減少至 440 kB。即使文件主要由序列組成,YAML 偵測也不會失敗。所有結構化格式都可以使用連結切換。
  • 提高格式偵測的可靠性。以 KEY=value 開頭的 shell rc 檔案不會再被格式化為 INI。當 TOML 區段標題出現在頂層索引鍵之後時可以辨識 TOML。僅依本文推測的格式解析失敗時,會保留原頁面而不顯示解析錯誤。任何以 +json 結尾的 MIME 類型,例如 application/problem+jsonapplication/vnd.api+json,都可以偵測為 JSON。
  • 可從工具列將目前文件轉換為其他結構化格式。無法進行的轉換,例如將頂層陣列轉換為 TOML,會顯示解析錯誤,而不是無聲失敗。
  • 檢視器新增全部展開、全部收合、鍵和值搜尋、符合項目醒目提示、複製節點路徑(data.items[0].id),以及指出錯誤行的解析錯誤。
  • 加強格式偵測,避免取代不是結構化資料的頁面。
    • 只依 MIME 類型及檔案副檔名判定 Markdown,不從本文推測。renderMarkdown 可以接受任何文字,因此無法依解析檢查排除本文推測。
    • --- 視為 YAML 文件標記,而不是 Markdown 訊號。因此以 text/plain 提供的 YAML 也會被格式化。
    • YAML 啟發式要求至少 70% 的非空白行看起來像對映。這會讓記錄、標頭傾印及以冒號開頭的文字保留為 Raw。
    • 不再未經驗證就將超過 5 MB 的本文視為 JSON。
    • 將 YAML 及 TOML 日期常值呈現為字串,而不是空物件。
  • 在頁尾新增 About 選單。滑鼠移入或鍵盤取得焦點時,選單會向上開啟,並連結至首頁、隱私權政策及支援表單。
  • 滑鼠指標移向 About 選單時,選單不會關閉。
  • 移除 Markdown 檢視器自己的 Raw 按鈕。工具列已經提供相同功能。
  • 讓商店資訊符合實際行為。擴充功能說明列出 JSON、YAML、TOML、INI、Markdown 及圖片等所有支援格式。隱私權政策說明只會儲存連結切換的布林值。資訊清單版本會跟隨 package.json,不再硬編碼。