| Index: devtools-panel.js | 
| diff --git a/devtools-panel.js b/devtools-panel.js | 
| index 8d7e734ad2209dbd770b9ddce7a3417361b7ac69..37cfdbace28c7f3f99b16966f4adbe4f295729a0 100644 | 
| --- a/devtools-panel.js | 
| +++ b/devtools-panel.js | 
| @@ -17,12 +17,12 @@ | 
|  | 
| "use strict"; | 
|  | 
| -var lastFilterQuery = null; | 
| +let lastFilterQuery = null; | 
|  | 
| function generateFilter(request, domainSpecific) | 
| { | 
| -  var filter = request.url.replace(/^[\w\-]+:\/+(?:www\.)?/, "||"); | 
| -  var options = []; | 
| +  let filter = request.url.replace(/^[\w-]+:\/+(?:www\.)?/, "||"); | 
| +  let options = []; | 
|  | 
| if (request.type == "POPUP") | 
| { | 
| @@ -43,12 +43,12 @@ function generateFilter(request, domainSpecific) | 
|  | 
| function createActionButton(action, label, filter) | 
| { | 
| -  var button = document.createElement("span"); | 
| +  let button = document.createElement("span"); | 
|  | 
| button.textContent = label; | 
| button.classList.add("action"); | 
|  | 
| -  button.addEventListener("click", function() | 
| +  button.addEventListener("click", () => | 
| { | 
| ext.backgroundPage.sendMessage({ | 
| type: "filters." + action, | 
| @@ -61,14 +61,14 @@ function createActionButton(action, label, filter) | 
|  | 
| function createRecord(request, filter, template) | 
| { | 
| -  var row = document.importNode(template, true); | 
| +  let row = document.importNode(template, true); | 
| row.dataset.type = request.type; | 
|  | 
| row.querySelector(".domain").textContent = request.docDomain; | 
| row.querySelector(".type").textContent = request.type; | 
|  | 
| -  var urlElement = row.querySelector(".url"); | 
| -  var actionWrapper = row.querySelector(".action-wrapper"); | 
| +  let urlElement = row.querySelector(".url"); | 
| +  let actionWrapper = row.querySelector(".action-wrapper"); | 
|  | 
| if (request.url) | 
| { | 
| @@ -77,7 +77,7 @@ function createRecord(request, filter, template) | 
| if (request.type != "POPUP") | 
| { | 
| urlElement.classList.add("resourceLink"); | 
| -      urlElement.addEventListener("click", function() | 
| +      urlElement.addEventListener("click", () => | 
| { | 
| ext.devtools.panels.openResource(request.url); | 
| }, false); | 
| @@ -86,8 +86,8 @@ function createRecord(request, filter, template) | 
|  | 
| if (filter) | 
| { | 
| -    var filterElement = row.querySelector(".filter"); | 
| -    var originElement = row.querySelector(".origin"); | 
| +    let filterElement = row.querySelector(".filter"); | 
| +    let originElement = row.querySelector(".origin"); | 
|  | 
| filterElement.textContent = filter.text; | 
| row.dataset.state = filter.whitelisted ? "whitelisted" : "blocked"; | 
| @@ -105,19 +105,25 @@ function createRecord(request, filter, template) | 
| } | 
|  | 
| if (!filter.whitelisted && request.type != "ELEMHIDE") | 
| +    { | 
| actionWrapper.appendChild(createActionButton( | 
| "add", "Add exception", "@@" + generateFilter(request, false) | 
| )); | 
| +    } | 
|  | 
| if (filter.userDefined) | 
| +    { | 
| actionWrapper.appendChild(createActionButton( | 
| "remove", "Remove rule", filter.text | 
| )); | 
| +    } | 
| } | 
| else | 
| +  { | 
| actionWrapper.appendChild(createActionButton( | 
| "add", "Block item", generateFilter(request, request.specificOnly) | 
| )); | 
| +  } | 
|  | 
| if (lastFilterQuery && shouldFilterRow(row, lastFilterQuery)) | 
| row.classList.add("filtered-by-search"); | 
| @@ -127,16 +133,16 @@ function createRecord(request, filter, template) | 
|  | 
| function shouldFilterRow(row, query) | 
| { | 
| -  var elementsToSearch = [ | 
| +  let elementsToSearch = [ | 
| row.getElementsByClassName("url"), | 
| row.getElementsByClassName("filter"), | 
| row.getElementsByClassName("origin"), | 
| row.getElementsByClassName("type") | 
| ]; | 
|  | 
| -  for (var elements of elementsToSearch) | 
| +  for (let elements of elementsToSearch) | 
| { | 
| -    for (var element of elements) | 
| +    for (let element of elements) | 
| { | 
| if (element.innerText.search(query) != -1) | 
| return false; | 
| @@ -147,7 +153,7 @@ function shouldFilterRow(row, query) | 
|  | 
| function performSearch(table, query) | 
| { | 
| -  for (var row of table.rows) | 
| +  for (let row of table.rows) | 
| { | 
| if (shouldFilterRow(row, query)) | 
| row.classList.add("filtered-by-search"); | 
| @@ -158,49 +164,50 @@ function performSearch(table, query) | 
|  | 
| function cancelSearch(table) | 
| { | 
| -  for (var row of table.rows) | 
| +  for (let row of table.rows) | 
| row.classList.remove("filtered-by-search"); | 
| } | 
|  | 
| -document.addEventListener("DOMContentLoaded", function() | 
| +document.addEventListener("DOMContentLoaded", () => | 
| { | 
| -  var container = document.getElementById("items"); | 
| -  var table = container.querySelector("tbody"); | 
| -  var template = document.querySelector("template").content.firstElementChild; | 
| +  let container = document.getElementById("items"); | 
| +  let table = container.querySelector("tbody"); | 
| +  let template = document.querySelector("template").content.firstElementChild; | 
|  | 
| -  document.getElementById("reload").addEventListener("click", function() | 
| +  document.getElementById("reload").addEventListener("click", () => | 
| { | 
| ext.devtools.inspectedWindow.reload(); | 
| }, false); | 
|  | 
| -  document.getElementById("filter-state").addEventListener("change", function(event) | 
| +  document.getElementById("filter-state").addEventListener("change", (event) => | 
| { | 
| container.dataset.filterState = event.target.value; | 
| }, false); | 
|  | 
| -  document.getElementById("filter-type").addEventListener("change", function(event) | 
| +  document.getElementById("filter-type").addEventListener("change", (event) => | 
| { | 
| container.dataset.filterType = event.target.value; | 
| }, false); | 
|  | 
| -  ext.onMessage.addListener(function(message) | 
| +  ext.onMessage.addListener((message) => | 
| { | 
| switch (message.type) | 
| { | 
| case "add-record": | 
| -        table.appendChild(createRecord(message.request, message.filter, template)); | 
| +        table.appendChild(createRecord(message.request, message.filter, | 
| +                                       template)); | 
| break; | 
|  | 
| case "update-record": | 
| -        var oldRow = table.getElementsByTagName("tr")[message.index]; | 
| -        var newRow = createRecord(message.request, message.filter, template); | 
| +        let oldRow = table.getElementsByTagName("tr")[message.index]; | 
| +        let newRow = createRecord(message.request, message.filter, template); | 
| oldRow.parentNode.replaceChild(newRow, oldRow); | 
| newRow.classList.add("changed"); | 
| container.classList.add("has-changes"); | 
| break; | 
|  | 
| case "remove-record": | 
| -        var row = table.getElementsByTagName("tr")[message.index]; | 
| +        let row = table.getElementsByTagName("tr")[message.index]; | 
| row.parentNode.removeChild(row); | 
| container.classList.add("has-changes"); | 
| break; | 
| @@ -212,9 +219,9 @@ document.addEventListener("DOMContentLoaded", function() | 
| } | 
| }); | 
|  | 
| -  window.addEventListener("message", function(event) | 
| +  window.addEventListener("message", (event) => | 
| { | 
| -    switch(event.data.type) | 
| +    switch (event.data.type) | 
| { | 
| case "performSearch": | 
| performSearch(table, event.data.queryString); | 
|  |