[orca/gnome-42] Web: Cache decision regarding objects which can have the caret context
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca/gnome-42] Web: Cache decision regarding objects which can have the caret context
- Date: Wed, 4 May 2022 09:29:47 +0000 (UTC)
commit 77ab93f00a6aaa1940f43356faf9f85e3cf77b92
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Mon May 2 14:05:00 2022 +0200
Web: Cache decision regarding objects which can have the caret context
Sometimes we do this check multiple times during caret navigation and
object presentation. Caching the decision improves performance.
src/orca/scripts/web/script_utilities.py | 7 +++++++
1 file changed, 7 insertions(+)
---
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 26fc157b2..d1fb1dd5a 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -55,6 +55,7 @@ class Utilities(script_utilities.Utilities):
self._currentTextAttrs = {}
self._caretContexts = {}
self._priorContexts = {}
+ self._canHaveCaretContextDecision = {}
self._contextPathsRolesAndNames = {}
self._paths = {}
self._inDocumentContent = {}
@@ -209,6 +210,7 @@ class Utilities(script_utilities.Utilities):
self._treatAsDiv = {}
self._paths = {}
self._contextPathsRolesAndNames = {}
+ self._canHaveCaretContextDecision = {}
self._cleanupContexts()
self._priorContexts = {}
self._lastQueuedLiveRegionEvent = None
@@ -4772,6 +4774,10 @@ class Utilities(script_utilities.Utilities):
return rv
def _canHaveCaretContext(self, obj):
+ rv = self._canHaveCaretContextDecision.get(hash(obj))
+ if rv is not None:
+ return rv
+
startTime = time.time()
if not obj:
return False
@@ -4838,6 +4844,7 @@ class Utilities(script_utilities.Utilities):
msg = "INFO: Verified %s can have caret context. (%.4fs)" % (obj, time.time() - startTime)
debug.println(debug.LEVEL_INFO, msg, True)
+ self._canHaveCaretContextDecision[hash(obj)] = True
return True
def isPseudoElement(self, obj):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]