diff --git a/SafeExamBrowser.Browser/BrowserApplicationController.cs b/SafeExamBrowser.Browser/BrowserApplicationController.cs index b4c0d379..f0ecea0c 100644 --- a/SafeExamBrowser.Browser/BrowserApplicationController.cs +++ b/SafeExamBrowser.Browser/BrowserApplicationController.cs @@ -36,7 +36,12 @@ namespace SafeExamBrowser.Browser CachePath = settings.BrowserCachePath }; - Cef.Initialize(cefSettings, true, null); + var success = Cef.Initialize(cefSettings, true, null); + + if (!success) + { + throw new Exception("Failed to initialize the browser engine!"); + } } public void RegisterApplicationButton(ITaskbarButton button) @@ -64,13 +69,17 @@ namespace SafeExamBrowser.Browser private void CreateNewInstance() { - var control = new BrowserControl("www.duckduckgo.com"); + var control = new BrowserControl(); var window = uiFactory.CreateBrowserWindow(control); var instance = new BrowserApplicationInstance("DuckDuckGo"); instances.Add(instance); instance.RegisterWindow(window); button.RegisterInstance(instance); + + control.Address = "www.duckduckgo.com"; + + window.Display(); } } } diff --git a/SafeExamBrowser.Browser/BrowserControl.cs b/SafeExamBrowser.Browser/BrowserControl.cs index 42cf681e..c5237491 100644 --- a/SafeExamBrowser.Browser/BrowserControl.cs +++ b/SafeExamBrowser.Browser/BrowserControl.cs @@ -13,9 +13,5 @@ namespace SafeExamBrowser.Browser { class BrowserControl : ChromiumWebBrowser, IBrowserControl { - public BrowserControl(string url) - { - Address = url; - } } } diff --git a/SafeExamBrowser.Browser/SafeExamBrowser.Browser.csproj b/SafeExamBrowser.Browser/SafeExamBrowser.Browser.csproj index 5bb20232..b3fbedcc 100644 --- a/SafeExamBrowser.Browser/SafeExamBrowser.Browser.csproj +++ b/SafeExamBrowser.Browser/SafeExamBrowser.Browser.csproj @@ -104,4 +104,7 @@ + + xcopy /E /Y "$(ProjectDir)bin\$(PlatformName)\$(ConfigurationName)" "$(SolutionDir)SafeExamBrowser\bin\$(PlatformName)\$(ConfigurationName)" + \ No newline at end of file diff --git a/SafeExamBrowser.Contracts/UserInterface/IWindow.cs b/SafeExamBrowser.Contracts/UserInterface/IWindow.cs index e8c6921d..9195cb2e 100644 --- a/SafeExamBrowser.Contracts/UserInterface/IWindow.cs +++ b/SafeExamBrowser.Contracts/UserInterface/IWindow.cs @@ -14,5 +14,10 @@ namespace SafeExamBrowser.Contracts.UserInterface /// Brings the window to the foreground. /// void BringToForeground(); + + /// + /// Shows the window to the user. + /// + void Display(); } } diff --git a/SafeExamBrowser.Core/Behaviour/ShutdownController.cs b/SafeExamBrowser.Core/Behaviour/ShutdownController.cs index b9e61e61..9f459911 100644 --- a/SafeExamBrowser.Core/Behaviour/ShutdownController.cs +++ b/SafeExamBrowser.Core/Behaviour/ShutdownController.cs @@ -39,12 +39,12 @@ namespace SafeExamBrowser.Core.Behaviour { InitializeSplashScreen(); RevertOperations(operations); - FinalizeApplicationLog(); + FinishFinalization(); } catch (Exception e) { LogAndShowException(e); - FinalizeApplicationLog(false); + FinishFinalization(false); } } @@ -75,7 +75,7 @@ namespace SafeExamBrowser.Core.Behaviour uiFactory.Show(text.Get(Key.MessageBox_ShutdownError), text.Get(Key.MessageBox_ShutdownErrorTitle), icon: MessageBoxIcon.Error); } - private void FinalizeApplicationLog(bool success = true) + private void FinishFinalization(bool success = true) { if (success) { @@ -83,6 +83,7 @@ namespace SafeExamBrowser.Core.Behaviour } logger.Log($"{Environment.NewLine}# Application terminated at {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")}"); + splashScreen?.InvokeClose(); } } } diff --git a/SafeExamBrowser.Core/Behaviour/StartupController.cs b/SafeExamBrowser.Core/Behaviour/StartupController.cs index 5111f4cd..492ed7ed 100644 --- a/SafeExamBrowser.Core/Behaviour/StartupController.cs +++ b/SafeExamBrowser.Core/Behaviour/StartupController.cs @@ -121,7 +121,7 @@ namespace SafeExamBrowser.Core.Behaviour if (success) { logger.Info("--- Application successfully initialized! ---"); - splashScreen.InvokeClose(); + splashScreen?.InvokeClose(); } else { diff --git a/SafeExamBrowser.UserInterface/BrowserWindow.xaml.cs b/SafeExamBrowser.UserInterface/BrowserWindow.xaml.cs index f12e8de9..5c3df2c3 100644 --- a/SafeExamBrowser.UserInterface/BrowserWindow.xaml.cs +++ b/SafeExamBrowser.UserInterface/BrowserWindow.xaml.cs @@ -27,5 +27,10 @@ namespace SafeExamBrowser.UserInterface { Activate(); } + + public void Display() + { + Show(); + } } }