So, when will we be able to use WebExtensions to modify the main UI’s scripts and DOM?
I want to add tab previews with screenshots on hover (as in vivaldi), I want to use custom history (and completely change the way the omnibar works by searching through that custom history server with fulltext indexing of all visited webpages).
When can we expect that (which is possible with existing extensions) to land in WebExtensions?
They have compatibility layers available. You don't have to wait for WebExtensions to add those features, just do it with the old APIs and switch when ready.
Not any time soon. They're aiming for maximum compatibility with Chrome extensions, and Chrome doesn't have anything like that, so I wouldn't expect it to be a priority in Firefox either.
IIRC they're also aiming for most existing extensions to still work (and working with extension authors on this). The extensions will require updating, but the base functionality won't be lost from the spin so an extension that used to work can be rewritten to still work.
The Chrome API is just a base. There's a lot of misinformation about this switch floating around. The intention is to not break existing addons.
I seem to remember them saying that they're interested in adding functionality required by the current addons though. Probably less of a priority than perfect compatibility with Chrome though.
The new multi-process architecture is fundamentally incompatible with many of their old extension APIs. The new multi-process architecture is one of their priorities (they're the last popular browser to get a multi-process architecture -- even IE has had this forever -- and it will solve many of their performance issues), and so another priority is implementing new APIs for extensions to use.
I want to add tab previews with screenshots on hover (as in vivaldi), I want to use custom history (and completely change the way the omnibar works by searching through that custom history server with fulltext indexing of all visited webpages).
When can we expect that (which is possible with existing extensions) to land in WebExtensions?