diff --git a/messageviewer/src/viewer/webengine/loadexternalreferencesurlinterceptor/loadexternalreferencesurlinterceptor.cpp b/messageviewer/src/viewer/webengine/loadexternalreferencesurlinterceptor/loadexternalreferencesurlinterceptor.cpp index c069b0a1..667af9f0 100644 --- a/messageviewer/src/viewer/webengine/loadexternalreferencesurlinterceptor/loadexternalreferencesurlinterceptor.cpp +++ b/messageviewer/src/viewer/webengine/loadexternalreferencesurlinterceptor/loadexternalreferencesurlinterceptor.cpp @@ -1,57 +1,61 @@ /* Copyright (C) 2016-2018 Laurent Montel 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. */ #include "loadexternalreferencesurlinterceptor.h" #include using namespace MessageViewer; LoadExternalReferencesUrlInterceptor::LoadExternalReferencesUrlInterceptor(QObject *parent) : WebEngineViewer::NetworkPluginUrlInterceptorInterface(parent) { } LoadExternalReferencesUrlInterceptor::~LoadExternalReferencesUrlInterceptor() { } bool LoadExternalReferencesUrlInterceptor::interceptRequest(QWebEngineUrlRequestInfo &info) { + const QString scheme = info.requestUrl().scheme(); + if (scheme == QStringLiteral("data") + || scheme == QStringLiteral("file")) + return false; if (mAllowLoadExternalReference) { return false; } else { if (info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeImage && !info.requestUrl().isLocalFile() - && (info.requestUrl().scheme() != QLatin1String("cid"))) { + && (scheme != QLatin1String("cid"))) { return true; } } return false; } void LoadExternalReferencesUrlInterceptor::setAllowExternalContent(bool b) { mAllowLoadExternalReference = b; } bool LoadExternalReferencesUrlInterceptor::allowExternalContent() const { return mAllowLoadExternalReference; }