From 94ca40bb4c5318b3d40ef14483d014ab0e6a6cf3 Mon Sep 17 00:00:00 2001 From: "Aaron (Qilong)" Date: Wed, 12 Jun 2024 15:59:57 -0400 Subject: [PATCH 1/2] crash fix --- .../LibraryViewController.cs | 40 ++++++++++++++++--- .../ScriptingObject.cs | 11 ++++- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/src/LibraryViewExtensionWebView2/LibraryViewController.cs b/src/LibraryViewExtensionWebView2/LibraryViewController.cs index 0746a863cec..a4acd4fe6da 100644 --- a/src/LibraryViewExtensionWebView2/LibraryViewController.cs +++ b/src/LibraryViewExtensionWebView2/LibraryViewController.cs @@ -485,9 +485,16 @@ private async void SetLibraryFontSize() if(fontSize != libraryFontSize) { - var result = await ExecuteScriptFunctionAsync(browser, "setLibraryFontSize", fontSize); - if(result != null) - libraryFontSize = fontSize; + try + { + var result = await ExecuteScriptFunctionAsync(browser, "setLibraryFontSize", fontSize); + if (result != null) + libraryFontSize = fontSize; + } + catch (Exception ex) + { + LogToDynamoConsole("Error setting the font size: " + ex.Message); + } } } @@ -495,7 +502,14 @@ private async void SetTooltipText() { var jsonTooltipText = new { create = Resources.TooltipTextCreate, action = Resources.TooltipTextAction, query = Resources.TooltipTextQuery }; var jsonString = JsonConvert.SerializeObject(jsonTooltipText); - var result = await ExecuteScriptFunctionAsync(browser, "setTooltipText", jsonString); + try + { + var result = await ExecuteScriptFunctionAsync(browser, "setTooltipText", jsonString); + } + catch (Exception ex) + { + LogToDynamoConsole("Error setting the tooltip text: " + ex.Message); + } } #region Tooltip @@ -772,8 +786,22 @@ public static async Task ExecuteScriptFunctionAsync(WebView2 webView2, s /// internal void UpdateContext(string type) { - ExecuteScriptFunctionAsync(browser,"libController.setHostContext", type); - ExecuteScriptFunctionAsync(browser, "replaceImages"); + try + { + ExecuteScriptFunctionAsync(browser, "libController.setHostContext", type); + } + catch (Exception ex) + { + LogToDynamoConsole("Error setting the host context: " + ex.Message); + } + try + { + ExecuteScriptFunctionAsync(browser, "replaceImages"); + } + catch (Exception ex) + { + LogToDynamoConsole("Error replacing images: " + ex.Message); + } } } } diff --git a/src/LibraryViewExtensionWebView2/ScriptingObject.cs b/src/LibraryViewExtensionWebView2/ScriptingObject.cs index b53f2e36e09..bd7bee6c3e0 100644 --- a/src/LibraryViewExtensionWebView2/ScriptingObject.cs +++ b/src/LibraryViewExtensionWebView2/ScriptingObject.cs @@ -101,8 +101,15 @@ internal void Notify(string dataFromjs) var searchStream = controller.searchResultDataProvider.GetResource(data, out extension); var searchReader = new StreamReader(searchStream); var results = searchReader.ReadToEnd(); - //send back results to libjs - LibraryViewController.ExecuteScriptFunctionAsync(controller.browser, "completeSearch", results); + //send back results to librarie.js + try + { + LibraryViewController.ExecuteScriptFunctionAsync(controller.browser, "completeSearch", results); + } + catch(Exception e) + { + this.controller.LogToDynamoConsole($"Error while sending search results to javascript{Environment.NewLine}{e.Message}"); + } searchReader.Dispose(); } //When the html
that contains the sample package is clicked then we will be moved to the next Step in the Guide From 48e8fa070b26c47f0a4df7f0f53165075962a4d4 Mon Sep 17 00:00:00 2001 From: "Aaron (Qilong)" Date: Thu, 13 Jun 2024 08:42:38 -0400 Subject: [PATCH 2/2] revert for none await function calls --- .../LibraryViewController.cs | 18 ++---------------- .../ScriptingObject.cs | 9 +-------- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/src/LibraryViewExtensionWebView2/LibraryViewController.cs b/src/LibraryViewExtensionWebView2/LibraryViewController.cs index a4acd4fe6da..a6ce7fc63de 100644 --- a/src/LibraryViewExtensionWebView2/LibraryViewController.cs +++ b/src/LibraryViewExtensionWebView2/LibraryViewController.cs @@ -786,22 +786,8 @@ public static async Task ExecuteScriptFunctionAsync(WebView2 webView2, s /// internal void UpdateContext(string type) { - try - { - ExecuteScriptFunctionAsync(browser, "libController.setHostContext", type); - } - catch (Exception ex) - { - LogToDynamoConsole("Error setting the host context: " + ex.Message); - } - try - { - ExecuteScriptFunctionAsync(browser, "replaceImages"); - } - catch (Exception ex) - { - LogToDynamoConsole("Error replacing images: " + ex.Message); - } + ExecuteScriptFunctionAsync(browser, "libController.setHostContext", type); + ExecuteScriptFunctionAsync(browser, "replaceImages"); } } } diff --git a/src/LibraryViewExtensionWebView2/ScriptingObject.cs b/src/LibraryViewExtensionWebView2/ScriptingObject.cs index bd7bee6c3e0..5320554130c 100644 --- a/src/LibraryViewExtensionWebView2/ScriptingObject.cs +++ b/src/LibraryViewExtensionWebView2/ScriptingObject.cs @@ -102,14 +102,7 @@ internal void Notify(string dataFromjs) var searchReader = new StreamReader(searchStream); var results = searchReader.ReadToEnd(); //send back results to librarie.js - try - { - LibraryViewController.ExecuteScriptFunctionAsync(controller.browser, "completeSearch", results); - } - catch(Exception e) - { - this.controller.LogToDynamoConsole($"Error while sending search results to javascript{Environment.NewLine}{e.Message}"); - } + LibraryViewController.ExecuteScriptFunctionAsync(controller.browser, "completeSearch", results); searchReader.Dispose(); } //When the html
that contains the sample package is clicked then we will be moved to the next Step in the Guide