Opera 15 から、そのレンダリングエンジンは Blink に移行した、というよりアプリケーションの骨組みが Chromium ベースになった。これに従い、エクステンションの仕組みもまた Chromium のそれに準ずるようになった。Chromium エクステンションと同様の manifest.json を書き、Chromium が提供する API を使ってエクステンションを組み立てていくことになる。ただし API はサブセット(+ Opera 独自のもの)になっている。
どの程度のサブセットかは、Chromium が提供する API と、Opera 15+ の それ を参照のこと。
Opera 12 までのエクステンションは拡張子が .oex だったが、15+ では .nex になる。構造は Chrome の .crx とまったく同じ。Opera 15+ がサポートする API だけを使っているエクステンションなら、.crx のまま使えてしまうはずだ。
また、Opera のエクステンションカタログ(の開発者ページ)では登録済み oex に対する Convert 機能が追加されているようだ。これは何をするのかといえば、oex のアーカイブに oex の API をエミュレートするでっかいラッパーライブラリを付加して、全ファイルを含んだ zip を返してくれる。この oex エミュレーションライブラリがかなりの力作で、全体で 450KB くらいある。これを書いた人は本当によくがんばったと思う。
残念ながらというか幸いにというか、wasavi の場合はもともと Chrome でも動くようにしているので、そのライブラリを使うことはないのだが…。
あと、「一体 Opera は DOM3 Composition Events をいつ実装するの? 明日なの? 今年中なの? 今世紀中なの?」という諦め半分の心の叫びがタナボタ式に解決してしまったのが割というかかなり嬉しい。