1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-04-29 20:34:04 +02:00
TweetDuck/Browser/Base/CefRequestAdapter.cs

47 lines
1.4 KiB
C#

using CefSharp;
using TweetLib.Browser.CEF.Interfaces;
using ResourceType = TweetLib.Browser.Request.ResourceType;
namespace TweetDuck.Browser.Base {
sealed class CefRequestAdapter : IRequestAdapter<IRequest> {
public static CefRequestAdapter Instance { get; } = new CefRequestAdapter();
private CefRequestAdapter() {}
public ulong GetIdentifier(IRequest request) {
return request.Identifier;
}
public string GetUrl(IRequest request) {
return request.Url;
}
public void SetUrl(IRequest request, string url) {
request.Url = url;
}
public bool IsTransitionForwardBack(IRequest request) {
return request.TransitionType.HasFlag(TransitionType.ForwardBack);
}
public bool IsCspReport(IRequest request) {
return request.ResourceType == CefSharp.ResourceType.CspReport;
}
public ResourceType GetResourceType(IRequest request) {
return request.ResourceType switch {
CefSharp.ResourceType.MainFrame => ResourceType.MainFrame,
CefSharp.ResourceType.Script => ResourceType.Script,
CefSharp.ResourceType.Stylesheet => ResourceType.Stylesheet,
CefSharp.ResourceType.Xhr => ResourceType.Xhr,
CefSharp.ResourceType.Image => ResourceType.Image,
_ => ResourceType.Unknown
};
}
public void SetHeader(IRequest request, string header, string value) {
request.SetHeaderByName(header, value, overwrite: true);
}
}
}