Network settings in system settings
Open, Needs TriagePublic

Description

System settings contains a number of KCMs in the Network > Settings category.

Some of these settings are only relevant for apps using KIO while others may apply to other apps as well. It is not very clear which setting applies to which kind of app.

The usefulness of some of the settings is questionable as well, e.g. the default username/password for Samba shares.

Proxy:

It's not clear at first glance whether this configures the systemwide proxy or jsut for KIO. Since there is an option to use the system proxy configuration I assume it's the latter. It's also not clear to me what the difference between the "Auto Detect" button there and the "Detect proxy configuration atomatically" is.

Connection Preferences:
I assume it's only relevant for KIO. I'm not sure any of these settings are useful. There already was some discusson in T12285.

SSL Preferences:
Lives in kdelibs4support. Why? A UI for managing a systemwide certificate store is likely useful, think revoking a compromised certificate.

Cache:
Only affects kio-http's caching as far as I can see. Mostly useful for Konqueror. Konqueror has an additional settings thing that writes into the same settings: https://invent.kde.org/network/konqueror/-/blob/master/plugins/khtmlsettingsplugin/settingsplugin.cpp

Removed in https://invent.kde.org/frameworks/kio/-/merge_requests/440

Cookies:
Used by kio-http and KIO::AccessManager. Seems to be actually used by webengine-based konq.

Browser Identification:
Probably mostly relevant for Konqueror. Or is there a use case for changing the user agent for the webdav KIO slave?
Removed in https://invent.kde.org/frameworks/kio/-/merge_requests/438

Windows Shares:
Completely useless IMO. Removal proposed in https://invent.kde.org/frameworks/kio/-/merge_requests/212

A lot of it boils down to the question whether kio-http is used outside of Konqueror.

In cases where the settings are clearly only relevant for a limited subset of apps it might make sense to exclude them from systemsettings and have them only in the apps themselves.

Another idea that came up was folding stuff like proxy and timeout settings into the connection settings.

nicolasfella added a project: Plasma.
dfaure added a subscriber: dfaure.Mar 27 2021, 11:23 AM

Proxy: it's also not clear to me what the difference between the "Auto Detect" button there and the "Detect proxy configuration automatically" is.

"Auto Detect" means "look at the system env vars now, and fill the GUI from what they say.
"Detect proxy configuration automatically" means "later, whenever the user opens a connection, run a bit of javascript that will tell us what the proxy is depending on the host we're trying to reach" (the KPAC functionality)

Browser Identification:
Probably mostly relevant for Konqueror. Or is there a use case for changing the user agent for the webdav KIO slave?

Not even webengine-based Konqueror respects that setting and I assume webkit-based doesn't either.

I don't see any use for the "Browser Indentification" KCM and would propose to remove it.

alex added a subscriber: alex.May 5 2021, 8:21 PM

I don't see any use for the "Browser Indentification" KCM and would propose to remove it.

Agreed

dfaure added a comment.May 6 2021, 8:09 AM

I assume webkit-based doesn't either

That part is incorrect. The webkit-based engine did use KIO. But well, it's dead too.

nicolasfella updated the task description. (Show Details)May 6 2021, 12:01 PM
nicolasfella updated the task description. (Show Details)May 6 2021, 12:11 PM
nicolasfella updated the task description. (Show Details)
mikeljohnson updated the task description. (Show Details)May 8 2021, 8:56 AM

Regarding "Connection Preferences": even ignoring that it's probably only relevant to KIO, I don't think this stuff should be exposed to regular people (when was the last time *you* changed your timeout values?):

I feel this is something that is best left for config files, so we should hide it at least

dfaure added a comment.May 8 2021, 9:20 AM

We live in a world of fast reliable internet. I suspect people in less-well-equipped ("third world") countries might have a use for increasing timeout values so the system tries longer before giving up. But yes this was more useful when it was about your internet browsing, while now if it's just about your DAV connection....

do programs that use DAV use settings from this KCM though?

Actually forget about DAV, FTP is a better example.

kio_ftp does m_server->waitForNewConnection(q->connectTimeout() * 1000);
and SlaveBase::connectTimeout() reads from kioslaverc, which src/kcms/kio/ksaveioconfig.cpp writes to.

It's the sort of thing that is occasionally useful for some people some of the time somewhere somehow, but mostly useless for 99% of people. Perhaps there is a third option: turn it into an advanced page or a dialog accessed from another KCM. Surfacing this stuff in its current location is super overkill, but maybe we can just hide it better.

ngraham moved this task from Backlog/Planned to Sent to dev on the VDG board.May 14 2021, 4:39 PM
adjam added a subscriber: adjam.Jun 15 2021, 2:52 PM