[orca] Handle more cases of objects going defunct on us
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Handle more cases of objects going defunct on us
- Date: Tue, 17 Mar 2020 19:36:17 +0000 (UTC)
commit 4b998fc13bf5fb21d951f4af2d54afd956ac1a4b
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Tue Mar 17 15:35:28 2020 -0400
Handle more cases of objects going defunct on us
src/orca/script_utilities.py | 7 ++++++-
src/orca/scripts/toolkits/Chromium/script_utilities.py | 9 ++++++++-
src/orca/scripts/web/script_utilities.py | 2 +-
3 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/src/orca/script_utilities.py b/src/orca/script_utilities.py
index 9d9ef73ea..b4f5d3bd3 100644
--- a/src/orca/script_utilities.py
+++ b/src/orca/script_utilities.py
@@ -1431,7 +1431,12 @@ class Utilities:
if not obj:
return False
- if obj.getRole() == pyatspi.ROLE_TREE_ITEM:
+ try:
+ role = obj.getRole()
+ except:
+ return False
+
+ if role == pyatspi.ROLE_TREE_ITEM:
return True
isTree = lambda x: x and x.getRole() in [pyatspi.ROLE_TREE, pyatspi.ROLE_TREE_TABLE]
diff --git a/src/orca/scripts/toolkits/Chromium/script_utilities.py
b/src/orca/scripts/toolkits/Chromium/script_utilities.py
index 7dfc21a0f..a7f4ec557 100644
--- a/src/orca/scripts/toolkits/Chromium/script_utilities.py
+++ b/src/orca/scripts/toolkits/Chromium/script_utilities.py
@@ -56,7 +56,14 @@ class Utilities(web.Utilities):
if not (obj and self.inDocumentContent(obj)):
return super().isStaticTextLeaf(obj)
- if obj.childCount:
+ try:
+ childCount = obj.childCount
+ except:
+ msg = "CHROMIUM: Exception getting child count of %s" % obj
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return False
+
+ if childCount:
return False
if self.isListItemMarker(obj):
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 1d67a19dc..a5a372067 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -3405,7 +3405,7 @@ class Utilities(script_utilities.Utilities):
return rv
def isFakePlaceholderForEntry(self, obj):
- if not (obj and self.inDocumentContent(obj)):
+ if not (obj and self.inDocumentContent(obj) and obj.parent):
return False
if not (obj.parent.getRole() == pyatspi.ROLE_ENTRY and obj.parent.name):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]