[orca] Chromium: Cache results for isStaticTextLeaf
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Chromium: Cache results for isStaticTextLeaf
- Date: Tue, 23 Apr 2019 04:48:57 +0000 (UTC)
commit 00e4c9a62c09acbd1bdb8f4aae3302994697034d
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Tue Apr 23 00:48:16 2019 -0400
Chromium: Cache results for isStaticTextLeaf
src/orca/scripts/toolkits/Chromium/script_utilities.py | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/src/orca/scripts/toolkits/Chromium/script_utilities.py
b/src/orca/scripts/toolkits/Chromium/script_utilities.py
index d66077c41..a8895e357 100644
--- a/src/orca/scripts/toolkits/Chromium/script_utilities.py
+++ b/src/orca/scripts/toolkits/Chromium/script_utilities.py
@@ -43,23 +43,27 @@ class Utilities(web.Utilities):
def __init__(self, script):
super().__init__(script)
+ self._isStaticTextLeaf = {}
def clearCachedObjects(self):
super().clearCachedObjects()
+ self._isStaticTextLeaf = {}
def isStaticTextLeaf(self, obj):
if not (obj and self.inDocumentContent(obj)):
return super().isStaticTextLeaf(obj)
- if obj.getRole() != pyatspi.ROLE_TEXT:
- return False
+ rv = self._isStaticTextLeaf.get(hash(obj))
+ if rv is not None:
+ return rv
- if self._getTag(obj):
- return False
+ rv = obj.getRole() == pyatspi.ROLE_TEXT and not self._getTag(obj)
+ if rv:
+ msg = "CHROMIUM: %s believed to be static text leaf" % obj
+ debug.println(debug.LEVEL_INFO, msg, True)
- msg = "CHROMIUM: %s believed to be static text leaf" % obj
- debug.println(debug.LEVEL_INFO, msg, True)
- return True
+ self._isStaticTextLeaf[hash(obj)] = rv
+ return rv
def selectedChildCount(self, obj):
count = super().selectedChildCount(obj)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]