Two verification passes, driving real Firefox 153.0.1 under Xvfb rather than reading docs, changed several load-bearing decisions. Added back: the keyboard shortcut now acts on selected text. activeTab adds no install-prompt line (confirmed by running Firefox's own formatPermissionStrings: ["activeTab","storage","menus"] yields msgs: []), and ext-commands.js grants activeTab before firing onCommand. Records the three failure shapes of executeScript, one of which resolves silently to [null] on parent-process about: pages, and that commands.getAll() reports a suggested_key as registered even when Firefox has silently overridden it. Rejected with evidence, in Appendix B: auto-submitting the prompt. The scheme authenticated navigation provenance when auto-submit needs text provenance, and a hostile page can smuggle ~16 KB of invisible instructions into info.selectionText. webNavigation.transitionType is not a security boundary either -- the marker is consumed on commit, so an uncommitted urlbar navigation leaves it armed for the next navigation to inherit (demonstrated at 10.47s), and its freshness guard is dead code. Prefill-only keeps the human checkpoint that makes the context menu safe. Also rejected: a bundled extension page as search_url (Firefox refuses to install), and browser.omnibox -- which works and needs no permissions, but moves the transmitter of search terms from Firefox to extension code, the change that puts data_collection_permissions ["none"] at risk. Declined to minimise AMO exposure. New Risk 6 records the residual AMO question and that it should be asked before submission, since a forced searchTerms declaration would add the install line this design exists to avoid. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .gitea/workflows | ||
| docs/superpowers/specs | ||
| icons | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| LICENSE.txt | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| web-ext-config.mjs | ||
Search with ChatGPT Powered by OpenAI Firefox Extension
This extension adds ChatGPT as a configurable Firefox search provider. Type
gpt <query> in the address bar to open the query in a new ChatGPT session.
It uses no API key, custom server, or intermediary handler.
This is an unofficial extension provided by Zavage Software Inc.
See LICENSE.txt for licensing terms.
Browser Support
Firefox Desktop is the current development and release target. Chrome, Brave, other Chromium browsers, and additional WebExtension platforms may be evaluated after the Firefox feature set is more substantial; they are not current targets.
Development
Install Node.js 22 or newer, Firefox, and the locked development dependencies:
npm ci
Available commands:
npm run devlaunches the extension in a temporary Firefox profile and reloads it when files change.npm run lintvalidates the extension and treats warnings as errors.npm run buildcreatesweb-ext-artifacts/search-with-chatgpt-firefox-<version>.zip.npm testruns the same lint and build checks used by Gitea Actions.
The generated ZIP is unsigned. Use npm run dev for local testing; signing and
submission to Mozilla Add-ons remain a separate release step.
Before submitting a change, confirm that gpt <query> opens
https://chatgpt.com?q=<query>, the provider remains non-default, and it can be
configured in Firefox search settings.
Privacy Policy
This extension collects zero user data.