Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Chrome extension: how to intercept requested urls? [closed]

How can an extension intercept any requested URL to block it if some condition matches? (similar question for Firefox)

What permission needs to be set in manifest.json?

like image 949
user3833308 Avatar asked Jun 02 '15 07:06

user3833308


1 Answers

JavaScript Code :

The following example illustrates how to block all requests to www.evil.com:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  { urls: ["<all_urls>"] },
  ["blocking"]
);

The following example achieves the same goal in a more efficient way because requests that are not targeted to www.evil.com do not need to be passed to the extension:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { 
    return { cancel: true }; 
  },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

Registering event listeners:

To register an event listener for a web request, you use a variation on the usual addListener() function. In addition to specifying a callback function, you have to specify a filter argument and you may specify an optional extra info argument.

The three arguments to the web request API's addListener() have the following definitions:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

Here's an example of listening for the onBeforeRequest event:

chrome.webRequest.onBeforeRequest.addListener(
  callback, filter, opt_extraInfoSpec);

Permission needed on manifest.json :

"permissions": [
  "webRequest",
  "webRequestBlocking",
"tabs",
"<all_urls>"
],

Extensions examples and help links:

  • Extension Requestly : https://chrome.google.com/webstore/detail/requestly/mdnleldcmiljblolnjhpnblkcekpdkpa
  • Extension Https-Everywhere : https://github.com/EFForg/https-everywhere
  • Example : https://github.com/blunderboy/requestly/blob/master/src/background/background.js
  • Wiki : https://code.google.com/p/html5security/wiki/RedirectionMethods
  • Wiki : https://developer.chrome.com/extensions/webRequest
like image 125
intika Avatar answered Nov 19 '22 04:11

intika