2012 07 ≪  08月 12345678910111213141516171819202122232425262728293031  ≫ 2012 09


Nightlyで今すぐGoogle Reader Full Feed Modを動かす方法

- 2012-08-24(Fri) - 

最近ブログを放置していて申し訳ありません。これは!と思う拡張機能があまり見つけられなかったり、Firefoxを使っていてトラブルも全然なかったりで、とくにネタもないまますっかり放置しちゃってます…。

さて、数日前からNightly(現在はFirefox 17相当の開発版)でGoogle Reader Full Feed Modがうまく動かなくなっています。これはFirefoxの仕様変更で、どうやらFirefox 17からchrome(Firefox本体や拡張機能など)側のオブジェクトに__exposedProps__プロパティを追加して読み取りや書き込みの許可フラグをあらかじめ明示しておかないと、その読み取りや書き込みがcontent(GreasemonkeyスクリプトやWebページなど)側からは行えない仕様になるセキュリティ対策のようです。日本語で解説してるサイトが見当たらないので、間違っていたらゴメン。

NightlyでGoogle Reader Full Feed Modを動かすにはGreasemonkeyやScriptishをいじる必要があるようです。Firefox 17がBeta版になるまでにはGreasemonkeyやScriptishの最新版が公開されて対応されると思いますが、「今すぐ動かしたい!」って方のために、GreasemonkeyとScriptishの修正箇所を書いておきます。試してみる方は自己責任でお願いします。

Greasemonkey 1.0beta7 (0.9.22ではフォルダ構成は違うけど書き換えるところは同じ)
「{e4a8a97b-f2ed-450b-b12d-ee082ba24781}.xpi」のcontent/xmlhttprequester.js

Scriptish 0.1.7
「scriptish@erikvold.com.xpi」のmodules/api/GM_xmlhttpRequester.js

Nightlyを終了してから上記のスクリプトをテキストエディタで開き、「GM_xmlhttpRequester.prototype.setupRequestEvent =」で検索してその5行ほど下にある

      var responseState = {
// Can't support responseXML because security won't
// let the browser call properties on it.
responseText: req.responseText,

      var responseState = {
__exposedProps__: {
finalUrl: "r",
readyState: "r",
responseHeaders: "r",
responseText: "r",
status: "r",
statusText: "r"
},
// Can't support responseXML because security won't
// let the browser call properties on it.
responseText: req.responseText,

に変更して保存。2~9行目の部分を追加しただけです。保存後、.xpiの更新をお忘れなく。

"r"は「読み取り許可」のことで、これで問題ないと思いますが、もし書き込みも必要なほかのGreasemonkeyスクリプトがあれば"rw"(読み取り&書き込みを許可)にしてください。responseTextなどは読み取り専用だと思うので"rw"にする必要はないでしょう。

これで少なくとも全文の読み込みは問題なく行えるはず。Google Reader Full Feed Mod以外にも、AutoPagerizeなど、GM_xmlhttpRequestを使っているGreasemonkeyスクリプトも動くようになると思います。

スポンサーサイト
この記事のURL | Greasemonkey | コメント(1) | トラックバック(1) | ▲ top
 
| メイン |