webextension: add support for `options_page` key
🙋 feature request
Chrome supports two keys to specify the options page:
-
options_ui -
options_page
MDN reports that options_page is deprecated and so does Parcel's schema:
https://github.com/parcel-bundler/parcel/blob/53633df12ad9bba5d6ed5360e935fde8de0342fe/packages/transformers/webextension/src/schema.js#L289
However that doesn't reflect reality, Chrome does not deem the key deprecated in their docs and even Firefox eventually added support for it: https://bugzilla.mozilla.org/show_bug.cgi?id=1816960
You can find further reasoning in the bugzilla.
🤔 Expected Behavior
options_page should be equivalent to options_ui.page
😯 Current Behavior
The key is ignored and the specified options.html is not processed.
💻 manifest.json demo
{
"$schema": "https://json.schemastore.org/chrome-manifest",
"name": "options_page minimal extension",
"version": "0.0.0",
"manifest_version": 3,
"options_page": "options.html"
}
I'd like to work on implementing support for the options_page key. Based on the issue, we need to modify the extension schema validation to recognize this key alongside options_ui.page. I'll ensure it's processed during bundling with equivalent behavior to options_ui.page. The fix should be straightforward - likely requires changes to the manifest schema parser and the relevant build modules. Are there specific constraints or considerations before I start implementation?