public override void OnApplyTemplate() { base.OnApplyTemplate(); if (GetTemplateChild("PART_Browser") is ChromiumWebBrowser browser) { _browser = browser; _browser.FrameLoadEnd += Browser_FrameLoadEnd; _browser.IsBrowserInitializedChanged += Browser_IsBrowserInitializedChanged; _browser.ConsoleMessage += Browser_ConsoleMessage; _browser.DownloadHandler = new UnoDownloadHandler(); _browser.ResourceHandlerFactory = _handlerFactory = new UnoResourceHandlerFactory(); RegisterResourceHandlers(); _browser.JavascriptObjectRepository.ResolveObject += (sender, e) => { var repo = e.ObjectRepository; if (e.ObjectName == "UnoDispatch") { repo.Register("UnoDispatch", new UnoDispatch(), options: BindingOptions.DefaultBinder); } }; var loop = new System.Reactive.Concurrency.EventLoopScheduler(); Windows.UI.Core.CoreDispatcher.DispatchOverride = d => loop.Schedule(d); Uno.Foundation.WebAssemblyRuntime.InvokeJSOverride = InvokeJS; } else { throw new InvalidOperationException("Unable to find PART_Browser"); } }