2021-12-11 16:34:37 +00:00
|
|
|
#include "weburlrequestinterceptor.h"
|
|
|
|
#include <QDebug>
|
2021-12-29 15:28:26 +00:00
|
|
|
#include "utils.hh"
|
2022-05-13 16:00:23 +00:00
|
|
|
#include "globalbroadcaster.h"
|
2021-12-11 16:34:37 +00:00
|
|
|
|
|
|
|
WebUrlRequestInterceptor::WebUrlRequestInterceptor(QObject *p)
|
|
|
|
:QWebEngineUrlRequestInterceptor(p)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
2021-12-31 14:11:55 +00:00
|
|
|
void WebUrlRequestInterceptor::interceptRequest( QWebEngineUrlRequestInfo &info) {
|
2022-05-13 16:00:23 +00:00
|
|
|
if( Utils::isExternalLink( info.requestUrl() ) )
|
|
|
|
{
|
|
|
|
if(!GlobalBroadcaster::instance()-> existedInWhitelist(info.requestUrl().host()))
|
|
|
|
{
|
|
|
|
info.block( true );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-31 14:11:55 +00:00
|
|
|
if (QWebEngineUrlRequestInfo::NavigationTypeLink == info.navigationType() && info.resourceType() == QWebEngineUrlRequestInfo::ResourceTypeMainFrame) {
|
2022-04-20 12:25:27 +00:00
|
|
|
//workaround to fix devtool "Switch devtool to chinese" interface was blocked.
|
|
|
|
if( info.requestUrl().scheme() == "devtools" )
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
emit linkClicked( info.requestUrl() );
|
2021-12-31 14:11:55 +00:00
|
|
|
info.block(true);
|
2021-12-29 15:28:26 +00:00
|
|
|
}
|
2021-12-11 16:34:37 +00:00
|
|
|
}
|