File indexing completed on 2024-05-19 05:01:23

0001 /*
0002     This file is part of the KDE project.
0003 
0004     SPDX-FileCopyrightText: 2021 Anthony Fieroni <bvbfan@abv.bg>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-or-later
0007 */
0008 
0009 #include "settings/webenginesettings.h"
0010 #include "webengineurlrequestinterceptor.h"
0011 #include "webenginepartcontrols.h"
0012 #include "navigationrecorder.h"
0013 
0014 WebEngineUrlRequestInterceptor::WebEngineUrlRequestInterceptor(QObject* parent) :
0015     QWebEngineUrlRequestInterceptor(parent)
0016 {
0017 }
0018 
0019 void WebEngineUrlRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo &info)
0020 {
0021     if (info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeImage) {
0022         if (info.requestUrl().scheme() == QLatin1String("http") && info.firstPartyUrl().scheme() == QLatin1String("https")) {
0023             info.block(true);
0024             return;
0025         }
0026         info.block(WebEngineSettings::self()->isAdFiltered(info.requestUrl().url()));
0027     }
0028     if (info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeMainFrame) {
0029         WebEnginePartControls::self()->navigationRecorder()->recordRequestDetails(info);
0030     }
0031 }