| グリースモンキー | |
|---|---|
| 原作者 | アーロン・ブードマン |
| 開発者 | Anthony Lieuallen、Johan Sundstrom、[ 1 ] 13 その他[ 2 ] |
| リリース | 2004年12月6日 (2004-12-06)[ 3 ] [ 4 ] |
| 安定放出 | 4.13 / 2024年8月5日 ( 2024-08-05 ) |
| 執筆 | JavaScript、XUL、CSS |
| オペレーティング·システム | クロスプラットフォーム |
| 利用可能 | 英語 |
| タイプ | Mozilla拡張機能 |
| ライセンス | MITライセンス |
| Webサイト | www.greasespot.net |
| リポジトリ |
|
Greasemonkeyは、 Mozilla Firefoxの拡張機能として提供されているユーザースクリプトマネージャーです。ユーザーは、ブラウザにページが読み込まれる前または後に、ウェブページの内容をその場で変更するスクリプトをインストールできます(拡張ブラウジングとも呼ばれます)。
ウェブページに加えられた変更は、ページが表示されるたびに実行されるため、スクリプトを実行しているユーザーにとっては事実上永続的なものとなる。
Greasemonkeyは、ページの外観をカスタマイズしたり、ウェブページに新しい機能を追加したり(例えば、ショッピングサイトに価格比較を埋め込むなど)、レンダリングのバグを修正したり、複数のウェブページからデータを結合したりするなど、その他多くの目的に使用できます。
Greasemonkey プロジェクトは、Aaron Boodman によって 2004 年 11 月 28 日に開始されました。[ 5 ] [ 6 ] [ 7 ] Boodman は、後にユーザー スクリプト開発者となるAdrian Holovatyによって作成されたAllMusicのインターフェースを整理するための Firefox 拡張機能を見て Greasemonkey を書くことを思いつきました。[ 8 ] 2005 年 5 月までに、Greasemonkey 用に配布された汎用ユーザー スクリプトは約 60 個、サイト固有のユーザー スクリプトは約 115 個ありました。[ 8 ] 2005 年 7 月、Mark Pilgrim によって Greasemonkey に深刻な脆弱性が発見され、[ 9 ] [ 10 ] Greasemonkey のバージョン 3.5 で修正されました。[ 11 ]この間、ユーザー スクリプトをスタンドアロンの Firefox 拡張機能に変換するための Greasemonkey コンパイラも開発されました。[ 12 ] Greasemonkeyは当初、広告をブロックする機能について出版社から苦情を受けた。[ 13 ]しかし、この批判により、2006年にAdblock Plusがリリースされて以来、他のアドオンに焦点が移った。
スクリプトの増加に対応するため、userscripts.org は Britt Selvitelle と Greasemonkey コミュニティの他のメンバーによって 2005 年後半に設立されました。userscripts.org は 2007 年にオープンソース化されましたが、その後、このサイトはこのコードベースから離れました。[ 14 ] Greasemonkey の公式サイトに掲載されている主要なスクリプトリポジトリとして、userscripts.org には毎年数千のスクリプトが蓄積されました。
2010 年、最後に確認された管理者である Jesse Andrews は、時間がないためサイトがメンテナンスモードになっていると投稿し、新しい管理者を募集しました。[ 15 ]それにもかかわらず、彼は 2013 年 4 月 1 日にインストール数に関する議論が始まるまで、サイトの唯一の管理者であり続けました。[ 16 ]これ以前は、サイトに掲載されている「最も人気のあるスクリプト」の多くは、名目上のインストール数がゼロでした。翌年、スパム スクリプトがより一般的になり、サーバーのダウンタイムが増加し、インストール数のバグが残りました。[ 17 ] Andrews からの連絡がなくなったため、ユーザー スクリプトのライターは、サイトが放置されていると述べ、公式の Greasemonkey サイトはトップ ページへのリンクを削除しました。[ 18 ] [ 19 ]これに対し、スクリプトのライターや他の開発者は、フォーク「 openuserjs.org」[ 20 ] [ 21 ]、そして後に greasyfork.org [ 22 ]を、即時の代替として開発し始めました。[ 23 ]
2014 年 5 月、userscripts.org はポート 80 でアクセスできなくなり、ユーザーは代わりにポート 8080 でアクセスするように促されました。[ 17 ] 2014 年 8 月、サイトは完全に閉鎖されました。ほとんどのスクリプトは静的ミラー userscripts-mirror.org にバックアップされ、現在そこで見つけることができます。[ 17 ]
GreasemonkeyのユーザースクリプトはJavaScriptで記述され、 Document Object Model(DOM)インターフェースを使用してWebページのコンテンツを操作します。スクリプトは通常、ページ固有またはドメイン固有(ドメイン内のすべてのページに適用される)に記述されますが、グローバルなブラウザ機能強化のためにすべてのドメインに適用するようにタグ付けすることもできます。Greasemonkeyのユーザーは、スクリプトを作成またはダウンロードして、個人のライブラリに保存できます。ユーザーが個人のスクリプトライブラリにあるスクリプトに一致するWebサイトにアクセスすると、Greasemonkeyは該当するスクリプトを実行します。
Greasemonkeyスクリプトは、Greasemonkeyのセキュリティ制限の範囲内で、JavaScriptが許容するあらゆる方法でウェブページを変更できます。また、スクリプトはドメイン制限のないXMLHTTPリクエストを介して他のウェブページやウェブサービスにアクセスできるため、外部コンテンツを元のページコンテンツと統合することが可能です。
スクリプトは「somename.user.js 」という名前で保存され、Greasemonkey は、このサフィックスで終わる URL がリクエストされると、該当するスクリプトをインストールするかどうかを提案します。Greasemonkey スクリプトには、スクリプト名、説明、スクリプトに必要なリソース、同じ名前のスクリプトを区別するために使用される名前空間URL、およびスクリプトが呼び出されるかどうかを指定する URL パターンなどのメタデータが含まれています。
Greasemonkey スクリプトの作成は、Web ページの JavaScript の作成と似ていますが、クロスサイトのXMLHttpRequestなどの追加の機能があります。本格的な Firefox 拡張機能の作成と比較すると、ユーザー スクリプトは基本的な Web プログラミングから複雑さがわずかに増すだけです。ただし、Greasemonkey スクリプトは、Mozilla の XPCNativeWrappers [ 24 ]によって課せられたセキュリティ制限により制限されています。たとえば、Greasemonkey スクリプトは、ダウンロード マネージャ、I/O プロセス、メイン ツールバーなど、Firefox の多くのコンポーネントにアクセスできません。さらに、Greasemonkey スクリプトは、一致する Web ページのインスタンスごとに実行されます。このため、アイテムのリストをグローバルに管理するのは困難です。しかし、スクリプト作成者は Cookie を使用しており、Greasemonkey は、これを克服するために GM_getValue や GM_setValue などの API も提供しています。
Greasemonkey のファイル ホスティング サーバーでは、スクリプトのURLが で終わる必要があり、のようなMIME タイプ.user.jsで終わってはいけません。HTTPSのサポートは、 Greasemonkey の組み込みのアップデート チェッカーと互換性があります。2019 年 7 月現在、Greasemonkey プロジェクトでは、推奨されるユーザー スクリプト ホスティングを 3 つ挙げています。[ 25 ]text/html
Greasemonkey はFirefox、Flock、GNOME Web (旧称 Epiphany)で利用可能です。Web 用の Greasemonkey 拡張機能は、 Web 拡張機能パッケージの一部です。ただし、リリース 2.15.1 の時点では、一部の Greasemonkey API関数 (例: GM_getValue ) がサポートされていないため、この拡張機能は完全な互換性はありません。SeaMonkey 、[ 26 ] [ 27 ] Songbird、[ 28 ] Pale Moon、[ 29 ] qutebrowser、[ 30 ] Falkon browser 用のカスタムバージョンもあります。
ウィキメディア・コモンズにあるGreasemonkey関連のメディア