it looks like General Method (with Extension) doesn't work. After page loaded the navigator.webdriver is true, although in extension's function it was false.
You're likely running into an extension sandboxing issue here. The content script context will be sandboxed from the page context. You'll need to inject a script
tag into the page's DOM to evaluate code outside of the sandbox. You can use methods like Document.createElement() and Node.appendChild() to create and inject the script
tag.
Edit: See Breaking Out of the Chrome/WebExtension Sandbox for a more detailed solution.
Some people had been running into sandboxing issues when using WebExtensions to inject JavaScript. We just published an article called Breaking Out of the Chrome/WebExtension Sandbox which explains how to get around the context isolation.
We can successfully use Chrome extensions now with --> options.addExtensions(await encode("chrome_ext/My-downloaded-extension.crx"). For the extension to work, I simply base64 encode the extension.
I would love to see an updated version of these articles using Chrome extensions. They are fantastic! Great job, Evan!