Firefoxでscrapbox.io上のTamperMonkeyUserScriptが動かなくなった→@unwrapを設定する
まとめ
scrapbox.io@FirefoxでTamperMonkeyUserScriptを動かすときは、@unwrap (TamperMonkey)を追加する
拡張機能のversionも上げておく
unsafeWindowを使えるようにする方法は見つけられなかった
2022-10-01
TamperMonkeyをFirefoxに入れ直したが、依然scrapbox.ioでUserScriptが起動しない
なにが原因なのかさっぱりだ
chromeでも試してみよう
2022-10-01 07:49:58 原因特定に成功した
@sandbox (TamperMonkey), @match (TamperMonkey), @unwrap (TamperMonkey), @noframesなど、怪しそうなoptionsを手当たり次第調べた結果、以下の設定を行うことでUserScriptを動かせるようになった
設定項目
headerに@unwrap (TamperMonkey)を入れる
(TamerMonkey v4.18.0以降)設定→全般→設定のモードを上級者にした上で、設定→セキュリティ→Content Script APIをcontent scriptにする
UserScripts APIだと、window.scrapboxにアクセスできなくなる
09:46:02 今試したら、アクセスできるようになってた……
何があったし
09:14:40 unsafeWindowを使用できない
ReferenceError: unsafeWindow is not definedが出ていることはわかった
content: script "url-info-proxy" wants to be executed inside a JavaScript-level sandbox, but this mode is currently disabled at the security settingsというメッセージモデルが、原因が不明
09:46:30 @unwrap (TamperMonkey)を外すとアクセスできるようにはなったが、UI側に編集結果が反映されない
09:48:16 @sandboxをDOMにしたら生えた!!
09:57:29 生えたけど利用できなかった。Error: Permission denied to access objectで拒否される
browser contextではなくbackground.js内のobject扱いされてしまっているのだろうか?
https://stackoverflow.com/questions/25778469/how-to-access-window-target-page-objects-when-grant-values-are-set が関係しているかも
後で読む
調べた資料
@match (TamperMonkey)関係
URL patternの書式をミスっている箇所もあったが、大本の問題とは無関係だった
https://sleepygamersmemo.blogspot.com/2018/12/match-patterns.html
https://developer.chrome.com/docs/extensions/mv2/match_patterns/
それ以外のoption
必要な情報はここと拡張機能のオプションページ、TamperMonkeyのrelease noteにしかなかった
https://www.tampermonkey.net/documentation.php
https://github.com/Tampermonkey/tampermonkey/issues/952
今回は参考にならなかった
#2022-10-01 09:51:14