Skip to content

Commit d67f2bd

Browse files
authored
Update NetWebView2Lib.au3
1 parent 3a49c7e commit d67f2bd

1 file changed

Lines changed: 56 additions & 35 deletions

File tree

NetWebView2Lib.au3

Lines changed: 56 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Func _NetWebView2_CreateManager($sUserAgent = "", $s_fnEventPrefix = "", $s_AddB
158158
; Verbose property was added to allow real-time diagnostic logging to the SciTE console (or any stdout listener).
159159
; The diagnostic logs use a distinctive prefix and include the instance handle for easier filtering in multi-window applications.
160160
$oWebV2M.Verbose = $bVerbose
161-
;~ If $_g_bNetWebView2_DebugDev Then __NetWebView2_ObjName_FlagsValue($oWebV2M) ; FOR DEV TESTING ONLY
161+
;~ If $_g_bNetWebView2_DebugDev Then __NetWebView2_ObjName_FlagsValue($oWebV2M) ; FOR DEV TESTING ONLY
162162

163163
If $sUserAgent Then $oWebV2M.SetUserAgent($sUserAgent)
164164
If $s_AddBrowserArgs Then $oWebV2M.AdditionalBrowserArguments = $s_AddBrowserArgs
@@ -206,7 +206,6 @@ Func _NetWebView2_Initialize($oWebV2M, $hUserGUI, $s_ProfileDirectory, $i_Left =
206206

207207
If Not IsHWnd($hUserGUI) Then
208208
$ERR = $NETWEBVIEW2_MESSAGE__CRITICAL_ERROR
209-
$EXT = 0
210209
$RET = False
211210
$MSG = " !!! ERROR: $hUserGUI is not a valid HWND pointer" & " #SLN=" & @ScriptLineNumber
212211
Else
@@ -215,7 +214,9 @@ Func _NetWebView2_Initialize($oWebV2M, $hUserGUI, $s_ProfileDirectory, $i_Left =
215214
; This prevents the COM layer from changing the AutoIt variable type from Ptr to Int64.
216215
$RET = $oWebV2M.Initialize(($hUserGUI), $s_ProfileDirectory, $i_Left, $i_Top, $i_Width, $i_Height)
217216
If @error Then
218-
Return SetError(@error, @extended, $RET)
217+
$ERR = @error
218+
$EXT = @extended
219+
$MSG = " !!! ERROR: Initialization COM issue" & " #SLN=" & @ScriptLineNumber
219220
Else
220221
If $_g_bNetWebView2_DebugDev Then ConsoleWrite("! IFNC: FailureReportFolderPath = " & $oWebV2M.FailureReportFolderPath & @CRLF)
221222

@@ -225,38 +226,52 @@ Func _NetWebView2_Initialize($oWebV2M, $hUserGUI, $s_ProfileDirectory, $i_Left =
225226
Local $iMessage
226227
Do
227228
__NetWebView2_Sleep(10)
228-
#TODO ENDPOINT
229-
If @error Then Return SetError(@error, @extended, "")
230-
231-
$iMessage = __NetWebView2_LastMessage_KEEPER($oWebV2M)
232-
If $iMessage = $NETWEBVIEW2_MESSAGE__INIT_FAILED _
233-
Or $iMessage = $NETWEBVIEW2_MESSAGE__PROFILE_NOT_READY _
234-
Or $iMessage = $NETWEBVIEW2_MESSAGE__PROCESS_FAILED _
235-
Or $iMessage = $NETWEBVIEW2_MESSAGE__CRITICAL_ERROR Then
236-
#TODO ENDPOINT
237-
Return SetError($iMessage, @extended, "")
229+
If @error Then
230+
$ERR = @error
231+
$EXT = @extended
232+
$RET = ""
233+
$MSG = " !!! ERROR: Sleep aborted" & " #SLN=" & @ScriptLineNumber
234+
ExitLoop
235+
Else
236+
$iMessage = __NetWebView2_LastMessage_KEEPER($oWebV2M) ; get last message
237+
If $iMessage = $NETWEBVIEW2_MESSAGE__INIT_FAILED _
238+
Or $iMessage = $NETWEBVIEW2_MESSAGE__PROFILE_NOT_READY _
239+
Or $iMessage = $NETWEBVIEW2_MESSAGE__PROCESS_FAILED _
240+
Or $iMessage = $NETWEBVIEW2_MESSAGE__CRITICAL_ERROR Then
241+
$ERR = 1
242+
$RET = $iMessage
243+
$MSG = " !!! ERROR: Last Message= " & $iMessage & " #SLN=" & @ScriptLineNumber
244+
ExitLoop
245+
Else
246+
If TimerDiff($hTimer) >= $iTimeOut_ms Then
247+
$ERR = 2
248+
$RET = ""
249+
$MSG = " !!! ERROR: TimeOut happend" & " #SLN=" & @ScriptLineNumber
250+
ExitLoop
251+
EndIf
252+
EndIf
238253
EndIf
239-
#TODO ENDPOINT
240-
If TimerDiff($hTimer) >= $iTimeOut_ms Then Return SetError(1, 0, "")
241254
Until $oWebV2M.IsReady Or $iMessage = $NETWEBVIEW2_MESSAGE__INIT_READY
242255
;~ If Not __NetWebView2_WaitForReadyState($oWebV2M, $hTimer, $iTimeOut_ms) Then Return SetError(2, 0, "")
243256
#EndRegion ; After Initialization wait for the engine to be ready before navigating
244257

245-
; WebView2 Configuration
246-
$oWebV2M.SetAutoResize($b_SetAutoResize) ; Using SetAutoResize(True) to skip WM_SIZE
247-
$oWebV2M.AreDevToolsEnabled = $b_DevToolsEnabled ; Allow F12
248-
$oWebV2M.ZoomFactor = $i_ZoomFactor
249-
$oWebV2M.BackColor = $s_BackColor
258+
If Not $ERR Then
259+
; WebView2 Configuration
260+
$oWebV2M.SetAutoResize($b_SetAutoResize) ; Using SetAutoResize(True) to skip WM_SIZE
261+
$oWebV2M.AreDevToolsEnabled = $b_DevToolsEnabled ; Allow F12
262+
$oWebV2M.ZoomFactor = $i_ZoomFactor
263+
$oWebV2M.BackColor = $s_BackColor
250264

251-
If $b_InitConsole Then
252-
$oWebV2M.AddInitializationScript(__Get_Core_Bridge_JS())
253-
EndIf
265+
If $b_InitConsole Then
266+
$oWebV2M.AddInitializationScript(__Get_Core_Bridge_JS())
267+
EndIf
254268

255-
$EXT = $oWebV2M.GetBrowserProcessId()
269+
$EXT = $oWebV2M.GetBrowserProcessId()
270+
EndIf
256271
EndIf
257272
EndIf
273+
258274
__NetWebView2_Log(@ScriptLineNumber, $s_Prefix & $MSG, 1, $ERR, $EXT)
259-
If $ERR Then __NetWebView2_Log(@ScriptLineNumber, $s_Prefix & " !!! Manager Creation ERROR", 1)
260275
Return SetError($ERR, $EXT, $RET)
261276
EndFunc ;==>_NetWebView2_Initialize
262277

@@ -437,12 +452,17 @@ Func _NetWebView2_ExecuteScript($oWebV2M, $sJavaScript, $iMode = $NETWEBVIEW2_EX
437452
Switch $iMode
438453
Case 0
439454
$RET = $oWebV2M.ExecuteScript($sJavaScript)
455+
$ERR = @error
456+
If @error Then $MSG = " ! Manager.ExecuteScript($sJavaScript) ERROR " & " #SLN=" & @ScriptLineNumber
440457
Case 1
441458
$RET = $oWebV2M.ExecuteScriptOnPage($sJavaScript)
459+
$ERR = @error
460+
If @error Then $MSG = " ! Manager.ExecuteScriptOnPage($sJavaScript) ERROR " & " #SLN=" & @ScriptLineNumber
442461
Case 2
443462
$RET = $oWebV2M.ExecuteScriptWithResult($sJavaScript)
463+
$ERR = @error
464+
If @error Then $MSG = " ! Manager.ExecuteScriptWithResult($sJavaScript) ERROR " & " #SLN=" & @ScriptLineNumber
444465
EndSwitch
445-
$ERR = @error
446466
__NetWebView2_Log(@ScriptLineNumber, $s_Prefix & $MSG, 1, $ERR, $EXT)
447467
Return SetError($ERR, $EXT, $RET)
448468
EndFunc ;==>_NetWebView2_ExecuteScript
@@ -519,6 +539,7 @@ EndFunc ;==>_NetWebView2_GetVersion
519539
; $iTimeOut_ms - [optional] Maximum time to wait in milliseconds. 0 for infinite. Default is 5000ms
520540
; Return values .: Success - True
521541
; Failure - False and sets @error:
542+
#TODO @error numbers changed revise the header
522543
; 3 - Navigation Error ($NETWEBVIEW2_MESSAGE__NAV_ERROR)
523544
; 4 - Timeout reached
524545
; Author ........: mLipok, ioa747
@@ -599,7 +620,7 @@ Func _NetWebView2_LoadWait($oWebV2M, $iWaitMessage = $NETWEBVIEW2_MESSAGE__TITLE
599620
EndIf
600621
EndIf
601622
EndIf
602-
If $_g_bNetWebView2_DebugDev Then ConsoleWrite("> IFNC: TEST LOAD WAIT: __NetWebView2_LastMessage_Navigation($oWebV2M)=" & $iLastMessage & " >> " & __NetWebView2_LastMessage_Navigation($oWebV2M) & " #SLN=" & @ScriptLineNumber & @CRLF)
623+
If $_g_bNetWebView2_DebugDev Then ConsoleWrite("! IFNC: TEST LOAD WAIT: __NetWebView2_LastMessage_Navigation($oWebV2M)=" & $iLastMessage & " >> " & __NetWebView2_LastMessage_Navigation($oWebV2M) & " #SLN=" & @ScriptLineNumber & @CRLF)
603624
WEnd
604625

605626
__NetWebView2_Log(@ScriptLineNumber, $s_Prefix & $MSG, 1, $ERR, $EXT)
@@ -1519,7 +1540,7 @@ Func __NetWebView2_LastMessage_onReceived($oWebV2M, $iMessage = Default, $iError
15191540
Local Static $mLastMessegReceived[]
15201541
Local $sKey = "" & $oWebV2M.BrowserWindowHandle
15211542

1522-
If $iMessage = Default Then
1543+
If $iMessage = Default Then ; function acts as GET
15231544
$RET = $mLastMessegReceived[$sKey]
15241545
Else
15251546
If $_g_bNetWebView2_DebugDev Then ConsoleWrite("! IFNC: __NetWebView2_LastMessage_onReceived ==> " & $iMessage & " Key=" & $sKey & " #SLN=" & @ScriptLineNumber & @CRLF)
@@ -1543,8 +1564,8 @@ Func __NetWebView2_LastMessage_Navigation($oWebV2M, $iMessage = Default, $iError
15431564

15441565
Local Static $mLastNavigationMessage[]
15451566
Local $sKey = "" & $oWebV2M.BrowserWindowHandle
1546-
If $iMessage = Default Then
1547-
$RET = $mLastNavigationMessage[$sKey])
1567+
If $iMessage = Default Then ; function acts as GET
1568+
$RET = $mLastNavigationMessage[$sKey]
15481569
Else
15491570
If $iMessage >= $NETWEBVIEW2_MESSAGE__NAV_STARTING And $iMessage <= $NETWEBVIEW2_MESSAGE__TITLE_CHANGED Then
15501571
If $_g_bNetWebView2_DebugDev Then ConsoleWrite("! IFNC: __NetWebView2_LastMessage_Navigation ==> " & $iMessage & " Key=" & $sKey & " #SLN=" & @ScriptLineNumber & @CRLF)
@@ -1911,7 +1932,7 @@ Volatile Func __NetWebView2_Events__OnMessageReceived($oWebV2M, $hGUI, $sMsg)
19111932

19121933
Local Static $sCommand_static = ""
19131934
If $_g_bNetWebView2_DebugDev And $sCommand_static <> $sCommand Then ; show the log - for DEV only
1914-
;~ ConsoleWrite("TEST IFNC: " & $s_Prefix & " #SLN=" & @ScriptLineNumber & " " & $sCommand & " Data=" & (StringLen($sData) > 120 ? StringLeft($sData, 120) & "..." : $sData) & @CRLF) ; FOR DEV TESTING ONLY
1935+
;~ ConsoleWrite("! IFNC: " & $s_Prefix & " #SLN=" & @ScriptLineNumber & " " & $sCommand & " Data=" & (StringLen($sData) > 120 ? StringLeft($sData, 120) & "..." : $sData) & @CRLF) ; FOR DEV TESTING ONLY
19151936
$sCommand_static = $sCommand
19161937
EndIf
19171938
#EndRegion ; Message parsing
@@ -1962,9 +1983,9 @@ Volatile Func __NetWebView2_Events__OnMessageReceived($oWebV2M, $hGUI, $sMsg)
19621983
EndIf
19631984

19641985
; 🚧 *******************************************
1965-
If $_g_bNetWebView2_DebugInfo Then
1966-
ConsoleWrite("> TEST NAV_ERR: " & $sMsg & @CRLF)
1967-
ConsoleWrite("> TEST NAV_ERR: __NetWebView2_LastMessage_KEEPER($oWebV2M)=" & __NetWebView2_LastMessage_KEEPER($oWebV2M) & " #SLN=" & @ScriptLineNumber & @CRLF)
1986+
If $_g_bNetWebView2_DebugDev Then
1987+
ConsoleWrite("! IFNC: NAV_ERR: " & $sMsg & @CRLF)
1988+
ConsoleWrite("! IFNC: NAV_ERR: __NetWebView2_LastMessage_KEEPER($oWebV2M)=" & __NetWebView2_LastMessage_KEEPER($oWebV2M) & " #SLN=" & @ScriptLineNumber & @CRLF)
19681989
EndIf
19691990

19701991
Case "NAV_COMPLETED"
@@ -2274,7 +2295,7 @@ Volatile Func __NetWebView2_Events__OnTitleChanged($oWebV2M, $hGUI, $sTITLE)
22742295
Local Const $s_Prefix = "[EVENT: OnTitleChanged]: GUI:" & $hGUI & " TITLE: " & $sTITLE
22752296
__NetWebView2_Log(@ScriptLineNumber, (StringLen($s_Prefix) > 150 ? StringLeft($s_Prefix, 150) & "..." : $s_Prefix), 1)
22762297
__NetWebView2_LastMessage_KEEPER($oWebV2M, $NETWEBVIEW2_MESSAGE__TITLE_CHANGED)
2277-
If $_g_bNetWebView2_DebugDev Then ConsoleWrite("> IFNC: TEST LOAD WAIT: __NetWebView2_LastMessage_Navigation($oWebV2M)=" & __NetWebView2_LastMessage_Navigation($oWebV2M) & " #SLN=" & @ScriptLineNumber & @CRLF)
2298+
If $_g_bNetWebView2_DebugDev Then ConsoleWrite("! IFNC: TEST LOAD WAIT: __NetWebView2_LastMessage_Navigation($oWebV2M)=" & __NetWebView2_LastMessage_Navigation($oWebV2M) & " #SLN=" & @ScriptLineNumber & @CRLF)
22782299
EndFunc ;==>__NetWebView2_Events__OnTitleChanged
22792300

22802301
; #INTERNAL_USE_ONLY# ===========================================================================================================

0 commit comments

Comments
 (0)