summaryrefslogtreecommitdiffstats
path: root/src/core/web_contents_adapter.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-06-13 10:16:32 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-06-14 10:43:10 +0200
commit939d104cc5a8208a0bef94ca14889ccd584a3526 (patch)
tree4d89c122ad5014a32cd8d4fbad6b7418944d2fb6 /src/core/web_contents_adapter.cpp
parent5a7063154520544fe19bb57af3609afef898bffb (diff)
parent6c2a111f8c82b56388abf409a61a3e0d56a52156 (diff)
Merge branch '5.7' into dev
Diffstat (limited to 'src/core/web_contents_adapter.cpp')
-rw-r--r--src/core/web_contents_adapter.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 134b5b63c..15125b9d8 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -70,6 +70,7 @@
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/favicon_status.h"
+#include "content/public/common/content_constants.h"
#include <content/public/common/drop_data.h>
#include "content/public/common/page_state.h"
#include "content/public/common/page_zoom.h"
@@ -517,7 +518,12 @@ void WebContentsAdapter::setContent(const QByteArray &data, const QString &mimeT
urlString.append(",");
urlString.append(encodedData.constData(), encodedData.length());
- content::NavigationController::LoadURLParams params((GURL(urlString)));
+ GURL dataUrlToLoad(urlString);
+ if (dataUrlToLoad.spec().size() > url::kMaxURLChars) {
+ d->adapterClient->loadFinished(false, baseUrl, false, net::ERR_ABORTED);
+ return;
+ }
+ content::NavigationController::LoadURLParams params((dataUrlToLoad));
params.load_type = content::NavigationController::LOAD_TYPE_DATA;
params.base_url_for_data_url = toGurl(baseUrl);
params.virtual_url_for_data_url = baseUrl.isEmpty() ? GURL(url::kAboutBlankURL) : toGurl(baseUrl);
@@ -1114,10 +1120,7 @@ static blink::WebDragOperationsMask toWeb(const Qt::DropActions action)
static void fillDropDataFromMimeData(content::DropData *dropData, const QMimeData *mimeData)
{
- if (mimeData->hasText())
- dropData->text = toNullableString16(mimeData->text());
- if (mimeData->hasHtml())
- dropData->html = toNullableString16(mimeData->html());
+ Q_ASSERT(dropData->filenames.empty());
Q_FOREACH (const QUrl &url, mimeData->urls()) {
if (url.isLocalFile()) {
ui::FileInfo uifi;
@@ -1125,6 +1128,12 @@ static void fillDropDataFromMimeData(content::DropData *dropData, const QMimeDat
dropData->filenames.push_back(uifi);
}
}
+ if (!dropData->filenames.empty())
+ return;
+ if (mimeData->hasHtml())
+ dropData->html = toNullableString16(mimeData->html());
+ else if (mimeData->hasText())
+ dropData->text = toNullableString16(mimeData->text());
}
void WebContentsAdapter::enterDrag(QDragEnterEvent *e, const QPoint &screenPos)