URL filter API
From Opera 15 onward, Opera 11 & 12’s extension format is no longer supported, and instead, we’ve switched to Chromium’s extension model. Check out our new documentation for developing extensions for Opera 15 and higher and start building your own extensions.
- opera.extension.urlfilter.block.add()
- Adds a rule to the virtual list of blocked URLs.
- opera.extension.urlfilter.block.remove()
- Removes a rule from the virtual list of blocked URLs.
- opera.extension.urlfilter.allow.add()
- Adds a rule to the virtual list of allowed URLs.
- RuleOptions.excludeDomains
- Domains on which to not apply a filter rule.
- RuleOptions.includeDomains
- Domains on which to apply a filter rule.
- RuleOptions.resources
- Resource types to apply a filter rule to.
- RuleOptions.thirdParty
- Specifies whether a filter rule should apply to third-party domains.
- URL Filter syntax
- Special characters that can be used when filtering.
Overview
The URL Filter API for Opera extensions defines a DOM interface that allows extensions to add temporary rules to Opera's native content blocker. Rules added through this API are associated with an extension and apply as long as the extension is enabled. Once an extension is disabled or the browser is shut down, the temporary rules are discarded.
To enable the URL filter, the opera:urlfilter
feature needs to be added as a feature
element to the extension's config.xml
file.
An in-depth tutorial is available at Dev.Opera: Site blocking with Opera's URL Filter API
Example
Block example.com/images
, example.com/css
and any subdirectories, whatever the protocol. Note that www.example.com
and other sub-domains are not affected.
<!--
The configuration file ('config.xml').
-->
<?xml version='1.0' encoding='utf-8'?>
<widget xmlns="http://www.w3.org/ns/widgets">
<feature name="opera:urlfilter"/>
</widget>
//
// The background process (e.g. index.html)
//
// Check that the URL Filter API exists
if (typeof opera.extension.urlfilter != 'undefined') {
// Create a list of rules to block
var rules = ['*://example.com/images/*', '*://example.com/css/*'];
// Assign the URLFilter object to a variable for efficiency
var filter = opera.extension.urlfilter;
// Loop through the array of rules and add each one to the "block" list
for (var i = 0, len = rules.length; i < len; i++) {
filter.block.add(rules[i]);
}
}
This article is licensed under a Creative Commons Attribution 3.0 Unported license.
Comments
justvovus
Thursday, May 10, 2012
Do you plan to implement opera.extension.urlfilter.block.get() or opera.extension.urlfilter.block.list() method?
Now extension should to keep the list of blocked urls in WebSQL DB, because there is no way to unlock URL if you don't know what exactly locked. One extension can add url to urlfilter and this url doesn't appears anywhere, not in urlfilter.ini, not in some other list.
Am I correct?
Martin Kadlec
Monday, July 30, 2012
Brandon
Saturday, October 6, 2012
Janghou
Tuesday, November 27, 2012
It does the same as block.remove but then for the Allow RuleList.
You need it if you want to reset a RuleList entry