public static List <dynamic> ConvertToV8List(CefListValue arguments) { var args = new List <dynamic>(); if (arguments != null) { for (var i = 0; i < arguments.Count; i++) { var type = arguments.GetValueType(i); object value; switch (type) { case CefValueType.Null: value = null; break; case CefValueType.String: value = arguments.GetString(i); break; case CefValueType.Int: value = arguments.GetInt(i); break; case CefValueType.Double: value = arguments.GetDouble(i); break; case CefValueType.Bool: value = arguments.GetBool(i); break; default: value = null; break; } if (value != null) { args.Add(value); } } } return(args); }
protected PluginMessage DeserializeProcessMessage(CefListValue args) { if (args.Count < 10) { throw new ArgumentNullException("args"); } return(new PluginMessage { MessageId = new Guid(args.GetString(0)), MessageType = (PluginMessageType)args.GetInt(1), PluginId = args.GetString(2), MemberName = args.GetString(3), Data = args.GetString(4), BrowserId = args.GetInt(5), ContextId = args.GetInt(6), FrameId = (args.GetInt(8) << 32) | ((long)(args.GetInt(7))), V8CallbackId = new Guid(args.GetString(9)) }); }
/// <summary> /// Called after the render process main thread has been created. /// </summary> /// <param name="extraInfo"></param> protected override void OnRenderThreadCreated(CefListValue extraInfo) { if (extraInfo == null) { throw new ArgumentNullException("extraInfo"); } NativeRequestUrl = extraInfo.GetString(0); RequestHostname = extraInfo.GetString(1); NativeRequestPort = extraInfo.GetInt(2); GeneralLog.Info("Render process thread created."); }
static XElement ToXElement(string name, CefListValue value) { var result = new XElement(name); var count = value.Count; for (int i = 0; i < count; i++) { var type = value.GetValueType(i); switch (type) { case CefValueType.Invalid: break; case CefValueType.Null: result.Add(new XElement("item", null)); break; case CefValueType.Bool: result.Add(new XElement("item", value.GetBool(i))); break; case CefValueType.Int: result.Add(new XElement("item", value.GetInt(i))); break; case CefValueType.Double: result.Add(new XElement("item", value.GetDouble(i))); break; case CefValueType.String: result.Add(new XElement("item", value.GetString(i))); break; case CefValueType.Binary: break; case CefValueType.Dictionary: result.Add(ToXElement("item", value.GetDictionary(i))); break; case CefValueType.List: result.Add(ToXElement("item", value.GetList(i))); break; default: break; } } return(result); }
public JSValue(CefListValue value) { if (value == null) { return; } var result = new List <Object>(); for (var i = 0; i < value.Count; i++) { switch (value.GetValueType(i)) { case CefValueType.List: result.Add(new JSValue(value.GetList(i)).Value); break; case CefValueType.Binary: result.Add(new JSValue(value.GetBinary(i)).Value); break; case CefValueType.String: result.Add(value.GetString(i)); break; case CefValueType.Double: result.Add(value.GetDouble(i)); break; case CefValueType.Int: result.Add(value.GetInt(i)); break; case CefValueType.Bool: result.Add(value.GetBool(i)); break; case CefValueType.Dictionary: result.Add(new JSValue(value.GetDictionary(i)).Value); break; default: result.Add(null); break; } } this.Value = result.ToArray(); }