parcel icon indicating copy to clipboard operation
parcel copied to clipboard

webextension: add support for `options_page` key

Open fregante opened this issue 11 months ago • 1 comments

🙋 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"
}

fregante avatar Jan 22 '25 13:01 fregante

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?

suyashgupta2411 avatar Apr 18 '25 09:04 suyashgupta2411