| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| 3  * Copyright (C) 2006-2015 Eyeo GmbH | 3  * Copyright (C) 2006-2015 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 240 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 251   else | 251   else | 
| 252     item = treeView.getItemAt(e.clientX, e.clientY); | 252     item = treeView.getItemAt(e.clientX, e.clientY); | 
| 253 | 253 | 
| 254   if (!item) | 254   if (!item) | 
| 255   { | 255   { | 
| 256     e.preventDefault(); | 256     e.preventDefault(); | 
| 257     return; | 257     return; | 
| 258   } | 258   } | 
| 259 | 259 | 
| 260   let filter = getFilter(item); | 260   let filter = getFilter(item); | 
| 261   let size = ("tooltip" in item ? null : getItemSize(item)); |  | 
| 262   let subscriptions = (filter ? filter.subscriptions.filter(function(subscriptio
      n) { return !subscription.disabled; }) : []); | 261   let subscriptions = (filter ? filter.subscriptions.filter(function(subscriptio
      n) { return !subscription.disabled; }) : []); | 
| 263 | 262 | 
| 264   E("tooltipDummy").hidden = !("tooltip" in item); | 263   E("tooltipDummy").hidden = !("tooltip" in item); | 
| 265   E("tooltipAddressRow").hidden = ("tooltip" in item); | 264   E("tooltipAddressRow").hidden = ("tooltip" in item); | 
| 266   E("tooltipTypeRow").hidden = ("tooltip" in item); | 265   E("tooltipTypeRow").hidden = ("tooltip" in item); | 
| 267   E("tooltipSizeRow").hidden = !size; |  | 
| 268   E("tooltipDocDomainRow").hidden = ("tooltip" in item || !item.docDomain); | 266   E("tooltipDocDomainRow").hidden = ("tooltip" in item || !item.docDomain); | 
| 269   E("tooltipFilterRow").hidden = !filter; | 267   E("tooltipFilterRow").hidden = !filter; | 
| 270   E("tooltipFilterSourceRow").hidden = !subscriptions.length; | 268   E("tooltipFilterSourceRow").hidden = !subscriptions.length; | 
| 271 | 269 | 
| 272   if ("tooltip" in item) | 270   if ("tooltip" in item) | 
| 273     E("tooltipDummy").setAttribute("value", item.tooltip); | 271     E("tooltipDummy").setAttribute("value", item.tooltip); | 
| 274   else | 272   else | 
| 275   { | 273   { | 
| 276     E("tooltipAddress").parentNode.hidden = (item.type == "ELEMHIDE"); | 274     E("tooltipAddress").parentNode.hidden = (item.type == "ELEMHIDE"); | 
| 277     setMultilineContent(E("tooltipAddress"), item.location); | 275     setMultilineContent(E("tooltipAddress"), item.location); | 
| 278 | 276 | 
| 279     var type = localizedTypes.get(item.type); | 277     var type = localizedTypes.get(item.type); | 
| 280     if (filter && filter instanceof WhitelistFilter) | 278     if (filter && filter instanceof WhitelistFilter) | 
| 281       type += " " + E("tooltipType").getAttribute("whitelisted"); | 279       type += " " + E("tooltipType").getAttribute("whitelisted"); | 
| 282     else if (filter && item.type != "ELEMHIDE") | 280     else if (filter && item.type != "ELEMHIDE") | 
| 283       type += " " + E("tooltipType").getAttribute("filtered"); | 281       type += " " + E("tooltipType").getAttribute("filtered"); | 
| 284     E("tooltipType").setAttribute("value", type); | 282     E("tooltipType").setAttribute("value", type); | 
| 285 | 283 | 
| 286     if (size) |  | 
| 287       E("tooltipSize").setAttribute("value", size.join(" x ")); |  | 
| 288 |  | 
| 289     E("tooltipDocDomain").setAttribute("value", item.docDomain + " " + (item.thi
      rdParty ? docDomainThirdParty : docDomainFirstParty)); | 284     E("tooltipDocDomain").setAttribute("value", item.docDomain + " " + (item.thi
      rdParty ? docDomainThirdParty : docDomainFirstParty)); | 
| 290   } | 285   } | 
| 291 | 286 | 
| 292   if (filter) | 287   if (filter) | 
| 293   { | 288   { | 
| 294     let filterField = E("tooltipFilter"); | 289     let filterField = E("tooltipFilter"); | 
| 295     setMultilineContent(filterField, filter.text); | 290     setMultilineContent(filterField, filter.text); | 
| 296     if (filter.disabled) | 291     if (filter.disabled) | 
| 297     { | 292     { | 
| 298       let disabledText = document.createElement("description"); | 293       let disabledText = document.createElement("description"); | 
| 299       disabledText.className = "disabledTextLabel"; | 294       disabledText.className = "disabledTextLabel"; | 
| 300       disabledText.textContent = filterField.getAttribute("disabledText"); | 295       disabledText.textContent = filterField.getAttribute("disabledText"); | 
| 301       filterField.appendChild(disabledText); | 296       filterField.appendChild(disabledText); | 
| 302     } | 297     } | 
| 303 | 298 | 
| 304     if (subscriptions.length) | 299     if (subscriptions.length) | 
| 305     { | 300     { | 
| 306       let sourceElement = E("tooltipFilterSource"); | 301       let sourceElement = E("tooltipFilterSource"); | 
| 307       while (sourceElement.firstChild) | 302       while (sourceElement.firstChild) | 
| 308         sourceElement.removeChild(sourceElement.firstChild); | 303         sourceElement.removeChild(sourceElement.firstChild); | 
| 309       for (let i = 0; i < subscriptions.length; i++) | 304       for (let i = 0; i < subscriptions.length; i++) | 
| 310         setMultilineContent(sourceElement, subscriptions[i].title, true); | 305         setMultilineContent(sourceElement, subscriptions[i].title, true); | 
| 311     } | 306     } | 
| 312   } | 307   } | 
| 313 | 308 | 
|  | 309   let updateSize = function() | 
|  | 310   { | 
|  | 311     let size = ("tooltip" in item ? null : getItemSize(item, updateSize)); | 
|  | 312     E("tooltipSizeRow").hidden = !size; | 
|  | 313     if (size) | 
|  | 314       E("tooltipSize").setAttribute("value", size.join(" x ")); | 
|  | 315   }; | 
|  | 316   updateSize(); | 
|  | 317 | 
| 314   var showPreview = Prefs.previewimages && !("tooltip" in item); | 318   var showPreview = Prefs.previewimages && !("tooltip" in item); | 
| 315   showPreview = showPreview && item.type == "IMAGE"; | 319   showPreview = showPreview && item.type == "IMAGE"; | 
| 316   showPreview = showPreview && (!filter || filter.disabled || filter instanceof 
      WhitelistFilter); | 320   showPreview = showPreview && (!filter || filter.disabled || filter instanceof 
      WhitelistFilter); | 
| 317   E("tooltipPreviewBox").hidden = true; | 321   E("tooltipPreviewBox").hidden = true; | 
| 318   if (showPreview) | 322   if (showPreview) | 
| 319   { | 323   { | 
| 320     if (!cacheStorage) | 324     if (!cacheStorage) | 
| 321     { | 325     { | 
| 322       let {Services} = Cu.import("resource://gre/modules/Services.jsm", null); | 326       let {Services} = Cu.import("resource://gre/modules/Services.jsm", null); | 
| 323       // Cache v2 API is enabled by default starting with Gecko 32 | 327       // Cache v2 API is enabled by default starting with Gecko 32 | 
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 658   let myPrefs = Prefs; | 662   let myPrefs = Prefs; | 
| 659   let myMainWin = mainWin; | 663   let myMainWin = mainWin; | 
| 660 | 664 | 
| 661   // Close sidebar and open detached window | 665   // Close sidebar and open detached window | 
| 662   myMainWin.document.getElementById("abp-command-sidebar").doCommand(); | 666   myMainWin.document.getElementById("abp-command-sidebar").doCommand(); | 
| 663   myPrefs.detachsidebar = doDetach; | 667   myPrefs.detachsidebar = doDetach; | 
| 664   myMainWin.document.getElementById("abp-command-sidebar").doCommand(); | 668   myMainWin.document.getElementById("abp-command-sidebar").doCommand(); | 
| 665 } | 669 } | 
| 666 | 670 | 
| 667 // Returns items size in the document if available | 671 // Returns items size in the document if available | 
| 668 function getItemSize(item) | 672 function getItemSize(item, retryCallback) | 
| 669 { | 673 { | 
|  | 674   if ("size" in item) | 
|  | 675     return item.size; | 
|  | 676 | 
| 670   let filter = getFilter(item); | 677   let filter = getFilter(item); | 
| 671   if (filter && !filter.disabled && filter instanceof BlockingFilter) | 678   if (filter && !filter.disabled && filter instanceof BlockingFilter) | 
| 672     return null; | 679     return null; | 
| 673 | 680 | 
| 674   for (let node of item.nodes) | 681   if (requestNotifier) | 
| 675   { | 682   { | 
| 676     if (node instanceof HTMLImageElement && (node.naturalWidth || node.naturalHe
      ight)) | 683     requestNotifier.retrieveNodeSize(item.ids, function(size) | 
| 677       return [node.naturalWidth, node.naturalHeight]; | 684     { | 
| 678     else if (node instanceof HTMLElement && (node.offsetWidth || node.offsetHeig
      ht)) | 685       item.size = size; | 
| 679       return [node.offsetWidth, node.offsetHeight]; | 686       if (retryCallback) | 
|  | 687         retryCallback(); | 
|  | 688     }); | 
| 680   } | 689   } | 
| 681   return null; | 690   return null; | 
| 682 } | 691 } | 
| 683 | 692 | 
| 684 // Sort functions for the item list | 693 // Sort functions for the item list | 
| 685 function sortByAddress(item1, item2) { | 694 function sortByAddress(item1, item2) { | 
| 686   if (item1.location < item2.location) | 695   if (item1.location < item2.location) | 
| 687     return -1; | 696     return -1; | 
| 688   else if (item1.location > item2.location) | 697   else if (item1.location > item2.location) | 
| 689     return 1; | 698     return 1; | 
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 869       return ""; | 878       return ""; | 
| 870     if (this.data && this.data.length) { | 879     if (this.data && this.data.length) { | 
| 871       if (row >= this.data.length) | 880       if (row >= this.data.length) | 
| 872         return ""; | 881         return ""; | 
| 873       if (col == "type") | 882       if (col == "type") | 
| 874         return localizedTypes.get(this.data[row].type); | 883         return localizedTypes.get(this.data[row].type); | 
| 875       else if (col == "filter") | 884       else if (col == "filter") | 
| 876         return (this.data[row].filter || ""); | 885         return (this.data[row].filter || ""); | 
| 877       else if (col == "size") | 886       else if (col == "size") | 
| 878       { | 887       { | 
| 879         let size = getItemSize(this.data[row]); | 888         let size = getItemSize(this.data[row], () => | 
|  | 889         { | 
|  | 890           this.boxObject.invalidateRow(row); | 
|  | 891         }); | 
| 880         return (size ? size.join(" x ") : ""); | 892         return (size ? size.join(" x ") : ""); | 
| 881       } | 893       } | 
| 882       else if (col == "docDomain") | 894       else if (col == "docDomain") | 
| 883         return this.data[row].docDomain + " " + (this.data[row].thirdParty ? doc
      DomainThirdParty : docDomainFirstParty); | 895         return this.data[row].docDomain + " " + (this.data[row].thirdParty ? doc
      DomainThirdParty : docDomainFirstParty); | 
| 884       else if (col == "filterSource") | 896       else if (col == "filterSource") | 
| 885       { | 897       { | 
| 886         let filter = getFilter(this.data[row]) | 898         let filter = getFilter(this.data[row]) | 
| 887         if (!filter) | 899         if (!filter) | 
| 888           return ""; | 900           return ""; | 
| 889 | 901 | 
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1278       return {tooltip: this.itemsDummyTooltip}; | 1290       return {tooltip: this.itemsDummyTooltip}; | 
| 1279   }, | 1291   }, | 
| 1280 | 1292 | 
| 1281   invalidateItem: function(item) | 1293   invalidateItem: function(item) | 
| 1282   { | 1294   { | 
| 1283     let row = this.data.indexOf(item); | 1295     let row = this.data.indexOf(item); | 
| 1284     if (row >= 0) | 1296     if (row >= 0) | 
| 1285       this.boxObject.invalidateRow(row); | 1297       this.boxObject.invalidateRow(row); | 
| 1286   } | 1298   } | 
| 1287 } | 1299 } | 
| OLD | NEW | 
|---|