[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andreas.kling at nokia.com
andreas.kling at nokia.com
Wed Dec 22 15:54:07 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 61f503554b7c3fee488c8197d296e7df3166e928
Author: andreas.kling at nokia.com <andreas.kling at nokia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Nov 16 12:06:18 2010 +0000
2010-11-16 Andreas Kling <kling at webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt][WK2] Get proxy settings from environment (http[s]_proxy)
If http_proxy and/or https_proxy are set in the environment,
pass those in to QNetworkAccessManager.
* WebProcess/qt/WebProcessMainQt.cpp:
(WebKit::EnvHttpProxyFactory::EnvHttpProxyFactory):
(WebKit::EnvHttpProxyFactory::initializeFromEnvironment):
(WebKit::EnvHttpProxyFactory::queryProxy):
(WebKit::initializeProxy):
(WebKit::WebProcessMainQt):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72080 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index d67bb52..1ce3615 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -2,6 +2,22 @@
Reviewed by Kenneth Rohde Christiansen.
+ [Qt][WK2] Get proxy settings from environment (http[s]_proxy)
+
+ If http_proxy and/or https_proxy are set in the environment,
+ pass those in to QNetworkAccessManager.
+
+ * WebProcess/qt/WebProcessMainQt.cpp:
+ (WebKit::EnvHttpProxyFactory::EnvHttpProxyFactory):
+ (WebKit::EnvHttpProxyFactory::initializeFromEnvironment):
+ (WebKit::EnvHttpProxyFactory::queryProxy):
+ (WebKit::initializeProxy):
+ (WebKit::WebProcessMainQt):
+
+2010-11-16 Andreas Kling <kling at webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
[Qt][WK2] Emit windowCloseRequested signal on window.close()
Original patch by Zalan Bujtas.
diff --git a/WebKit2/WebProcess/qt/WebProcessMainQt.cpp b/WebKit2/WebProcess/qt/WebProcessMainQt.cpp
index 3695714..cb15c53 100644
--- a/WebKit2/WebProcess/qt/WebProcessMainQt.cpp
+++ b/WebKit2/WebProcess/qt/WebProcessMainQt.cpp
@@ -30,8 +30,11 @@
#include <wtf/Threading.h>
#include <QApplication>
+#include <QList>
+#include <QNetworkProxyFactory>
#include <QString>
#include <QStringList>
+#include <QUrl>
#include <QtGlobal>
#if USE(MEEGOTOUCH)
@@ -61,6 +64,71 @@ static void sleep(unsigned seconds)
#endif
#endif
+class EnvHttpProxyFactory : public QNetworkProxyFactory
+{
+public:
+ EnvHttpProxyFactory() { }
+
+ bool initializeFromEnvironment();
+
+ QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery& query = QNetworkProxyQuery());
+
+private:
+ QList<QNetworkProxy> m_httpProxy;
+ QList<QNetworkProxy> m_httpsProxy;
+};
+
+bool EnvHttpProxyFactory::initializeFromEnvironment()
+{
+ bool wasSetByEnvironment = false;
+
+ QUrl proxyUrl = QUrl::fromUserInput(qgetenv("http_proxy"));
+ if (proxyUrl.isValid() && !proxyUrl.host().isEmpty()) {
+ int proxyPort = (proxyUrl.port() > 0) ? proxyUrl.port() : 8080;
+ m_httpProxy << QNetworkProxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyPort);
+ wasSetByEnvironment = true;
+ } else
+ m_httpProxy << QNetworkProxy::NoProxy;
+
+ proxyUrl = QUrl::fromUserInput(qgetenv("https_proxy"));
+ if (proxyUrl.isValid() && !proxyUrl.host().isEmpty()) {
+ int proxyPort = (proxyUrl.port() > 0) ? proxyUrl.port() : 8080;
+ m_httpsProxy << QNetworkProxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyPort);
+ wasSetByEnvironment = true;
+ } else
+ m_httpsProxy << QNetworkProxy::NoProxy;
+
+ return wasSetByEnvironment;
+}
+
+QList<QNetworkProxy> EnvHttpProxyFactory::queryProxy(const QNetworkProxyQuery& query)
+{
+ QString protocol = query.protocolTag().toLower();
+ if (protocol == QLatin1String("http"))
+ return m_httpProxy;
+ else if (protocol == QLatin1String("https"))
+ return m_httpsProxy;
+
+ QList<QNetworkProxy> proxies;
+ proxies << QNetworkProxy::NoProxy;
+ return proxies;
+}
+
+static void initializeProxy()
+{
+ QList<QNetworkProxy> proxylist = QNetworkProxyFactory::systemProxyForQuery();
+ if (proxylist.count() == 1) {
+ QNetworkProxy proxy = proxylist.first();
+ if (proxy == QNetworkProxy::NoProxy || proxy == QNetworkProxy::DefaultProxy) {
+ EnvHttpProxyFactory* proxyFactory = new EnvHttpProxyFactory();
+ if (proxyFactory->initializeFromEnvironment()) {
+ QNetworkProxyFactory::setApplicationProxyFactory(proxyFactory);
+ return;
+ }
+ }
+ }
+ QNetworkProxyFactory::setUseSystemConfiguration(true);
+}
QWEBKIT_EXPORT int WebProcessMainQt(int argc, char** argv)
{
@@ -77,6 +145,8 @@ QWEBKIT_EXPORT int WebProcessMainQt(int argc, char** argv)
new MComponentData(argc, argv);
#endif
+ initializeProxy();
+
srandom(time(0));
JSC::initializeThreading();
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list