Skip to content

v2.0.0-beta.1

Choose a tag to compare

@ioa747 ioa747 released this 10 Feb 03:48
· 289 commits to main since this release
77e1afd

Version 2.0.0-beta.1

Multi-Instance & Sender-Aware Architecture

This major version introduces breaking changes to support professional multi-instance applications by making all COM events "Sender-Aware".

Changed (C# Core)

  • Sender-Aware Events:
    • All events now include the parameters (object sender, object parentHandle, ...) to allow AutoIt to distinguish which instance fired the event.
  • Architecture Refactor:
    • WebViewBridge now holds a "Sealed" context linked to its specific WebViewManager and parent HWND.
  • Pre-emptive Key Blocking (Stability Phase):
    • Abandoned Sync-Wait Loop: Removed the legacy approach of waiting for AutoIt's Handled = True in OnAcceleratorKeyPressed via a poll loop. This was causing intermittent COM deadlocks and re-entrancy issues.
    • Synchronous Veto: Replaced with BlockedVirtualKeys property. Blocking is now performed immediately in C# based on a pre-defined list, ensuring 100% reliability for keys like F5 and F12.
  • Internal Messaging Overlay:
    • InternalPushMessage: Implemented a secondary messaging layer to handle internal state updates and events that require UI-thread marshalling without triggering external COM event floods.

Added (C# Core)

  • BrowserWindowHandle: (222) [Property] Exposes the internal window handle (HWND) of the WebView2 control as a COM-friendly object. Allows users to perform native Win32 operations (like SendMessage or custom subclassing) directly on the browser window.
  • OnAcceleratorKeyPressed Restoration: (221) [Event] Restored functionality using Reflection to access the internal CoreWebView2Controller.
  • BlockedVirtualKeys: (223) [Property] Allows defining a comma-separated list of VK codes to be blocked synchronously and pre-emptively by the C# core, bypassing COM sync issues.