{"action":"closed","issue":{"url":"https://api.github.com/repos/EFForg/https-everywhere/issues/132","labels_url":"https://api.github.com/repos/EFForg/https-everywhere/issues/132/labels{/name}","comments_url":"https://api.github.com/repos/EFForg/https-everywhere/issues/132/comments","events_url":"https://api.github.com/repos/EFForg/https-everywhere/issues/132/events","html_url":"https://github.com/EFForg/https-everywhere/issues/132","id":26568831,"number":132,"title":"Chrome: switch to declarativeWebRequest","user":{"login":"semenko","id":167135,"avatar_url":"https://avatars.githubusercontent.com/u/167135?v=3","gravatar_id":"","url":"https://api.github.com/users/semenko","html_url":"https://github.com/semenko","followers_url":"https://api.github.com/users/semenko/followers","following_url":"https://api.github.com/users/semenko/following{/other_user}","gists_url":"https://api.github.com/users/semenko/gists{/gist_id}","starred_url":"https://api.github.com/users/semenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/semenko/subscriptions","organizations_url":"https://api.github.com/users/semenko/orgs","repos_url":"https://api.github.com/users/semenko/repos","events_url":"https://api.github.com/users/semenko/events{/privacy}","received_events_url":"https://api.github.com/users/semenko/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/EFForg/https-everywhere/labels/chrome","name":"chrome","color":"006b75"},{"url":"https://api.github.com/repos/EFForg/https-everywhere/labels/performance","name":"performance","color":"5319e7"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2014-01-30T01:27:13Z","updated_at":"2015-05-20T01:28:16Z","closed_at":"2015-05-20T01:28:16Z","body":"[For issue #12, though that's doing pretty well now :) ]\r\n\r\nChome's beta channel now supports declarativeWebRequests: http://developer.chrome.com/extensions/declarativeWebRequest.html\r\n\r\nThis is a high-performance way to use blocking webRequests without triggering our slow JS code on every request. Plus, it's designed to easily support the declaration of \"hundreds of thousands of URLs.\"\r\n\r\nI'll integrate & test, hopefully we can merge after this makes it into stable (M33 at the earliest).\r\n\r\nThis'll probably work like:\r\n- Keep the current webRequest handler (to catch tabs opening on start)\r\n- Build & invoke the declarativeWebRequest list\r\n- Drop the webRequest handler (removeListener)"}}