You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## 🚀 What's New in v2.0.0-stable - Professional Naming & Absolute Stability
65
66
66
-
## 🚀 What's New in v2.0.0-beta.3 - AcceleratorKey Detail & Refactoring
67
-
68
-
This update focuses on deep keyboard interception and code modularity.
67
+
This stable release marks the transition to a professional, standardized COM architecture and introduces high-performance infrastructure for production-grade applications.
69
68
70
69
### ⚡ Key Features & Enhancements
71
70
72
-
#### **1. PhysicalKeyStatus Expansion**
73
-
The `OnAcceleratorKeyPressed` event now provides 1:1 access to the underlying Windows keyboard state.
74
-
-**New Properties**: `RepeatCount`, `ScanCode`, `IsExtendedKey`, `IsMenuKeyDown`, `WasKeyDown`, and `IsKeyReleased`.
75
-
-**Use Case**: Detect held keys, distinguish between left/right Alt/Ctrl, and implement complex hotkey logic without Win32 API calls.
71
+
#### **1. COM Standardizing (NetWebView2Lib)**
72
+
The library has transitioned to a consistent naming convention for all subsystems, improving discoverability and professional alignment.
73
+
-**New ProgIDs**: `NetWebView2Lib.WebView2Manager`, `NetWebView2Lib.WebView2Bridge`, and `NetWebView2Lib.WebView2Parser`.
74
+
-**Full Backward Compatibility**: Legacy ProgIDs (e.g., `NetWebView2.Manager`) continue to function via an inheritance-based compatibility layer.
76
75
77
-
#### **2. Performance & Modularity**
78
-
-**Standalone Argument Logic**: Argument wrappers have been moved to dedicated files (e.g., `WebView2AcceleratorKeyPressedEventArgs.cs`).
79
-
-**Lean Core**: Reduced `WebViewManager.cs` complexity by outsourcing event data structures.
76
+
#### **2. Threading & Stability Mastery**
77
+
Identified and resolved complex threading deadlocks in asynchronous handlers.
78
+
-**UI-Thread Marshalling**: Explicit synchronization ensure that events like Context Menus, Downloads, and IFrame HTML extraction always safely interact with the AutoIt UI thread.
79
+
-**SDK Resilience**: Reflection-based URI retrieval for IFrames ensures compatibility across different versions of the WebView2 SDK.
80
80
81
-
#### **3. Process Stability & Authentication**
82
-
-**Robust Crash Handling**: `OnProcessFailed` provides deep insights into process crashes, allowing for automated recovery or logging.
83
-
-**Crash Dump Management**: `FailureReportFolderPath` allows redirection of diagnostic files.
84
-
-**Native Authentication**: `OnBasicAuthenticationRequested` brings support for server-level auth prompts, including asynchronous credential entry via the `.Complete()` method.
To ensure maximum reliability across the broadest possible range of Windows installations, we have standardized the core engine on a specific, high-stability SDK version.
83
+
-**Fixed Version**: Locked to **WebView2 SDK 1.0.2739.15** (Released August 26, 2024).
84
+
-**Runtime Requirement**: Requires **WebView2 Runtime 128.0.2739.15** or newer.
85
+
-**Strategic Choice**: This version provides a "Sweet Spot" of features—including full support for IFrame scraping, Basic Authentication, and Process Failure events—while maintaining compatibility with the vast majority of current "Evergreen" browser installations.
86
+
-**Strict Validation**: The registration utility (`Register_web2.au3`) has been updated to perform a mandatory check for this minimum runtime version, preventing obscure startup errors.
85
87
86
-
---
88
+
#### **4. Enriched Verbose Logging**
89
+
A redesigned diagnostic system for easier debugging of complex workflows.
90
+
-**Branded & Traceable**: Every log line now includes the `+++[NetWebView2Lib]` prefix and the instance-specific `[HANDLE:0x...]`.
91
+
-**Comprehensive Event Tracing**: Detailed logs for Navigation, Resource Requests (with HTTP codes), Focus changes, and Web Messages.
92
+
-**Default Folder Sync**: Renamed the default crash folder to `FailureReportFolder` for better parity with internal WebView2 parameters.
87
93
88
-
## 🚀 What's New in v2.0.0-beta.2 - COM Versioning & Handle Alignment
94
+
#### **4. High-Performance IFrame Scraping**
95
+
Bulk extraction methods (`GetFrameUrls`, `GetFrameNames`) allow for high-speed metadata retrieval from complex multi-frame layouts, essential for advanced web scraping.
89
96
90
-
This update introduces the ability to query the DLL version directly and aligns window handles with AutoIt's native format.
97
+
---
98
+
#### 🖼️ IFrame HTML Extraction
91
99
92
-
### ⚡ Key Features & Enhancements
100
+
We implemented a robust system to track and extract HTML from iframes, including cross-origin ones.
101
+
102
+
##### 1. Frame Tracking System
103
+
104
+
A dynamic registration system was added to
105
+
106
+
WebView2Manager.cs to track the lifecycle of all iframes.
107
+
108
+
-**Initialization**: Automatically subscribes to `CoreWebView2.FrameCreated`.
109
+
-**Lifecycle Management**: Tracks `CoreWebView2Frame` objects in a thread-safe list and automatically removes them on `Destroyed`.
All window handles returned by the library (via properties or events) are now formatted as strings compatible with AutoIt's Advanced Window Descriptions.
96
-
-**Direct Compatibility**: Handles like `[HANDLE:0x00010203]` can be passed directly to `WinExists`, `WinSetTitle`, etc., without `HWnd()` conversion.
@@ -181,6 +232,10 @@ Enables or disables the `OnWebResourceResponseReceived` event entirely.
181
232
Determines whether `OnWebResourceResponseReceived` triggers for all resources (False) or only for the main document (True). Essential for preventing GUI deadlocks in AutoIt.
182
233
`object.HttpStatusCodeDocumentOnly = Value`
183
234
235
+
##### Verbose
236
+
Enable diagnostic logging to console. (before `$object.Initialize()`)
237
+
`object.Verbose = Value`
238
+
184
239
##### IsDownloadHandled
185
240
Determines whether the download is handled by the application. If set to **True** during `OnDownloadStarting`, the internal Edge download is cancelled.
186
241
`object.IsDownloadHandled = Value`
@@ -211,14 +266,14 @@ A comma-separated list of Virtual Key codes to be blocked synchronously (e.g., "
211
266
212
267
##### FailureReportFolderPath
213
268
Sets or gets the path where the WebView2 browser stores crash reports (dump files).
214
-
-**Default**: If NOT set by the user, the system automatically uses the `Crashes` subfolder within the `UserDataFolder` (assigned during `.Initialize`).
269
+
-**Default**: If NOT set by the user, the system automatically uses the `FailureReportFolderPath` subfolder within the `UserDataFolder` (assigned during `.Initialize`).
215
270
-**Manual Override**: You can set a custom path **before** calling `.Initialize`.
0 commit comments