Eyeo Chromium SDK is a fork of the Chromium project that integrates ad-filtering capabilities. This fork serves as a Software Development Kit (SDK) for extending browsers based on Chromium.
For a detailed reasoning on why we implement our own ad-filtering solution instead of basing it in Chromium's Subresource Filter, check the corresponding decision record.
Please send any questions or report any issues to [email protected].
The ad-filtering documentation describes the available ad-blocking functionalities and how they relate to filter lists. This is done not only from a functional perspective, but also providing more in-depth details, like sequence diagrams illustrating the ad-blocking flow.
The data collection documentation describes what information is sent to the eyeo services, and our commitment to preserving user's privacy.
The settings documentation describes the interfaces to configure the ad-blocking integration.
Finally, the Architecture Decision Record documents the reasoning behind certain decisions taken during the development of eyeo Chromium SDK.
Eyeo Chromium SDK depends on several parts of Chromium, such as the following:
If you cannot include these or any other parts of Chromium in your browser, you will have to re-implement them or work around them.
The eyeo Chromium SDK APIs allow to interact with the ad-filtering engine:
- to enable/disable it,
- configure selected filter lists and filters,
- receive notifications about blocking or allowing events.
The SDK can be controlled by:
- C++ API
- Java API (on Android)
- JavaScript Extension API (on Linux, Windows, MacOS)
The SDK extends the browser's Settings UI with an "Ad blocking" section on:
- Android
- Linux, Windows, MacOS
In order to understand what settings are available and which API is best for your use case, check the settings documentation.
Follow the integration how-to to configure the ad-filtering engine. You will also find information about how to set up your application name and version.
Differences across versions are listed in the changelog.
You can also use our interdiff script to compare two git revision ranges. You can find more information in the integration how-to.
Adblock strives to follow the layered component design
You will find most of eyeo Chromium SDK specific code in the following places:
components/adblock/core
: Platform-agnostic ad filtering integrationcomponents/adblock/content
:content
dependent ad filtering integrationchrome/browser/adblock
: OS-agnostic but Chrome-specific integrationcomponents/adblock/android
: Android-specific JNI code for UIchrome/renderer/adblock
: Hooks in the Renderer process to observe Renderer-issued resource loadschrome/common/extensions
: Implementation of theadblockPrivate
Extension APIcomponents/adblock/android/java/src/org/chromium/components/adblock
: Android implementation of Settings UI
You can find how our implementation maps to Chromium's design in the design overview.
General information for developers, like options for logging, testing, etc, can be found in the developer notes.