[orca] Handle a couple "The process appears to be hung" AT-SPI2 errors from Firefox
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Handle a couple "The process appears to be hung" AT-SPI2 errors from Firefox
- Date: Fri, 28 Aug 2015 19:32:50 +0000 (UTC)
commit c4c11442da245b38bcf79dec204f6412ab105a6a
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Fri Aug 28 15:30:14 2015 -0400
Handle a couple "The process appears to be hung" AT-SPI2 errors from Firefox
src/orca/script_utilities.py | 7 +++++-
.../scripts/toolkits/Gecko/script_utilities.py | 19 +---------------
src/orca/scripts/web/script.py | 15 ++++++++-----
src/orca/scripts/web/script_utilities.py | 22 +++++++++++++++----
4 files changed, 34 insertions(+), 29 deletions(-)
---
diff --git a/src/orca/script_utilities.py b/src/orca/script_utilities.py
index 126c369..40622d1 100644
--- a/src/orca/script_utilities.py
+++ b/src/orca/script_utilities.py
@@ -2912,7 +2912,12 @@ class Utilities:
if isSame(root):
replicant = root
else:
- replicant = pyatspi.findDescendant(root, isSame)
+ try:
+ replicant = pyatspi.findDescendant(root, isSame)
+ except:
+ msg = "INFO: Exception from findDescendant for %s" % root
+ debug.println(debug.LEVEL_INFO, msg)
+ replicant = None
msg = "HACK: Returning %s as replicant for Zombie %s" % (replicant, obj)
debug.println(debug.LEVEL_INFO, msg)
diff --git a/src/orca/scripts/toolkits/Gecko/script_utilities.py
b/src/orca/scripts/toolkits/Gecko/script_utilities.py
index 061fba9..4455ada 100644
--- a/src/orca/scripts/toolkits/Gecko/script_utilities.py
+++ b/src/orca/scripts/toolkits/Gecko/script_utilities.py
@@ -55,25 +55,10 @@ class Utilities(web.Utilities):
return -1
try:
- state = obj.getState()
- except:
- return -1
- else:
- if state.contains(pyatspi.STATE_DEFUNCT):
- # Yelp (or perhaps the work-in-progress a11y patch)
- # seems to be guilty of this.
- #
- #print "nodeLevel - obj is defunct", obj
- debug.println(debug.LEVEL_WARNING,
- "nodeLevel - obj is defunct")
- debug.printStack(debug.LEVEL_WARNING)
- return -1
-
- try:
attrs = obj.getAttributes()
except:
- attrs = None
- if attrs is None:
+ msg = "GECKO: Exception getting attributes for %s" % obj
+ debug.println(debug.LEVEL_INFO, msg)
return -1
for attr in attrs:
if attr.startswith("level:"):
diff --git a/src/orca/scripts/web/script.py b/src/orca/scripts/web/script.py
index 6796d74..9d5e8f0 100644
--- a/src/orca/scripts/web/script.py
+++ b/src/orca/scripts/web/script.py
@@ -1091,7 +1091,8 @@ class Script(default.Script):
return False
if not self.utilities.inDocumentContent(orca_state.locusOfFocus):
- msg = "WEB: Ignoring event source is in document; locusOfFocus is not"
+ msg = "WEB: Event ignored: locusOfFocus (%s) is not in document content" \
+ % orca_state.locusOfFocus
debug.println(debug.LEVEL_INFO, msg)
return True
@@ -1281,7 +1282,7 @@ class Script(default.Script):
utterances.append(messages.NEW_ITEM_ADDED)
utterances.extend(self.speechGenerator.generateSpeech(child, force=True))
speech.speak(utterances)
- self.lastMouseOverObject = child
+ self._lastMouseOverObject = child
self.preMouseOverContext = self.utilities.getCaretContext()
return True
@@ -1412,7 +1413,8 @@ class Script(default.Script):
return False
if not self.utilities.inDocumentContent(orca_state.locusOfFocus):
- msg = "WEB: Ignoring event source is in document; locusOfFocus is not"
+ msg = "WEB: Event ignored: locusOfFocus (%s) is not in document content" \
+ % orca_state.locusOfFocus
debug.println(debug.LEVEL_INFO, msg)
return True
@@ -1469,8 +1471,8 @@ class Script(default.Script):
state = event.source.getState()
if not state.contains(pyatspi.STATE_EDITABLE):
- if self.inMouseOverObject \
- and self.utilities.isZombie(self.lastMouseOverObject):
+ if self._inMouseOverObject \
+ and self.utilities.isZombie(self._lastMouseOverObject):
msg = "WEB: Restoring pre-mouseover context"
debug.println(debug.LEVEL_INFO, msg)
self.restorePreMouseOverContext()
@@ -1557,7 +1559,8 @@ class Script(default.Script):
return True
if not self.utilities.inDocumentContent(orca_state.locusOfFocus):
- msg = "WEB: Ignoring: Event in document content; focus is not"
+ msg = "WEB: Event ignored: locusOfFocus (%s) is not in document content" \
+ % orca_state.locusOfFocus
debug.println(debug.LEVEL_INFO, msg)
return True
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 366a14d..272df68 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -167,7 +167,7 @@ class Utilities(script_utilities.Utilities):
try:
windows = [child for child in self._script.app]
except:
- msg = "WEB: Exception getting children for %s" % self._script.app
+ msg = "WEB: Exception getting children for app %s" % self._script.app
debug.println(debug.LEVEL_INFO, msg)
windows = []
@@ -2330,8 +2330,14 @@ class Utilities(script_utilities.Utilities):
return self.findNextCaretInOrder(parent, start)
index = obj.getIndexInParent() + 1
- if 0 <= index < parent.childCount:
- return self.findNextCaretInOrder(parent[index], -1)
+ try:
+ parentChildCount = parent.childCount
+ except:
+ msg = "WEB: Exception getting childCount for %s" % parent
+ debug.println(debug.LEVEL_INFO, msg)
+ else:
+ if 0 <= index < parentChildCount:
+ return self.findNextCaretInOrder(parent[index], -1)
obj = parent
return None, -1
@@ -2383,8 +2389,14 @@ class Utilities(script_utilities.Utilities):
return self.findPreviousCaretInOrder(parent, start)
index = obj.getIndexInParent() - 1
- if 0 <= index < parent.childCount:
- return self.findPreviousCaretInOrder(parent[index], -1)
+ try:
+ parentChildCount = parent.childCount
+ except:
+ msg = "WEB: Exception getting childCount for %s" % parent
+ debug.println(debug.LEVEL_INFO, msg)
+ else:
+ if 0 <= index < parentChildCount:
+ return self.findPreviousCaretInOrder(parent[index], -1)
obj = parent
return None, -1
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]