MV3 Support?
Is your feature request related to a problem? Please describe. I've been using your repository and I'm really appreciating the work you've put into it. I've noticed that there currently isn't support for Manifest V3 (MV3) in the main branch. I understand that there might be reasons for this, and I'm hoping to learn more about it.
Describe the solution you'd like If it's possible and within your development plans, I would love to see support for MV3 in the main branch. I believe it could bring some additional benefits in terms of security, privacy, and performance.
Describe alternatives you've considered I've seen that there's a branch for MV3 in the repository, which is great to see. I'm curious about the status of this branch and why it hasn't been merged into the main branch yet. If there are specific challenges or issues, it would be helpful to know more about them.
Additional context I understand that maintaining a repository is a significant effort, and I appreciate all the work you've done. I believe that MV3 support could be a valuable addition, and I'm looking forward to any updates on this. Thank you for your time and consideration.
Automa actually already supported Manifest V3. All you have to do is change the chrome.manifest.json into this
chrome.manifest.json
{
"manifest_version": 3,
"name": "Automa",
"action": {
"default_popup": "popup.html",
"default_icon": "icon-128.png"
},
"background": {
"service_worker": "background.bundle.js",
"type": "module"
},
"icons": {
"128": "icon-128.png"
},
"commands": {
"open-dashboard": {
"suggested_key": {
"default": "Alt+A",
"mac": "Alt+A"
},
"description": "Open the dashboard"
},
"element-picker": {
"suggested_key": {
"default": "Alt+P",
"mac": "Alt+P"
},
"description": "Open element picker"
}
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["contentScript.bundle.js"],
"run_at": "document_start",
"match_about_blank": true,
"all_frames": true
},
{
"matches": [
"http://localhost/*",
"*://*.automa.site/*",
"*://automa.vercel.app/*"
],
"js": ["webService.bundle.js"],
"run_at": "document_start",
"all_frames": false
}
],
"optional_permissions": [
"clipboardRead",
"downloads",
"contextMenus",
"notifications",
"cookies"
],
"permissions": [
"tabs",
"proxy",
"alarms",
"storage",
"debugger",
"scripting",
"webNavigation",
"unlimitedStorage"
],
"host_permissions": [
"<all_urls>"
],
"web_accessible_resources": [
{
"resources": [
"/elementSelector.css",
"/Inter-roman-latin.var.woff2",
"/icon-128.png",
"/locales/*",
"elementSelector.bundle.js"
],
"matches": ["<all_urls>"]
}
],
"sandbox": {
"pages": ["/sandbox.html"]
},
"content_security_policy": {
"sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
}
}
However, the downside of using manifest v3 is that the dashboard popup must always be open when running a workflow.
It turns out that the behavior of V2 is that both "popup" and "background" are "background". I mistakenly thought that both are "popup". I want to implement silent flow execution to avoid the execution process being perceived by the user. It seems that I still have to do a lot of things.
Automa actually already supported Manifest V3. All you have to do is change the
chrome.manifest.jsoninto thischrome.manifest.json However, the downside of using manifest v3 is that the dashboard popup must always be open when running a workflow.
I just tried MV3. dashboard and popup must be turned on before they can be executed. Is this a limitation caused by the MV3 specification? If not, is there anything we can do to help?
Recent announcements: https://developer.chrome.com/blog/resuming-the-transition-to-mv3/
Automa actually already supported Manifest V3. All you have to do is change the
chrome.manifest.jsoninto this chrome.manifest.json However, the downside of using manifest v3 is that the dashboard popup must always be open when running a workflow.I just tried MV3. dashboard and popup must be turned on before they can be executed. Is this a limitation caused by the MV3 specification? If not, is there anything we can do to help?
Recent announcements: https://developer.chrome.com/blog/resuming-the-transition-to-mv3/
The downside of the current Automa Manifest v3 is that the dashboard needs to be always open when executing the workflow. It's because the service worker that the manifest v3 used lacks of DOM operation method and another method like URL.createObjectURL and the limit lifetime.
But, I think this issue can be resolved by using the chrome.offscreen API to execute the workflow so it doesn't need for the dashboard popup to always open, but the offscreen API only supports the runtime Extension API meaning that to use the another Extension API for doing action like opening new tab, the offscreen document need to send message to the service worker to do that action.
And the support of the inline-script execution to execute the user JS code in the Javascript Code block is kinda vague. The method that the current manifest v3 version of Automa is used to execute the inline script is "hacky", and I don't know for how long it will be supported.