Summary: | Amarok fails to start media playback due to systemsettings network proxy configuration | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | glaubermd <glauber.md> |
Component: | Playback/Streams | Assignee: | Will Stephenson <wstephenson> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | CC: | dantti12, glauber.md |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Debian unstable | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
glaubermd
2010-08-05 18:26:07 UTC
This is certainly not a bug in Amarok. Reassigning. Konqueror works fine with these settings (http://imagebin.ca/view/F1fbfEJS.html). Today I found that Chromium (Google Chrome) fail to read these settings too... It uses KDE's proxy configuration. I've looked into the Amarok code and it doesn't do anything special regarding proxies. It actually hopes that KIO::Slave::Http will do the right thing, but it doesn't, and so does KGet, IMO the feature to list which address shouldn't use proxy was implemented for Konqueror which probably does some trick there and what happens is that other applications don't do the same. Fixing Amarok and KGet and others seems to be wrong for me, I've looked into http slave and it seems to don't handle this case. I'm reassigning for KIO since to me it's the right place for that to be fixed. BTW probably others protocols (ftp, https) would have the same issue. The link which shows the proxy settings appears to be invalid now ; so I cannot tell what that is, but in proxy configuration in KDE is KIO specific (read: system wide) and not application specific! That means if it works for one application, it will work for all others and vise-versa. There is nothing special that Konqueror or any application for that matter can do about that... Anyhow, the debug output you showed above clearly inidicates that whatever is pulling the stream data from the network is not using KIO at all. Rather, it is most likely using Qt's QNetworkAccessManager (aka QNAM). If that is the case, KDE's network settings such as proxy setup will not be used for obvious reasons. The solution is whatever the class/module that is retrieving the data needs to make sure that it is at least using KDE's networking configuration information. There are two ways this can be done: #1. Obtain the network settings information using KProtocolManager (kdelibs/kio/kio/kprotocolmanager.*) and use them in your own network transport module... #2. If QNAM is used, then it should simply be swapped out by KIO::Integration::AccessManager which inherits from QNAM and automatically provides integration with KDE services for free. Either way, I do not know what Phonon's backend, which I assume is what Amarok uses, do ; so I cannot say what if any is the appropriate solution... I looked at Amarok's code and it is fine, it does use KIO. But you are wrong in telling the application can't change how the IO slave will behave, and in this case it is really that Konqueror is doing something since I also looked at the slaves and the code does not treat that. The code must be removed from Konqueror and put into KIO. BTW the imagebin.ca link is still fine (just opened it here). Best. (In reply to comment #6) > I looked at Amarok's code and it is fine, it does use KIO. Are you sure it uses KIO to play the stream ? So far as I can tell that will not be the case if it simply uses Phonon to directly to play a url because the backends will use their own method to obtain the stream data and hence no KIO, but since I have no clue how Amarok works, I am simply asking for verification here... If as you say it is using KIO, then please enable the KIO debug areas 7019, 7103 and 7113 and post the output here. > But you are wrong in telling the application can't change how the IO slave will > behave, and in this case it is really that Konqueror is doing something since I > also looked at the slaves and the code does not treat that. No, I am not wrong. I am telling you that proxying is not handled at the application level. It is automatically done by the scheduler using support classes such as KProtocolManager. Feel free to search for "KProtocolManager::slaveProtocol" in kdelibs/kio/kio/scheduler.cpp and also read the documentation for that function in kdelibs/kio/kio/kprotocolmanager.h. > The code must be removed from Konqueror and put into KIO. That is nonsense! You do know that I am the one that wrote the majority of the proxy support code in KDE, right ? Konqueror simply uses KIO and has not specific proxy related code. Period! > BTW the imagebin.ca link is still fine (just opened it here). Yes, that turned out to be an issue with my own dns cache... Please activate debug information for debug areas 7103, 7113 using kdebugdialog and attempt to use the service and post the resulting information here... As already pointed out, unless Amarok reimplements Phonon::AbstractMediaStream and uses the proper KIO methods to retrieve streaming content, the phonon backend themselves do NOT use KIO and hence the proxy information set in KDE will not be used in this case. Regardless, this is not a kio_http issue since proxy support work in applications other than Konqueror. For example reKonq. Reassigning this back to the amarok queue as there is nothing that can be done here. See all my prior comments. I'm going to close the bug since last time we tested this "magically" worked. I somehow tend to think this might be related to kde proxy settings only same settings when you close system settings. Best. |