// 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;
}
}
}