Remove temporary Enter tracing instrumentation

This commit is contained in:
austinpower1258 2026-02-24 00:09:53 -08:00 committed by Lawrence Chen
parent ab1368828b
commit df9f1a1e6c
2 changed files with 2 additions and 160 deletions

View file

@ -3962,7 +3962,6 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent
guard let self else { return event }
if event.type == .keyDown {
#if DEBUG
let isEnterKey = event.keyCode == 36 || event.keyCode == 76
if (ProcessInfo.processInfo.environment["CMUX_KEY_LATENCY_PROBE"] == "1"
|| UserDefaults.standard.bool(forKey: "cmuxKeyLatencyProbe")),
event.timestamp > 0 {
@ -3974,36 +3973,18 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent
dlog(
"monitor.keyDown: \(NSWindow.keyDescription(event)) fr=\(frType) addrBarId=\(self.browserAddressBarFocusedPanelId?.uuidString.prefix(8) ?? "nil") \(self.debugShortcutRouteSnapshot(event: event))"
)
if isEnterKey {
dlog(
"enter.trace stage=app.monitor.pre event=\(NSWindow.keyDescription(event)) " +
"fr=\(frType) addrBarId=\(self.browserAddressBarFocusedPanelId?.uuidString.prefix(8) ?? "nil")"
)
}
if let probeKind = self.developerToolsShortcutProbeKind(event: event) {
self.logDeveloperToolsShortcutSnapshot(phase: "monitor.pre.\(probeKind)", event: event)
}
#endif
if self.handleCustomShortcut(event: event) {
#if DEBUG
if isEnterKey {
dlog(
"enter.trace stage=app.monitor.consume event=\(NSWindow.keyDescription(event)) " +
"reason=handleCustomShortcut"
)
}
dlog(" → consumed by handleCustomShortcut")
DebugEventLog.shared.dump()
#endif
return nil // Consume the event
}
#if DEBUG
if isEnterKey {
dlog(
"enter.trace stage=app.monitor.pass event=\(NSWindow.keyDescription(event)) " +
"reason=handleCustomShortcutReturnedFalse"
)
}
DebugEventLog.shared.dump()
#endif
return event // Pass through
@ -5146,18 +5127,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent
/// through the same app-level shortcut handler used by the local key monitor.
@discardableResult
func handleBrowserSurfaceKeyEquivalent(_ event: NSEvent) -> Bool {
let consumed = handleCustomShortcut(event: event)
#if DEBUG
if event.keyCode == 36 || event.keyCode == 76 {
let frType = NSApp.keyWindow?.firstResponder.map { String(describing: type(of: $0)) } ?? "nil"
dlog(
"enter.trace stage=app.browserSurfaceKeyEquivalent event=\(NSWindow.keyDescription(event)) " +
"consumed=\(consumed ? 1 : 0) fr=\(frType) " +
"addrBarId=\(browserAddressBarFocusedPanelId?.uuidString.prefix(8) ?? "nil")"
)
}
#endif
return consumed
handleCustomShortcut(event: event)
}
#if DEBUG
@ -6615,19 +6585,9 @@ private extension NSWindow {
}
@objc func cmux_performKeyEquivalent(with event: NSEvent) -> Bool {
let isEnterKey = event.keyCode == 36 || event.keyCode == 76
#if DEBUG
let frType = self.firstResponder.map { String(describing: type(of: $0)) } ?? "nil"
dlog("performKeyEquiv: \(Self.keyDescription(event)) fr=\(frType)")
if isEnterKey {
let frGhostty = cmuxOwningGhosttyView(for: self.firstResponder) != nil
let frWeb = self.firstResponder.flatMap { Self.cmuxOwningWebView(for: $0) } != nil
dlog(
"enter.trace stage=window.performKeyEquivalent.start event=\(Self.keyDescription(event)) " +
"fr=\(frType) frGhostty=\(frGhostty ? 1 : 0) frWeb=\(frWeb ? 1 : 0) " +
"win=\(self.windowNumber)"
)
}
#endif
// When the terminal surface is the first responder, prevent SwiftUI's
@ -6658,12 +6618,6 @@ private extension NSWindow {
let result = ghosttyView.performKeyEquivalent(with: event)
#if DEBUG
dlog(" → ghostty direct: \(result)")
if isEnterKey {
dlog(
"enter.trace stage=window.performKeyEquivalent.ghosttyDirect " +
"event=\(Self.keyDescription(event)) consumed=\(result ? 1 : 0)"
)
}
#endif
return result
}
@ -6685,16 +6639,7 @@ private extension NSWindow {
}
}
let consumedByBrowserSurface = AppDelegate.shared?.handleBrowserSurfaceKeyEquivalent(event) == true
#if DEBUG
if isEnterKey {
dlog(
"enter.trace stage=window.performKeyEquivalent.browserSurface event=\(Self.keyDescription(event)) " +
"consumed=\(consumedByBrowserSurface ? 1 : 0)"
)
}
#endif
if consumedByBrowserSurface {
if AppDelegate.shared?.handleBrowserSurfaceKeyEquivalent(event) == true {
#if DEBUG
dlog(" → consumed by handleBrowserSurfaceKeyEquivalent")
#endif
@ -6733,12 +6678,6 @@ private extension NSWindow {
let result = cmux_performKeyEquivalent(with: event)
#if DEBUG
if result { dlog(" → consumed by original performKeyEquivalent") }
if isEnterKey {
dlog(
"enter.trace stage=window.performKeyEquivalent.original event=\(Self.keyDescription(event)) " +
"consumed=\(result ? 1 : 0)"
)
}
#endif
return result
}

View file

@ -63,72 +63,6 @@ final class CmuxWebView: WKWebView {
}
var debugPointerFocusAllowanceDepth: Int { pointerFocusAllowanceDepth }
#if DEBUG
private func debugKeyDescription(_ event: NSEvent) -> String {
var parts: [String] = []
let flags = event.modifierFlags.intersection(.deviceIndependentFlagsMask)
if flags.contains(.command) { parts.append("Cmd") }
if flags.contains(.shift) { parts.append("Shift") }
if flags.contains(.option) { parts.append("Opt") }
if flags.contains(.control) { parts.append("Ctrl") }
let chars = event.charactersIgnoringModifiers ?? "?"
parts.append("'\(chars)'(\(event.keyCode))")
return parts.joined(separator: "+")
}
private func debugEnterTrace(
stage: String,
event: NSEvent,
consumed: Bool? = nil,
note: String? = nil
) {
let firstResponderType = window?.firstResponder.map { String(describing: type(of: $0)) } ?? "nil"
let host = url?.host ?? "nil"
var line =
"enter.trace stage=\(stage) web=\(ObjectIdentifier(self)) " +
"event=\(debugKeyDescription(event)) fr=\(firstResponderType) " +
"win=\(window?.windowNumber ?? -1) host=\(host)"
if let consumed {
line += " consumed=\(consumed ? 1 : 0)"
}
if let note {
line += " note=\(note)"
}
dlog(line)
}
private func debugLogActiveElementForEnter(stage: String) {
let js = """
(() => {
const el = document.activeElement;
if (!el) return 'none';
const tag = (el.tagName || '').toLowerCase();
const id = el.id || '-';
const name = el.getAttribute('name') || '-';
const type = el.getAttribute('type') || '-';
return `${tag}|${id}|${name}|${type}`;
})();
"""
evaluateJavaScript(js) { [weak self] result, error in
guard let self else { return }
let activeSummary: String
if let error {
activeSummary = "error=\(error.localizedDescription)"
} else if let text = result as? String {
activeSummary = text
} else if let result {
activeSummary = String(describing: result)
} else {
activeSummary = "nil"
}
dlog(
"enter.trace stage=\(stage).dom web=\(ObjectIdentifier(self)) " +
"active=\(activeSummary)"
)
}
}
#endif
override func becomeFirstResponder() -> Bool {
guard allowsFirstResponderAcquisitionEffective else {
#if DEBUG
@ -182,14 +116,6 @@ final class CmuxWebView: WKWebView {
if event.keyCode == 36 || event.keyCode == 76 {
// Always bypass app/menu key-equivalent routing for Return/Enter so WebKit
// receives the keyDown path used by form submission handlers.
#if DEBUG
debugEnterTrace(
stage: "web.performKeyEquivalent.bypass",
event: event,
consumed: false,
note: "returnFalseForEnter"
)
#endif
return false
}
@ -215,37 +141,14 @@ final class CmuxWebView: WKWebView {
}
override func keyDown(with event: NSEvent) {
#if DEBUG
if event.keyCode == 36 || event.keyCode == 76 {
debugEnterTrace(stage: "web.keyDown.pre", event: event, note: "beforeSuper")
debugLogActiveElementForEnter(stage: "web.keyDown.pre")
}
#endif
// Some Cmd-based key paths in WebKit don't consistently invoke performKeyEquivalent.
// Route them through the same app-level shortcut handler as a fallback.
if event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.command),
AppDelegate.shared?.handleBrowserSurfaceKeyEquivalent(event) == true {
#if DEBUG
if event.keyCode == 36 || event.keyCode == 76 {
debugEnterTrace(
stage: "web.keyDown.commandConsumed",
event: event,
consumed: true,
note: "handleBrowserSurfaceKeyEquivalent"
)
}
#endif
return
}
super.keyDown(with: event)
#if DEBUG
if event.keyCode == 36 || event.keyCode == 76 {
debugEnterTrace(stage: "web.keyDown.post", event: event, note: "afterSuper")
debugLogActiveElementForEnter(stage: "web.keyDown.post")
}
#endif
}
// MARK: - Focus on click