From 8daeaa688bbee252c5e93060bd7039eb8221228a Mon Sep 17 00:00:00 2001
From: Bjoern Esswein <692-bessw@users.noreply.gl.kwarc.info>
Date: Wed, 17 Jul 2024 18:11:13 +0200
Subject: [PATCH] fixed race condition in tab.getDocument by replacing it with
 an awaitable property

---
 Assets/Scripts/UI/InGame/WebViewController.cs | 8 ++++++--
 Packages/bessw.unity.webview                  | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/Assets/Scripts/UI/InGame/WebViewController.cs b/Assets/Scripts/UI/InGame/WebViewController.cs
index a2ca32a3..0be29c3f 100644
--- a/Assets/Scripts/UI/InGame/WebViewController.cs
+++ b/Assets/Scripts/UI/InGame/WebViewController.cs
@@ -35,6 +35,10 @@ private void OnWebViewComponentReady()
         SwitchScrollUI.activeScrollData.OnScrollDynamicInfoUpdated.AddListener(SetScrollContent);
         webViewComponent.tab.AddJSBinding("applyScroll", ApplyScrollHandler);
         webViewComponent.tab.AddJSBinding("getHint", GetHintHandler);
+        if (SwitchScrollUI.activeScrollData.Scroll is not null)
+        {
+            SetScrollContent(SwitchScrollUI.activeScrollData.Scroll);
+        }
         RegisterBrowserEventhandlers();
     }
     private void OnDisable()
@@ -61,7 +65,7 @@ private async void RegisterBrowserEventhandlers()
         
         // register c# event handlers
         // get the dropzones from the scroll and add the event handler to track when something is dropped
-        DomNodeWrapper document = await webViewComponent.tab.GetDocument();
+        DomNodeWrapper document = await webViewComponent.tab.Document;
         dropzones = await document.querySelectorAllAsync("[dropzone='copy']");
         dropzones.ForEach(dropzone => dropzone.OnAttributeModified += DropzoneAttributeModifiedHandler);
     }
@@ -78,7 +82,7 @@ private void DeRegisterBrowserEventhandlers()
     private async void SetScrollContent(Scroll scroll)
     {
         // update scroll container content
-        DomNodeWrapper document = await webViewComponent.tab.GetDocument();
+        DomNodeWrapper document = await webViewComponent.tab.Document;
         DomNodeWrapper scrollContainer = await document.querySelectorAsync("#scrollContainer");
 
         var description = scroll.description;
diff --git a/Packages/bessw.unity.webview b/Packages/bessw.unity.webview
index 32bbc9be..8cd56ed2 160000
--- a/Packages/bessw.unity.webview
+++ b/Packages/bessw.unity.webview
@@ -1 +1 @@
-Subproject commit 32bbc9be2e099918d10d0e54e8993cae6e54799a
+Subproject commit 8cd56ed2cf3b543fcc6d895932a6f13e6b9400fd
-- 
GitLab