FF 84.0.2, GM 4.10.0
The code can be seen at GitLab. The relevant part is:
...
const doc = document.implementation.createHTMLDocument('http://www.w3.org/1999/xhtml', 'html');
console.debug("DOC CREATED")
doc.open() // <-- with GM: DOMException: The operation is insecure.
console.debug("DOC OPENED")
...
Console output:
...
DOC CREATED
DOMException: The operation is insecure.
Script works with Tampermonkey.
Got a solution from an answer to DOM parsing in JavaScript:
...
const doc = document.implementation.createHTMLDocument('http://www.w3.org/1999/xhtml', 'html');
doc.documentElement.innerHTML = page.responseText
...
instead of:
...
const doc = document.implementation.createHTMLDocument('http://www.w3.org/1999/xhtml', 'html');
doc.open()
doc.write( page.responseText )
...