diff options
author | Luke Wilde <lukew@serenityos.org> | 2022-06-10 11:53:43 +0100 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-06-10 12:15:37 +0100 |
commit | 210c3795f92e4c76f24a6fa43d885275accfdb5d (patch) | |
tree | 2e6e671c47cb460ce7fa964db13f160eb3c4f681 /Userland | |
parent | 4c77575ec50c62c0265a53a0cd7d8b151a18e4a8 (diff) | |
download | serenity-210c3795f92e4c76f24a6fa43d885275accfdb5d.zip |
LibWeb: Apply content filter to DNS prefetch and pre-connect
Performing DNS prefetch or pre-connect on filtered URLs is wasteful,
as we would block any actual use further down the line.
A bunch of websites perform DNS prefetch and/or pre-connect to trackers
as well, for example:
```
prefetch DNS for 'https://adserver-us.adtech.advertising.com/'
prefetch DNS for 'https://secure.adnxs.com/'
prefetch DNS for 'https://bidder.criteo.com/'
prefetch DNS for 'https://static.criteo.net/'
prefetch DNS for 'https://cdn.krxd.net/'
prefetch DNS for 'https://widgets.outbrain.com/'
prefetch DNS for 'https://images.outbrain.com/'
prefetch DNS for 'https://log.outbrain.com/
prefetch DNS for 'https://amplifypixel.outbrain.com/'
prefetch DNS for 'https://odb.outbrain.com/'
prefetch DNS for 'https://js-sec.indexww.com/'
prefetch DNS for 'https://as-sec.casalemedia.com/'
prefetch DNS for 'https://as.casalemedia.com/'
prefetch DNS for 'https://sofia.trustx.org/'
prefetch DNS for 'https://c.amazon-adsystem.com/'
prefetch DNS for 'https://s.amazon-adsystem.com/'
prefetch DNS for 'https://aax.amazon-adsystem.com/'
prefetch DNS for 'https://t.teads.tv/'
prefetch DNS for 'https://beacon.krxd.net/'
pre-connect to 'https://www.google-analytics.com/'
pre-connect to 'https://www.googletagmanager.com/'
```
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp index 498286e3bd..b7bc502001 100644 --- a/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp +++ b/Userland/Libraries/LibWeb/Loader/ResourceLoader.cpp @@ -61,11 +61,21 @@ ResourceLoader::ResourceLoader(NonnullRefPtr<ResourceLoaderConnector> connector) void ResourceLoader::prefetch_dns(AK::URL const& url) { + if (ContentFilter::the().is_filtered(url)) { + dbgln("ResourceLoader: Refusing to prefetch DNS for '{}': \033[31;1mURL was filtered\033[0m", url); + return; + } + m_connector->prefetch_dns(url); } void ResourceLoader::preconnect(AK::URL const& url) { + if (ContentFilter::the().is_filtered(url)) { + dbgln("ResourceLoader: Refusing to pre-connect to '{}': \033[31;1mURL was filtered\033[0m", url); + return; + } + m_connector->preconnect(url); } |