Обычный подход заключается в создании компонента XPCOM ( note : примеры устарели, вам также следует учитывать этот ), реализующий nsIContentPolicy
интерфейс и зарегистрируйте его в категории content-policy
. Метод shouldLoad()
компонента будет вызываться для каждой попытки загрузки - вы можете посмотреть параметры aContentLocation
и aRequestOrigin
, чтобы решить, хотите ли вы заблокировать запросы.
То же самое возможно с фильтрами Adblock Plus, например. чтобы заблокировать Facebook на mydomain.com вы используете этот фильтр:
||facebook.com^$domain=mydomain.com
Adblock Plus позволяет другим расширениям связываться с ним . Чтобы добавить несколько фильтров, ваше расширение будет делать следующее при запуске:
var filters = [
"||facebook.com^$domain=mydomain.com",
"||twitter.com^$domain=mydomain.com"
];
AdblockPlus.updateExternalSubscription("FooExtension",
"Filters from Foo Extension",
filters);