You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maka.apache.org by as...@apache.org on 2026/10/09 01:57:18 UTC

(maka) branch probe/native-dialogs updated: ci: capture probe evidence when a dialog is not exposed (do not merge)

This is an automated email from the ASF dual-hosted git repository.

Astro-Han pushed a commit to branch probe/native-dialogs
in repository https://gitbox.apache.org/repos/asf/maka.git


The following commit(s) were added to refs/heads/probe/native-dialogs by this push:
     new a8e6446c0d ci: capture probe evidence when a dialog is not exposed (do not merge)
a8e6446c0d is described below

commit a8e6446c0d4d0739f369b9bfc89389066dd73755
Author: AstroHan <le...@outlook.com>
AuthorDate: Fri Oct 9 11:57:12 2026 +1000

    ci: capture probe evidence when a dialog is not exposed (do not merge)
    
    Generated-by: Claude Code
---
 scripts/native-dialog-probe/drive-linux.py    |  5 +++++
 scripts/native-dialog-probe/drive-windows.ps1 | 15 ++++++++++++++-
 scripts/native-dialog-probe/probe.mjs         |  1 +
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/scripts/native-dialog-probe/drive-linux.py b/scripts/native-dialog-probe/drive-linux.py
index 41c5610e9a..5c54e83ef5 100644
--- a/scripts/native-dialog-probe/drive-linux.py
+++ b/scripts/native-dialog-probe/drive-linux.py
@@ -79,6 +79,11 @@ def answer(button_name, shot):
     time.sleep(0.5)
     screenshot(shot)
     if button is None:
+        desktop = Atspi.get_desktop(0)
+        with open(os.path.join(OUT, "atspi-apps.txt"), "w", encoding="utf-8") as apps:
+            for i in range(desktop.get_child_count()):
+                app = desktop.get_child_at_index(i)
+                apps.write(f"{app.get_name()!r} pid={app.get_process_id()} children={app.get_child_count()}\n")
         raise SystemExit(f"AT-SPI did not expose a button named {button_name!r}")
     dialog = dialog_of(button)
     with open(os.path.join(OUT, "atspi-tree.txt"), "a", encoding="utf-8") as tree:
diff --git a/scripts/native-dialog-probe/drive-windows.ps1 b/scripts/native-dialog-probe/drive-windows.ps1
index 2bbe561f70..5d5f812d33 100644
--- a/scripts/native-dialog-probe/drive-windows.ps1
+++ b/scripts/native-dialog-probe/drive-windows.ps1
@@ -41,7 +41,20 @@ function Answer([string]$buttonName, [string]$shot) {
     Start-Sleep -Milliseconds 500
     $button = $A::RootElement.FindFirst([System.Windows.Automation.TreeScope]::Descendants, $condition)
   }
-  if (-not $button) { throw "UI Automation did not expose a button named '$buttonName'" }
+  if (-not $button) {
+    Save-Screen "missing-$shot"
+    $A::RootElement.FindAll([System.Windows.Automation.TreeScope]::Children, [System.Windows.Automation.Condition]::TrueCondition) |
+      ForEach-Object { "$($_.Current.ProcessId) $($_.Current.ControlType.ProgrammaticName) '$($_.Current.Name)' class=$($_.Current.ClassName)" } |
+      Tee-Object -Append (Join-Path $OutDir 'uia-top-level.txt')
+    $electronWindows = $A::RootElement.FindAll([System.Windows.Automation.TreeScope]::Children,
+      (New-Object System.Windows.Automation.PropertyCondition($A::ProcessIdProperty, $proc.Id)))
+    foreach ($window in $electronWindows) {
+      $window.FindAll([System.Windows.Automation.TreeScope]::Descendants, [System.Windows.Automation.Condition]::TrueCondition) |
+        ForEach-Object { "$($_.Current.ControlType.ProgrammaticName) '$($_.Current.Name)' class=$($_.Current.ClassName)" } |
+        Tee-Object -Append (Join-Path $OutDir 'uia-electron-tree.txt')
+    }
+    throw "UI Automation did not expose a button named '$buttonName'"
+  }
   Start-Sleep -Milliseconds 500
   Save-Screen $shot
   $walker = [System.Windows.Automation.TreeWalker]::ControlViewWalker
diff --git a/scripts/native-dialog-probe/probe.mjs b/scripts/native-dialog-probe/probe.mjs
index 94553ed2ed..804a896d6e 100644
--- a/scripts/native-dialog-probe/probe.mjs
+++ b/scripts/native-dialog-probe/probe.mjs
@@ -26,6 +26,7 @@ import { presentMessageBox } from './out/desktop-message-box.mjs';
 app.whenReady().then(run);
 
 async function run() {
+  console.log(`NO_AT_BRIDGE=${process.env.NO_AT_BRIDGE ?? '<unset>'}`);
   const win = new BrowserWindow({ width: 960, height: 640, title: 'Maka' });
   await win.loadURL(
     'data:text/html;charset=utf-8,<h1 style="font-family:sans-serif">Maka probe</h1>',


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org