summaryrefslogtreecommitdiffstats
path: root/WebKit/qt/Api/qwebnetworkinterface.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/qt/Api/qwebnetworkinterface.h')
-rw-r--r--WebKit/qt/Api/qwebnetworkinterface.h173
1 files changed, 173 insertions, 0 deletions
diff --git a/WebKit/qt/Api/qwebnetworkinterface.h b/WebKit/qt/Api/qwebnetworkinterface.h
new file mode 100644
index 0000000..b603e37
--- /dev/null
+++ b/WebKit/qt/Api/qwebnetworkinterface.h
@@ -0,0 +1,173 @@
+/*
+ Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef QWEBNETWORKINTERFACE_H
+#define QWEBNETWORKINTERFACE_H
+
+#include <QtCore/qobject.h>
+#include <QtCore/qurl.h>
+#include <QtNetwork/qhttp.h>
+#include <QtCore/qbytearray.h>
+
+#include "qwebkitglobal.h"
+
+#if QT_VERSION < 0x040400
+
+class QAuthenticator;
+class QNetworkProxy;
+class QSslError;
+class QWebFrame;
+class QWebNetworkJobPrivate;
+class QWebNetworkInterface;
+class QWebObjectPluginConnector;
+
+namespace WebCore {
+ class WebCoreHttp;
+ class ResourceRequest;
+ class FrameLoaderClientQt;
+}
+
+struct QWebNetworkRequestPrivate;
+class QWEBKIT_EXPORT QWebNetworkRequest
+{
+public:
+ enum Method {
+ Get,
+ Post
+ //Head
+ };
+
+ QWebNetworkRequest();
+ explicit QWebNetworkRequest(const QUrl &url, Method method = Get, const QByteArray &postData = QByteArray());
+ QWebNetworkRequest(const QWebNetworkRequest &other);
+
+ QWebNetworkRequest &operator=(const QWebNetworkRequest &other);
+ ~QWebNetworkRequest();
+
+ QUrl url() const;
+ void setUrl(const QUrl &url);
+
+ QHttpRequestHeader httpHeader() const;
+ void setHttpHeader(const QHttpRequestHeader &header) const;
+
+ QString httpHeaderField(const QString &key) const;
+ void setHttpHeaderField(const QString &key, const QString &value);
+
+ QByteArray postData() const;
+ void setPostData(const QByteArray &data);
+
+private:
+ explicit QWebNetworkRequest(const QWebNetworkRequestPrivate &priv);
+ explicit QWebNetworkRequest(const WebCore::ResourceRequest &request);
+ friend class QWebNetworkJob;
+ friend class WebCore::FrameLoaderClientQt;
+
+ QWebNetworkRequestPrivate *d;
+ friend class QWebObjectPluginConnector;
+};
+
+class QWEBKIT_EXPORT QWebNetworkJob
+{
+public:
+
+ QUrl url() const;
+ QByteArray postData() const;
+ QHttpRequestHeader httpHeader() const;
+ QWebNetworkRequest request() const;
+ QString errorString() const;
+
+ QHttpResponseHeader response() const;
+ void setResponse(const QHttpResponseHeader &response);
+ void setErrorString(const QString&);
+
+ bool cancelled() const;
+
+ void ref();
+ bool deref();
+
+ QWebNetworkInterface *networkInterface() const;
+
+ QWebFrame *frame() const;
+
+protected:
+ enum JobStatus {
+ JobCreated,
+ JobRecreated,
+ JobStarted,
+ JobReceivingData,
+ JobFinished
+ };
+
+ JobStatus status() const;
+ void setStatus(const JobStatus&);
+
+private:
+ QWebNetworkJob();
+ ~QWebNetworkJob();
+
+ friend class QWebNetworkManager;
+ friend class QWebObjectPluginConnector;
+ friend class QWebNetworkJobPrivate;
+
+ QWebNetworkJobPrivate *d;
+};
+
+class QWebNetworkInterfacePrivate;
+
+class QWEBKIT_EXPORT QWebNetworkInterface : public QObject
+{
+ Q_OBJECT
+public:
+ QWebNetworkInterface(QObject *parent = 0);
+ ~QWebNetworkInterface();
+
+ static void setDefaultInterface(QWebNetworkInterface *defaultInterface);
+ static QWebNetworkInterface *defaultInterface();
+
+ virtual void addJob(QWebNetworkJob *job);
+ virtual void cancelJob(QWebNetworkJob *job);
+
+protected:
+ void started(QWebNetworkJob*);
+ void data(QWebNetworkJob*, const QByteArray &data);
+ void finished(QWebNetworkJob*, int errorCode);
+
+signals:
+ /**
+ * Signal is emitted when an SSL error occurs.
+ */
+ void sslErrors(QWebFrame *frame, const QUrl& url, const QList<QSslError>& errors, bool *continueAnyway);
+ /**
+ * Signal is emitted when network authentication is required.
+ */
+ void authenticate(QWebFrame *frame, const QUrl& url, const QString& hostname, quint16 port, QAuthenticator *auth);
+ /**
+ * Signal is emitted when proxy authentication is required.
+ */
+ void authenticateProxy(QWebFrame *frame, const QUrl& url, const QNetworkProxy& proxy, QAuthenticator *auth);
+
+private:
+ friend class QWebNetworkInterfacePrivate;
+ friend class WebCore::WebCoreHttp;
+ QWebNetworkInterfacePrivate *d;
+};
+
+#endif
+
+#endif