diff --git a/CefSharp.WinForms/Experimental/ChromiumRenderWidgetHandleFinder.cs b/CefSharp.WinForms/Experimental/ChromiumRenderWidgetHandleFinder.cs index 2397ccaf06..8308cc10e3 100644 --- a/CefSharp.WinForms/Experimental/ChromiumRenderWidgetHandleFinder.cs +++ b/CefSharp.WinForms/Experimental/ChromiumRenderWidgetHandleFinder.cs @@ -78,7 +78,7 @@ public static bool TryFindHandle(IBrowser browser, out IntPtr chromerRenderWidge /// Helper function used to find the child HWND with the ClassName matching /// Chromium's message-loop Window isn't created synchronously, so this may not find it. /// If so, you need to wait and try again later. - /// In most cases you should use the overload. + /// In most cases you should use the overload. /// /// control Handle /// class name used to match diff --git a/CefSharp.WinForms/Handler/LifeSpanHandlerBuilder.cs b/CefSharp.WinForms/Handler/LifeSpanHandlerBuilder.cs index 967f1cfd27..11cc9d88f9 100644 --- a/CefSharp.WinForms/Handler/LifeSpanHandlerBuilder.cs +++ b/CefSharp.WinForms/Handler/LifeSpanHandlerBuilder.cs @@ -11,6 +11,13 @@ public class LifeSpanHandlerBuilder { private readonly LifeSpanHandler handler; + /// + /// LifeSpanHandlerBuilder + /// + /// + /// When specified the delegate will be used to create the + /// instance. Allowing users to create their own custom instance that extends + /// public LifeSpanHandlerBuilder(CreatePopupChromiumHostControl chromiumHostControlCreatedDelegate) { handler = new LifeSpanHandler(chromiumHostControlCreatedDelegate); @@ -30,9 +37,9 @@ public LifeSpanHandlerBuilder OnBeforePopupCreated(OnBeforePopupCreatedDelegate } /// - /// The will be called when the has been + /// The will be called when the has been /// created. When the is called you must add the control to it's intended parent - /// so the can be calculated to set the initial + /// so the can be calculated to set the initial /// size correctly. /// /// Action to be invoked when the Popup is to be destroyed. @@ -60,9 +67,9 @@ public LifeSpanHandlerBuilder OnPopupBrowserCreated(OnPopupBrowserCreatedDelegat } /// - /// The will be called when the is to be + /// The will be called when the is to be /// removed from it's parent. - /// When the is called you must remove/dispose of the . + /// When the is called you must remove/dispose of the . /// /// Action to be invoked when the Popup is to be destroyed. /// instance allowing you to chain method calls together diff --git a/CefSharp.WinForms/Host/ChromiumHostControl.cs b/CefSharp.WinForms/Host/ChromiumHostControl.cs index bfe8bf8b5d..6ffa9e65cb 100644 --- a/CefSharp.WinForms/Host/ChromiumHostControl.cs +++ b/CefSharp.WinForms/Host/ChromiumHostControl.cs @@ -242,6 +242,7 @@ public void LoadUrl(string url) } } + /// public Task LoadUrlAsync(string url) { //LoadUrlAsync is actually a static method so that CefSharp.Wpf.HwndHost can reuse the code @@ -264,6 +265,7 @@ public IFrame GetMainFrame() return browser.MainFrame; } + /// protected override void Dispose(bool disposing) { if (disposing) diff --git a/CefSharp.WinForms/WebBrowserExtensions.cs b/CefSharp.WinForms/WebBrowserExtensions.cs index a646b92209..4e047d31b8 100644 --- a/CefSharp.WinForms/WebBrowserExtensions.cs +++ b/CefSharp.WinForms/WebBrowserExtensions.cs @@ -68,6 +68,8 @@ public static bool DestroyWindow(this IChromiumWebBrowserBase chromiumWebBrowser /// /// instance /// Control used as the parent for DevTools (a custom control will be added to the collection) + /// Control name + /// Dock Style /// x coordinate (used for inspectElement) /// y coordinate (used for inspectElement) /// Returns the that hosts the DevTools instance if successful, otherwise returns null on error. @@ -92,6 +94,8 @@ public static Control ShowDevToolsDocked(this IChromiumWebBrowserBase chromiumWe /// Action that is Invoked when the DevTools Host Control has been created and needs to be added to it's parent. /// It's important the control is added to it's intended parent at this point so the /// can be calculated to set the initial display size. + /// control name + /// Dock Style /// x coordinate (used for inspectElement) /// y coordinate (used for inspectElement) /// Returns the that hosts the DevTools instance if successful, otherwise returns null on error. diff --git a/CefSharp.Wpf/Rendering/AllocHGlobalWritableBitmapRenderHandler.cs b/CefSharp.Wpf/Rendering/AllocHGlobalWritableBitmapRenderHandler.cs index 8f83b786fe..0ef696b897 100644 --- a/CefSharp.Wpf/Rendering/AllocHGlobalWritableBitmapRenderHandler.cs +++ b/CefSharp.Wpf/Rendering/AllocHGlobalWritableBitmapRenderHandler.cs @@ -15,7 +15,7 @@ namespace CefSharp.Wpf.Rendering { /// /// AllocHGlobalWritableBitmapRenderHandler - creates/updates an WritableBitmap - /// Uses to allocate memory for + /// Uses to allocate memory for /// double buffering when the size matches or creates a new WritableBitmap /// when required. /// diff --git a/CefSharp.Wpf/Rendering/Experimental/CompositionTargetRenderHandler.cs b/CefSharp.Wpf/Rendering/Experimental/CompositionTargetRenderHandler.cs index 9158cf2462..b78912e85e 100644 --- a/CefSharp.Wpf/Rendering/Experimental/CompositionTargetRenderHandler.cs +++ b/CefSharp.Wpf/Rendering/Experimental/CompositionTargetRenderHandler.cs @@ -25,6 +25,12 @@ public class CompositionTargetRenderHandler : IRenderHandler private readonly object lockObj = new object(); private ChromiumWebBrowser browser; + /// + /// Default constructor + /// + /// ChromiumWebBrowser instance + /// DPI X + /// DPI Y public CompositionTargetRenderHandler(ChromiumWebBrowser browser, double dpiX, double dpiY) { this.browser = browser; diff --git a/CefSharp/Callback/NoOpCompletionCallback.cs b/CefSharp/Callback/NoOpCompletionCallback.cs index e48a0359a2..1b55186216 100644 --- a/CefSharp/Callback/NoOpCompletionCallback.cs +++ b/CefSharp/Callback/NoOpCompletionCallback.cs @@ -11,19 +11,22 @@ namespace CefSharp.Callback /// that does nothing with complete. /// Added to workaround a CEF bug as per https://github.com/cefsharp/CefSharp/issues/2957#issuecomment-555285400 /// - public class NoOpCompletionCallback : ICompletionCallback + public sealed class NoOpCompletionCallback : ICompletionCallback { + /// void ICompletionCallback.OnComplete() { } + /// bool ICompletionCallback.IsDisposed { //For now we return false get { return false; } } + /// void IDisposable.Dispose() { diff --git a/CefSharp/Callback/TaskCompletionCallback.cs b/CefSharp/Callback/TaskCompletionCallback.cs index a6b8616838..56428f4ce7 100644 --- a/CefSharp/Callback/TaskCompletionCallback.cs +++ b/CefSharp/Callback/TaskCompletionCallback.cs @@ -11,7 +11,7 @@ namespace CefSharp /// /// Provides a callback implementation of . /// - public class TaskCompletionCallback : ICompletionCallback + public sealed class TaskCompletionCallback : ICompletionCallback { private readonly TaskCompletionSource taskCompletionSource; private volatile bool isDisposed; diff --git a/CefSharp/CefLibraryHandle.cs b/CefSharp/CefLibraryHandle.cs index 20249fab62..a43d5b4822 100644 --- a/CefSharp/CefLibraryHandle.cs +++ b/CefSharp/CefLibraryHandle.cs @@ -55,7 +55,7 @@ public CefLibraryHandle(string path) : base(IntPtr.Zero, true) /// public override bool IsInvalid { - get { return this.handle == IntPtr.Zero; } + get { return handle == IntPtr.Zero; } } /// @@ -67,7 +67,7 @@ public override bool IsInvalid /// protected override bool ReleaseHandle() { - return FreeLibrary(this.handle); + return FreeLibrary(handle); } [DllImport("kernel32.dll", SetLastError = true)] diff --git a/CefSharp/CefSharp.csproj b/CefSharp/CefSharp.csproj index 7e4c5c7756..4db7f4767a 100644 --- a/CefSharp/CefSharp.csproj +++ b/CefSharp/CefSharp.csproj @@ -22,6 +22,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/CefSharp/CefSharp.netcore.csproj b/CefSharp/CefSharp.netcore.csproj index d118d6140f..6013acc2f7 100644 --- a/CefSharp/CefSharp.netcore.csproj +++ b/CefSharp/CefSharp.netcore.csproj @@ -27,6 +27,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/CefSharp/DevTools/DevToolsClient.cs b/CefSharp/DevTools/DevToolsClient.cs index 31ba4b3815..2a756e1be0 100644 --- a/CefSharp/DevTools/DevToolsClient.cs +++ b/CefSharp/DevTools/DevToolsClient.cs @@ -377,7 +377,7 @@ private static T DeserializeJson(Stream stream) /// /// Object type /// JSON stream - /// object of type + /// object of type private static object DeserializeJson(Type type, Stream stream) { #if NETCOREAPP diff --git a/CefSharp/DevTools/DevToolsDomainBase.cs b/CefSharp/DevTools/DevToolsDomainBase.cs index 344d991e51..0f13e82680 100644 --- a/CefSharp/DevTools/DevToolsDomainBase.cs +++ b/CefSharp/DevTools/DevToolsDomainBase.cs @@ -11,14 +11,28 @@ namespace CefSharp.DevTools { + /// + /// DevTools Domain base class + /// Provides some basic helper methods + /// public abstract class DevToolsDomainBase { #if NETCOREAPP + /// + /// Convert Enum to String + /// + /// enum + /// string protected string EnumToString(Enum val) { return Internals.Json.JsonEnumConverterFactory.ConvertEnumToString(val); } + /// + /// Enum to string + /// + /// array of type + /// enumerable string protected IEnumerable EnumToString(CefSharp.DevTools.Network.ContentEncoding[] values) { foreach (var val in values) @@ -27,6 +41,11 @@ protected IEnumerable EnumToString(CefSharp.DevTools.Network.ContentEnco } } + /// + /// Enum to string + /// + /// array of type + /// enumerable string protected IEnumerable EnumToString(CefSharp.DevTools.Emulation.DisabledImageType[] values) { foreach (var val in values) @@ -35,6 +54,11 @@ protected IEnumerable EnumToString(CefSharp.DevTools.Emulation.DisabledI } } + /// + /// Enum to string + /// + /// array of type + /// enumerable string protected IEnumerable EnumToString(PermissionType[] values) { foreach (var val in values) @@ -43,6 +67,11 @@ protected IEnumerable EnumToString(PermissionType[] values) } } + /// + /// Enum to string + /// + /// array of type + /// enumerable string protected IEnumerable EnumToString(CefSharp.DevTools.DOMDebugger.CSPViolationType[] values) { foreach (var val in values) diff --git a/CefSharp/DevTools/DevToolsDomainEventArgsBase.cs b/CefSharp/DevTools/DevToolsDomainEventArgsBase.cs index 55661cc6b3..246fe3c078 100644 --- a/CefSharp/DevTools/DevToolsDomainEventArgsBase.cs +++ b/CefSharp/DevTools/DevToolsDomainEventArgsBase.cs @@ -7,6 +7,9 @@ namespace CefSharp.DevTools { + /// + /// DevToolsDomainEventArgsBase + /// [DataContract] public abstract class DevToolsDomainEventArgsBase : EventArgs { diff --git a/CefSharp/DevTools/DevToolsDomainResponseBase.cs b/CefSharp/DevTools/DevToolsDomainResponseBase.cs index 838b034a65..d9957d60f8 100644 --- a/CefSharp/DevTools/DevToolsDomainResponseBase.cs +++ b/CefSharp/DevTools/DevToolsDomainResponseBase.cs @@ -4,9 +4,17 @@ namespace CefSharp.DevTools { + /// + /// DevToolsDomainResponseBase + /// [System.Runtime.Serialization.DataContractAttribute] public abstract class DevToolsDomainResponseBase { + /// + /// Convert from string to base64 byte array + /// + /// string data + /// byte array public byte[] Convert(string data) { return System.Convert.FromBase64String(data); diff --git a/CefSharp/DevTools/Headers.cs b/CefSharp/DevTools/Headers.cs index d87935eaac..0d844c1f31 100644 --- a/CefSharp/DevTools/Headers.cs +++ b/CefSharp/DevTools/Headers.cs @@ -26,6 +26,10 @@ public Headers() : base(StringComparer.OrdinalIgnoreCase) { } + /// + /// Returns itself + /// + /// Dictionary of headers public Dictionary ToDictionary() { return this; diff --git a/CefSharp/DevTools/MemoryDumpConfig.cs b/CefSharp/DevTools/MemoryDumpConfig.cs index ebc98ed2c7..1e3ad3d7d2 100644 --- a/CefSharp/DevTools/MemoryDumpConfig.cs +++ b/CefSharp/DevTools/MemoryDumpConfig.cs @@ -4,6 +4,9 @@ namespace CefSharp.DevTools.Tracing { + /// + /// MemoryDumpConfig + /// public class MemoryDumpConfig { } diff --git a/CefSharp/Handler/IRequestHandler.cs b/CefSharp/Handler/IRequestHandler.cs index 69549e53c9..70c9154914 100644 --- a/CefSharp/Handler/IRequestHandler.cs +++ b/CefSharp/Handler/IRequestHandler.cs @@ -15,8 +15,8 @@ public interface IRequestHandler { /// /// Called before browser navigation. - /// If the navigation is allowed and - /// will be called. If the navigation is canceled will be called with an ErrorCode + /// If the navigation is allowed and + /// will be called. If the navigation is canceled will be called with an ErrorCode /// value of . /// /// the ChromiumWebBrowser control diff --git a/CefSharp/Handler/RequestHandler.cs b/CefSharp/Handler/RequestHandler.cs index 02ba6a7120..b9adc6a7ad 100644 --- a/CefSharp/Handler/RequestHandler.cs +++ b/CefSharp/Handler/RequestHandler.cs @@ -20,9 +20,9 @@ bool IRequestHandler.OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser bro } /// - /// Called before browser navigation. If the navigation is allowed and - /// - /// will be called. If the navigation is canceled will be called with an ErrorCode value of + /// Called before browser navigation. If the navigation is allowed and + /// + /// will be called. If the navigation is canceled will be called with an ErrorCode value of /// . /// /// the ChromiumWebBrowser control. diff --git a/CefSharp/Internals/ConcurrentMethodRunnerQueue.cs b/CefSharp/Internals/ConcurrentMethodRunnerQueue.cs index 5e957361b9..590e054e1b 100644 --- a/CefSharp/Internals/ConcurrentMethodRunnerQueue.cs +++ b/CefSharp/Internals/ConcurrentMethodRunnerQueue.cs @@ -14,25 +14,32 @@ namespace CefSharp.Internals /// the we use ContinueWith to be notified of completion then /// raise the MethodInvocationComplete event /// - public class ConcurrentMethodRunnerQueue : IMethodRunnerQueue + public sealed class ConcurrentMethodRunnerQueue : IMethodRunnerQueue { - private static Type VoidTaskResultType = Type.GetType("System.Threading.Tasks.VoidTaskResult"); + private static readonly Type VoidTaskResultType = Type.GetType("System.Threading.Tasks.VoidTaskResult"); private readonly IJavascriptObjectRepositoryInternal repository; - private CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); + private readonly CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); + /// public event EventHandler MethodInvocationComplete; + /// + /// Default constructor + /// + /// javascript object repository public ConcurrentMethodRunnerQueue(IJavascriptObjectRepositoryInternal repository) { this.repository = repository; } + /// public void Dispose() { MethodInvocationComplete = null; cancellationTokenSource.Cancel(); } + /// public void Enqueue(MethodInvocation methodInvocation) { if (cancellationTokenSource.IsCancellationRequested) diff --git a/CefSharp/Internals/IMethodRunnerQueue.cs b/CefSharp/Internals/IMethodRunnerQueue.cs index d56bc75d3b..443fecb667 100644 --- a/CefSharp/Internals/IMethodRunnerQueue.cs +++ b/CefSharp/Internals/IMethodRunnerQueue.cs @@ -6,10 +6,20 @@ namespace CefSharp.Internals { + /// + /// Run (execute) calls made from Javascript to .Net methods + /// public interface IMethodRunnerQueue : IDisposable { + /// + /// Method invocation was completed. + /// event EventHandler MethodInvocationComplete; + /// + /// Enqueue a method invocation + /// + /// method invocation void Enqueue(MethodInvocation methodInvocation); } } diff --git a/CefSharp/Internals/MethodRunnerQueue.cs b/CefSharp/Internals/MethodRunnerQueue.cs index 93a58935bc..0a9f457342 100644 --- a/CefSharp/Internals/MethodRunnerQueue.cs +++ b/CefSharp/Internals/MethodRunnerQueue.cs @@ -9,27 +9,38 @@ namespace CefSharp.Internals { + /// + /// MethodRunnerQueue - Async Javascript Binding methods are run + /// on the ThreadPool sequentially + /// public sealed class MethodRunnerQueue : IMethodRunnerQueue { //Limit to 1 task per methodRunnerQueue //https://social.msdn.microsoft.com/Forums/vstudio/en-US/d0bcb415-fb1e-42e4-90f8-c43a088537fb/aborting-a-long-running-task-in-tpl?forum=parallelextensions private readonly LimitedConcurrencyLevelTaskScheduler taskScheduler = new LimitedConcurrencyLevelTaskScheduler(1); private readonly IJavascriptObjectRepositoryInternal repository; - private CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); + private readonly CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); + /// public event EventHandler MethodInvocationComplete; + /// + /// Default constructor + /// + /// javascript object repository public MethodRunnerQueue(IJavascriptObjectRepositoryInternal repository) { this.repository = repository; } + /// public void Dispose() { //Cancel all tasks associated with this MethoRunnerQueue cancellationTokenSource.Cancel(); } + /// public void Enqueue(MethodInvocation methodInvocation) { if(cancellationTokenSource.IsCancellationRequested) diff --git a/CefSharp/ResponseFilter/StreamResponseFilter.cs b/CefSharp/ResponseFilter/StreamResponseFilter.cs index e0efd5ad07..46f1a34d4d 100644 --- a/CefSharp/ResponseFilter/StreamResponseFilter.cs +++ b/CefSharp/ResponseFilter/StreamResponseFilter.cs @@ -12,7 +12,7 @@ namespace CefSharp.ResponseFilter /// to the provided Stream. The must be writable, no data will be copied otherwise. /// The StreamResponseFilter will release it's reference (set to null) to the when it's Disposed. /// - public class StreamResponseFilter : IResponseFilter + public sealed class StreamResponseFilter : IResponseFilter { private Stream responseStream; @@ -62,7 +62,8 @@ FilterStatus IResponseFilter.Filter(Stream dataIn, out long dataInRead, Stream d return FilterStatus.Done; } - void IDisposable.Dispose() + /// + public void Dispose() { responseStream = null; } diff --git a/CefSharp/Visitor/TaskWebPluginInfoVisitor.cs b/CefSharp/Visitor/TaskWebPluginInfoVisitor.cs index 2ea2200664..a14b266f10 100644 --- a/CefSharp/Visitor/TaskWebPluginInfoVisitor.cs +++ b/CefSharp/Visitor/TaskWebPluginInfoVisitor.cs @@ -12,7 +12,7 @@ namespace CefSharp /// /// Provides a visitor implementation of /// - public class TaskWebPluginInfoVisitor : IWebPluginInfoVisitor + public sealed class TaskWebPluginInfoVisitor : IWebPluginInfoVisitor { private TaskCompletionSource> taskCompletionSource; private List list;