Skip to content

Commit

Permalink
web page load error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonyCorbett committed Dec 2, 2018
1 parent 637582a commit 9b1a3d9
Show file tree
Hide file tree
Showing 6 changed files with 128 additions and 58 deletions.
132 changes: 78 additions & 54 deletions Installer/OnlyMSetup.iss
Original file line number Diff line number Diff line change
Expand Up @@ -35,75 +35,99 @@ RestartApplications=False
CloseApplications=False
AppMutex=OnlyMMeetingMedia

; for CefSharp refer here: https://github.com/cefsharp/CefSharp/wiki/Output-files-description-table-(Redistribution)

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
Source: "bin\Release\FFmpeg\*"; DestDir: "{app}\FFmpeg"; Flags: ignoreversion
Source: "bin\Release\x64\*"; DestDir: "{app}\x64"; Flags: ignoreversion
Source: "bin\Release\x86\*"; DestDir: "{app}\x86"; Flags: ignoreversion
Source: "bin\Release\AutoMapper.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\CommonServiceLocator.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\FFmpeg\*"; DestDir: "{app}\FFmpeg"; Flags: ignoreversion
Source: "bin\x86\Release\x64\*"; DestDir: "{app}\x64"; Flags: ignoreversion
Source: "bin\x86\Release\x86\*"; DestDir: "{app}\x86"; Flags: ignoreversion

Source: "bin\x86\Release\AutoMapper.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\CommonServiceLocator.dll"; DestDir: "{app}"; Flags: ignoreversion
; temp inclusion of updated ffme assemblies to correct subtitle bug (awaiting fix in 2.80)
Source: "D:\ProjectsMisc\ffmediaelement-master\Unosquare.FFME.Windows.Sample\bin\Release\ffme.common.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\ProjectsMisc\ffmediaelement-master\Unosquare.FFME.Windows.Sample\bin\Release\ffme.win.dll"; DestDir: "{app}"; Flags: ignoreversion

;Source: "bin\Release\ffme.common.dll"; DestDir: "{app}"; Flags: ignoreversion
;Source: "bin\Release\ffme.win.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "bin\x86\Release\FFmpeg.AutoGen.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\FluentCommandLineParser.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\GalaSoft.MvvmLight.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\GalaSoft.MvvmLight.Extras.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\GalaSoft.MvvmLight.Platform.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\HtmlAgilityPack.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\ImageProcessor.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Microsoft.WindowsAPICodePack.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Microsoft.WindowsAPICodePack.Shell.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Microsoft.WindowsAPICodePack.ShellExtensions.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\OnlyM.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\OnlyM.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\OnlyM.exe.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\OnlyM.Slides.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\policy.2.0.taglib-sharp.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Serilog.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Serilog.Sinks.Console.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Serilog.Sinks.File.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Serilog.Sinks.RollingFile.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\System.Data.SQLite.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\System.ValueTuple.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\System.Windows.Interactivity.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\taglib-sharp.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "bin\Release\FFmpeg.AutoGen.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\FluentCommandLineParser.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\GalaSoft.MvvmLight.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\GalaSoft.MvvmLight.Extras.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\GalaSoft.MvvmLight.Platform.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\HtmlAgilityPack.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\ImageProcessor.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Microsoft.WindowsAPICodePack.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Microsoft.WindowsAPICodePack.Shell.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Microsoft.WindowsAPICodePack.ShellExtensions.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\OnlyM.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\OnlyM.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\OnlyM.exe.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\OnlyM.Slides.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\policy.2.0.taglib-sharp.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Serilog.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Serilog.Sinks.Console.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Serilog.Sinks.File.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\Serilog.Sinks.RollingFile.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\System.Data.SQLite.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\System.ValueTuple.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\System.Windows.Interactivity.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\Release\taglib-sharp.dll"; DestDir: "{app}"; Flags: ignoreversion
; localisation..
Source: "bin\x86\Release\ca-ES\*.dll"; DestDir: "{app}\ca-ES"; Flags: ignoreversion
Source: "bin\x86\Release\cs-CZ\*.dll"; DestDir: "{app}\cs-CZ"; Flags: ignoreversion
Source: "bin\x86\Release\de-DE\*.dll"; DestDir: "{app}\de-DE"; Flags: ignoreversion
Source: "bin\x86\Release\el-GR\*.dll"; DestDir: "{app}\el-GR"; Flags: ignoreversion
Source: "bin\x86\Release\en-US\*.dll"; DestDir: "{app}\en-US"; Flags: ignoreversion
Source: "bin\x86\Release\es-ES\*.dll"; DestDir: "{app}\es-ES"; Flags: ignoreversion
Source: "bin\x86\Release\es-MX\*.dll"; DestDir: "{app}\es-MX"; Flags: ignoreversion
Source: "bin\x86\Release\fi-FI\*.dll"; DestDir: "{app}\fi-FI"; Flags: ignoreversion
Source: "bin\x86\Release\fr-FR\*.dll"; DestDir: "{app}\fr-FR"; Flags: ignoreversion
;Source: "bin\x86\Release\id-ID\*.dll"; DestDir: "{app}\id-ID"; Flags: ignoreversion
Source: "bin\x86\Release\it-IT\*.dll"; DestDir: "{app}\it-IT"; Flags: ignoreversion
;Source: "bin\x86\Release\jv-Latn-ID\*.dll"; DestDir: "{app}\jv-Latn-ID"; Flags: ignoreversion
Source: "bin\x86\Release\nl-NL\*.dll"; DestDir: "{app}\nl-NL"; Flags: ignoreversion
;Source: "bin\x86\Release\no\*.dll"; DestDir: "{app}\no"; Flags: ignoreversion
Source: "bin\x86\Release\pap\*.dll"; DestDir: "{app}\pap"; Flags: ignoreversion
Source: "bin\x86\Release\pl-PL\*.dll"; DestDir: "{app}\pl-PL"; Flags: ignoreversion
Source: "bin\x86\Release\pt-BR\*.dll"; DestDir: "{app}\pt-BR"; Flags: ignoreversion
Source: "bin\x86\Release\pt-PT\*.dll"; DestDir: "{app}\pt-PT"; Flags: ignoreversion
Source: "bin\x86\Release\ro-RO\*.dll"; DestDir: "{app}\ro-RO"; Flags: ignoreversion
Source: "bin\x86\Release\ru-RU\*.dll"; DestDir: "{app}\ru-RU"; Flags: ignoreversion
Source: "bin\x86\Release\sk-SK\*.dll"; DestDir: "{app}\sk-SK"; Flags: ignoreversion
Source: "bin\x86\Release\sv-SE\*.dll"; DestDir: "{app}\sv-SE"; Flags: ignoreversion
Source: "bin\x86\Release\tr-TR\*.dll"; DestDir: "{app}\tr-TR"; Flags: ignoreversion

Source: "bin\Release\ca-ES\*.dll"; DestDir: "{app}\ca-ES"; Flags: ignoreversion
Source: "bin\Release\cs-CZ\*.dll"; DestDir: "{app}\cs-CZ"; Flags: ignoreversion
Source: "bin\Release\de-DE\*.dll"; DestDir: "{app}\de-DE"; Flags: ignoreversion
Source: "bin\Release\el-GR\*.dll"; DestDir: "{app}\el-GR"; Flags: ignoreversion
Source: "bin\Release\en-US\*.dll"; DestDir: "{app}\en-US"; Flags: ignoreversion
Source: "bin\Release\es-ES\*.dll"; DestDir: "{app}\es-ES"; Flags: ignoreversion
Source: "bin\Release\es-MX\*.dll"; DestDir: "{app}\es-MX"; Flags: ignoreversion
Source: "bin\Release\fi-FI\*.dll"; DestDir: "{app}\fi-FI"; Flags: ignoreversion
Source: "bin\Release\fr-FR\*.dll"; DestDir: "{app}\fr-FR"; Flags: ignoreversion
;Source: "bin\Release\id-ID\*.dll"; DestDir: "{app}\id-ID"; Flags: ignoreversion
Source: "bin\Release\it-IT\*.dll"; DestDir: "{app}\it-IT"; Flags: ignoreversion
;Source: "bin\Release\jv-Latn-ID\*.dll"; DestDir: "{app}\jv-Latn-ID"; Flags: ignoreversion
Source: "bin\Release\nl-NL\*.dll"; DestDir: "{app}\nl-NL"; Flags: ignoreversion
;Source: "bin\Release\no\*.dll"; DestDir: "{app}\no"; Flags: ignoreversion
Source: "bin\Release\pap\*.dll"; DestDir: "{app}\pap"; Flags: ignoreversion
Source: "bin\Release\pl-PL\*.dll"; DestDir: "{app}\pl-PL"; Flags: ignoreversion
Source: "bin\Release\pt-BR\*.dll"; DestDir: "{app}\pt-BR"; Flags: ignoreversion
Source: "bin\Release\pt-PT\*.dll"; DestDir: "{app}\pt-PT"; Flags: ignoreversion
Source: "bin\Release\ro-RO\*.dll"; DestDir: "{app}\ro-RO"; Flags: ignoreversion
Source: "bin\Release\ru-RU\*.dll"; DestDir: "{app}\ru-RU"; Flags: ignoreversion
Source: "bin\Release\sk-SK\*.dll"; DestDir: "{app}\sk-SK"; Flags: ignoreversion
Source: "bin\Release\sv-SE\*.dll"; DestDir: "{app}\sv-SE"; Flags: ignoreversion
Source: "bin\Release\tr-TR\*.dll"; DestDir: "{app}\tr-TR"; Flags: ignoreversion
; CefSharp files...
Source: "bin\x86\Release\locales\*"; DestDir: "{app}\locales"; Flags: ignoreversion
Source: "bin\x86\Release\swiftshader\*"; DestDir: "{app}\swiftshader"; Flags: ignoreversion
Source: "bin\x86\Release\cef*.pak"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\CefSharp*.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\CefSharp.BrowserSubprocess.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\chrome_elf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\d3dcompiler_47.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\devtools_resources.pak"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\icudtl.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\libcef.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\libEGL.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\libGLESv2.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\natives_blob.bin"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\snapshot_blob.bin"; DestDir: "{app}"; Flags: ignoreversion
Source: "bin\x86\Release\v8_context_snapshot.bin"; DestDir: "{app}"; Flags: ignoreversion

; web shortcuts...
Source: "..\UrlLinkFiles\JW Broadcasting.url"; DestDir: "{commonappdata}\OnlyM\Websites"
Source: "..\UrlLinkFiles\JW.org website.url"; DestDir: "{commonappdata}\OnlyM\Websites"
Source: "..\UrlLinkFiles\Watchtower online library.url"; DestDir: "{commonappdata}\OnlyM\Websites"

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Expand Down
24 changes: 20 additions & 4 deletions OnlyM/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public partial class App : Application
{
private readonly string _appString = "OnlyMMeetingMedia";
private Mutex _appMutex;
private readonly bool _successCefSharp;

public App()
{
Expand All @@ -34,7 +35,7 @@ public App()
// pre-load the CefSharp assemblies otherwise 1st instantiation is too long.
System.Reflection.Assembly.Load("CefSharp.Wpf");

InitCef();
_successCefSharp = InitCef();
}

public static string FMpegFolderName { get; } = $"{AppDomain.CurrentDomain.BaseDirectory}\\FFmpeg";
Expand All @@ -56,6 +57,11 @@ protected override void OnStartup(StartupEventArgs e)
ConfigureLogger();
}

if (!_successCefSharp)
{
Log.Logger.Error("Could not initialise CefSharp");
}

Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal;
}

Expand Down Expand Up @@ -86,8 +92,11 @@ private void RegisterMappings()
AutoMapper.Mapper.Initialize(cfg => cfg.CreateMap<SystemMonitor, MonitorItem>());
}

private void InitCef()
private bool InitCef()
{
//// refer here:
//// https://github.com/cefsharp/CefSharp/blob/cefsharp/43/CefSharp.Example/CefExample.cs#L54

var settings = new CefSettings
{
CachePath = FileUtils.GetBrowserCacheFolder(),
Expand All @@ -97,8 +106,15 @@ private void InitCef()

settings.CefCommandLineArgs.Add("no-proxy-server", "1");
settings.CefCommandLineArgs.Add("force-device-scale-factor", "1");

Cef.Initialize(settings);

// does this help?
////settings.SetOffScreenRenderingBestPerformanceArgs();

//// this setting is automatically added. It means that if the user has
//// Pepper Flash installed it will be detected and used.
//// settings.CefCommandLineArgs.Add("enable-system-flash", "1");

return Cef.Initialize(settings);
}
}
}
14 changes: 14 additions & 0 deletions OnlyM/Services/WebDisplayManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,21 @@ private void RemoveAnimation()
private void InitBrowser()
{
_browser.LoadingStateChanged += HandleBrowserLoadingStateChanged;
_browser.LoadError += HandleBrowserLoadError;
_browser.LifeSpanHandler = new BrowserLifeSpanHandler();
}

private void HandleBrowserLoadError(object sender, LoadErrorEventArgs e)
{
// Don't display an error for downloaded files where the user aborted the download.
if (e.ErrorCode == CefErrorCode.Aborted)
{
return;
}

// todo: localise
var errorMessage = $"<html><body><h2>Failed to load URL {e.FailedUrl} with error {e.ErrorText} ({e.ErrorCode}).</h2></body></html>";
_browser.LoadHtml(errorMessage, e.FailedUrl);
}
}
}
5 changes: 5 additions & 0 deletions UrlLinkFiles/JW Broadcasting.url
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
IDList=
URL=http://tv.jw.org/
5 changes: 5 additions & 0 deletions UrlLinkFiles/JW.org website.url
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
IDList=
URL=http://www.jw.org/
6 changes: 6 additions & 0 deletions UrlLinkFiles/Watchtower online library.url
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
IDList=
URL=http://wol.jw.org/
HotKey=0

0 comments on commit 9b1a3d9

Please sign in to comment.