SEBWIN-106: Fixed loading / rendering issues with favicons and application instance button and enabled popups for default settings.

This commit is contained in:
dbuechel 2019-01-18 09:58:14 +01:00
parent 0ee13c9c8b
commit 483eec6ef8
8 changed files with 66 additions and 9 deletions

View file

@ -61,11 +61,11 @@ namespace SafeExamBrowser.Browser
var cefSettings = InitializeCefSettings(); var cefSettings = InitializeCefSettings();
var success = Cef.Initialize(cefSettings, true, null); var success = Cef.Initialize(cefSettings, true, null);
logger.Info("Initialized browser engine."); logger.Info("Initialized browser.");
if (!success) if (!success)
{ {
throw new Exception("Failed to initialize the browser engine!"); throw new Exception("Failed to initialize browser!");
} }
} }
@ -92,7 +92,7 @@ namespace SafeExamBrowser.Browser
Cef.Shutdown(); Cef.Shutdown();
logger.Info("Terminated browser engine."); logger.Info("Terminated browser.");
} }
private void CreateNewInstance(BrowserSettings custom = null) private void CreateNewInstance(BrowserSettings custom = null)
@ -127,10 +127,10 @@ namespace SafeExamBrowser.Browser
UserAgent = settings.UseCustomUserAgent ? settings.CustomUserAgent : string.Empty UserAgent = settings.UseCustomUserAgent ? settings.CustomUserAgent : string.Empty
}; };
logger.Debug($"Browser cache path: {cefSettings.CachePath}"); logger.Debug($"Cache path: {cefSettings.CachePath}");
logger.Debug($"Browser log file: {cefSettings.LogFile}"); logger.Debug($"Engine version: Chromium {Cef.ChromiumVersion}, CEF {Cef.CefVersion}, CefSharp {Cef.CefSharpVersion}");
logger.Debug($"Browser log severity: {cefSettings.LogSeverity}"); logger.Debug($"Log file: {cefSettings.LogFile}");
logger.Debug($"Browser engine version: Chromium {Cef.ChromiumVersion}, CEF {Cef.CefVersion}, CefSharp {Cef.CefSharpVersion}"); logger.Debug($"Log severity: {cefSettings.LogSeverity}");
return cefSettings; return cefSettings;
} }

View file

@ -95,6 +95,7 @@ namespace SafeExamBrowser.Client
var operations = new Queue<IOperation>(); var operations = new Queue<IOperation>();
operations.Enqueue(new InitializationOperation(logger));
operations.Enqueue(new I18nOperation(logger, text, textResource)); operations.Enqueue(new I18nOperation(logger, text, textResource));
operations.Enqueue(new RuntimeConnectionOperation(logger, runtimeProxy, startupToken)); operations.Enqueue(new RuntimeConnectionOperation(logger, runtimeProxy, startupToken));
operations.Enqueue(new ConfigurationOperation(configuration, logger, runtimeProxy)); operations.Enqueue(new ConfigurationOperation(configuration, logger, runtimeProxy));

View file

@ -0,0 +1,50 @@
/*
* Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System.Net;
using SafeExamBrowser.Contracts.Core.OperationModel;
using SafeExamBrowser.Contracts.Core.OperationModel.Events;
using SafeExamBrowser.Contracts.I18n;
using SafeExamBrowser.Contracts.Logging;
namespace SafeExamBrowser.Client.Operations
{
internal class InitializationOperation : IOperation
{
private ILogger logger;
public event ActionRequiredEventHandler ActionRequired { add { } remove { } }
public event StatusChangedEventHandler StatusChanged;
public InitializationOperation(ILogger logger)
{
this.logger = logger;
}
public OperationResult Perform()
{
logger.Info("Initializing client application...");
StatusChanged?.Invoke(TextKey.OperationStatus_InitializeClient);
ConfigureSecurityProtocols();
return OperationResult.Success;
}
public OperationResult Revert()
{
return OperationResult.Success;
}
private void ConfigureSecurityProtocols()
{
// Enables the security protocols specified below for all web requests which are made during application runtime.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
}
}
}

View file

@ -74,6 +74,7 @@
<Compile Include="ClientController.cs" /> <Compile Include="ClientController.cs" />
<Compile Include="Operations\ClientHostDisconnectionOperation.cs" /> <Compile Include="Operations\ClientHostDisconnectionOperation.cs" />
<Compile Include="Operations\ConfigurationOperation.cs" /> <Compile Include="Operations\ConfigurationOperation.cs" />
<Compile Include="Operations\InitializationOperation.cs" />
<Compile Include="Operations\RuntimeConnectionOperation.cs" /> <Compile Include="Operations\RuntimeConnectionOperation.cs" />
<Compile Include="Communication\ClientHost.cs" /> <Compile Include="Communication\ClientHost.cs" />
<Compile Include="CompositionRoot.cs" /> <Compile Include="CompositionRoot.cs" />

View file

@ -97,6 +97,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
settings.Browser.AllowDownloads = false; settings.Browser.AllowDownloads = false;
settings.Browser.AllowForwardNavigation = false; settings.Browser.AllowForwardNavigation = false;
settings.Browser.AllowPageZoom = true; settings.Browser.AllowPageZoom = true;
settings.Browser.AllowPopups = true;
settings.Browser.AllowReloading = true; settings.Browser.AllowReloading = true;
settings.Keyboard.AllowAltEsc = false; settings.Keyboard.AllowAltEsc = false;

View file

@ -58,6 +58,7 @@ namespace SafeExamBrowser.Contracts.I18n
OperationStatus_EmptyClipboard, OperationStatus_EmptyClipboard,
OperationStatus_FinalizeServiceSession, OperationStatus_FinalizeServiceSession,
OperationStatus_InitializeBrowser, OperationStatus_InitializeBrowser,
OperationStatus_InitializeClient,
OperationStatus_InitializeConfiguration, OperationStatus_InitializeConfiguration,
OperationStatus_InitializeKioskMode, OperationStatus_InitializeKioskMode,
OperationStatus_InitializeProcessMonitoring, OperationStatus_InitializeProcessMonitoring,

View file

@ -126,6 +126,9 @@
<Entry key="OperationStatus_InitializeBrowser"> <Entry key="OperationStatus_InitializeBrowser">
Initializing browser Initializing browser
</Entry> </Entry>
<Entry key="OperationStatus_InitializeClient">
Initializing client application
</Entry>
<Entry key="OperationStatus_InitializeConfiguration"> <Entry key="OperationStatus_InitializeConfiguration">
Initializing application configuration Initializing application configuration
</Entry> </Entry>

View file

@ -16,8 +16,8 @@
<Grid> <Grid>
<Button x:Name="Button" Background="Transparent" Click="Button_Click" Height="40" Padding="10" Template="{StaticResource TaskbarButton}"> <Button x:Name="Button" Background="Transparent" Click="Button_Click" Height="40" Padding="10" Template="{StaticResource TaskbarButton}">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<ContentControl x:Name="Icon" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,10,0" /> <ContentControl x:Name="Icon" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,10,0" Width="20" />
<TextBlock x:Name="Text" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="5" /> <TextBlock x:Name="Text" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="5" MaxWidth="350" TextTrimming="CharacterEllipsis" />
</StackPanel> </StackPanel>
</Button> </Button>
</Grid> </Grid>