diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/api/qwebenginecookiestore.h | 2 | ||||
-rw-r--r-- | src/core/api/qwebengineurlrequestinterceptor.h | 2 | ||||
-rw-r--r-- | src/core/api/qwebengineurlschemehandler.h | 2 | ||||
-rw-r--r-- | src/core/browser_context_adapter.cpp | 19 | ||||
-rw-r--r-- | src/core/browser_context_adapter.h | 1 | ||||
-rw-r--r-- | src/core/clipboard_qt.cpp | 4 | ||||
-rw-r--r-- | src/core/renderer/content_renderer_client_qt.cpp | 2 | ||||
-rw-r--r-- | src/core/web_contents_adapter.cpp | 14 |
8 files changed, 33 insertions, 13 deletions
diff --git a/src/core/api/qwebenginecookiestore.h b/src/core/api/qwebenginecookiestore.h index 3b7b5e89b..5001ba3a1 100644 --- a/src/core/api/qwebenginecookiestore.h +++ b/src/core/api/qwebenginecookiestore.h @@ -73,7 +73,7 @@ Q_SIGNALS: void cookieRemoved(const QNetworkCookie &cookie); private: - explicit QWebEngineCookieStore(QObject *parent = 0); + explicit QWebEngineCookieStore(QObject *parent = Q_NULLPTR); friend class QtWebEngineCore::BrowserContextAdapter; friend class QtWebEngineCore::CookieMonsterDelegateQt; Q_DISABLE_COPY(QWebEngineCookieStore) diff --git a/src/core/api/qwebengineurlrequestinterceptor.h b/src/core/api/qwebengineurlrequestinterceptor.h index fb5861c7d..6e0f93e49 100644 --- a/src/core/api/qwebengineurlrequestinterceptor.h +++ b/src/core/api/qwebengineurlrequestinterceptor.h @@ -55,7 +55,7 @@ class QWEBENGINE_EXPORT QWebEngineUrlRequestInterceptor : public QObject Q_OBJECT Q_DISABLE_COPY(QWebEngineUrlRequestInterceptor) public: - explicit QWebEngineUrlRequestInterceptor(QObject *p = 0) + explicit QWebEngineUrlRequestInterceptor(QObject *p = Q_NULLPTR) : QObject (p) { } diff --git a/src/core/api/qwebengineurlschemehandler.h b/src/core/api/qwebengineurlschemehandler.h index 5075af6d5..757c461f4 100644 --- a/src/core/api/qwebengineurlschemehandler.h +++ b/src/core/api/qwebengineurlschemehandler.h @@ -55,7 +55,7 @@ class QWebEngineUrlRequestJob; class QWEBENGINE_EXPORT QWebEngineUrlSchemeHandler : public QObject { Q_OBJECT public: - QWebEngineUrlSchemeHandler(QObject *parent = 0); + QWebEngineUrlSchemeHandler(QObject *parent = Q_NULLPTR); ~QWebEngineUrlSchemeHandler(); virtual void requestStarted(QWebEngineUrlRequestJob*) = 0; diff --git a/src/core/browser_context_adapter.cpp b/src/core/browser_context_adapter.cpp index ba9d671ae..e3b757587 100644 --- a/src/core/browser_context_adapter.cpp +++ b/src/core/browser_context_adapter.cpp @@ -104,7 +104,8 @@ void BrowserContextAdapter::setStorageName(const QString &storageName) m_name = storageName; if (m_browserContext->url_request_getter_.get()) m_browserContext->url_request_getter_->updateStorageSettings(); - m_visitedLinksManager.reset(); + if (m_visitedLinksManager) + resetVisitedLinksManager(); } void BrowserContextAdapter::setOffTheRecord(bool offTheRecord) @@ -114,7 +115,8 @@ void BrowserContextAdapter::setOffTheRecord(bool offTheRecord) m_offTheRecord = offTheRecord; if (m_browserContext->url_request_getter_.get()) m_browserContext->url_request_getter_->updateStorageSettings(); - m_visitedLinksManager.reset(); + if (m_visitedLinksManager) + resetVisitedLinksManager(); } BrowserContextQt *BrowserContextAdapter::browserContext() @@ -125,7 +127,7 @@ BrowserContextQt *BrowserContextAdapter::browserContext() WebEngineVisitedLinksManager *BrowserContextAdapter::visitedLinksManager() { if (!m_visitedLinksManager) - m_visitedLinksManager.reset(new WebEngineVisitedLinksManager(this)); + resetVisitedLinksManager(); return m_visitedLinksManager.data(); } @@ -198,7 +200,8 @@ void BrowserContextAdapter::setDataPath(const QString &path) m_dataPath = path; if (m_browserContext->url_request_getter_.get()) m_browserContext->url_request_getter_->updateStorageSettings(); - m_visitedLinksManager.reset(); + if (m_visitedLinksManager) + resetVisitedLinksManager(); } QString BrowserContextAdapter::cachePath() const @@ -339,7 +342,8 @@ void BrowserContextAdapter::setVisitedLinksPolicy(BrowserContextAdapter::Visited if (m_visitedLinksPolicy == visitedLinksPolicy) return; m_visitedLinksPolicy = visitedLinksPolicy; - m_visitedLinksManager.reset(); + if (m_visitedLinksManager) + resetVisitedLinksManager(); } int BrowserContextAdapter::httpCacheMaxSize() const @@ -500,4 +504,9 @@ bool BrowserContextAdapter::isSpellCheckEnabled() const #endif } +void BrowserContextAdapter::resetVisitedLinksManager() +{ + m_visitedLinksManager.reset(new WebEngineVisitedLinksManager(this)); +} + } // namespace QtWebEngineCore diff --git a/src/core/browser_context_adapter.h b/src/core/browser_context_adapter.h index c3c3f153d..94bc5fcde 100644 --- a/src/core/browser_context_adapter.h +++ b/src/core/browser_context_adapter.h @@ -175,6 +175,7 @@ public: private: void updateCustomUrlSchemeHandlers(); + void resetVisitedLinksManager(); QString m_name; bool m_offTheRecord; diff --git a/src/core/clipboard_qt.cpp b/src/core/clipboard_qt.cpp index cd57995ea..bd62f4872 100644 --- a/src/core/clipboard_qt.cpp +++ b/src/core/clipboard_qt.cpp @@ -285,6 +285,8 @@ void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector<base::s types->clear(); const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); + if (mimeData->hasImage()) + types->push_back(toString16(QStringLiteral("image/png"))); Q_FOREACH (const QString &mimeType, mimeData->formats()) types->push_back(toString16(mimeType)); *contains_filenames = false; @@ -328,8 +330,6 @@ void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string* result) const SkBitmap ClipboardQt::ReadImage(ui::ClipboardType type) const { - // FIXME: Untested, pasting image data seems to only be supported through - // FileReader.readAsDataURL in JavaScript and this isn't working down the pipe for some reason. const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection); QImage image = qvariant_cast<QImage>(mimeData->imageData()); diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp index 6094be847..5d1780cbe 100644 --- a/src/core/renderer/content_renderer_client_qt.cpp +++ b/src/core/renderer/content_renderer_client_qt.cpp @@ -93,8 +93,6 @@ public: blink::WebString qrcScheme(base::ASCIIToUTF16(kQrcSchemeQt)); // mark qrc as a secure scheme (avoids deprecation warnings) blink::WebSecurityPolicy::registerURLSchemeAsSecure(qrcScheme); - // mark qrc as a local scheme (allows local access to qrc) - blink::WebSecurityPolicy::registerURLSchemeAsLocal(qrcScheme); } }; diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 82d21696c..5fe7c8dc9 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" @@ -426,6 +427,12 @@ void WebContentsAdapter::initialize(WebContentsAdapterClient *adapterClient) PrintViewManagerQt::CreateForWebContents(webContents()); #endif // defined(ENABLE_BASIC_PRINTING) + // Create an instance of WebEngineVisitedLinksManager to catch the first + // content::NOTIFICATION_RENDERER_PROCESS_CREATED event. This event will + // force to initialize visited links in VisitedLinkSlave. + // It must be done before creating a RenderView. + d->browserContextAdapter->visitedLinksManager(); + // Create a RenderView with the initial empty document content::RenderViewHost *rvh = d->webContents->GetRenderViewHost(); Q_ASSERT(rvh); @@ -511,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() > content::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); |