[Pkg-mozext-commits] [adblock-plus] 26/87: Issue 3761 - Don't clear user input when filter validation failed

David Prévot taffit at moszumanska.debian.org
Sat Apr 30 17:59:04 UTC 2016


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository adblock-plus.

commit 307985257c92dbd0d4a0f79970479ccc032dfa50
Author: Sebastian Noack <sebastian at adblockplus.org>
Date:   Wed Mar 9 09:14:47 2016 +0100

    Issue 3761 - Don't clear user input when filter validation failed
---
 messageResponder.js |  8 ++++----
 options.js          | 31 ++++++++++++++++++++++---------
 2 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/messageResponder.js b/messageResponder.js
index eefeb10..024830b 100644
--- a/messageResponder.js
+++ b/messageResponder.js
@@ -184,10 +184,12 @@
         break;
       case "filters.add":
         var result = require("filterValidation").parseFilter(message.text);
+        var errors = [];
         if (result.error)
-          sendMessage("app", "error", [result.error.toString()], sender.page);
+          errors.push(result.error.toString());
         else if (result.filter)
           FilterStorage.addFilter(result.filter);
+        callback(errors);
         break;
       case "filters.blocked":
         var filter = defaultMatcher.matchesAny(message.url, message.requestType,
@@ -237,11 +239,9 @@
             errors.push(error.toString());
         }
 
+        callback(errors);
         if (errors.length > 0)
-        {
-          sendMessage("app", "error", errors, sender.page);
           return;
-        }
 
         var seenFilter = Object.create(null);
         for (var i = 0; i < result.filters.length; i++)
diff --git a/options.js b/options.js
index 53000f3..9352887 100644
--- a/options.js
+++ b/options.js
@@ -517,6 +517,17 @@
     return null;
   }
 
+  function sendMessageHandleErrors(message, onSuccess)
+  {
+    ext.backgroundPage.sendMessage(message, function(errors)
+    {
+      if (errors.length > 0)
+        alert(errors.join("\n"));
+      else if (onSuccess)
+        onSuccess();
+    });
+  }
+
   function onClick(e)
   {
     var context = document.querySelector(".show-context-menu");
@@ -577,12 +588,15 @@
           openDialog(element.getAttribute("data-dialog"));
           break;
         case "save-custom-filters":
-          ext.backgroundPage.sendMessage(
+          sendMessageHandleErrors(
           {
             type: "filters.importRaw",
             text: E("custom-filters-raw").value
+          },
+          function()
+          {
+            E("custom-filters").classList.remove("mode-edit");
           });
-          E("custom-filters").classList.remove("mode-edit");
           break;
         case "switch-tab":
           document.body.setAttribute("data-tab",
@@ -682,12 +696,15 @@
     function addCustomFilters()
     {
       var filterText = filterTextbox.value;
-      ext.backgroundPage.sendMessage(
+      sendMessageHandleErrors(
       {
         type: "filters.add",
         text: filterText
+      },
+      function()
+      {
+        filterTextbox.value = "";
       });
-      filterTextbox.value = "";
     }
     E("custom-filters-add").addEventListener("submit", function(e)
     {
@@ -807,7 +824,7 @@
     var domain = E("whitelisting-textbox");
     if (domain.value)
     {
-      ext.backgroundPage.sendMessage(
+      sendMessageHandleErrors(
       {
         type: "filters.add",
         text: "@@||" + domain.value.toLowerCase() + "^$document"
@@ -993,10 +1010,6 @@
           dialog.querySelector(".url").textContent = subscription.url;
           openDialog("predefined");
         }
-        else if (message.action == "error")
-        {
-          alert(message.args.join("\n"));
-        }
         break;
       case "filters.listen":
         onFilterMessage(message.action, message.args[0]);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git



More information about the Pkg-mozext-commits mailing list