Support WebExtensions (and improve them too)

  • Supporting Chromium extensions is fine and all but is problematic, the API is already pretty limited and who knows what future will bring

    WebExtensions is an open standard (pretty much) that is not controlled by a single corporation so there's also chance Vivaldi can affect it too

    the most important pros IMO are:

    • ability to hardcode extension ID (for cross extension communication you don't have to release it to get the ID)
    • ability to have both Browser Action and Page Action in the same extension (it really is important for some of them)
    • API is promise based instead of callbacks

    what is missing IMO:

    • ability to granually unblock ContentScripts to run on specified extensions, internal pages and "safety list" pages
    • ability to granually block ContentScripts from running on certain pages (adding new positions to safety list)
    • more events on Browser and Page Actions (besides Click I'd like to see Middle Click, Secondary Click and Hold actions)
    • ability to add Dropdown arrow to Browser Action buttons

    the first two missing features can be added without affecting existing extensions in any way and would just work, two remaining ones would need to be approved and included in standard by extending the exposed interfaces

  • Moderator

    @zakius Regarding promise-based development - As part of the next version of web extensions, chrome aims to support this in some way:

  • @LonM All my extension code is promise based. 😉

    I async / await everything and am so used to it that I could never go back.

    I used a heavily edited version of this: -- edited to reduce every last unnecessary byte

    You can also look at this:

  • so seeing how Google pushes changes in their extensions API despite everyone knowing it's wrong (since declarative lists are not going to cut it for third party blocking) we need this more than ever

Log in to reply

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.