public Task <JavaScriptExecutionResult> ExecuteFunctionAsync(CefFrame frame, JavaScriptValue[] arguments = null) { CheckIsRendererFunction(); var tsc = new TaskCompletionSource <JavaScriptExecutionResult>(); if (JavaScriptObjectRepository.JavaScriptExecutionTasks.TryAdd(new Tuple <int, long>(tsc.GetHashCode(), frame.Identifier), tsc)) { var jsvalue = arguments == null?JavaScriptValue.CreateArray() : arguments.ToJSValue(); var message = BridgeMessage.Create(JavaScriptCommunicationBridge.EVALUATE_JS_CALLBACK); message.Arguments.Add(MessageValue.CreateInt(tsc.GetHashCode())); message.Arguments.Add(MessageValue.CreateInt(JSFunctionDescriber.Id)); message.Arguments.Add(MessageValue.CreateString(jsvalue.ToDefinition())); JavaScriptCommunicationBridge.SendProcessMessage(CefProcessId.Renderer, frame, message); return(tsc.Task); } throw new InvalidOperationException("Same function already exists."); }
public JavaScriptEvaluationTask(JavaScriptCommunicationBridge bridge, CefFrame frame, MessageArrayValue arguments) { this.jsbridge = bridge; this.frame = frame; taskId = arguments[0].GetInt(); code = arguments[1].GetString(); }
public JavaScriptAsyncFunctionCallback(CefFrame frame, /*string objectKey, string name, */ Guid uuid, JavaScriptCommunicationBridge bridge) { this._frame = frame; //this._objectKey = objectKey; //this._name = name; this._uuid = uuid; _jsBridge = bridge; }
public JavaScriptExecuteionTask(JavaScriptCommunicationBridge bridge, CefFrame frame, MessageArrayValue arguments) { this.jsbridge = bridge; this.frame = frame; taskId = arguments[0].GetInt(); functionId = arguments[1].GetInt(); this.arguments = JavaScriptValue.FromJson(arguments[2].GetString()); }
public JavaScriptRendererSideAsyncFunctionCallback(CefFrame frame, Guid uuid, JavaScriptCommunicationBridge bridge) { this._frame = frame; this._uuid = uuid; _jsBridge = bridge; }
public BrowserSideJavaScriptObjectMappingTask(JavaScriptCommunicationBridge bridge, CefFrame frame) { this.jsbridge = bridge; this.frame = frame; }
public JavaScriptExtensionHandler(JavaScriptExtensionBase extension, JavaScriptCommunicationBridge bridge) { Extension = extension; JSBridge = bridge; }
internal JavaScriptExtensionHandler GetHandler(JavaScriptCommunicationBridge bridge) { return(new JavaScriptExtensionHandler(this, bridge)); }