Comment on page
Configure Solution settings
Customization options for the Browser Ad-Filtering Solution.
The example Android UI and the example Desktop Settings Extension come with the following settings that can be manipulated by your users.
Setting | Type | Description |
---|---|---|
Ad-blocking | Boolean | Enables or disables ad-filtering |
Acceptable Ads | Boolean | |
Subscriptions | List | Filter list subscriptions |
Allowed domains | List | Domains on which no ads will be blocked, even if ad-filtering is enabled |
Custom filters | List |
You can implement user settings according to your needs 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
To toggle ad-filtering use
setEnabled
with the appropriate bool
value:To query if ad-filtering is enabled use
isEnabled
.The following example disables adblocking:
Java
JavaScript
C++
import org.chromium.components.adblock.FilteringConfiguration;
// Creates Java handle for "adblock" configuration
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock");
adblockConfiguration.isEnabled(); // true
adblockConfiguration.setEnabled(false);
adblockConfiguration.isEnabled(); // false
chrome.eyeoFilteringPrivate.isEnabled("adblock"); // true
chrome.eyeoFilteringPrivate.setEnabled("adblock", false);
chrome.eyeoFilteringPrivate.isEnabled("adblock"); // false
#include "chrome/browser/adblock/subscription_service_factory.h"
#include "components/adblock/core/subscription/subscription_config.h"
#include "components/adblock/core/subscription/subscription_service.h"
#include "components/adblock/core/configuration/filtering_configuration.h"
auto* subscription_service =
adblock::SubscriptionServiceFactory::GetForBrowserContext(context);
auto configuration = subscription_service->GetFilteringConfiguration("adblock");
configuration->isEnabled(); // true
configuration->SetEnabled(false);
configuration->isEnabled(); // false
You can toggle Acceptable Ads by adding or removing a filter list with the Acceptable Ads URL. The following example:
- 1.checks whether Acceptable Ads are enabled
- 2.disables them
- 3.verifies that Acceptable Ads are disabled
Java
JavaScript
import org.chromium.components.adblock.FilteringConfiguration;
// Creates Java handle for "adblock" configuration
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock");
adblockConfiguration.getFilterLists().contains(FilteringConfiguration.getAcceptableAdsUrl()); // true
adblockConfiguration.removeFilterList(FilteringConfiguration.getAcceptableAdsUrl());
adblockConfiguration.getFilterLists().contains(FilteringConfiguration.getAcceptableAdsUrl()); // false
let aa_url; chrome.eyeoFilteringPrivate.getAcceptableAdsUrl() .then(url => aa_url = url) .then(() => chrome.eyeoFilteringPrivate.getFilterLists("adblock")) .then(list => list.includes(aa_url)) // true .then(() => chrome.eyeoFilteringPrivate.removeFilterList("adblock", aa_url)) .then(() => chrome.eyeoFilteringPrivate.getFilterLists("adblock")) .then(list => list.includes(aa_url)); // false
</div>
<div data-gb-custom-block data-tag="tab" data-title='C++'>
```cpp
#include "chrome/browser/adblock/subscription_service_factory.h"
#include "components/adblock/core/subscription/subscription_config.h"
#include "components/adblock/core/subscription/subscription_service.h"
#include "components/adblock/core/configuration/filtering_configuration.h"
auto* subscription_service =
adblock::SubscriptionServiceFactory::GetForBrowserContext(context);
auto configuration = subscription_service->GetFilteringConfiguration("adblock");
base::ranges::find(configuration->GetFilterLists(), AcceptableAdsUrl()) != configuration->GetFilterLists().end(); // true
configuration->RemoveFilterList(AcceptableAdsUrl());
base::ranges::find(configuration->GetFilterLists(), AcceptableAdsUrl()) != configuration->GetFilterLists().end(); // false
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
example_list
:Java
JavaScript
C++
import org.chromium.components.adblock.FilteringConfiguration;
// Creates Java handle for "adblock" configuration
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock");
URL exampleFilterList = new URL("http://example.com/example_list.txt");
adblockConfiguration.addFilterList(exampleFilterList);
adblockConfiguration.getFilterLists(); // ["http://example.com/example_list.txt", ...]
var exampleFilterList = new URL("http://example.com/example_list.txt");
chrome.eyeoFilteringPrivate.addFilterList("adblock", exampleFilterList.href);
chrome.eyeoFilteringPrivate.getFilterLists("adblock"); // ["http://example.com/example_list.txt", ...]
#include "chrome/browser/adblock/subscription_service_factory.h"
#include "components/adblock/core/subscription/subscription_config.h"
#include "components/adblock/core/subscription/subscription_service.h"
#include "components/adblock/core/configuration/filtering_configuration.h"
const GURL example_filter_list("http://example.com/example_list.txt");
auto* subscription_service =
adblock::SubscriptionServiceFactory::GetForBrowserContext(context);
auto configuration = subscription_service->GetFilteringConfiguration("adblock");
configuration->AddFilterList(example_filter_list);
configuration->GetFilterLists(); // ["http://example.com/example_list.txt", ...]
Use
addAllowedDomain
to stop filtering ads on a specific domain, and removeAllowedDomain
to resume.getAllowedDomains
returns a list of allowed domains.Java
JavaScript
C++
import org.chromium.components.adblock.FilteringConfiguration;
// Creates Java handle for "adblock" configuration
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock");
adblockConfiguration.addAllowedDomain("example.com");
adblockConfiguration.getAllowedDomains(); // ["example.com"]
adblockConfiguration.removeAllowedDomain("example.com");
adblockConfiguration.getAllowedDomains(); // []
chrome.eyeoFilteringPrivate.addAllowedDomain("adblock", "example.com");
chrome.eyeoFilteringPrivate.getAllowedDomains("adblock"); // ["example.com"]
chrome.eyeoFilteringPrivate.removeAllowedDomain("adblock", "example.com");
chrome.eyeoFilteringPrivate.getAllowedDomains("adblock"); // []
#include "chrome/browser/adblock/subscription_service_factory.h"
#include "components/adblock/core/subscription/subscription_config.h"
#include "components/adblock/core/subscription/subscription_service.h"
#include "components/adblock/core/configuration/filtering_configuration.h"
const GURL example_filter_list("http://example.com/example_list.txt");
auto* subscription_service =
adblock::SubscriptionServiceFactory::GetForBrowserContext(context);
auto configuration = subscription_service->GetFilteringConfiguration("adblock");
configuration->AddAllowedDomain("example.com");
configuration->GetAllowedDomains(); // ["example.com"]
configuration->RemoveAllowedDomain("example.com");
configuration->GetAllowedDomains(); // []
Note: Pass a domain ('example.com') as an argument, not a URL ('http://www.example.com/page.html').
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:
Java
JavaScript
C++
import org.chromium.components.adblock.FilteringConfiguration;
// Creates Java handle for "adblock" configuration
FilteringConfiguration adblockConfiguration = FilteringConfiguration.createConfiguration("adblock");
adblockConfiguration.addCustomFilter("example_domain##.example_selector");
adblockConfiguration.getCustomFilters(); // ["example_domain##.example_selector"]
adblockConfiguration.removeCustomFilter("example_domain##.example_selector");
adblockConfiguration.getCustomFilters(); // []
chrome.eyeoFilteringPrivate.addCustomFilter("adblock", "example_domain##.example_selector");
chrome.eyeoFilteringPrivate.getCustomFilters("adblock"); // ["example_domain##.example_selector"]
chrome.eyeoFilteringPrivate.removeCustomFilter("adblock", "example_domain##.example_selector");
chrome.eyeoFilteringPrivate.getCustomFilters("adblock"); // []
#include "chrome/browser/adblock/subscription_service_factory.h"
#include "components/adblock/core/subscription/subscription_config.h"
#include "components/adblock/core/subscription/subscription_service.h"
#include "components/adblock/core/configuration/filtering_configuration.h"
const GURL example_filter_list("http://example.com/example_list.txt");
auto* subscription_service =
adblock::SubscriptionServiceFactory::GetForBrowserContext(context);
auto configuration = subscription_service->GetFilteringConfiguration("adblock");
configuration->AddCustomFilter("example_domain##.example_selector");
configuration->GetCustomFilters(); // ["example_domain##.example_selector"]
configuration->RemoveCustomFilter("example_domain##.example_selector");
configuration->GetCustomFilters(); // []
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.
Java
JavaScript
import org.chromium.components.adblock.ResourceClassificationNotifier;
ResourceClassificationNotifier.getInstance().addOnAdBlockedObserver(new ResourceClassificationNotifier.AdBlockedObserver{
@Override
public void onAdAllowed(AdblockCounters.ResourceInfo info) {
// ...
}
@Override
public void onAdBlocked(AdblockCounters.ResourceInfo info) {
// ...
}
});
chrome.eyeoFilteringPrivate.onRequestAllowed.addListener(function(info) {
// ...
});
chrome.eyeoFilteringPrivate.onRequestBlocked.addListener(function(info) {
// ...
});
Last modified 1mo ago