PLaMo Translate Chrome拡張機能を作った話

Date: 2026/02/18
Tags: tag Plamo tag Web tag Chromium tag Gist tag JS tag Html tag Code

Preferred Networksが公開しているAI翻訳ツール「PLaMo」を、Chromiumのサイドパネルでいつでも使えるようにするためのものを作った。

特に注目してほしいのは、外部サイトをサイドパネル(iframe)内に表示する際にぶつかるセキュリティ制限(CSPやX-Frame-Options)を、技術的な工夫で回避している点だね。


構成ファイルと役割の解説

1. manifest.json(設定ファイル)

拡張機能の「設計図」にあたるファイルだよ。

2. rules.json(セキュリティ制限の回避)

ここがこの拡張機能の一番賢い部分だよ! 通常、多くのWebサイトはセキュリティのために「自分のサイトを他のサイト(iframe)の中で表示させない」という命令(x-frame-options など)を出しているんだ。

3. sidepanel.html(表示画面)

サイドパネルの中身そのものだよ。

4. worker.js(動作の制御)

バックグラウンドで動くプログラムだよ。


この拡張機能のすごいところ

普通に iframe で外部サイトを読み込もうとするとエラーで真っ白になっちゃうことが多いんだけど、declarativeNetRequest で CSP(Content Security Policy)を修正(CSP Fix) することで、無理やり表示できるようにしてる。

これがあれば、調べ物とかをしながら横でサッとAI翻訳を使えるから、使ってみて!