2012-09-20 52 views
1

我在哪里可以找到Chromium代码来源关于webRequest API的黑名单?chrome.webRequest API黑名单

webRequest API只会公开请求,该请求具有 权限,因为该主机的权限已满。此外,只有以下方案可以访问:http://,https://,ftp://,file://, 或chrome-extension://。另外,即使使用上述方案之一的具有URL 的某些请求被隐藏,例如, chrome-extension:// other_extension_id其中other_extension_id不是 处理请求的扩展的ID, https://www.google.com/chrome和其他(这列表不完整)。

来源:https://developer.chrome.com/extensions/webRequest.html#life_cycle_footnote

回答

3
  1. 实现:chromium/src/chrome/browser/extensions/api/web_request/web_request_permissions.cc
  2. 单元测试:chromium/src/chrome/browser/extensions/api/web_request/web_request_permissions_unittest.cc

以下网址列入黑名单(模式可以从源代码推导和/或单元测试):

 "http://clients2.google.com", 
     "http://clients22.google.com", 
     "https://clients2.google.com", 
     "http://clients2.google.com/service/update2/crx", 
     "https://clients.google.com", 
     "https://test.clients.google.com", 
     "https://clients2.google.com/service/update2/crx", 
     "http://www.gstatic.com/chrome/extensions/blacklist", 
     "https://www.gstatic.com/chrome/extensions/blacklist", 
     "notregisteredscheme://www.foobar.com" 
+0

有趣的是,https://www.google.com/chrome没有在源代码中提及。该网址重定向到https://www.google.com/intl/nl/chrome/browser/,该网址*可能被阻止(测试案例:http://pastebin.com/11yWxaiZ)。此外,并非所有单元测试中的URL都不受我演示的影响,这可能表明黑名单的实施并非防水。 –

+0

感谢您的回答。它看起来像声明式WebRequest API也使用web_request_permissions。 –