webext.hsb.horse

변경 내역

저장소에서 버전 관리하는 CHANGELOG.md를 바탕으로 공개된 릴리스를 표시합니다.

릴리스 항목은 프로젝트 변경 로그의 원문인 일본어로 표시됩니다.

RSS →

Header Relay

기능 추가 및 변경

  • 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 画面に表示します。

수정

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

기능 추가 및 변경

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

수정

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

기능 추가 및 변경

  • 監査ログにリクエスト 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 には要許可オリジンの警告を表示する。どのプロファイルからも使われなくなったホスト権限は確認付きで解除を提案する。
  • 機密ヘッダーに警告と安全な禁止ルールを追加し、取得値のセッション限定保持・削除タイミングを明確化しました。ホスト権限取消時は影響するプロファイルの取得値を自動消去します。

수정

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

기능 추가 및 변경

  • 複数の 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 同期を経て即時反映されます。

기능 추가 및 변경

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

기능 추가 및 변경

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

수정

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

Nandemo Formatter

수정

  • 구조화된 문서를 분석하고 렌더링할 때 같은 JSON을 반복해서 분석하지 않습니다.
  • 설정, 분석, 사이트 제어 메시지를 지연 로드하는 공유 런타임으로 이동했습니다. UI가 표시되기 전에 형식별 런타임이 분석하는 코드가 줄어듭니다.
  • Chromium이 지원하는 최신 문법을 변환하지 않고 최신 브라우저 대상용 삽입 런타임을 빌드합니다.
  • .geojson URL을 JSON 문서로 인식하고 관련 코어 모듈을 도메인별로 묶었습니다.
  • 형식별로 중복된 확장자와 MIME 유형을 하나로 모아 코어, UI, 확장 프로그램 런타임에서 공유합니다.
  • JSON 트리의 기본 접힘 상태를 깊이와 명시적 예외만으로 저장합니다.
  • MIME 유형으로 지원 형식을 이미 확인한 경우 본문 휴리스틱을 실행하지 않습니다.
  • 문서를 변환할 때만 구조화 형식 직렬화기를 로드합니다. 초기 포매터 런타임의 크기가 줄어듭니다.

수정

  • 각 언어의 Chrome 웹 스토어 제목에 자동 원문 문서 뷰어의 목적을 설명했습니다.

수정

  • 동의 후 설치, 업데이트, 주요 기능 사용 이벤트를 전송합니다. 동의 상태와 관계없이 500ms를 초과하는 성능 이상 이벤트는 일회성 ID로 전송합니다.
  • GA4로 보내는 Client ID를 Measurement Protocol이 허용하는 형식으로 변환해 운영 사용 통계를 활성화했습니다.

수정

  • 이미지 크기를 다시 인코딩한 값이 아니라 원래 응답의 바이트 수로 계산합니다. 큰 이미지에 불필요한 Canvas 처리를 실행하지 않습니다.
  • 큰 JSON의 가상 행 메타데이터를 압축해 1 MiB 문서 보관 시 발생한 메모리 회귀를 수정했습니다.
  • React에서 Solid로 전환했습니다. 삽입 런타임의 raw JavaScript 크기를 63% 줄였습니다.

수정

  • 확장 프로그램 메시지의 발신자 검증을 하나로 모았습니다. 기존 동작을 유지하면서 포매터 보기 모드를 명확하게 했습니다.
  • 프로덕션 확장 프로그램 빌드에서 테스트 전용 선택자를 제거했습니다. E2E 빌드에서는 안정적인 선택자를 유지합니다.
  • 삽입 포매터 보기에는 영어를 사용하고 팝업과 옵션은 현지화된 상태로 유지해 확장 프로그램의 raw 크기를 줄였습니다.
  • 툴바 팝업을 단순화했습니다. 페이지 상태를 표시하고 비활성화된 오리진을 복원하며 설정을 열 수 있습니다.

기능 추가 및 변경

  • 툴바에 다운로드 버튼을 추가했습니다. 현재 화면의 원문, 축소된 JSON, 변환한 형식을 문서 이름과 보기 형식에 맞는 확장자로 저장합니다. config.json을 YAML로 변환하면 config.yaml로 저장합니다.
  • 중첩 JSON 트리 렌더링을 가상화했습니다. 큰 문서에서도 스크롤 중 DOM 크기를 제한합니다.
  • 지원 링크를 제품 사이트의 확장 프로그램 지원 페이지로 변경했습니다. 일본어에서는 /ja/를 열고 다른 언어에서는 기본 페이지를 엽니다. About 메뉴 링크에는 확장 프로그램 버전과 사용자 에이전트를 포함합니다.
  • 포매터 푸터에서 설정 페이지를 새 탭으로 열 수 있습니다.
  • 사용 통계 동의 여부와 관계없이 설치 또는 업데이트 시 UUIDv7 Client ID 하나를 생성해 저장합니다. 동의는 전송만 제어하므로 거부하거나 철회해도 같은 로컬 ID를 사용합니다.

기능 추가 및 변경

  • 시스템, 라이트, 다크 테마를 추가했습니다. 원문 보기, 오리진별 포맷팅 설정, 동의 기반 사용 통계를 지원합니다. 포맷팅 대상이 아닌 페이지에서는 빠르게 종료합니다. 지원 확장자가 URL에 포함된 HTML 페이지를 잘못 교체하지 않습니다.

기능 추가 및 변경

  • Chrome 웹 스토어에 첫 공개 버전을 출시했습니다.
  • 링크 감지 대상을 HTTPS에서 HTTP, HTTPS, mailto URL로 확장했습니다. javascript:, data:, blob:, file:처럼 스크립트 또는 콘텐츠를 포함하는 스킴은 링크로 바꾸지 않습니다.
  • 엄격한 CSP를 보내는 호스트에서도 Markdown을 렌더링합니다. raw.githubusercontent.com과 같은 호스트에서 WASM 렌더러를 시작할 수 없어 순수 JavaScript 렌더러로 교체했습니다. 번들 크기도 806 kB에서 440 kB로 줄였습니다. 대부분이 시퀀스인 문서에서도 YAML 감지가 실패하지 않으며 링크 토글은 모든 구조화 형식에서 사용할 수 있습니다.
  • 형식 감지의 신뢰성을 높였습니다. KEY=value로 시작하는 셸 rc 파일을 INI로 포맷하지 않습니다. 최상위 키 다음에 섹션 헤더가 오는 TOML을 인식합니다. 본문만으로 추정한 형식의 구문 분석이 실패하면 구문 분석 오류를 표시하지 않고 페이지를 그대로 둡니다. application/problem+json, application/vnd.api+json과 같은 +json MIME 유형에서도 JSON을 감지합니다.
  • 툴바에서 현재 문서를 다른 구조화 형식으로 변환할 수 있습니다. 최상위 배열을 TOML로 변환하는 경우처럼 변환할 수 없는 조합은 조용히 실패하지 않고 구문 분석 오류를 표시합니다.
  • 뷰어에 모두 펼치기, 모두 접기, 키와 값 검색, 일치 항목 강조 표시, 노드 경로 복사(data.items[0].id), 오류 행을 가리키는 구문 분석 오류를 추가했습니다.
  • 구조화 데이터가 아닌 페이지를 교체하지 않도록 형식 감지를 강화했습니다.
    • Markdown은 본문이 아니라 MIME 유형과 파일 확장자로만 결정합니다. renderMarkdown은 모든 텍스트를 받아들이므로 본문 감지에서 거부할 수 없습니다.
    • ---는 Markdown 신호가 아니라 YAML 문서 마커로 처리합니다. 따라서 text/plain으로 제공된 YAML도 포맷합니다.
    • YAML 휴리스틱은 비어 있지 않은 행의 70%가 매핑처럼 보여야 통과합니다. 로그, 헤더 덤프, 콜론으로 시작하는 문장은 Raw로 남습니다.
    • 5 MB를 초과하는 본문을 검증 없이 JSON으로 추정하지 않습니다.
    • YAML과 TOML 날짜 리터럴을 빈 객체가 아니라 문자열로 렌더링합니다.
  • 푸터에 About 메뉴를 추가했습니다. 마우스를 올리거나 키보드 포커스를 받을 때 위로 열립니다. 홈 페이지, 개인정보 보호정책, 지원 양식으로 이동할 수 있습니다.
  • 포인터를 About 메뉴로 이동하는 동안 메뉴가 닫히지 않습니다.
  • Markdown 뷰어의 자체 Raw 버튼을 제거했습니다. 툴바 버튼을 사용합니다.
  • 스토어 설명을 실제 동작에 맞게 수정했습니다. 확장 프로그램 설명에 JSON, YAML, TOML, INI, Markdown, 이미지 등 모든 지원 형식을 적었습니다. 개인정보 보호정책에는 저장되는 값인 링크 토글의 불리언 하나를 적었습니다. 매니페스트 버전은 하드코딩하지 않고 package.json을 따릅니다.