| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
| 3  * Copyright (C) 2006-2014 Eyeo GmbH | 3  * Copyright (C) 2006-2014 Eyeo GmbH | 
| 4  * | 4  * | 
| 5  * Adblock Plus is free software: you can redistribute it and/or modify | 5  * Adblock Plus is free software: you can redistribute it and/or modify | 
| 6  * it under the terms of the GNU General Public License version 3 as | 6  * it under the terms of the GNU General Public License version 3 as | 
| 7  * published by the Free Software Foundation. | 7  * published by the Free Software Foundation. | 
| 8  * | 8  * | 
| 9  * Adblock Plus is distributed in the hope that it will be useful, | 9  * Adblock Plus is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 40 { | 40 { | 
| 41   if (action in importantNotifications) | 41   if (action in importantNotifications) | 
| 42   { | 42   { | 
| 43     // Execute delayed to prevent multiple executions in a quick succession | 43     // Execute delayed to prevent multiple executions in a quick succession | 
| 44     if (onFilterChangeTimeout != null) | 44     if (onFilterChangeTimeout != null) | 
| 45       window.clearTimeout(onFilterChangeTimeout); | 45       window.clearTimeout(onFilterChangeTimeout); | 
| 46     onFilterChangeTimeout = window.setTimeout(onFilterChange, 2000); | 46     onFilterChangeTimeout = window.setTimeout(onFilterChange, 2000); | 
| 47   } | 47   } | 
| 48 }); | 48 }); | 
| 49 | 49 | 
| 50 function onBeforeRequest(url, type, tab, frame) | 50 function onBeforeRequest(url, type, page, frame) | 
| 51 { | 51 { | 
| 52   if (isFrameWhitelisted(tab, frame)) | 52   if (isFrameWhitelisted(page, frame)) | 
| 53     return true; | 53     return true; | 
| 54 | 54 | 
| 55   var docDomain = extractHostFromURL(frame.url); | 55   var docDomain = extractHostFromURL(frame.url); | 
| 56   var filter = defaultMatcher.matchesAny( | 56   var filter = defaultMatcher.matchesAny( | 
| 57     url, | 57     url, | 
| 58     type == "sub_frame" ? "SUBDOCUMENT" : type.toUpperCase(), | 58     type == "sub_frame" ? "SUBDOCUMENT" : type.toUpperCase(), | 
| 59     docDomain, | 59     docDomain, | 
| 60     isThirdParty(extractHostFromURL(url), docDomain) | 60     isThirdParty(extractHostFromURL(url), docDomain) | 
| 61   ); | 61   ); | 
| 62 | 62 | 
| 63   // We can't listen to onHeadersReceived in Safari so we need to | 63   // We can't listen to onHeadersReceived in Safari so we need to | 
| 64   // check for notifications here | 64   // check for notifications here | 
| 65   if (platform != "chromium" && type == "sub_frame") | 65   if (platform != "chromium" && type == "sub_frame") | 
| 66   { | 66   { | 
| 67     var notificationToShow = Notification.getNextToShow(url); | 67     var notificationToShow = Notification.getNextToShow(url); | 
| 68     if (notificationToShow) | 68     if (notificationToShow) | 
| 69       showNotification(notificationToShow); | 69       showNotification(notificationToShow); | 
| 70   } | 70   } | 
| 71 | 71 | 
| 72   FilterNotifier.triggerListeners("filter.hitCount", filter, 0, 0, tab); | 72   FilterNotifier.triggerListeners("filter.hitCount", filter, 0, 0, page); | 
| 73   return !(filter instanceof BlockingFilter); | 73   return !(filter instanceof BlockingFilter); | 
| 74 } | 74 } | 
| 75 | 75 | 
| 76 ext.webRequest.onBeforeRequest.addListener(onBeforeRequest); | 76 ext.webRequest.onBeforeRequest.addListener(onBeforeRequest); | 
| 77 | 77 | 
| 78 if (platform == "chromium") | 78 if (platform == "chromium") | 
| 79 { | 79 { | 
| 80   function onHeadersReceived(details) | 80   function onHeadersReceived(details) | 
| 81   { | 81   { | 
| 82     if (details.tabId == -1) | 82     if (details.tabId == -1) | 
| 83       return; | 83       return; | 
| 84 | 84 | 
| 85     if (details.type != "main_frame" && details.type != "sub_frame") | 85     if (details.type != "main_frame" && details.type != "sub_frame") | 
| 86       return; | 86       return; | 
| 87 | 87 | 
| 88     var tab = new Tab({id: details.tabId}); | 88     var page = new ext.Page({id: details.tabId}); | 
| 89     var frame = new Frame({id: details.frameId, tab: tab}); | 89     var frame = new ext.Frame({frameId: details.frameId, tabId: details.tabId}); | 
| 90 | 90 | 
| 91     if (frame.url != details.url) | 91     if (frame.url != details.url) | 
| 92       return; | 92       return; | 
| 93 | 93 | 
| 94     for (var i = 0; i < details.responseHeaders.length; i++) | 94     for (var i = 0; i < details.responseHeaders.length; i++) | 
| 95     { | 95     { | 
| 96       var header = details.responseHeaders[i]; | 96       var header = details.responseHeaders[i]; | 
| 97       if (header.name.toLowerCase() == "x-adblock-key" && header.value) | 97       if (header.name.toLowerCase() == "x-adblock-key" && header.value) | 
| 98         processKeyException(header.value, tab, frame); | 98         processKeyException(header.value, page, frame); | 
| 99     } | 99     } | 
| 100 | 100 | 
| 101     var notificationToShow = Notification.getNextToShow(details.url); | 101     var notificationToShow = Notification.getNextToShow(details.url); | 
| 102     if (notificationToShow) | 102     if (notificationToShow) | 
| 103       showNotification(notificationToShow); | 103       showNotification(notificationToShow); | 
| 104   } | 104   } | 
| 105 | 105 | 
| 106   chrome.webRequest.onHeadersReceived.addListener(onHeadersReceived, {urls: ["<a
     ll_urls>"]}, ["responseHeaders"]); | 106   chrome.webRequest.onHeadersReceived.addListener(onHeadersReceived, {urls: ["<a
     ll_urls>"]}, ["responseHeaders"]); | 
| 107 } | 107 } | 
| OLD | NEW | 
|---|