mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-06-07 09:28:03 +08:00
[Dev files Preview] Handle access denied error and properly show error messages (#23970)
This commit is contained in:
parent
47999199e9
commit
0b281677df
@ -137,11 +137,10 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco
|
|||||||
|
|
||||||
if (fileSize < _settings.MaxFileSize)
|
if (fileSize < _settings.MaxFileSize)
|
||||||
{
|
{
|
||||||
Task initializeIndexFileAndSelectedFileTask = new Task(() => { InitializeIndexFileAndSelectedFile(filePath); });
|
|
||||||
initializeIndexFileAndSelectedFileTask.Start();
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
InitializeIndexFileAndSelectedFile(filePath);
|
||||||
|
|
||||||
Logger.LogInfo("Create WebView2 environment");
|
Logger.LogInfo("Create WebView2 environment");
|
||||||
ConfiguredTaskAwaitable<CoreWebView2Environment>.ConfiguredTaskAwaiter
|
ConfiguredTaskAwaitable<CoreWebView2Environment>.ConfiguredTaskAwaiter
|
||||||
webView2EnvironmentAwaiter = CoreWebView2Environment
|
webView2EnvironmentAwaiter = CoreWebView2Environment
|
||||||
@ -169,9 +168,6 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco
|
|||||||
{
|
{
|
||||||
await _webView.EnsureCoreWebView2Async(_webView2Environment).ConfigureAwait(true);
|
await _webView.EnsureCoreWebView2Async(_webView2Environment).ConfigureAwait(true);
|
||||||
|
|
||||||
// Wait until html is loaded
|
|
||||||
initializeIndexFileAndSelectedFileTask.Wait();
|
|
||||||
|
|
||||||
_webView.CoreWebView2.SetVirtualHostNameToFolderMapping(VirtualHostName, Settings.AssemblyDirectory, CoreWebView2HostResourceAccessKind.Allow);
|
_webView.CoreWebView2.SetVirtualHostNameToFolderMapping(VirtualHostName, Settings.AssemblyDirectory, CoreWebView2HostResourceAccessKind.Allow);
|
||||||
|
|
||||||
Logger.LogInfo("Navigates to string of HTML file");
|
Logger.LogInfo("Navigates to string of HTML file");
|
||||||
@ -217,21 +213,19 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
catch (UnauthorizedAccessException e)
|
||||||
|
{
|
||||||
|
Logger.LogError(e.Message);
|
||||||
|
AddTextBoxControl(Resources.Access_Denied_Exception_Message);
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Controls.Remove(_loading);
|
|
||||||
Controls.Remove(_loadingBar);
|
|
||||||
Controls.Remove(_loadingBackground);
|
|
||||||
Label text = new Label();
|
|
||||||
text.ForeColor = Settings.TextColor;
|
|
||||||
text.Text = Resources.Exception_Occurred;
|
|
||||||
text.Text += e.Message;
|
|
||||||
text.Text += "\n" + e.Source;
|
|
||||||
text.Text += "\n" + e.StackTrace;
|
|
||||||
text.Width = 500;
|
|
||||||
text.Height = 10000;
|
|
||||||
Controls.Add(text);
|
|
||||||
Logger.LogError(e.Message);
|
Logger.LogError(e.Message);
|
||||||
|
string errorMessage = Resources.Exception_Occurred;
|
||||||
|
errorMessage += e.Message;
|
||||||
|
errorMessage += "\n" + e.Source;
|
||||||
|
errorMessage += "\n" + e.StackTrace;
|
||||||
|
AddTextBoxControl(errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.Resize += FormResize;
|
this.Resize += FormResize;
|
||||||
@ -239,17 +233,7 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.LogInfo("File is too big to display. Showing error message");
|
Logger.LogInfo("File is too big to display. Showing error message");
|
||||||
|
AddTextBoxControl(Resources.Max_File_Size_Error.Replace("%1", (_settings.MaxFileSize / 1000).ToString(CultureInfo.CurrentCulture), StringComparison.InvariantCulture));
|
||||||
Controls.Remove(_loading);
|
|
||||||
_loadingBar.Dispose();
|
|
||||||
Controls.Remove(_loadingBar);
|
|
||||||
Controls.Remove(_loadingBackground);
|
|
||||||
Label errorMessage = new Label();
|
|
||||||
errorMessage.Text = Resources.Max_File_Size_Error.Replace("%1", (_settings.MaxFileSize / 1000).ToString(CultureInfo.CurrentCulture), StringComparison.InvariantCulture);
|
|
||||||
errorMessage.ForeColor = Settings.TextColor;
|
|
||||||
errorMessage.Width = 500;
|
|
||||||
errorMessage.Height = 50;
|
|
||||||
Controls.Add(errorMessage);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,6 +444,10 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco
|
|||||||
/// <param name="message">Message to be displayed in textbox.</param>
|
/// <param name="message">Message to be displayed in textbox.</param>
|
||||||
private void AddTextBoxControl(string message)
|
private void AddTextBoxControl(string message)
|
||||||
{
|
{
|
||||||
|
Controls.Remove(_loading);
|
||||||
|
Controls.Remove(_loadingBar);
|
||||||
|
Controls.Remove(_loadingBackground);
|
||||||
|
|
||||||
_textBox = new RichTextBox();
|
_textBox = new RichTextBox();
|
||||||
_textBox.Text = message;
|
_textBox.Text = message;
|
||||||
_textBox.BackColor = Color.LightYellow;
|
_textBox.BackColor = Color.LightYellow;
|
||||||
|
@ -111,9 +111,20 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco.Properties {
|
|||||||
/// Looks up a localized string for an error when Gpo has the utility disabled.
|
/// Looks up a localized string for an error when Gpo has the utility disabled.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string GpoDisabledErrorText {
|
internal static string GpoDisabledErrorText {
|
||||||
get {
|
get
|
||||||
|
{
|
||||||
return ResourceManager.GetString("GpoDisabledErrorText", resourceCulture);
|
return ResourceManager.GetString("GpoDisabledErrorText", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string for an error when access to file is denied.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Access_Denied_Exception_Message {
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ResourceManager.GetString("Access_Denied_Exception_Message", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,4 +140,7 @@ Max file size: %1KB</value>
|
|||||||
<value>Tried to start with a GPO policy setting the utility to always be disabled. Please contact your systems administrator.</value>
|
<value>Tried to start with a GPO policy setting the utility to always be disabled. Please contact your systems administrator.</value>
|
||||||
<comment>GPO stands for the Windows Group Policy Object feature.</comment>
|
<comment>GPO stands for the Windows Group Policy Object feature.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Access_Denied_Exception_Message" xml:space="preserve">
|
||||||
|
<value>Access denied: You do not have permission to open this file. See the owner of the file or an administrator to obtain permission.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
Loading…
Reference in New Issue
Block a user