Safari 5はAppleのウェブブラウザに多くの新機能をもたらしますが、中でも特に目立ったのは拡張機能システムの導入です。拡張機能システムの導入により、開発者はブラウザ自体が提供する機能を拡張できるようになります。

開発者にとってフレームワーク自体が主な関心事である一方、すでに登場し始めている拡張機能により、ユーザーはこれまでハックや回避策の領域であったあらゆる種類の機能を Safari に追加できるようになります。
拡張機能がリリースされてまだ1日しか経っていないにもかかわらず、複数の開発者が参入し、初期のアドオンをデモしたり公開したりしています。例えば、昨日サンフランシスコで開催されたAppleの世界開発者会議(WWDC)では、Mac開発者のPanicが、ウェブサイトに注釈を追加できる拡張機能「Coda Notes」を発表しました。
Panic社は今のところ、拡張機能はまだ未完成だとして公開を見送っていますが、より冒険的な開発者もいます。ある冒険心旺盛なユーザーは、公開された拡張機能を収集し、リンクを貼るウェブサイトを立ち上げました。この記事の執筆時点では、YouTube動画をフルスクリーンモードで簡単に視聴できるようにするものから、タスクやプロジェクトの管理まで、10種類ほどのダウンロード版が公開されています。
現時点では、拡張機能を有効にするにはまだいくつかの手順が必要です。まず、Safari の「詳細」環境設定パネルに移動して「開発メニューを有効にする」にチェックを入れます。次に、メニューバーに新しく表示される「開発」メニューに移動して「機能拡張を有効にする」にチェックを入れます。これが完了すると、Safari の環境設定で新しい「機能拡張」パネルにアクセスできるようになります。
拡張機能とプラグイン
Safariは長年プラグインをサポートしてきましたが、プラグインの作成にはC、C++、Objective-Cといった低レベルプログラミング言語の知識が必要だったため、高度なスキルが求められました。さらに、Appleはプラグインの管理やインストールを簡単かつ安全に行う方法を用意していなかったため、一般ユーザーにとってプラグインの魅力はさらに限定的でした。
一方、拡張機能はHTML、CSS、JavaScriptといったWeb標準言語を用いて構築されます。そのため、ウェブサイト開発に慣れた多くの開発者が容易に利用でき、Safariのカスタマイズを潜在的に幅広いユーザーに提供することが可能となります。ただし、開発者は拡張機能とブラウザの通信を可能にするためにAppleが設計したカスタムJavaScript APIを習得する必要があります。
さらに、Appleは拡張機能の利用プロセスを2つの方法で簡素化しました。まず、拡張機能をダウンロードしたら、ダブルクリックするだけでインストールできます。魔法の呪文を唱えたり、セットアップウィザードを使ったり、ファイルを分かりにくい場所にコピーしたりする時代は、もはや終わりました。

第二に、SafariはAppleが発行したデジタル証明書で署名されていない拡張機能のインストールを拒否します。そのため、開発者は他者が利用できる拡張機能を配布するために、Apple Developer Connectionプログラムに登録し、証明書を取得する必要があります。ただし、少なくとも理論上は、開発者がAppleの利用規約に違反した場合、Appleは証明書を取り消す可能性があります。
拡張機能を作成するための条件は、iPhone 開発者が App Store でアプリを販売するために同意しなければならない条件ほど厳しくなく、マルウェアや不正なデータ収集の回避など、拡張機能を安全にするためのいくつかの要件が主に含まれています。
Safariでは新しいが、Firefoxでは古い
もちろん、拡張機能は新しい概念ではありません。Firefoxは長年拡張機能をサポートしており、今では豊富なアドオンのエコシステムを備えています。これはFirefoxの最大のメリットの一つと言えるでしょう。さらに、Firefoxを開発するMozilla Foundationは、拡張機能のインストールプロセスをブラウザに直接統合しました。これにより、ユーザーは拡張機能を一元的に見つけ、シームレスにダウンロード・インストールできるようになっています。
Appleも同様のシステムを準備しているようで、「Safari Extensions Gallery」と名付けています。詳細はまだ明らかにされていませんが、Appleによると、ユーザーはこのギャラリーに拡張機能を投稿できるようになるとのことで、このギャラリーは今夏後半にオープン予定です。
Firefoxは先行者利益を享受しているものの、Safariが既に克服しているいくつかの重大な制限を抱えています。例えば、Firefoxの拡張機能のユーザーインターフェースはXULと呼ばれる言語で構築する必要がありますが、XULはオープンソースではあるものの、HTMLほど広く知られていません。さらに、拡張機能の開発プロセスは依然としてある程度手作業が中心ですが、Safari 5にはExtension Builderという組み込みパッケージが付属しており、必要なファイルをすべてまとめて、ユーザー向けに配布可能な拡張機能パッケージを作成するための、視覚的で段階的なプロセスが提供されています。
最後に、Safari開発者は、使いやすいプロセスで拡張機能にデジタル署名することができ、しかも完全に無料です。Firefox拡張機能も署名できますが、開発者は手動でプロセスを実行し、サードパーティからコード署名用のデジタル証明書を購入する必要があります。これは年間数百ドルかかることもあります。そのため、Firefox拡張機能の大部分は署名されていないのに対し、Safari拡張機能はすべて署名されています。デジタル署名は必ずしもパフォーマンスやセキュリティの向上を意味するわけではありませんが、少なくともAppleが安全でない、あるいは悪意のある拡張機能を削除する選択肢を持っているという安心感をユーザーに与えます。
拡張機能が普及し、Safariエコシステムの重要な一部となるかどうかはまだ判断できません。しかし、拡張機能の導入はSafariの機能を大幅に向上させ、Firefoxへの直接的な対抗手段となります。ただし、Firefoxは大きなリードと、拡張性に優れたブラウザとしての確固たる評判を誇っており、これを覆すのは困難でしょう。
拡張機能を有効にする方法に関する情報が 5:18PT に更新されました。
[Macworld に頻繁に寄稿している Marco Tabini は、トロントを拠点とする Web スペシャリストです。]