[orca] Filter out load-related events from Firefox extensions



commit 02616a19723f53344ed8e5058b7d3416b7996b19
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Tue Jul 3 08:38:44 2018 -0400

    Filter out load-related events from Firefox extensions

 src/orca/scripts/toolkits/Gecko/script.py           | 16 ++++------------
 src/orca/scripts/toolkits/Gecko/script_utilities.py | 16 ++++++++++++++++
 2 files changed, 20 insertions(+), 12 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 0b3285ad5..5b77343a0 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -99,18 +99,7 @@ class Script(web.Script):
     def onBusyChanged(self, event):
         """Callback for object:state-changed:busy accessibility events."""
 
-        try:
-            name = event.source.name
-        except:
-            msg = "GECKO: Exception getting name of event source"
-            debug.println(debug.LEVEL_INFO, msg, True)
-            return
-
-        # Sadly this document frame claims to be visible and showing and have all
-        # the other characteristics of a real page. Hence the name check.
-        if "self-repair.mozilla.org" in name:
-            msg = "GECKO: Ignoring event because it's not a real (to users) page"
-            debug.println(debug.LEVEL_INFO, msg, True)
+        if self.utilities.isNotRealDocument(event.source):
             return
 
         if super().onBusyChanged(event):
@@ -153,6 +142,9 @@ class Script(web.Script):
     def onDocumentLoadComplete(self, event):
         """Callback for document:load-complete accessibility events."""
 
+        if self.utilities.isNotRealDocument(event.source):
+            return
+
         if super().onDocumentLoadComplete(event):
             return
 
diff --git a/src/orca/scripts/toolkits/Gecko/script_utilities.py 
b/src/orca/scripts/toolkits/Gecko/script_utilities.py
index e3436b6aa..bc5410715 100644
--- a/src/orca/scripts/toolkits/Gecko/script_utilities.py
+++ b/src/orca/scripts/toolkits/Gecko/script_utilities.py
@@ -165,3 +165,19 @@ class Utilities(web.Utilities):
         msg = "GECKO: Editable %s not in an editable document" % obj
         debug.println(debug.LEVEL_INFO, msg, True)
         return False
+
+    def isNotRealDocument(self, obj):
+        try:
+            name = obj.name
+        except:
+            msg = "GECKO: Exception getting name for %s" % obj
+            debug.println(debug.LEVEL_INFO, msg, True)
+            return False
+
+        if name.startswith("moz-extension"):
+            return True
+
+        if "self-repair.mozilla.org" in name:
+            return True
+
+        return False


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]