I'd really love to see a shootout between two people who weren't familiar with extension programming (but who have some programming knowledge) be given that task (port this github repo for a chrome extension to work and be installable on Firefox) with one person just using normal google-fu and the other person doing what you did, and watch how long it takes them.
I actually wrote a few VS Code extensions recently starting from zero knowledge of the package formatting for them, and I wonder how much different my time spent doing it would have been if I would have just asked this bot to help. There was a lot of regex involved and hell just using chatGPT to explain to me some of the ways I could be matching strings with whatever format of regex tmLanguage uses would have probably saved me a lot of googling.
This is super cool. Curious how much work it was to discern the `[blabbery omitted]` sections. Were you generally able to tell right away that they were nonsense? Or did you have to spend significant time following dead ends it recommended?
Most of the "blabbery omitted" bits are just one-paragraph summaries of the rest of the answer above. It wasn't nonsense, it was just repetitive fluff, and the README was already way too long.
ChatGPT likes mimicking its own previous style, so after it ended its first message with a paragraph like "Overall, porting a Firefox extension to Chrome is doable, but it requires knowledge of the differences...", it kept closing its following messages with similar ending summaries.
The one bit where I refer to it as "nonsensical modification suggestions" was where it suggested that, in addition to changing `chrome.runtime.connect()` to `browser.runtime.connect()`, it told me that:
- I needed to use `document.querySelector`, because Firefox does not support `document.getElementByID` (very clearly not true if you're familiar with DOM APIs)
- I needed to change `classList.add` to `classList.add`, because Chrome supports `classList.add`, but Firefox supports `classList.add` instead (yes those are the exact same thing)
It did make me think for a moment: "what, really, Firefox does not support `getElementByID`? wait, no, of course not, the bot's just saying words."
In this case, it did not get me stuck debugging anything. In other conversations, where I've tried to "play dumb" and follow exactly what it tells me to do, it has sent me down the wrong path. But if you keep telling it "no, that's not working, how can I solve <original problem>", or you give it additional information, it usually corrects course.
I've also seen it say, "well, I don't know what's going on, but the problem must be around this line of code, insert a console log here to see what's going on with this specific value", which was actually good debugging advice, and then you can paste the output of the console log to it, and it takes it into account.
The concerns I have about this is definitely being fed potentially outdated information. DOM APIs change, and Firefox may not have supported that at some point, so here we have some suggestion that's a blatantly wrong now. Same goes for any suggestions that are against best practice now, or class components or function components in React, etc.
(These are just examples of things, surely it would suggest FCs for React at this point)
I just pasted the manifest and the main script and asked it how to port it. It was basically a one-shot. Here's the port: https://github.com/unflxw/chat-gpt-google-extension
The README includes the conversation I had in order to port it. Close to zero thinking necessary. I have never worked on a browser extension before.