GreasemonkeyのunsafeWindow

  • Greasemonkeyのコンテキストでは,unsafeWindow=ページでのwindowオブジェクト,window=wrapされたwindowオブジェクト
  • すなわち,window.wrappedJSObject == unsafeWindow
  • unsafeWindow経由で外からGreasemonkeyAPIを叩けるので,危ない

ということなのか?
つまり,解決法としては

  • wrapperオブジェクト経由でなんとかする(unsafeWindowを使わないので,安全)
  • location.hrefに突っ込む(ページのコンテキストで実行されるため,GreasemonkeyAPIが叩けないので,安全)
  • GM_* = null;(GreasemonkeyAPIが叩けないので,安全.…本当か?)

これであってる?


参考:
FirefoxとOpera対応のUser Scriptを書くときのunsafeWindow - os0x.blog
evalの第二引数とGreasemonkeyのunsafeWindowについて - sawatのブログ
SmartLDR更新 - 素人がプログラミングを勉強していたブログ