A while ago Google announced a new API level for browser extensions, named Manifest v3. You might have heard it in the news that it will impact the ability for extensions to arbitrarily filter traffic. While this particular aspect does not affect Plasma Browser Integration, there’s still a large number of behavior and API changes that we need to adapt to, especially when it comes to tampering with a website’s content. It’s getting more urgent as Chrome will stop stop running extensions still using the old version 2 by the end of this year!
Luckily, most extension features, namely KDE Connect integration, tabs and history runner, and download monitoring could be ported quite easily. However, media controls and Share API integration needed a significant rewrite in order to work with the new restrictions imposed on us, notably it is no longer possible for an extension to inject arbitrary inline JavaScript into websites. Many thanks to Fabian Vogt for refactoring this part of the extension!
Please help test the upcoming release!
Over the past couple of days I ported Plasma Browser Integration to Manifest v3. While I believe it is working well, I need your help to give it a thorough real-world test! Here’s how you can help:
Note: You don’t need to compile anything! All that has changed is on the extension side which you load into your browser. As long as you have the plasma-browser-integration package already installed, just grab the updated source code and load the “unpacked extension” through the Extension settings page:
- Get the Plasma Browser Integration source code and use the special work/kbroulik/manifestv3 branch of the repository:
git clone https://invent.kde.org/plasma/plasma-browser-integration.git -b work/kbroulik/manifestv3
- Go to Extension settings, e.g. chrome://extensions
- Enable “Developer Settings”
- Click “Load unpacked” button
- Point it at the “extension” folder in the repository you just checked out (it’s the folder which has the manifest.json file in it)
- You should now see “Plasma Browser Integration” version 2.0 being used with an orange badge indicating it is an unpacked extension
You may now use your browser like normally, watch some videos, control them through Plasma’s Media Controller applet, send some links to your phone via KDE Connect, download some files and marvel at the progress in Plasma’s notification panel, etc.
Please give feedback on the merge request on KDE’s GitLab or hit me up on the #plasma:kde.org matrix channel! In case of errors, you might want to check the “Service Worker” console linked on the Extension page if there’s anything obvious going wrong.