From e6b846f3800eed35d31a45122f7f8c3215dc38ef Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Wed, 15 Jan 2014 19:00:59 +0100 Subject: Implement QWebEnginePage::setHtml and setContent Load a generated data: URL to carry the data. This is not as efficient as it could be but the behavior matches and this should be fine for now. Change-Id: I26ad2e5976025a3044fb03f066074ce6dd34e575 Reviewed-by: Pierre Rossi --- src/core/web_contents_adapter.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/core/web_contents_adapter.cpp') diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index ce9dccd90..108506b06 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -271,6 +271,22 @@ void WebContentsAdapter::load(const QUrl &url) d->webContents->GetView()->Focus(); } +void WebContentsAdapter::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) +{ + Q_D(WebContentsAdapter); + QByteArray encodedData = data.toPercentEncoding(); + std::string urlString("data:"); + urlString.append(mimeType.toStdString()); + urlString.append(","); + urlString.append(encodedData.constData(), encodedData.length()); + + content::NavigationController::LoadURLParams params((GURL(urlString))); + params.load_type = content::NavigationController::LOAD_TYPE_DATA; + params.base_url_for_data_url = toGurl(baseUrl); + params.can_load_local_resources = true; + d->webContents->GetController().LoadURLWithParams(params); +} + QUrl WebContentsAdapter::activeUrl() const { Q_D(const WebContentsAdapter); -- cgit v1.2.3