Configure Solution settings
Customization options for the Browser Ad-Filtering Solution.
Available APIs
You can control the ad-filtering behavior via any of these entry points:
The C++ class
FilteringConfiguration
,The Java class
org.chromium.components.adblock.FilteringConfiguration
The Browser Extension API defined and documented in
chrome/common/extensions/api/eyeo_filtering_private.idl
API requirements
Android OS
Instance of a BrowserContextHandle required
Capabilities
Toggle ad filtering
To toggle ad filtering call setEnabled
with the appropriate bool
value:
To query if ad filtering is enabled call isEnabled
.
The following example disables ad filtering:
import org.chromium.components.adblock.FilteringConfiguration;
// Creates "adblock" configuration if does not exist yet, returns a valid handle.
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock", browserContextHandle);
adblockConfiguration.isEnabled(); // true
adblockConfiguration.setEnabled(false);
adblockConfiguration.isEnabled(); // false
Toggle Acceptable Ads
You can toggle Acceptable Ads by adding or removing a filter list with the Acceptable Ads URL. The following example:
checks whether Acceptable Ads are enabled
disables them
verifies that Acceptable Ads are disabled
import org.chromium.components.adblock.FilteringConfiguration;
// Creates "adblock" configuration if does not exist yet, returns a valid handle.
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock", browserContextHandle);
adblockConfiguration.getFilterLists().contains(FilteringConfiguration.getAcceptableAdsUrl()); // true
adblockConfiguration.removeFilterList(FilteringConfiguration.getAcceptableAdsUrl());
adblockConfiguration.getFilterLists().contains(FilteringConfiguration.getAcceptableAdsUrl()); // false
Add/Remove filter lists
Filter lists are uniquely identified by URLs from which they're downloaded.
Use addFilterList
to add and removeFilterList
to remove a filter list.
To get the list of installed subscriptions use getFilterLists
.
The following code snippet installs http://example.com/example_list.txt
:
import org.chromium.components.adblock.FilteringConfiguration;
// Creates "adblock" configuration if does not exist yet, returns a valid handle.
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock", browserContextHandle);
URL exampleFilterList = new URL("http://example.com/example_list.txt");
adblockConfiguration.addFilterList(exampleFilterList);
adblockConfiguration.getFilterLists(); // ["http://example.com/example_list.txt", ...]
Enable/Disable ad filtering on a specific domain
Use addAllowedDomain
to stop filtering ads on a specific domain, and removeAllowedDomain
to resume.
getAllowedDomains
returns a list of allowed domains.
import org.chromium.components.adblock.FilteringConfiguration;
// Creates "adblock" configuration if does not exist yet, returns a valid handle.
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock", browserContextHandle);
adblockConfiguration.addAllowedDomain("example.com");
adblockConfiguration.getAllowedDomains(); // ["example.com"]
adblockConfiguration.removeAllowedDomain("example.com");
adblockConfiguration.getAllowedDomains(); // []
Note: Pass a domain ('example.com') as an argument, not a URL ('http://www.example.com/page.html').
Add/Remove custom filters
Use addCustomFilter
to add and removeCustomFilter
to remove a single filter.
To get the list of custom filters added use getCustomFilters
.
The following code snippet installs a new filter:
import org.chromium.components.adblock.FilteringConfiguration;
// Creates "adblock" configuration if does not exist yet, returns a valid handle.
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock", browserContextHandle);
adblockConfiguration.addCustomFilter("example_domain##.example_selector");
adblockConfiguration.getCustomFilters(); // ["example_domain##.example_selector"]
adblockConfiguration.removeCustomFilter("example_domain##.example_selector");
adblockConfiguration.getCustomFilters(); // []
Subscribe for resource blocked or allowed events
There is an option to receive events when some resource is blocked or allowed. Typically, this is needed to implement a counter in the UI. Please do not subscribe if you are not going to consume these notifications, as it has a small performance penalty.
import org.chromium.components.adblock.ResourceClassificationNotifier;
ResourceClassificationNotifier.getInstance().addResourceFilteringObserver(new ResourceClassificationNotifier.ResourceFilteringObserver{
@Override
public void onRequestAllowed(ResourceFilteringCounters.ResourceInfo info) {
// ...
}
@Override
public void onRequestBlocked(ResourceFilteringCounters.ResourceInfo info) {
// ...
}
@Override
public void onPageAllowed(ResourceFilteringCounters.ResourceInfo info) {
// ...
}
@Override
public void onPopupAllowed(ResourceFilteringCounters.ResourceInfo info) {
// ...
}
@Override
public void onPopupBlocked(ResourceFilteringCounters.ResourceInfo info) {
// ...
}
});
Last updated
Was this helpful?