グリースモンキー

グリースモンキー
原作者アーロン・ブードマン
開発者Anthony Lieuallen、Johan Sundstrom、[ 1 ] 13 他[ 2 ]
初回リリース2005年3月28日[ 3 ] (2005年3月28日
安定版リリース
2024年8月4日13時 / 5時 ( 2024-08-05 )
リポジトリ
書かれたJavaScriptXULCSS
オペレーティング·システムクロスプラットフォーム
入手可能な英語
タイプMozilla拡張機能
ライセンスMITライセンス
Webサイトwww.greasespot.net

Greasemonkeyは、 Mozilla Firefoxの拡張機能として提供されるユーザースクリプトマネージャです。これにより、ユーザーはブラウザにページが読み込まれる前または後に、ウェブページのコンテンツを即座に変更するスクリプト拡張ブラウジングとも呼ばれます)をインストールできます。

Web ページに加えられた変更は、ページが表示されるたびに実行されるため、スクリプトを実行しているユーザーにとっては実質的に永続的なものとなります。

Greasemonkey は、ページの外観のカスタマイズ、Web ページへの新しい機能の追加 (たとえば、ショッピング サイト内に価格比較を埋め込む)、レンダリング バグの修正、複数の Web ページからのデータの結合など、さまざまな目的に使用できます。

歴史

Greasemonkeyプロジェクトは2004年11月28日にAaron Boodmanによって開始されました。[ 4 ] [ 5 ] [ 6 ] Boodmanは、後にユーザースクリプト開発者となるAdrian Holovatyによって書かれた、AllMusicのインターフェースを整理するために設計されたFirefox拡張機能を見て、Greasemonkeyを書くようにインスピレーションを受けました。2005年5月までに、Greasemonkey用に約60の一般的なユーザースクリプトと115のサイト固有のユーザースクリプトが配布されていました。[ 7 ] 2005年7月、Mark PilgrimによってGreasemonkeyに重大な脆弱性が見つかり、[ 8 ] [ 9 ] Greasemonkeyのバージョン3.5で修正されました。[ 10 ]この間、ユーザースクリプトをスタンドアロンのFirefox拡張機能に変換するためのGreasemonkeyコンパイラも開発されました。[ 11 ] Greasemonkeyは当初、広告をブロックする機能について出版社から苦情を受けました。[ 12 ]しかし、この批判により、2006年にAdblock Plusがリリースされてから、Greasemonkeyの焦点は他のアドオンに移りました。

ユーザースクリプト

スクリプト数の増加に対応するため、2005年後半にBritt SelvitelleとGreasemonkeyコミュニティの他のメンバーによってuserscripts.orgが設立されました。Userscripts.orgは2007年にオープンソース化されましたが、その後サイトはこのコードベースから離れました。[ 13 ] Greasemonkeyの公式サイトに記載されている主要なスクリプトリポジトリとして、userscripts.orgには年間数千のスクリプトが蓄積されました。

2010年、最後の管理者であるジェシー・アンドリュース氏は、時間不足のためサイトをメンテナンスモードにし、新しい管理者をボランティアで募集したと投稿した。[ 14 ]しかし、2013年4月1日にインストール数に関する議論が始まるまで、彼はサイトの唯一の管理者であり続けた。 [ 15 ]これに先立ち、サイトが挙げている「最も人気のあるスクリプト」の多くは、名目上のインストール数がゼロだった。翌年、スパムスクリプトがより一般的になり、サーバーのダウンタイムが増加し、インストール数に関するバグは残った。[ 16 ]アンドリュース氏からのさらなる連絡がなかったため、ユーザースクリプト作成者はサイトが放置されていると述べ、公式Greasemonkeyサイトはトップページへのリンクを削除した。[ 17 ] [ 18 ]これを受けて、スクリプト作成者や他の開発者は、即時の代替として、フォーク「openuserjs.org」[ 19 ] [ 20 ]、そして後にgreasyfork.org [ 21 ]の開発を開始した。[ 22 ]

2014年5月、userscripts.orgはポート80からアクセスできなくなり、ユーザーは代わりにポート8080からアクセスするようになりました。[ 16 ] 2014年8月、サイトは完全に閉鎖されました。スクリプトのほとんどは静的ミラーであるuserscripts-mirror.orgにバックアップされており、現在はそこで見つけることができます。[ 16 ]

技術的な詳細

GreasemonkeyユーザースクリプトはJavaScriptで記述され、ドキュメントオブジェクトモデルインターフェースを用いてウェブページのコンテンツを操作します。スクリプトは通常、ページ固有またはドメイン固有(ドメイン内のすべてのページに適用)として記述されますが、ブラウザ全体の機能拡張のために、すべてのドメインに適用するようにタグ付けすることもできます。Greasemonkeyユーザーはスクリプトを作成またはダウンロードし、自分の個人用ライブラリに保存できます。ユーザーが自分の個人用スクリプトライブラリ内のスクリプトに一致するウェブサイトにアクセスすると、Greasemonkeyは関連するスクリプトを起動します。

Greasemonkeyスクリプトは、JavaScriptが許可する方法であれば、Greasemonkeyのセキュリティ制限の範囲内で、ウェブページを自由に変更できます。また、スクリプトはドメイン制限のないXMLHTTPリクエストを介して他のウェブページやウェブサービスにアクセスできるため、外部コンテンツを元のページコンテンツに統合することも可能です。

スクリプトはsomename .user.js という名前で呼ばれ、Greasemonkey はそのサフィックスで終わる URL が要求されると、そのようなスクリプトをインストールすることを提案します。Greasemonkey スクリプトには、スクリプト名、説明、スクリプトに必要なリソース、同じ名前のスクリプトを区別するために使用される名前空間 URL、そしてスクリプトが呼び出される URL パターン(あるいは呼び出されない URL パターン)を指定するメタデータが含まれてます

Greasemonkey スクリプトの作成は、Web ページ用の JavaScript の作成と似ていますが、クロスサイトXMLHttpRequestsなどの追加の機能がいくつか追加されています。本格的な Firefox 拡張機能の作成と比較すると、ユーザー スクリプトの作成は基本的な Web プログラミングよりも複雑さがわずかに増すだけです。ただし、Greasemonkey スクリプトには、Mozilla の XPCNativeWrappers [ 23 ]によって課せられるセキュリティ制限による制限があります。たとえば、Greasemonkey スクリプトは、ダウンロード マネージャー、 I/O プロセス、メイン ツールバーなど、Firefox の多くのコンポーネントにアクセスできません。さらに、Greasemonkey スクリプトは一致する Web ページのインスタンスごとに実行されます。このため、アイテムのリストをグローバルに管理することは困難です。ただし、スクリプト作成者は Cookie を使用しており、Greasemonkey ではこの問題を克服するために GM_getValue や GM_setValue などの API も提供しています。

ユーザースクリプト

Greasemonkeyのファイルホスティングサーバーでは、スクリプトのURLがのようなMIMEタイプ.user.jsではなく で終わる必要があります。HTTPSのサポートは、Greasemonkeyに組み込まれたアップデートチェッカーで対応します。2019年7月現在、Greasemonkeyプロジェクトは3つの推奨ユーザースクリプトホスティングサーバーをリストしています。[ 24 ]text/html

  • Gist は、 GitHub が運営するシンプルなファイルをホストするペーストビンサービスです。ファイルを Web フォームに貼り付けて保存できます。デフォルトではHTTPSが使用されます。ファイルは命名規則に従い、インストールリンクとして機能する URL には「.user.js」というサフィックスを付けることができます。
  • Greasy Forkはuserstyles.orgの管理者によって作成されたサイトです。[ 21 ]
  • OpenUserJS.orgは、廃止されたスクリプトリポジトリuserscripts.orgのフォークとして始まったサイトです。 [ 19 ] [ 20 ]

互換性

GreasemonkeyはFirefoxFlockGNOME Web(旧称Epiphany)で利用可能です。Web用のGreasemonkey拡張機能はWeb拡張機能パッケージの一部です。ただし、この拡張機能はリリース2.15.1時点では完全な互換性がありません。これは、一部のGreasemonkey API関数(例:GM_getValue)がサポートされていないためです。SeaMonkey 、[ 25 ] [ 26 ] Songbird[ 27 ] Pale Moon[ 28 ] qutebrowser[ 29 ] Falkonブラウザ用のカスタムバージョンも存在します。

参照

参考文献

  1. ^ boots (2009年8月23日). 「グリーススポット:アウティ」グリーススポット.
  2. ^Greasemonkey ネットワーク グラフ」。GitHub
  3. ^ 「バージョン履歴 – GreaseSpot Wiki」 . wiki.greasespot.net .
  4. ^ “Greasemonkey Project Info” . 2012年3月25日時点のオリジナルよりアーカイブ2011年8月31日閲覧。
  5. ^ピルグリム、マーク(2005年)『Greasemonkey Hacks』オライリー社、ISBN 978-0-596-55357-9
  6. ^ Boodman, Aaron (2010年2月1日). 「40,000以上の拡張機能!」 . Chromiumブログ. 2023年3月5日閲覧
  7. ^ a bライアン・シンゲル(2005年5月17日)「FirefoxユーザーはWebを操るのか?」 Wired誌。
  8. ^ 「[Greasemonkey] greasemonkey for secure data over insecure networks / Sites」 2020年3月3日時点のオリジナルよりアーカイブ2021年2月24日閲覧。
  9. ^ 「セキュリティ [LWN.net]」
  10. ^ "mozdev.org – : /pipermail/greasemonkey/2005-July/004379" . mozdev.org . 2005年7月29日時点のオリジナルよりアーカイブ
  11. ^ Nivi (2005年5月8日). 「Greasemonkeyはビジネスモデルを(そしてあなたの心も)吹き飛ばすだろう」 2006年6月3日時点のオリジナルよりアーカイブ2010年7月22日閲覧。
  12. ^ Festa, Paul (2005年3月24日). 「Firefoxのアドオンでサイトを操作できるが、安全か?」 CNET.
  13. ^ Selvitelle, Britt (2007年1月3日). 「Userscripts.org... Opensource!」 2007年1月17日時点のオリジナルよりアーカイブ。 2014年5月21日閲覧
  14. ^ 「userscripts.orgのバトンタッチ」Hacker News2010年。 2014年10月24日閲覧
  15. ^ 「インストール数の修正」 2013年4月1日. 2013年11月3日時点のオリジナルよりアーカイブ。 2014年5月21日閲覧
  16. ^ a b c Brinkmann, Martin (2014年5月9日). 「Userscripts.orgは永久にダウン?代替案はこちら」 . 2014年5月21日閲覧
  17. ^ 「ユーザースクリプトホスティング」 2014年5月16日. 2014年5月21日閲覧
  18. ^ 「公式ユーザースクリプトサイトを変更してください」 greasemonkey -dev(メーリングリスト)2014年4月21日。 2014年5月21日閲覧
  19. ^ a b "OpenUserJS" . openuserjs.org .
  20. ^ a b「インストール数の修正 – 6ページ」。2013年4月1日。 2013年11月3日時点のオリジナルよりアーカイブ。 2015年11月5日閲覧
  21. ^ a b「Greasy Fork」 . greasyfork.org .
  22. ^ Barnabe, Jason (2014年2月19日). 「Introducing Greasy Fork – a user scripts site」 . 2015年11月5日閲覧
  23. ^ 「XPCNativeWrapper – MDC Docs」2011年6月28日時点のオリジナルよりアーカイブ2011年3月16日閲覧。
  24. ^ 「ユーザースクリプトホスティング – GreaseSpot Wiki」 . wiki.greasespot.net . 2019年7月22日閲覧
  25. ^ "Greasemonkey" . mozdev.org . mozdev . 2015年4月23日時点のオリジナルよりアーカイブ2009年5月5日閲覧。
  26. ^ 「Greasemonkey の SeaMonkey ポート – 概要 – OpenUserJS」 . openuserjs.org .
  27. ^ ianloic. 「Greasemonkey」 . Songbird . 2008年6月2日時点のオリジナルよりアーカイブ。 2009年5月5日閲覧
  28. ^ “ジャネクプタシジャラバシ/グリースモンキー” . GitHub 2020 年3 月 23 日に取得
  29. ^ 「GreaseMonkeyサポートの改善 · Issue #3238 · qutebrowser/qutebrowser」 . GitHub . 2020年5月19日閲覧

ウィキメディア・コモンズの Greasemonkey関連メディア