Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package plasma6-browser-integration for
openSUSE:Factory checked in at 2025-06-18 15:54:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plasma6-browser-integration (Old)
and /work/SRC/openSUSE:Factory/.plasma6-browser-integration.new.19631
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma6-browser-integration"
Wed Jun 18 15:54:24 2025 rev:24 rq:1285736 version:6.4.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/plasma6-browser-integration/plasma6-browser-integration.changes
2025-05-08 18:21:44.700465684 +0200
+++
/work/SRC/openSUSE:Factory/.plasma6-browser-integration.new.19631/plasma6-browser-integration.changes
2025-06-18 15:55:08.001697607 +0200
@@ -1,0 +2,38 @@
+Thu Jun 12 10:37:44 UTC 2025 - Fabian Vogt <[email protected]>
+
+- Update to 6.4.0:
+ * New bugfix release
+ * For more details see https://kde.org/announcements/plasma/6/6.4.0
+- Changes since 6.3.91:
+ * Update version for new release 6.4.0
+
+-------------------------------------------------------------------
+Thu May 29 21:20:57 UTC 2025 - Fabian Vogt <[email protected]>
+
+- Update to 6.3.91:
+ * New bugfix release
+ * For more details see https://kde.org/announcements/plasma/6/6.3.91
+- Changes since 6.3.90:
+ * Update version for new release 6.3.91
+
+-------------------------------------------------------------------
+Mon May 19 19:35:53 UTC 2025 - Fabian Vogt <[email protected]>
+
+- Update to 6.3.90:
+ * New feature release
+ * For more details see https://kde.org/announcements/plasma/6/6.3.90
+- Changes since 6.3.5:
+ * update version for new release
+ * feat: add librewolf support (kde#476967)
+ * Purpose plugin: Reject share if model has no items
+ * feat[flatpak-integrator]: add support for flatpak chromium variants
+ * feat[flatpak-integrator]: add support for variants
+ * Remove unused PROJECT_VERSION_MAJOR cmake variable
+ * flatpak-integrator: use more sophisticated code to pass around fds
(kde#500000)
+ * CI: Add linux-qt6-next build
+ * Add missing include for flatpak-integrator plugin
+ * Use the XSI version of strerror_r when the GNU version isn't available
+ * Add xml/yaml linting
+ * update version for new release
+
+-------------------------------------------------------------------
Old:
----
plasma-browser-integration-6.3.5.tar.xz
plasma-browser-integration-6.3.5.tar.xz.sig
New:
----
plasma-browser-integration-6.4.0.tar.xz
plasma-browser-integration-6.4.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plasma6-browser-integration.spec ++++++
--- /var/tmp/diff_new_pack.wzfwHU/_old 2025-06-18 15:55:08.917735604 +0200
+++ /var/tmp/diff_new_pack.wzfwHU/_new 2025-06-18 15:55:08.917735604 +0200
@@ -16,8 +16,8 @@
#
-%define kf6_version 6.10.0
-%define qt6_version 6.7.0
+%define kf6_version 6.14.0
+%define qt6_version 6.8.0
%define rname plasma-browser-integration
@@ -29,14 +29,14 @@
# Latest ABI-stable Plasma (e.g. 6.0 in KF6, but 6.0.80 in KUF)
%{!?_plasma6_version: %define _plasma6_version %(echo %{_plasma6_bugfix} | awk
-F. '{print $1"."$2}')}
Name: plasma6-browser-integration
-Version: 6.3.5
+Version: 6.4.0
Release: 0
Summary: Helper for the KDE Plasma Browser Integration
License: GPL-3.0-or-later
URL: https://www.kde.org
-Source:
https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz
+Source: %{rname}-%{version}.tar.xz
%if %{with released}
-Source1:
https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz.sig
+Source1: %{rname}-%{version}.tar.xz.sig
Source2: plasma.keyring
%endif
BuildRequires: kf6-extra-cmake-modules >= %{kf6_version}
@@ -103,6 +103,9 @@
mv %{buildroot}%{_prefix}/lib/mozilla %{buildroot}%{_libdir}
fi
+# Doesn't exist in openSUSE
+rm -r %{buildroot}%{_prefix}/lib/librewolf
+
%find_lang %{name} --all-name
%files
++++++ plasma-browser-integration-6.3.5.tar.xz ->
plasma-browser-integration-6.4.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/plasma-browser-integration-6.3.5/.gitlab-ci.yml
new/plasma-browser-integration-6.4.0/.gitlab-ci.yml
--- old/plasma-browser-integration-6.3.5/.gitlab-ci.yml 2025-05-06
19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/.gitlab-ci.yml 2025-06-12
11:01:44.000000000 +0200
@@ -5,3 +5,6 @@
- project: sysadmin/ci-utilities
file:
- /gitlab-templates/linux-qt6.yml
+ - /gitlab-templates/xml-lint.yml
+ - /gitlab-templates/yaml-lint.yml
+ - /gitlab-templates/linux-qt6-next.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/plasma-browser-integration-6.3.5/.kde-ci.yml
new/plasma-browser-integration-6.4.0/.kde-ci.yml
--- old/plasma-browser-integration-6.3.5/.kde-ci.yml 2025-05-06
19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/.kde-ci.yml 2025-06-12
11:01:44.000000000 +0200
@@ -2,8 +2,8 @@
# SPDX-License-Identifier: CC0-1.0
Dependencies:
-- 'on': ['@all']
- 'require':
+ - 'on': ['@all']
+ 'require':
'frameworks/extra-cmake-modules': '@latest-kf6'
'frameworks/kio': '@latest-kf6'
'frameworks/ki18n': '@latest-kf6'
@@ -22,4 +22,4 @@
'plasma/plasma-activities': '@latest-kf6' # Different branch scheme due to
being a former Framework
Options:
- require-passing-tests-on: [ 'Linux', 'FreeBSD']
+ require-passing-tests-on: ['Linux', 'FreeBSD']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/plasma-browser-integration-6.3.5/CMakeLists.txt
new/plasma-browser-integration-6.4.0/CMakeLists.txt
--- old/plasma-browser-integration-6.3.5/CMakeLists.txt 2025-05-06
19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/CMakeLists.txt 2025-06-12
11:01:44.000000000 +0200
@@ -1,11 +1,10 @@
cmake_minimum_required(VERSION 3.16)
-set(PROJECT_VERSION "6.3.5")
-set(PROJECT_VERSION_MAJOR 6)
+set(PROJECT_VERSION "6.4.0")
project(plasma-browser-integration VERSION ${PROJECT_VERSION})
-set(PROJECT_DEP_VERSION "6.3.5")
+set(PROJECT_DEP_VERSION "6.4.0")
set(QT_MIN_VERSION "6.6.0")
set(KF6_MIN_VERSION "6.8.0")
@@ -75,6 +74,9 @@
set(MOZILLA_DIR "${CMAKE_INSTALL_PREFIX}/lib/mozilla" CACHE STRING "Mozilla
directory")
add_feature_info(MOZILLA_DIR On "Mozilla directory is '${MOZILLA_DIR}'")
+set(LIBREWOLF_DIR "${CMAKE_INSTALL_PREFIX}/lib/librewolf" CACHE STRING
"LibreWolf directory")
+add_feature_info(LIBREWOLF_DIR On "LibreWolf directory is '${LIBREWOLF_DIR}'")
+
add_subdirectory(host)
add_subdirectory(reminder)
add_subdirectory(flatpak-integrator)
@@ -102,9 +104,12 @@
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.chrome_integration.json DESTINATION
${KDE_INSTALL_FULL_SYSCONFDIR}/opt/edge/native-messaging-hosts/ RENAME
org.kde.plasma.browser_integration.json)
# firefox
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.firefox_integration.json DESTINATION
${MOZILLA_DIR}/native-messaging-hosts/ RENAME
org.kde.plasma.browser_integration.json)
+# LibreWolf
+install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.firefox_integration.json DESTINATION
${LIBREWOLF_DIR}/native-messaging-hosts/ RENAME
org.kde.plasma.browser_integration.json)
if (COPY_MESSAGING_HOST_FILE_HOME)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.firefox_integration.json DESTINATION
$ENV{HOME}/.mozilla/native-messaging-hosts/ RENAME
org.kde.plasma.browser_integration.json)
+ install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.firefox_integration.json DESTINATION
$ENV{HOME}/.librewolf/native-messaging-hosts/ RENAME
org.kde.plasma.browser_integration.json)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.chrome_integration.json DESTINATION
$ENV{HOME}/.config/chromium/NativeMessagingHosts/ RENAME
org.kde.plasma.browser_integration.json)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.chrome_integration.json DESTINATION
$ENV{HOME}/.config/google-chrome/NativeMessagingHosts/ RENAME
org.kde.plasma.browser_integration.json)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/org.kde.plasma.chrome_integration.json DESTINATION
$ENV{HOME}/.config/microsoft-edge/NativeMessagingHosts/ RENAME
org.kde.plasma.browser_integration.json)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/extension/_locales/ar/messages.json
new/plasma-browser-integration-6.4.0/extension/_locales/ar/messages.json
--- old/plasma-browser-integration-6.3.5/extension/_locales/ar/messages.json
2025-05-06 19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/extension/_locales/ar/messages.json
2025-06-12 11:01:44.000000000 +0200
@@ -36,7 +36,7 @@
"message": "افتح في ”$1“"
},
"kdeconnect_open_via": {
- "message": "افتح في «كِيدِي المتّصل»"
+ "message": "افتح في «جسر كِيدِي»"
},
"options_about_bugs": {
"message": "إن وجدت مشكلة من فضلك راجِع <a href=\"$1\">قائمة العلل
المفتوحة</a> ثمّ <a href=\"$2\">افتح بلاغًا عن علة</a>."
@@ -102,10 +102,10 @@
"message": "ابحث عبر تأريخ المتصفّح"
},
"options_plugin_kdeconnect_description": {
- "message": "تُضيف هذه الملحقة مُدخلًا في قائمة السياق للروابط، فتتيح
لك إرسالها إلى هاتفك وغيرها من أجهزة مقترنة عبر <a href=\"$1\">«كِيدِي
المتّصل»</a>."
+ "message": "تُضيف هذه الملحقة مُدخلًا في قائمة السياق للروابط، فتتيح
لك إرسالها إلى هاتفك وغيرها من أجهزة مقترنة عبر <a href=\"$1\">«جسر
كِيدِي»</a>."
},
"options_plugin_kdeconnect_title": {
- "message": "أرسِل عبر «كِيدِي المتّصل»"
+ "message": "أرسِل عبر «جسر كِيدِي»"
},
"options_plugin_mpris_description": {
"message": "تُتيح لك التحكّم بمشّغلات الصوت والفديو في المواقع
باستعمال بلازمويد ”متحكّم الوسائط“."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/extension/_locales/de/messages.json
new/plasma-browser-integration-6.4.0/extension/_locales/de/messages.json
--- old/plasma-browser-integration-6.3.5/extension/_locales/de/messages.json
2025-05-06 19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/extension/_locales/de/messages.json
2025-06-12 11:01:44.000000000 +0200
@@ -69,7 +69,7 @@
"message": "Übersetzt von: $1"
},
"options_about_translators": {
- "message": "Deutsches KDE-Übersetzerteam"
+ "message": "Deutsches KDE-Übersetzungsteam"
},
"options_heading_krunner": {
"message": "Plasma-Suche"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/extension/_locales/es/messages.json
new/plasma-browser-integration-6.4.0/extension/_locales/es/messages.json
--- old/plasma-browser-integration-6.3.5/extension/_locales/es/messages.json
2025-05-06 19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/extension/_locales/es/messages.json
2025-06-12 11:01:44.000000000 +0200
@@ -120,7 +120,7 @@
"message": "Controles multimedia"
},
"options_plugin_purpose_description": {
- "message": "Añade una entrada de menú de contexto «Compartir...» y
permite que los sitios web abran un diálogo para compartir contenido usando la
API de Web Share."
+ "message": "Añade una entrada de menú de contexto «Compartir…» y
permite que los sitios web abran un diálogo para compartir contenido usando la
API de Web Share."
},
"options_plugin_purpose_title": {
"message": "Compartir contenido"
@@ -165,7 +165,7 @@
"message": "Se necesitan permisos adicionales"
},
"purpose_share": {
- "message": "Compartir..."
+ "message": "Compartir…"
},
"purpose_share_failed_text": {
"message": "No se puede compartir esta contenido: $1"
@@ -180,6 +180,6 @@
"message": "Contenido compartido"
},
"store_description": {
- "message": "Multitarea eficiente mediante el control de las funciones
del navegador desde el escritorio, incluso cuando Chrome está en segundo plano.
Gestión de la reproducción de sonido y de vídeo, comprobación de descargas en
el área de notificaciones, envío de archivos al teléfono móvil mediante KDE
Connect y mucho más desde el escritorio Plasma de KDE.\\n\\nEl paquete
«plasma-browser-integration» debe estar instalado para que esta extensión
funcione. Debería estar disponible en el gestor de paquetes de su distribución
al ejecutar Plasma 5.13 o posterior.\\n\\nNOTA: Esta extensión no está
disponible en Debian."
+ "message": "Multitask efficiently by controlling browser functions
from the desktop, even while Chrome is in the background. Manage audio and
video playback, check downloads in the notification area, send files to your
phone using KDE Connect and more inside the KDE Plasma Desktop!\\n\\nThe
plasma-browser-integration package must be installed for this extension to
work. It should be available from your distribution's package manager when
running Plasma 5.13 or later.\\n\\nNOTE: This extension is not supported on
Debian."
}
}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/extension/_locales/it/messages.json
new/plasma-browser-integration-6.4.0/extension/_locales/it/messages.json
--- old/plasma-browser-integration-6.3.5/extension/_locales/it/messages.json
2025-05-06 19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/extension/_locales/it/messages.json
2025-06-12 11:01:44.000000000 +0200
@@ -81,7 +81,7 @@
"message": "Questo può interferire con l'aspetto di siti web che
applicano già uno stile personalizzato alla proprie barre di scorrimento."
},
"options_plugin_breezeScrollBars_title": {
- "message": "Usa barre di scorrimento in stile Breeze"
+ "message": "Usa barre di scorrimento in stile Brezza"
},
"options_plugin_downloads_addToRecentDocuments": {
"message": "Aggiungi i file scaricati ai documenti recenti"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/flatpak-integrator/browserintegrationflatpakintegrator.json
new/plasma-browser-integration-6.4.0/flatpak-integrator/browserintegrationflatpakintegrator.json
---
old/plasma-browser-integration-6.3.5/flatpak-integrator/browserintegrationflatpakintegrator.json
2025-05-06 19:58:27.000000000 +0200
+++
new/plasma-browser-integration-6.4.0/flatpak-integrator/browserintegrationflatpakintegrator.json
2025-06-12 11:01:44.000000000 +0200
@@ -2,6 +2,7 @@
"KPlugin": {
"Description": "Automatically enables support for Firefox Flatpak",
"Description[ar]": "تمكين الدعم لفيرفوكس إصدارة فلاتباك تلقائيًا",
+ "Description[az]": "Firefox Flatpak ilə inteqrasiyanı avtomatik aktiv
edir",
"Description[bg]": "Автоматично активира поддръжката на Firefox
Flatpak",
"Description[ca@valencia]": "Activa automàticament el suport per a
Flatpak de Firefox",
"Description[ca]": "Activa automàticament el suport per al Flatpak del
Firefox",
@@ -14,16 +15,18 @@
"Description[he]": "הפעלת תמיכה אוטומטית ב־Flatpak של Firefox",
"Description[hu]": "Támogatás automatikus bekapcsolása Firefox Flatpak
verziójához",
"Description[ia]": "Habilita automaticamente le supporto perFirefox
Flatpack",
+ "Description[is]": "Virkjar sjálfkrafa stuðning við Firefox Flatpak",
"Description[it]": "Abilita automaticamente il supporto per Firefox
Flatpak",
"Description[ka]": "ავტომატურად ჩართავს Firefox Flatpak-ის
მხარდაჭერას",
"Description[ko]": "자동으로 Firefox Flatpak 지원 활성화",
"Description[lt]": "Automatiškai įjungia Firefox Flatpak palaikymą",
+ "Description[lv]": "Automātiski ieslēdz „Firefox“ „Flatpak“ versijas
atbalstu",
"Description[nl]": "Schakelt automatisch ondersteuning voor Firefox
Flatpak in",
+ "Description[nn]": "Slå automatisk på støtte for Firefox Flatpak",
"Description[pl]": "Włącza obsługę Flatpaka z Firefoksem",
"Description[pt_BR]": "Habilita automaticamente o suporte para Firefox
flatpak",
"Description[ru]": "Автоматическая активация поддержки браузера
Firefox в формате самодостаточного пакета Flatpak",
"Description[sa]": "स्वयमेव Firefox Flatpak इत्यस्य समर्थनं सक्षमं
करोति",
- "Description[sk]": "Automaticky povolí podporu pre Firefox Flatpak",
"Description[sl]": "Samodejno omogoči podporo za Firefox Flatpak",
"Description[sv]": "Aktiverar automatiskt stöd för Firefox Flatpak",
"Description[tr]": "Firefox Flatpak için kendiliğinden desteği
etkinleştirir",
@@ -33,6 +36,7 @@
"Description[zh_TW]": "自動啟用對 Flatpak 版 Firefox 的支援",
"Name": "Plasma Browser Integration Flatpak Integration",
"Name[ar]": "تكامل متصفح البلازما مع فلاتباك",
+ "Name[az]": "Flatpak paketində quraşdırılmış Firefox ilə inteqrasiya",
"Name[bg]": "Интеграция на Flatpak за браузър интеграция в Plasma",
"Name[ca@valencia]": "Integració de Flatpak de la integració del
navegador amb Plasma",
"Name[ca]": "Integració del Flatpak de la integració del navegador amb
el Plasma",
@@ -45,11 +49,14 @@
"Name[he]": "שילוב פלזמה ודפדפן ב־Flatpak",
"Name[hu]": "Plasma böngészőintegráció Flatpak integráció",
"Name[ia]": "Plasma Browser Integration Flatpack Integration
(Integration de Flatpak de integration de navigator de Plasma)",
+ "Name[is]": "Flatpak-samþætting fyrir vafrasamþættingu Plasma",
"Name[it]": "Integrazione Plasma del browser per integrazione Flatpak",
"Name[ka]": "Plasma-ის ბრაუზერის ინტეგრაცია Flatpak-ის ინტეგრაცია",
"Name[ko]": "Plasma 브라우저 통합의 Flatpak 통합",
"Name[lt]": "Plasma naršyklės integracijos Flatpak integracija",
+ "Name[lv]": "„Plasma“ pārlūka integrācijas „Flatpak“ integrācija",
"Name[nl]": "Plasma-browserintegratie Flatpak-integratie",
+ "Name[nn]": "Flatpak-integrering for nettlesarintegrering for Plasma",
"Name[pl]": "Dodanie Flatpaka z obsługą przeglądarki w Plazmie",
"Name[pt_BR]": "Integração de navegadores no Plasma, integração com
flatpak",
"Name[ru]": "Интеграция с браузером Firefox, установленного в пакете
Flatpak",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/flatpak-integrator/flatpak-host-wrapper
new/plasma-browser-integration-6.4.0/flatpak-integrator/flatpak-host-wrapper
---
old/plasma-browser-integration-6.3.5/flatpak-integrator/flatpak-host-wrapper
2025-05-06 19:58:27.000000000 +0200
+++
new/plasma-browser-integration-6.4.0/flatpak-integrator/flatpak-host-wrapper
2025-06-12 11:01:44.000000000 +0200
@@ -7,8 +7,18 @@
set -eu
-# This packs $1 and $2 into a single string for gdbus of the form "'$1',
'$2'\n"
-args=$(printf "'%s', '%s'\n" "$1" "$2")
+# Format arguments for gdbus based on whether it's Firefox (2 args) or Chrome
(1 arg)
+# See:
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging#exchanging_messages
+if [ $# -eq 2 ]; then
+ # Firefox case - pack $1 and $2 into a single string
+ args=$(printf "'%s', '%s'\n" "$1" "$2")
+elif [ $# -eq 1 ]; then
+ # Chrome case - format single argument
+ args=$(printf "'%s'\n" "$1")
+else
+ echo "Error: Expected 1 (Chrome) or 2 (Firefox) arguments but got $#" >&2
+ exit 1
+fi
# The descriptor madness needs some explaining:
# We expect the forked gdbus to pick up three descriptors from us: 3, 4, and
5, respectively presenting our
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/flatpak-integrator/plugin.cpp
new/plasma-browser-integration-6.4.0/flatpak-integrator/plugin.cpp
--- old/plasma-browser-integration-6.3.5/flatpak-integrator/plugin.cpp
2025-05-06 19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/flatpak-integrator/plugin.cpp
2025-06-12 11:01:44.000000000 +0200
@@ -115,21 +115,56 @@
Q_CLASSINFO("D-Bus Interface",
"org.kde.plasma.browser.integration.FlatpakIntegrator")
public:
+ /** Enum for different browser types, i.e. which browser they are based
on. */
+ enum BrowserBase {
+ Firefox,
+ Chrome,
+ Chromium,
+ };
+ Q_ENUM(BrowserBase)
+
+ /** Browser information structure to hold browser-specific configuration.
*/
+ struct BrowserInfo {
+ BrowserBase base;
+
+ /** The browser's Flatpak id, e.g. "org.mozilla.firefox". */
+ QString id;
+
+ /** The directory the browser expects its native messaging hosts to be
in. */
+ QString nativeMessagingHostsDir;
+ };
+
BrowserIntegrationFlatpakIntegrator(QObject *parent, const QList<QVariant>
&)
: KDEDModule(parent)
{
- auto flatpak = new QProcess(this);
- connect(flatpak, qOverload<int,
QProcess::ExitStatus>(&QProcess::finished), this, [flatpak](int,
QProcess::ExitStatus) {
- flatpak->deleteLater();
- });
- flatpak->start(u"flatpak"_s, {u"override"_s, u"--user"_s,
u"--talk-name=org.kde.plasma.browser.integration"_s, u"org.mozilla.firefox"_s});
+ // List of Flatpak browsers we support.
+ const QList<BrowserInfo> supportedBrowsers = {
+ {BrowserBase::Firefox, u"org.mozilla.firefox"_s,
u"/.mozilla/native-messaging-hosts"_s},
+ {BrowserBase::Firefox, u"io.gitlab.librewolf-community"_s,
u"/.librewolf/native-messaging-hosts"_s},
+ {BrowserBase::Chrome, u"com.google.Chrome"_s,
u"/config/google-chrome/NativeMessagingHosts"_s},
+ {BrowserBase::Chrome, u"com.google.ChromeDev"_s,
u"/config/google-chrome-unstable/NativeMessagingHosts"_s},
+ {BrowserBase::Chromium, u"org.chromium.Chromium"_s,
u"/config/chromium/NativeMessagingHosts"_s},
+ {BrowserBase::Chromium,
u"io.github.ungoogled_software.ungoogled_chromium"_s,
u"/config/chromium/NativeMessagingHosts"_s},
+ };
+
+ // Set up Flatpak permissions for each browser
+ for (const auto &browser : supportedBrowsers) {
+ auto flatpak = new QProcess(this);
+ connect(flatpak, qOverload<int,
QProcess::ExitStatus>(&QProcess::finished), this, [flatpak](int,
QProcess::ExitStatus) {
+ flatpak->deleteLater();
+ });
+ flatpak->start(u"flatpak"_s, {u"override"_s, u"--user"_s,
u"--talk-name=org.kde.plasma.browser.integration"_s, browser.id});
+ }
// Register on separate bus connection to avoid exposing other
services to the sandbox
auto connection =
QDBusConnection::connectToBus(QDBusConnection::SessionBus,
"org.kde.plasma.browser.integration"_L1);
connection.registerService("org.kde.plasma.browser.integration"_L1);
connection.registerObject("/org/kde/plasma/browser/integration"_L1,
this, QDBusConnection::ExportAllSlots);
- createMessagingHost(); // always create integration regardless of
firefox being installed so we can be ready for the browser
+ // Create messaging hosts for each supported browser
+ for (const auto &browser : supportedBrowsers) {
+ createMessagingHost(browser); // always create integration
regardless of the browser being installed so we can be ready for if it is
installed
+ }
}
public Q_SLOTS:
@@ -144,7 +179,14 @@
{
constexpr auto maxBufferSize = 1024;
thread_local std::array<char, maxBufferSize> buffer;
+#ifdef STRERROR_R_CHAR_P
return strerror_r(error, buffer.data(), buffer.size());
+#else
+ // Won't be changed by strerror_r but not const so compiler doesn't
throw an error
+ static char unknown[] = "unknown error";
+
+ return strerror_r(error, buffer.data(), buffer.size()) ? unknown :
buffer.data();
+#endif
}
int openNoSymlinks(const std::filesystem::path &path, int flags, mode_t
mode = 0)
@@ -166,28 +208,32 @@
return openat(dirfd, ".", flags | O_NOFOLLOW | O_CLOEXEC, mode);
}
- void createMessagingHost()
+ void createMessagingHost(const BrowserInfo &browser)
{
- QDir().mkpath(m_hostWrapperDir);
+ const QString hostWrapperDir = QDir::homePath() +
QStringLiteral("/.var/app/") + browser.id;
+ const QString hostWrapperName = "plasma-browser-integration-host"_L1;
+ const QString hostWrapperPath = hostWrapperDir + "/"_L1 +
hostWrapperName;
- auto hostWrapperDirFd =
openNoSymlinks(qUtf8Printable(m_hostWrapperDir), O_PATH);
+ QDir().mkpath(hostWrapperDir);
+
+ auto hostWrapperDirFd = openNoSymlinks(qUtf8Printable(hostWrapperDir),
O_PATH);
const auto closeHostWrapperDirFd = qScopeGuard([hostWrapperDirFd]() {
close(hostWrapperDirFd);
});
if (hostWrapperDirFd == -1) {
auto err = errno;
- qCWarning(INTEGRATOR) << "Failed to open hostWrapper directory."
<< m_hostWrapperDir << ":" << safe_strerror(err);
+ qCWarning(INTEGRATOR) << "Failed to open hostWrapper directory."
<< hostWrapperDir << ":" << safe_strerror(err);
return;
}
{ // host wrapper
- auto hostWrapperFd = openat(hostWrapperDirFd,
qUtf8Printable(m_hostWrapperName), O_WRONLY | O_CLOEXEC | O_CREAT | O_TRUNC |
O_NOFOLLOW, S_IRWXU);
+ auto hostWrapperFd = openat(hostWrapperDirFd,
qUtf8Printable(hostWrapperName), O_WRONLY | O_CLOEXEC | O_CREAT | O_TRUNC |
O_NOFOLLOW, S_IRWXU);
auto closeHostWrapperFd = qScopeGuard([hostWrapperFd]() {
close(hostWrapperFd);
});
if (hostWrapperFd == -1) {
auto err = errno;
- qCWarning(INTEGRATOR) << "Failed to open host wrapper file" <<
m_hostWrapperName << ":" << safe_strerror(err);
+ qCWarning(INTEGRATOR) << "Failed to open host wrapper file" <<
hostWrapperName << ":" << safe_strerror(err);
return;
}
@@ -215,7 +261,7 @@
}
{ // hosts definition
- const QString extensionDefinitionDir = m_hostWrapperDir +
"/.mozilla/native-messaging-hosts"_L1;
+ const QString extensionDefinitionDir = hostWrapperDir +
browser.nativeMessagingHostsDir;
QDir().mkpath(extensionDefinitionDir);
auto defintionsDirFd =
openNoSymlinks(qUtf8Printable(extensionDefinitionDir), O_PATH);
@@ -244,20 +290,28 @@
qCWarning(INTEGRATOR) << "Failed to open extension definition
file";
return;
}
+
QJsonObject extensionDefinitionObject({
{u"name"_s, u"org.kde.plasma.browser_integration"_s},
{u"description"_s, u"Native connector for KDE Plasma"_s},
- {u"path"_s, m_hostWrapperPath},
+ {u"path"_s, hostWrapperPath},
{u"type"_s, u"stdio"_s},
- {u"allowed_extensions"_s,
QJsonArray({u"[email protected]"_s})},
});
+
+ // Add browser-specific fields
+ if (browser.base == BrowserBase::Firefox) {
+ extensionDefinitionObject.insert(u"allowed_extensions"_s,
QJsonArray({u"[email protected]"_s}));
+ } else if (browser.base == BrowserBase::Chrome || browser.base ==
BrowserBase::Chromium) {
+ extensionDefinitionObject.insert(u"allowed_origins"_s,
+ QJsonArray({
+
u"chrome-extension://cimiefiiaegbelhefglklhhakcgmhkai/"_s,
+
u"chrome-extension://dnnckbejblnejeabhcmhklcaljjpdjeh/"_s,
+ }));
+ }
+
extensionDefinition.write(QJsonDocument(extensionDefinitionObject).toJson());
}
}
-
- const QString m_hostWrapperDir = QDir::homePath() +
"/.var/app/org.mozilla.firefox"_L1;
- const QString m_hostWrapperName = "plasma-browser-integration-host"_L1;
- const QString m_hostWrapperPath = m_hostWrapperDir + "/"_L1 +
m_hostWrapperName;
};
K_PLUGIN_FACTORY_WITH_JSON(BrowserIntegrationFlatpakIntegratorFactory,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/host/purposeplugin.cpp
new/plasma-browser-integration-6.4.0/host/purposeplugin.cpp
--- old/plasma-browser-integration-6.3.5/host/purposeplugin.cpp 2025-05-06
19:58:27.000000000 +0200
+++ new/plasma-browser-integration-6.4.0/host/purposeplugin.cpp 2025-06-12
11:01:44.000000000 +0200
@@ -177,8 +177,20 @@
debug() << "Share mime type" << mimeType << "with data" << data;
- m_menu->model()->setInputData(shareData);
- m_menu->reload();
+ auto *alternativesModel = m_menu->model();
+ alternativesModel->setInputData(shareData);
+
+ // Purpose does not tell us when it does not accept the given input data
(e.g. missing field).
+ if (alternativesModel->rowCount() == 0) {
+ qWarning() << "Failed to find any share providers for the given data";
+ // NOTE WebShare API asks not to disclose the failure to find a
provider
+ // to the caller but we can't just leave the menu dangling.
+ sendPendingReply(false,
+ {
+ {QStringLiteral("errorCode"),
QStringLiteral("INVALID_ARGUMENT")},
+ });
+ return;
+ }
m_menu->popup(QCursor::pos());
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/po/az/plasma-browser-integration-host.po
new/plasma-browser-integration-6.4.0/po/az/plasma-browser-integration-host.po
---
old/plasma-browser-integration-6.3.5/po/az/plasma-browser-integration-host.po
2025-05-06 19:58:27.000000000 +0200
+++
new/plasma-browser-integration-6.4.0/po/az/plasma-browser-integration-host.po
2025-06-12 11:01:44.000000000 +0200
@@ -1,31 +1,32 @@
-# Copyright (C) YEAR This file is copyright:
+# Copyright (C) 2025 This file is copyright:
# This file is distributed under the same license as the
plasma-browser-integration package.
#
-# Xəyyam Qocayev <[email protected]>, 2020, 2021, 2022.
+# SPDX-FileCopyrightText: 2025 X əyyam
+# SPDX-FileCopyrightText: 2025 linux <[email protected]>
msgid ""
msgstr ""
"Project-Id-Version: plasma-browser-integration\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2024-10-28 00:41+0000\n"
-"PO-Revision-Date: 2022-07-06 09:33+0400\n"
-"Last-Translator: Kheyyam <[email protected]>\n"
+"PO-Revision-Date: 2025-05-06 11:29+0400\n"
+"Last-Translator: linux <[email protected]>\n"
"Language-Team: Azerbaijani <[email protected]>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 22.04.2\n"
+"X-Generator: Lokalize 25.04.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
msgid "Your names"
-msgstr ""
+msgstr "Xəyyam Qocayev"
#, kde-format
msgctxt "EMAIL OF TRANSLATORS"
msgid "Your emails"
-msgstr ""
+msgstr "[email protected]"
#: downloadjob.cpp:138
#, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/po/es/plasma-browser-integration-host.po
new/plasma-browser-integration-6.4.0/po/es/plasma-browser-integration-host.po
---
old/plasma-browser-integration-6.3.5/po/es/plasma-browser-integration-host.po
2025-05-06 19:58:27.000000000 +0200
+++
new/plasma-browser-integration-6.4.0/po/es/plasma-browser-integration-host.po
2025-06-12 11:01:44.000000000 +0200
@@ -1,15 +1,15 @@
# Spanish translations for plasma-browser-integration-host.po package.
-# Copyright (C) 2019 This file is copyright:
+# Copyright (C) 2019-2025 This file is copyright:
# This file is distributed under the same license as the
plasma-browser-integration package.
-#
# Automatically generated, 2019.
-# SPDX-FileCopyrightText: 2019, 2021, 2024 Eloy Cuadra <[email protected]>
+#
+# SPDX-FileCopyrightText: 2019, 2021, 2024, 2025 Eloy Cuadra
<[email protected]>
msgid ""
msgstr ""
"Project-Id-Version: plasma-browser-integration-host\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2024-10-28 00:41+0000\n"
-"PO-Revision-Date: 2024-08-07 01:10+0200\n"
+"PO-Revision-Date: 2025-05-21 01:26+0100\n"
"Last-Translator: Eloy Cuadra <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
"Language: es\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/po/es/plasma-browser-integration-reminder.po
new/plasma-browser-integration-6.4.0/po/es/plasma-browser-integration-reminder.po
---
old/plasma-browser-integration-6.3.5/po/es/plasma-browser-integration-reminder.po
2025-05-06 19:58:27.000000000 +0200
+++
new/plasma-browser-integration-6.4.0/po/es/plasma-browser-integration-reminder.po
2025-06-12 11:01:44.000000000 +0200
@@ -1,15 +1,15 @@
# Spanish translations for plasma-browser-integration-reminder.po package.
-# Copyright (C) 2018 This file is copyright:
+# Copyright (C) 2018-2025 This file is copyright:
# This file is distributed under the same license as the
plasma-browser-integration package.
-#
# Automatically generated, 2018.
-# Eloy Cuadra <[email protected]>, 2018.
+#
+# SPDX-FileCopyrightText: 2018, 2025 Eloy Cuadra <[email protected]>
msgid ""
msgstr ""
"Project-Id-Version: plasma-browser-integration-reminder\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2023-06-08 02:13+0000\n"
-"PO-Revision-Date: 2018-09-16 19:55+0100\n"
+"PO-Revision-Date: 2025-05-21 01:27+0100\n"
"Last-Translator: Eloy Cuadra <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
"Language: es\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/po/pl/plasma-browser-integration-host.po
new/plasma-browser-integration-6.4.0/po/pl/plasma-browser-integration-host.po
---
old/plasma-browser-integration-6.3.5/po/pl/plasma-browser-integration-host.po
2025-05-06 19:58:27.000000000 +0200
+++
new/plasma-browser-integration-6.4.0/po/pl/plasma-browser-integration-host.po
2025-06-12 11:01:44.000000000 +0200
@@ -16,7 +16,6 @@
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 23.08.5\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/plasma-browser-integration-6.3.5/reminder/browserintegrationreminder.json
new/plasma-browser-integration-6.4.0/reminder/browserintegrationreminder.json
---
old/plasma-browser-integration-6.3.5/reminder/browserintegrationreminder.json
2025-05-06 19:58:27.000000000 +0200
+++
new/plasma-browser-integration-6.4.0/reminder/browserintegrationreminder.json
2025-06-12 11:01:44.000000000 +0200
@@ -26,7 +26,7 @@
"Description[ka]": "გაწვდით ბმულს ბრაუზერის გაფართოებაზე, თუ Plasma-ის
ბრაუზერის ინტეგრაციის ჰოსტი დაყენებულია",
"Description[ko]": "Plasma 브라우저 통합 호스트가 설치되어 있을 때 브라우저 확장 기능 설치 링크 제공",
"Description[lt]": "Pateikia nuorodą į naršyklės priedą tuo atveju,
jei yra įdiegtas Plasma naršyklės integracijos mazgas",
- "Description[lv]": "Sniedz saiti uz pārlūkprogrammas paplašinājumu, ja
ir instalēta „Plasma“ pārlūka integrācijas saimnieksistēma",
+ "Description[lv]": "Nodrošina saiti uz pārlūkprogrammas paplašinājumu,
ja ir instalēta „Plasma“ pārlūka integrācijas saimnieksistēma",
"Description[nl]": "Biedt een koppeling naar de browser-extensie als
de host voor Plasma-browserintegratie is geïnstalleerd",
"Description[nn]": "Gjev ei lenkje til nettlesarutvidinga viss vert
for integrering av Plasma-nettlesar er installert",
"Description[pl]": "Dostarcza łącze do rozszerzeń przeglądarki, jeśli
gospodarz integracji przeglądarki Plazmy został wgrany",