Preserve web active window during transient Brave focus checks

This commit is contained in:
Storm Dragon
2026-05-16 23:29:51 -04:00
parent 4145e9375b
commit a84aec94a9
2 changed files with 69 additions and 0 deletions
+53
View File
@@ -100,6 +100,59 @@ class WebKeyGrabRegressionTests(unittest.TestCase):
testScript.refreshKeyGrabs.assert_called_once_with()
class WebActiveWindowRegressionTests(unittest.TestCase):
def test_sanity_check_recovers_missing_script_app_from_active_window(self):
testScript = mock.Mock(app=None)
utilities = web_script_utilities.Utilities.__new__(web_script_utilities.Utilities)
utilities._script = testScript
activeWindow = object()
app = object()
with (
mock.patch.object(web_script_utilities.cthulhu_state, "activeWindow", activeWindow),
mock.patch.object(web_script_utilities.cthulhu_state, "locusOfFocus", None),
mock.patch.object(
web_script_utilities.AXObject,
"get_application",
side_effect=lambda obj: app if obj is activeWindow else None,
),
mock.patch.object(
web_script_utilities.AXObject,
"get_parent",
side_effect=lambda obj: app if obj is activeWindow else None,
),
mock.patch.object(web_script_utilities.cthulhu, "setActiveWindow") as setActiveWindow,
):
result = web_script_utilities.Utilities.sanityCheckActiveWindow(utilities)
self.assertTrue(result)
self.assertIs(testScript.app, app)
setActiveWindow.assert_not_called()
def test_sanity_check_preserves_current_window_when_recovery_is_inconclusive(self):
oldApp = object()
testScript = mock.Mock(app=oldApp)
utilities = web_script_utilities.Utilities.__new__(web_script_utilities.Utilities)
utilities._script = testScript
activeWindow = object()
with (
mock.patch.object(web_script_utilities.cthulhu_state, "activeWindow", activeWindow),
mock.patch.object(
web_script_utilities.AXObject,
"get_parent",
return_value=object(),
),
mock.patch.object(utilities, "activeWindow", return_value=None),
mock.patch.object(web_script_utilities.cthulhu, "setActiveWindow") as setActiveWindow,
):
result = web_script_utilities.Utilities.sanityCheckActiveWindow(utilities)
self.assertTrue(result)
self.assertIs(testScript.app, oldApp)
setActiveWindow.assert_not_called()
class WebPresentationModeSpeechRegressionTests(unittest.TestCase):
def _make_script(self, inFocusMode):
testScript = web_script.Script.__new__(web_script.Script)