public async Task PreloadUsesWebViewFromCache()
        {
            var webviewInstantiatedTaskCompletionSource = new TaskCompletionSource <bool>();

            void OnWebViewInitialized(WebView webview)
            {
                webviewInstantiatedTaskCompletionSource.TrySetResult(true);
            }

            try {
                WebView.GlobalWebViewInitialized += OnWebViewInitialized;
                await Run(async() => {
                    using var newView = new TestReactViewWithPreload();
                    newView.Load();
                    var currentTime = await TargetView.EvaluateMethod <double>("getCurrentTime");

                    // wait for the cached webview to be instantiated
                    await webviewInstantiatedTaskCompletionSource.Task;

                    using var newView2 = new TestReactViewWithPreload();
                    newView2.Load();

                    var startTime = await newView2.EvaluateMethod <double>("getStartTime");
                    Assert.LessOrEqual(startTime, currentTime, "The second webview should have been loaded before!");
                });
            } finally {
                WebView.GlobalWebViewInitialized -= OnWebViewInitialized;
            }
        }
        public async Task PreloadLoadsComponent()
        {
            await Run(async() => {
                using var newView = new TestReactViewWithPreload();
                newView.Load();

                var ready = await newView.AwaitReady();
                Assert.IsTrue(ready, "Second view was not properly loaded!");
            });
        }