From Google's perspective, extension are meant to be lightweight applications, with restricted access.
See Sciter. A very cool, super lightweight alternative to Electron, but unfortunately it seems like a single developer project and I could never get any of the examples to run.
What use-cases do you have in mind? like scraping?
Sciter uses quickjs and I just checked and its like 35-36x times slower than V8 JIT
Also another interesting rabbit hole is that I found Duktape in the quickjs benchmarks and I saw https://blogcpp.org/ as one of the projects within Duktape but I can't even see the project on github. We really need some better way of preserving open source stuff I guess
Not some rando's blog engine in C++, or other kinds of stupid throw-away code
Anyway <https://web.archive.org/web/20241122030659/https://github.co...> -> $(fossil clone https://code.rosaelefanten.org/blogcpp) which takes a stunning amount of time but then reports
Round-trips: 15 Artifacts sent: 0 received: 2751
Clone done, wire bytes sent: 4127 received: 124543126 remote: 2a03:4000:34:5e::1
Rebuilding repository meta-data...
100.0% complete...
Extra delta compression... none found
Vacuuming the database...
project-id: 40a055cb170ae83c46b4ed9bf3b6a60e6e541aa0
server-id: cee9059305219c887fd29c677cbafb372252518a
admin-user: mdaniel (password is "x2hEAaXUDj")
opening the new ./blogcpp.fossil repository in directory ./blogcpp...
3rdparty/ConfigParser/ConfigParser.cpp
...
project-name: BlogC++
repository: /home/runner/blogcpp.fossil
project-code: 40a055cb170ae83c46b4ed9bf3b6a60e6e541aa0
checkout: fbea390316bc3aace7de0a9ccdba90ecc1949a10 2024-12-17 22:03:16 UTC
parent: 9e604d205e7922ef1af87952fe1bebef0cbac336 2022-01-15 02:22:33 UTC
tags: trunk
comment: fuck you github (user: Cthulhux)
check-ins: 20CSS2 is closer to trivial, but CSS3 is practically a 3D game engine with all of its matrix transforms, transitions, animations, variables - not to mention all the different layout schemes (Sciter blogged about introducing display:flex and display:grid two months ago)
The most interesting part of Sciter to me is that data persistence goes way beyond localStorage (string key: string value) or filesystem API, instead it's DyBase [0][1] behind the scenes, which looks to be a very intriguing style of storing trees of data in the host language's datatype (including whatever classes you define) without mucking about with the leaky abstractions of an ORM.
[0] https://github.com/c-smile/sciter-js-sdk/blob/main/docs/md/s...
Can't imagine Firefox acquiring a Firefox fork!
I was tackling a similar problem few weeks ago and I found that playwright MCP was the most usable solution in my case. It doesn’t use an extension but it debugs the browser tabs (I guess using dev tools protocol) but I agree the experience was suboptimal
But we strongly believe that for building a good agent co-pilot we need bunch of changes at Chromium C++ code level. For example, chromium has a accessibility tree for every website, but doesn't expose it as an API to chrome extension. Having access to accessibility tree would greatly improve agent execution.
We are also building bunch of changes in C++ for agents to interact with websites -- functions like click, elements with indexes. You can inject JS for doing this but it is 20-40X slower.