じまろぐ

めめ

10年前に作ったChrome拡張のManifest V3対応をAIエディタにやらせてみた

先日、10年ほど前に公開したChrome拡張をアーカイブしました。

qiita.com

この拡張は、サイトごとに任意のスクリプトを実行できるというものです。

なぜ作ろうと思ったのかは今となってははっきり覚えていませんが、任意スクリプトを走らせてサイトでなにかをしたかったのだと思います。

公開後は放置していたのですが、ダッシュボートをふと見てみたところ一時期2万人を超えるユーザーがいたようで驚きました。自分自身で使っていなかったため、機能追加やメンテナンスをしてこなかったことに対しては「すまん」という気持ちです。

Manifest V3への移行が必要

Chrome拡張はManifest V2からV3へと仕様が変わり、V2のままではいずれ使えなくなるという告知がされていました。自分で全く使っていなかったので放置していましたが、まれにお問い合わせっぽいメールが来てて気になっていたので対応してみることにしました。

とはいえ10年前に書いたコード、自分が書いたコードでも1年たてば他人が書いたコードなんてのはよく言われますが、10年前となるともはや古文書です。

今となってはエモすぎる構文や書き方のオンパレードで微笑ましい気持ちになりつつも、このコードを保守するのはさすがに?という気持ちになりました。コードを全部読んでから動く状態に持っていくのに結構かかりそうだなという感触があったので、ここはAI様にまかせてみようと思い試してみました。

Roo Code(旧Roo Cline)を使った移行作業

実際の移行作業では、普段使いしているVSCodeで楽に試せそうなRoo Codeを使ってみました。

zenn.dev

使ったmodelはOpen AIのo1-miniです。アカウントを持っていた&利用料が比較的安そうくらいの理由です。

Manifest V3に対応させたいファイルを指定して「これをManifest V3用に書き換えてほしい」と指示したところ、多少の手直しは必要でしたが想像してた以上に使えそうなコードが返ってきたので「結構イケるじゃん」と驚きました。

この拡張では当時出たばかりのVueを使っていたのですが、Vueのバージョンアップをするのが面倒&大したことをやってなかったので「バニラJSで同等の動作をするように置き換えて」と指示してみました。結果、一発で完璧に同じ動作をするコードが生成されたのでこれには結構感動しました。

結局動かなかった

V3への移行作業自体は30分程度で完了しましたが、拡張機能の中心機能である任意スクリプトを動かすというのがManifest V3の仕様として実現できないということがわかったため断念することになりました。

移行作業自体は徒労に終わったわけですが、AIエディタの可能性と実用性を認識できたのでいい学びになりました。

APIは22リクエストしてトークン使用量が約410000、かかった料金が1.27ドルでした。自分で調べて全部書き直しとかをやっていたら数時間はかかったと思うので、費用対効果を考えるとめっちゃいいじゃん~というのが素直な感想です。

おわりに

今回はじめてAIエディタをしっかり使ってみたわけですが、これはたしかにエンジニアの働き方が変わるだろうというのが実感として体験できました。ガンガン使い倒してコーディングに使っていた時間を別のことに使っていきたいですね。

今回アーカイブすることになったChrome拡張ですが、リアルで会った人にあれ使ってますよ~と言われることが何回かあったりもしました。長い間放置していたにもかかわらず使ってくれていた皆さんにあらためて感謝します。

ご愛顧ありがとうございました👋