#include "qwebpage.h"
#include "qwebpage_p.h"
#include "qwebframe_p.h"
+#include "qwebnetworkinterface.h"
#include "FocusController.h"
#include "FrameLoaderClientQt.h"
#include "ResourceRequest.h"
#include "SelectionController.h"
#include "PlatformScrollBar.h"
+#include "SubstituteData.h"
#include "markup.h"
#include "RenderTreeAsText.h"
return d->page;
}
+void QWebFrame::load(const QUrl &url)
+{
+ load(QWebNetworkRequest(url));
+}
+
+void QWebFrame::load(const QWebNetworkRequest &req)
+{
+ if (d->parentFrame())
+ d->page->d->insideOpenCall = true;
+
+ QUrl url = req.url();
+ QHttpRequestHeader httpHeader = req.httpHeader();
+ QByteArray postData = req.postData();
+
+ WebCore::ResourceRequest request(KURL(url.toString()));
+
+ QString method = httpHeader.method();
+ if (!method.isEmpty())
+ request.setHTTPMethod(method);
+
+ QList<QPair<QString, QString> > values = httpHeader.values();
+ for (int i = 0; i < values.size(); ++i) {
+ const QPair<QString, QString> &val = values.at(i);
+ request.addHTTPHeaderField(val.first, val.second);
+ }
+
+ if (!postData.isEmpty()) {
+ WTF::RefPtr<WebCore::FormData> formData = new WebCore::FormData(postData.constData(), postData.size());
+ request.setHTTPBody(formData);
+ }
+
+ d->frame->loader()->load(request);
+
+ if (d->parentFrame())
+ d->page->d->insideOpenCall = false;
+}
+
+void QWebFrame::setHtml(const QString &html, const QUrl &baseUrl)
+{
+ KURL kurl(baseUrl.toString());
+ WebCore::ResourceRequest request(kurl);
+ WTF::RefPtr<WebCore::SharedBuffer> data = new WebCore::SharedBuffer(reinterpret_cast<const uchar *>(html.unicode()), html.length() * 2);
+ WebCore::SubstituteData substituteData(data, WebCore::String("text/html"), WebCore::String("utf-16"), kurl);
+ d->frame->loader()->load(request, substituteData);
+}
+
+void QWebFrame::setHtml(const QByteArray &html, const QUrl &baseUrl)
+{
+ setContent(html, QString(), baseUrl);
+}
+
+void QWebFrame::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl)
+{
+ KURL kurl(baseUrl.toString());
+ WebCore::ResourceRequest request(kurl);
+ WTF::RefPtr<WebCore::SharedBuffer> buffer = new WebCore::SharedBuffer(data.constData(), data.length());
+ QString actualMimeType = mimeType;
+ if (actualMimeType.isEmpty())
+ actualMimeType = QLatin1String("text/html");
+ WebCore::SubstituteData substituteData(buffer, WebCore::String(actualMimeType), WebCore::String(), kurl);
+ d->frame->loader()->load(request, substituteData);
+}
+
QList<QWebFrame*> QWebFrame::childFrames() const
{
QList<QWebFrame*> rc;
#define QWEBFRAME_H
#include <QtCore/qobject.h>
+#include <QtCore/qurl.h>
#include "qwebkitglobal.h"
class QPainter;
class QMouseEvent;
class QWheelEvent;
+class QWebNetworkRequest;
class QWebFramePrivate;
class QWebPage;
public:
QWebPage *page() const;
+ void load(const QUrl &url);
+ void load(const QWebNetworkRequest &request);
+ void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
+ void setHtml(const QByteArray &html, const QUrl &baseUrl = QUrl());
+ void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
+
void addToJSWindowObject(const QByteArray &name, QObject *object);
QString markup() const;
QString innerText() const;
delete d;
}
-void QWebPage::open(const QUrl &url)
-{
- open(QWebNetworkRequest(url));
-}
-
-void QWebPage::open(const QWebNetworkRequest &req)
-{
- d->insideOpenCall = true;
-
- QUrl url = req.url();
- QHttpRequestHeader httpHeader = req.httpHeader();
- QByteArray postData = req.postData();
-
- WebCore::ResourceRequest request(KURL(url.toString()));
-
- QString method = httpHeader.method();
- if (!method.isEmpty())
- request.setHTTPMethod(method);
-
- QList<QPair<QString, QString> > values = httpHeader.values();
- for (int i = 0; i < values.size(); ++i) {
- const QPair<QString, QString> &val = values.at(i);
- request.addHTTPHeaderField(val.first, val.second);
- }
-
- if (!postData.isEmpty()) {
- WTF::RefPtr<WebCore::FormData> formData = new WebCore::FormData(postData.constData(), postData.size());
- request.setHTTPBody(formData);
- }
-
- mainFrame()->d->frame->loader()->load(request);
- d->insideOpenCall = false;
-}
-
QUrl QWebPage::url() const
{
return QUrl((QString)mainFrame()->d->frame->loader()->url().string());
explicit QWebPage(QWidget *parent = 0);
~QWebPage();
- // ### move to frame
- void open(const QUrl &url);
- void open(const QWebNetworkRequest &request);
-
QWebFrame *mainFrame() const;
QWebFrame *currentFrame() const;
void QWebView::load(const QUrl &url)
{
- page()->open(url);
+ page()->mainFrame()->load(url);
}
void QWebView::load(const QWebNetworkRequest &request)
{
- page()->open(request);
+ page()->mainFrame()->load(request);
}
void QWebView::setHtml(const QString &html, const QUrl &baseUrl)
{
- // #### FIXME
+ page()->mainFrame()->setHtml(html, baseUrl);
}
void QWebView::setHtml(const QByteArray &html, const QUrl &baseUrl)
{
- // #### FIXME
+ page()->mainFrame()->setHtml(html, baseUrl);
+}
+
+void QWebView::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl)
+{
+ page()->mainFrame()->setContent(data, mimeType, baseUrl);
}
QWebPageHistory *QWebView::history() const
QWebPage *page() const;
void setPage(QWebPage *page);
- // ### also offer in QWebFrame
void load(const QUrl &url);
void load(const QWebNetworkRequest &request);
void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
void setHtml(const QByteArray &html, const QUrl &baseUrl = QUrl());
+ void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
QWebPageHistory *history() const;
QWebSettings *settings() const;
+2008-01-03 Simon Hausmann <hausmann@webkit.org>
+
+ Reviewed by Lars.
+
+ Moved QWebPage::open to QWebFrame::load and added setHtml.
+
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::load):
+ (QWebFrame::setHtml):
+ (QWebFrame::setContent):
+ * Api/qwebframe.h:
+ * Api/qwebpage.cpp:
+ * Api/qwebpage.h:
+ * Api/qwebview.cpp:
+ (QWebView::load):
+ (QWebView::setHtml):
+ * Api/qwebview.h:
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::createWindow):
+ * WebCoreSupport/InspectorClientQt.cpp:
+ (WebCore::InspectorClientQt::createPage):
+
2008-01-03 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
if (!newPage)
return 0;
KURL url = request.resourceRequest().url();
- newPage->open(QUrl(url.prettyURL()));
+ newPage->mainFrame()->load(QUrl(url.prettyURL()));
return newPage->d->page;
}
return m_webPage->d->page;
m_webPage.set(new InspectorClientWebPage(m_inspectedWebPage->d->page->inspectorController()));
- m_webPage->open(QString::fromLatin1("qrc:/webkit/inspector/inspector.html"));
+ m_webPage->mainFrame()->load(QString::fromLatin1("qrc:/webkit/inspector/inspector.html"));
m_webPage->setMinimumSize(400,300);
return m_webPage->d->page;
}
+2008-01-03 Simon Hausmann <hausmann@webkit.org>
+
+ Reviewed by Lars.
+
+ Moved QWebPage::open to QWebFrame::load and added setHtml.
+
+
+ * DumpRenderTree/qt/DumpRenderTree.cpp:
+ (WebCore::DumpRenderTree::open):
+
2008-01-03 Simon Hausmann <hausmann@webkit.org>
Reviewed by Lars.
void DumpRenderTree::open(const QUrl& url)
{
resetJSObjects();
- m_page->open(url);
+ m_page->mainFrame()->load(url);
}
void DumpRenderTree::readStdin(int /* socket */)