修正
- 構造化文書の解析と表示で、同じ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を1つ作成して保存するようにしました。同意は送信だけを制御するため、拒否または撤回しても同じローカル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検出が大部分をシーケンスで占める文書でも失敗しなくなり、リンク切替はJSON以外の構造化形式でも使えるようになりました。 - 形式検出の信頼性を高めました。
KEY=valueで始まるシェルのrcファイルをINIとして扱わず、トップレベルのキーの後にセクションヘッダーが続くTOMLを認識し、本文だけから推測した形式の解析に失敗した場合は解析エラーを表示せずページをそのまま残します。JSONはapplication/problem+jsonやapplication/vnd.api+jsonなど、+jsonで終わるMIMEタイプからも検出します。 - 現在の文書をツールバーから別の構造化形式へ変換できるようにしました。トップレベルが配列の文書をTOMLに変換する場合など、変換できない組み合わせでは黙って失敗せず解析エラーを表示します。
- ビューアにすべて展開、すべて折りたたむ、キーと値の検索、検索結果の強調表示、ノードごとのパスのコピー(
data.items[0].id)、エラー行を示す解析エラーを追加しました。 - 構造化データでないページを置き換えないよう、形式検出を厳しくしました。
- Markdownは本文ではなく、MIMEタイプとファイル拡張子だけで判定します。
renderMarkdownは任意のテキストを受け入れるため、本文からの推測では除外できません。 ---はMarkdownの信号ではなくYAML文書マーカーとして扱うため、text/plainで配信されたYAMLも整形します。- YAMLのヒューリスティックでは、空でない行の70%がマッピング形式に見えることを追加で要求します。これにより、ログ、ヘッダーダンプ、コロンで始まる文章をRawとして残します。
- 5 MBを超える本文を、検証なしでJSONと推測しないようにしました。
- YAMLとTOMLの日付リテラルを空のオブジェクトではなく文字列として表示します。
- Markdownは本文ではなく、MIMEタイプとファイル拡張子だけで判定します。
- フッターにAboutメニューを追加しました。ホバーまたはキーボードフォーカス時に上へ開き、ホームページ、プライバシーポリシー、サポートフォームへ移動できます。
- ポインターをAboutメニューへ移動している間に、メニューが閉じないようにしました。
- MarkdownビューアのRawボタンを削除しました。ツールバーのボタンをそのまま使えます。
- ストア掲載内容を実際の動作に合わせました。拡張機能の説明にJSON、YAML、TOML、INI、Markdown、画像の対応形式をすべて記載し、プライバシーポリシーに保存する内容(リンク切替の真偽値1つ)を明記しました。マニフェストのバージョンはハードコードせず、
package.jsonに追従します。