Skip to content

Commit 595649a

Browse files
committed
Code Quality: Add exception handling to WebView2 initialization
Wrapped BlogPostWebView_CoreWebView2Initialized logic in a try-catch block to handle potential exceptions and log warnings. This improves robustness and error reporting during WebView2 setup.
1 parent 1de1109 commit 595649a

File tree

1 file changed

+29
-21
lines changed

1 file changed

+29
-21
lines changed

src/Files.App/Views/ReleaseNotesPage.xaml.cs

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Files Community
22
// Licensed under the MIT License.
33

4+
using Microsoft.Extensions.Logging;
45
using Microsoft.UI.Xaml;
56
using Microsoft.UI.Xaml.Controls;
67
using Microsoft.UI.Xaml.Navigation;
@@ -83,27 +84,34 @@ protected override void OnNavigatedFrom(NavigationEventArgs e)
8384

8485
private async void BlogPostWebView_CoreWebView2Initialized(WebView2 sender, CoreWebView2InitializedEventArgs args)
8586
{
86-
sender.CoreWebView2.Profile.PreferredColorScheme = (CoreWebView2PreferredColorScheme)RootAppElement.RequestedTheme;
87-
sender.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false;
88-
sender.CoreWebView2.Settings.AreDevToolsEnabled = false;
89-
sender.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false;
90-
sender.CoreWebView2.Settings.IsSwipeNavigationEnabled = false;
91-
92-
var script = @"
93-
document.addEventListener('click', function(event) {
94-
var target = event.target;
95-
while (target && target.tagName !== 'A') {
96-
target = target.parentElement;
97-
}
98-
if (target && target.href) {
99-
event.preventDefault();
100-
window.chrome.webview.postMessage(target.href);
101-
}
102-
});
103-
";
104-
105-
await sender.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync(script);
106-
sender.WebMessageReceived += WebView_WebMessageReceived;
87+
try
88+
{
89+
sender.CoreWebView2.Profile.PreferredColorScheme = (CoreWebView2PreferredColorScheme)RootAppElement.RequestedTheme;
90+
sender.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false;
91+
sender.CoreWebView2.Settings.AreDevToolsEnabled = false;
92+
sender.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false;
93+
sender.CoreWebView2.Settings.IsSwipeNavigationEnabled = false;
94+
95+
var script = @"
96+
document.addEventListener('click', function(event) {
97+
var target = event.target;
98+
while (target && target.tagName !== 'A') {
99+
target = target.parentElement;
100+
}
101+
if (target && target.href) {
102+
event.preventDefault();
103+
window.chrome.webview.postMessage(target.href);
104+
}
105+
});
106+
";
107+
108+
await sender.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync(script);
109+
sender.WebMessageReceived += WebView_WebMessageReceived;
110+
}
111+
catch (Exception ex)
112+
{
113+
App.Logger.LogWarning(ex, ex.Message);
114+
}
107115
}
108116

109117
private async void WebView_WebMessageReceived(WebView2 sender, CoreWebView2WebMessageReceivedEventArgs args)

0 commit comments

Comments
 (0)