// Copyright © 2020 The CefSharp Authors. All rights reserved. // // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. //NOTE:Classes in the CefSharp.Core namespace have been hidden from intellisnse so users don't use them directly using System; using System.Collections.Generic; using System.Threading.Tasks; namespace CefSharp { /// public class RequestContext : IRequestContext { private CefSharp.Core.RequestContext requestContext; /// public RequestContext() { requestContext = new CefSharp.Core.RequestContext(); } /// public RequestContext(IRequestContext otherRequestContext) { if (otherRequestContext == null) { throw new ArgumentNullException(nameof(otherRequestContext)); } requestContext = new CefSharp.Core.RequestContext(otherRequestContext); } /// public RequestContext(IRequestContext otherRequestContext, IRequestContextHandler requestContextHandler) { if (otherRequestContext == null) { throw new ArgumentNullException(nameof(otherRequestContext)); } if (requestContextHandler == null) { throw new ArgumentNullException(nameof(requestContextHandler)); } requestContext = new CefSharp.Core.RequestContext(otherRequestContext, requestContextHandler); } /// public RequestContext(IRequestContextHandler requestContextHandler) { if (requestContextHandler == null) { throw new ArgumentNullException(nameof(requestContextHandler)); } requestContext = new CefSharp.Core.RequestContext(requestContextHandler); } /// public RequestContext(RequestContextSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } requestContext = new CefSharp.Core.RequestContext(settings.settings); } /// public RequestContext(RequestContextSettings settings, IRequestContextHandler requestContextHandler) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (requestContextHandler == null) { throw new ArgumentNullException(nameof(requestContextHandler)); } requestContext = new CefSharp.Core.RequestContext(settings.settings, requestContextHandler); } /// /// Creates a new RequestContextBuilder which can be used to fluently set /// preferences /// /// Returns a new RequestContextBuilder public static RequestContextBuilder Configure() { var builder = new RequestContextBuilder(); return builder; } /// public bool IsGlobal { get { return requestContext.IsGlobal; } } /// public string CachePath { get { return requestContext.CachePath; } } /// public bool IsDisposed { get { return requestContext.IsDisposed; } } /// public bool IsSame(IRequestContext context) { return requestContext.IsSame(context); } /// public bool IsSharingWith(IRequestContext context) { return requestContext.IsSharingWith(context); } /// public ICookieManager GetCookieManager(ICompletionCallback callback) { return requestContext.GetCookieManager(callback); } /// public bool RegisterSchemeHandlerFactory(string schemeName, string domainName, ISchemeHandlerFactory factory) { return requestContext.RegisterSchemeHandlerFactory(schemeName, domainName, factory); } /// public bool ClearSchemeHandlerFactories() { return requestContext.ClearSchemeHandlerFactories(); } /// public bool HasPreference(string name) { return requestContext.HasPreference(name); } /// public object GetPreference(string name) { return requestContext.GetPreference(name); } /// public IDictionary GetAllPreferences(bool includeDefaults) { return requestContext.GetAllPreferences(includeDefaults); } /// public bool CanSetPreference(string name) { return requestContext.CanSetPreference(name); } /// public bool SetPreference(string name, object value, out string error) { return requestContext.SetPreference(name, value, out error); } /// public void ClearCertificateExceptions(ICompletionCallback callback) { requestContext.ClearCertificateExceptions(callback); } /// public void ClearHttpAuthCredentials(ICompletionCallback callback = null) { requestContext.ClearHttpAuthCredentials(callback); } /// public void CloseAllConnections(ICompletionCallback callback) { requestContext.CloseAllConnections(callback); } /// public Task ResolveHostAsync(Uri origin) { return requestContext.ResolveHostAsync(origin); } /// public void Dispose() { requestContext.Dispose(); } /// /// Used internally to get the underlying instance. /// Unlikely you'll use this yourself. /// /// the inner most instance [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public IRequestContext UnWrap() { return requestContext; } } }