2020-09-21 19:32:25 +10:00
|
|
|
// 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Runtime.Serialization;
|
|
|
|
|
using CefSharp.DevTools.Browser;
|
2021-06-10 10:19:05 +10:00
|
|
|
using CefSharp.DevTools.Network;
|
2020-09-21 19:32:25 +10:00
|
|
|
|
|
|
|
|
namespace CefSharp.DevTools
|
|
|
|
|
{
|
2022-02-01 14:07:01 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// DevTools Domain base class
|
|
|
|
|
/// Provides some basic helper methods
|
|
|
|
|
/// </summary>
|
2020-09-21 19:32:25 +10:00
|
|
|
public abstract class DevToolsDomainBase
|
|
|
|
|
{
|
2021-01-06 15:27:51 +10:00
|
|
|
#if NETCOREAPP
|
2022-02-01 14:07:01 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Convert Enum to String
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="val">enum</param>
|
|
|
|
|
/// <returns>string</returns>
|
2021-01-06 15:27:51 +10:00
|
|
|
protected string EnumToString(Enum val)
|
|
|
|
|
{
|
|
|
|
|
return Internals.Json.JsonEnumConverterFactory.ConvertEnumToString(val);
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-01 14:07:01 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Enum to string
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">array of type <see cref="CefSharp.DevTools.Network.ContentEncoding"/></param>
|
|
|
|
|
/// <returns>enumerable string</returns>
|
2021-06-10 15:51:02 +10:00
|
|
|
protected IEnumerable<string> EnumToString(CefSharp.DevTools.Network.ContentEncoding[] values)
|
|
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
yield return Internals.Json.JsonEnumConverterFactory.ConvertEnumToString(val);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-01 14:07:01 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Enum to string
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">array of type <see cref="CefSharp.DevTools.Emulation.DisabledImageType"/></param>
|
|
|
|
|
/// <returns>enumerable string</returns>
|
2021-02-08 10:00:22 +10:00
|
|
|
protected IEnumerable<string> EnumToString(CefSharp.DevTools.Emulation.DisabledImageType[] values)
|
|
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
yield return Internals.Json.JsonEnumConverterFactory.ConvertEnumToString(val);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-01 14:07:01 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Enum to string
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">array of type <see cref="PermissionType"/></param>
|
|
|
|
|
/// <returns>enumerable string</returns>
|
2021-01-06 15:27:51 +10:00
|
|
|
protected IEnumerable<string> EnumToString(PermissionType[] values)
|
|
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
yield return Internals.Json.JsonEnumConverterFactory.ConvertEnumToString(val);
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-03-12 13:58:37 +10:00
|
|
|
|
2022-02-01 14:07:01 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Enum to string
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">array of type <see cref="CefSharp.DevTools.DOMDebugger.CSPViolationType"/></param>
|
|
|
|
|
/// <returns>enumerable string</returns>
|
2021-03-12 13:58:37 +10:00
|
|
|
protected IEnumerable<string> EnumToString(CefSharp.DevTools.DOMDebugger.CSPViolationType[] values)
|
|
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
yield return Internals.Json.JsonEnumConverterFactory.ConvertEnumToString(val);
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-01-06 15:27:51 +10:00
|
|
|
#else
|
2020-09-21 19:32:25 +10:00
|
|
|
protected string EnumToString(Enum val)
|
|
|
|
|
{
|
|
|
|
|
var memInfo = val.GetType().GetMember(val.ToString());
|
|
|
|
|
var dataMemberAttribute = (EnumMemberAttribute)Attribute.GetCustomAttribute(memInfo[0], typeof(EnumMemberAttribute), false);
|
|
|
|
|
|
|
|
|
|
return dataMemberAttribute.Value;
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-10 10:19:05 +10:00
|
|
|
//TODO: Create a generic function that converts enum array to string
|
|
|
|
|
protected IEnumerable<string> EnumToString(ContentEncoding[] values)
|
|
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
var memInfo = val.GetType().GetMember(val.ToString());
|
|
|
|
|
var dataMemberAttribute = (EnumMemberAttribute)Attribute.GetCustomAttribute(memInfo[0], typeof(EnumMemberAttribute), false);
|
|
|
|
|
|
|
|
|
|
yield return dataMemberAttribute.Value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-08-08 14:18:54 +10:00
|
|
|
protected IEnumerable<string> EnumToString(Browser.PermissionType[] values)
|
2020-09-21 19:32:25 +10:00
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
var memInfo = val.GetType().GetMember(val.ToString());
|
|
|
|
|
var dataMemberAttribute = (EnumMemberAttribute)Attribute.GetCustomAttribute(memInfo[0], typeof(EnumMemberAttribute), false);
|
|
|
|
|
|
|
|
|
|
yield return dataMemberAttribute.Value;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-02-08 10:00:22 +10:00
|
|
|
|
|
|
|
|
protected IEnumerable<string> EnumToString(CefSharp.DevTools.Emulation.DisabledImageType[] values)
|
|
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
var memInfo = val.GetType().GetMember(val.ToString());
|
|
|
|
|
var dataMemberAttribute = (EnumMemberAttribute)Attribute.GetCustomAttribute(memInfo[0], typeof(EnumMemberAttribute), false);
|
|
|
|
|
|
|
|
|
|
yield return dataMemberAttribute.Value;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-03-12 13:58:37 +10:00
|
|
|
|
|
|
|
|
protected IEnumerable<string> EnumToString(CefSharp.DevTools.DOMDebugger.CSPViolationType[] values)
|
|
|
|
|
{
|
|
|
|
|
foreach (var val in values)
|
|
|
|
|
{
|
|
|
|
|
var memInfo = val.GetType().GetMember(val.ToString());
|
|
|
|
|
var dataMemberAttribute = (EnumMemberAttribute)Attribute.GetCustomAttribute(memInfo[0], typeof(EnumMemberAttribute), false);
|
|
|
|
|
|
|
|
|
|
yield return dataMemberAttribute.Value;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-01-06 15:27:51 +10:00
|
|
|
#endif
|
2020-09-21 19:32:25 +10:00
|
|
|
|
|
|
|
|
protected string ToBase64String(byte[] bytes)
|
|
|
|
|
{
|
|
|
|
|
return Convert.ToBase64String(bytes);
|
|
|
|
|
}
|
2025-06-06 12:32:24 +10:00
|
|
|
|
|
|
|
|
protected string ToBase64String(byte[][] bytes)
|
|
|
|
|
{
|
|
|
|
|
throw new NotImplementedException("Not currently supported.");
|
|
|
|
|
}
|
2020-09-21 19:32:25 +10:00
|
|
|
}
|
|
|
|
|
}
|