Services and classes
This page lists the services and classes important to the eyeo Browser Ad-Filtering Solution, as well as the role each plays in the Solution's implementation.
Services
The Solution consists of the following main KeyedService
services:
FilteringConfiguration
; allows the control of resource filtering settingsSubscriptionService
; maintains a state of available subscriptions and synchronizes it with persistent storage.ResourceClassificationRunner
; decides whether to block or allow network requests.ElementHider
; applies element hiding scripts and stylesheets on web pages.AdblockTelemetryService
; reports anonymous usage statistics to eyeo.SitekeyStorage
; extracts, validates, and stores SiteKeys from response headers.
Important Chromium classes
The following Chromium classes play an important role in the Solution's implementation:
RenderFrameHost
; allows finding the frame hierarchy and executes element hiding CSS and JavaScript.WebContentsObserver
; receives page load events and injects element hiding; extended byAdblockWebContentsObserver
.ChromeContentBrowserClient
; extended byAdblockChromeContentBrowserClient
in order to set up an internal proxy for inspecting network requests.
Mapping to Chromium processes and threads
The Solution's logic executes primarily in the Browser process. The only exception is code under third_party/blink/renderer/core/exported/web_document.cc
that injects element hiding stylesheets into the website - this runs in a Renderer process.
In the Browser process, code that might take a long time to execute runs asynchronously in the ThreadPool. Examples of such code:
Classification of network requests
Preparing element hiding selectors
Conversion/serialization of filter lists
Loading installed filter lists from disk
Last updated