| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This Source Code is subject to the terms of the Mozilla Public License | 2 * This Source Code is subject to the terms of the Mozilla Public License |
| 3 * version 2.0 (the "License"). You can obtain a copy of the License at | 3 * version 2.0 (the "License"). You can obtain a copy of the License at |
| 4 * http://mozilla.org/MPL/2.0/. | 4 * http://mozilla.org/MPL/2.0/. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 let {Prefs} = require("prefs"); | 7 let {Prefs} = require("prefs"); |
| 8 | 8 |
| 9 let domainData; | 9 let domainData; |
| 10 let nodeData; | 10 let nodeData; |
| 11 let nodeID; |
| 11 let selectedNode = null; | 12 let selectedNode = null; |
| 12 let advancedMode = false; | 13 let advancedMode = false; |
| 13 let treeView = null; | 14 let treeView = null; |
| 14 let stylesheetData; | 15 let stylesheetData; |
| 15 let previewStyle = null; | 16 let previewStyle = null; |
| 16 let doc; | |
| 17 | 17 |
| 18 let abpURL = Cc["@adblockplus.org/abp/public;1"].getService(Ci.nsIURI); | 18 let abpURL = Cc["@adblockplus.org/abp/public;1"].getService(Ci.nsIURI); |
| 19 Cu.import(abpURL.spec); | 19 Cu.import(abpURL.spec); |
| 20 | 20 |
| 21 /******************* | 21 /******************* |
| 22 * TreeView object * | 22 * TreeView object * |
| 23 *******************/ | 23 *******************/ |
| 24 | 24 |
| 25 function TreeView(tree) { | 25 function TreeView(tree) { |
| 26 var origView = tree.view; | 26 var origView = tree.view; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 function TreeView_getCellProperties(row, col) { | 77 function TreeView_getCellProperties(row, col) { |
| 78 this.getRowProperties(row); | 78 this.getRowProperties(row); |
| 79 } | 79 } |
| 80 | 80 |
| 81 /********************* | 81 /********************* |
| 82 * General functions * | 82 * General functions * |
| 83 *********************/ | 83 *********************/ |
| 84 | 84 |
| 85 function init() | 85 function init() |
| 86 { | 86 { |
| 87 nodeData = window.arguments[0]; | 87 let host; |
| 88 let host = window.arguments[1]; | 88 ({host, nodeData, nodeID} = window.arguments[0]); |
| 89 | 89 |
| 90 // Check whether element hiding group is disabled | 90 // Check whether element hiding group is disabled |
| 91 let subscription = AdblockPlus.getSubscription("~eh~"); | 91 let subscription = AdblockPlus.getSubscription("~eh~"); |
| 92 if (subscription && subscription.disabled) | 92 if (subscription && subscription.disabled) |
| 93 { | 93 { |
| 94 let warning = document.getElementById("groupDisabledWarning"); | 94 let warning = document.getElementById("groupDisabledWarning"); |
| 95 if (/\?1\?/.test(warning.textContent)) | 95 if (/\?1\?/.test(warning.textContent)) |
| 96 warning.textContent = warning.textContent.replace(/\?1\?/g, subscription.t
itle); | 96 warning.textContent = warning.textContent.replace(/\?1\?/g, subscription.t
itle); |
| 97 warning.hidden = false; | 97 warning.hidden = false; |
| 98 } | 98 } |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 | 304 |
| 305 stylesheetData = expression + "{display: none !important;}"; | 305 stylesheetData = expression + "{display: none !important;}"; |
| 306 expression = domainData.selected + "##" + expression; | 306 expression = domainData.selected + "##" + expression; |
| 307 | 307 |
| 308 document.getElementById("expression").value = expression; | 308 document.getElementById("expression").value = expression; |
| 309 | 309 |
| 310 var tree = document.getElementById("nodes-tree"); | 310 var tree = document.getElementById("nodes-tree"); |
| 311 if (tree.view && tree.view.selection) | 311 if (tree.view && tree.view.selection) |
| 312 tree.treeBoxObject.invalidateRow(tree.view.selection.currentIndex); | 312 tree.treeBoxObject.invalidateRow(tree.view.selection.currentIndex); |
| 313 | 313 |
| 314 if (previewStyle) | 314 if (document.getElementById("preview").checked) |
| 315 previewStyle.textContent = stylesheetData; | 315 togglePreview(true); |
| 316 } | 316 } |
| 317 | 317 |
| 318 function escapeChar(dummy, match) | 318 function escapeChar(dummy, match) |
| 319 { | 319 { |
| 320 return "\\" + match.charCodeAt(0).toString(16) + " "; | 320 return "\\" + match.charCodeAt(0).toString(16) + " "; |
| 321 } | 321 } |
| 322 | 322 |
| 323 function fillDomains(domainData) { | 323 function fillDomains(domainData) { |
| 324 var list = document.getElementById("domainGroup"); | 324 var list = document.getElementById("domainGroup"); |
| 325 | 325 |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 } | 484 } |
| 485 | 485 |
| 486 if (advancedMode) | 486 if (advancedMode) |
| 487 { | 487 { |
| 488 // Add custom CSS entry | 488 // Add custom CSS entry |
| 489 node = createAttribute("advanced", nodeData.customCSS, list.getAttribute("_l
abelcustom"), nodeData.customCSS.selected); | 489 node = createAttribute("advanced", nodeData.customCSS, list.getAttribute("_l
abelcustom"), nodeData.customCSS.selected); |
| 490 list.appendChild(node); | 490 list.appendChild(node); |
| 491 } | 491 } |
| 492 } | 492 } |
| 493 | 493 |
| 494 function togglePreview(preview) { | 494 function togglePreview(preview, forgetNode) |
| 495 if (preview) { | 495 { |
| 496 if (!previewStyle || !previewStyle.parentNode) { | 496 Services.mm.broadcastAsyncMessage("ElemHideHelper:Preview", { |
| 497 previewStyle = doc.createElementNS("http://www.w3.org/1999/xhtml", "style"
); | 497 nodeID: nodeID, |
| 498 previewStyle.setAttribute("type", "text/css"); | 498 stylesheetData: preview ? stylesheetData : null, |
| 499 doc.documentElement.appendChild(previewStyle); | 499 forgetNode: !!forgetNode |
| 500 } | 500 }); |
| 501 previewStyle.textContent = stylesheetData; | |
| 502 } | |
| 503 else { | |
| 504 try | |
| 505 { | |
| 506 if (previewStyle && previewStyle.parentNode) | |
| 507 previewStyle.parentNode.removeChild(previewStyle); | |
| 508 } | |
| 509 catch (e) | |
| 510 { | |
| 511 // if the window was closed (reloaded) we end up with dead object referenc
e | |
| 512 // https://bugzilla.mozilla.org/show_bug.cgi?id=695480 | |
| 513 // just ignore this case | |
| 514 } | |
| 515 previewStyle = null; | |
| 516 } | |
| 517 } | 501 } |
| 518 | 502 |
| 519 function changeDomain(node) { | 503 function changeDomain(node) { |
| 520 domainData.selected = node.getAttribute("value"); | 504 domainData.selected = node.getAttribute("value"); |
| 521 updateExpression(); | 505 updateExpression(); |
| 522 } | 506 } |
| 523 | 507 |
| 524 function toggleAttr(node) { | 508 function toggleAttr(node) { |
| 525 node.attr.checked = node.checked; | 509 node.attr.checked = node.checked; |
| 526 updateExpression(); | 510 updateExpression(); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 | 565 |
| 582 fillAttributes(item.nodeData); | 566 fillAttributes(item.nodeData); |
| 583 } | 567 } |
| 584 | 568 |
| 585 function addExpression() | 569 function addExpression() |
| 586 { | 570 { |
| 587 AdblockPlus.addPatterns([document.getElementById("expression").value]); | 571 AdblockPlus.addPatterns([document.getElementById("expression").value]); |
| 588 | 572 |
| 589 togglePreview(false); | 573 togglePreview(false); |
| 590 } | 574 } |
| OLD | NEW |