internal static void SetupWebView <TApi>(this WebView webView, out IBindableJSContextProvider jsCtx, Func <IBindableJSContextProvider, TApi> newJsApi, out TApi jsApi, out CommonAPI jsCommonApi) { webView.IsHistoryDisabled = true; webView.AllowDeveloperTools = true; webView.DisableBuiltinContextMenus = true; //webView.BeforeResourceLoad += WebViewExtensions.OnWebViewBeforeResourceLoad; webView.AddBeforeResourceLoadEvent(WebViewExtensions.OnWebViewBeforeResourceLoad); webView.DefaultScriptsExecutionTimeout = (HybridConfiguration.DisableWebViewExecutionTimeouts ? null : new TimeSpan?(WebViewExtensions.DefaultScriptExecutionTimeout)); //webView.FindLogicalParent<IDisposable>().MustBeSet("The webview must belong to a IDisposable view and be disposed"); if (HybridConfiguration.ShowDeveloperTools) { webView.ShowDeveloperTools(); } jsCtx = new DocumentReadyJSApi(webView); jsApi = newJsApi(jsCtx); jsCommonApi = new CommonAPI(jsCtx); }