[RFC] Deprecate KPassivePopup
Needs ReviewPublic

Authored by nicolasfella on Jul 18 2019, 8:59 PM.

Details

Reviewers
broulik
Group Reviewers
Frameworks
Summary

KPassivePopup is hideous and broken in many ways. Currently it serves two purposes:

  1. As a fallback for when no other notification system is available. (Non-linux or when no notification daemon is running). For Windows (D21661) and macOS (D22365) we're about to get proper native notifcation support. The case where no notification daemon is running is IMHO an edge case that we don't need to support. Removing the fallback would allow to clean up the implementation and public API (for KF6) of KNotifications.
  2. Directly by applications. A guick grep over the KDE codebase found few users of it (KHTML, KDevelop, Lokalize and KTeaTime (D22542)).

Given it's brokeness and relative usefulness I propose to remove it. Since it's public API of KNotifications we obviously only can to it in KF6, so I propose to mark it as deprecated now and remove it in the KF6 transition.

Marking it as deprecated currently has a nasty side effect: Since it is still used internally (until we decide to drop the notification fallback) this results in deprecation warnings when building KNotifications. I'd be fine with not merging this patch for this reason, my main intention of this patch is to trigger a discussion about the future.

Diff Detail

Repository
R289 KNotifications
Branch
dep
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 14110
Build 14128: arc lint + arc unit
nicolasfella created this revision.Jul 18 2019, 8:59 PM
Restricted Application added a project: Frameworks. · View Herald TranscriptJul 18 2019, 8:59 PM
Restricted Application added a subscriber: kde-frameworks-devel. · View Herald Transcript
nicolasfella requested review of this revision.Jul 18 2019, 8:59 PM
nicolasfella edited the summary of this revision. (Show Details)Jul 18 2019, 9:01 PM
nicolasfella edited the summary of this revision. (Show Details)
nicolasfella added a reviewer: broulik.
aspotashev added a subscriber: aspotashev.EditedJul 18 2019, 9:07 PM

The case where no notification daemon is running is IMHO an edge case that we don't need to support.

Disagree here. I believe a lot of people don't use a notification system on Linux. If we remove KPassivePopup, some apps with stop working properly for them.

Also, even if you use Plasma, sometimes it crashes, and then you don't have a notification daemon to connect to.

kdialog also uses KPassivePopup

Given it's brokeness and relative usefulness I propose to remove it.

Seems sensible. It'll break on wayland without some work put into it.

The case where no notification daemon is running is IMHO an edge case that we don't need to support.

Disagree here. I believe a lot of people don't use a notification system on Linux. If we remove KPassivePopup, some apps with stop working properly for them.

This seems unlikely to me simply given that all the major DEs have notification systems installed by default, so the pool of people you're talking about would be limited to people using purely DIY systems or bare-bones tiling WMs. In such a case, by deliberately not installing notification stuff, those users are signaling that they don't want notifications, in which case, they should be happy to not see KPassivePopups, no? :)

Also, even if you use Plasma, sometimes it crashes, and then you don't have a notification daemon to connect to.

Then we should make it more reliable. :)

The case where no notification daemon is running is IMHO an edge case that we don't need to support.

Disagree here. I believe a lot of people don't use a notification system on Linux. If we remove KPassivePopup, some apps with stop working properly for them.

This seems unlikely to me simply given that all the major DEs have notification systems installed by default, so the pool of people you're talking about would be limited to people using purely DIY systems or bare-bones tiling WMs. In such a case, by deliberately not installing notification stuff, those users are signaling that they don't want notifications, in which case, they should be happy to not see KPassivePopups, no? :)

Of course not. If an application is designed to tell something to its user by means of a notification, then we can judge the application stops working corrently as soon as notifications are blocked. IOW, if KNotifications drops KPassivePopup support, then every application using KNotifications now requires a notification system. This is not fatal, but it limits the range of systems where a application can be used.

Also, even if you use Plasma, sometimes it crashes, and then you don't have a notification daemon to connect to.

Then we should make it more reliable. :)

Impossible. In the current design, you can always make Plasma crash with a broken custom widget.