internal BrowserClient(IChromiumWebBrowser browser) { this.browser = browser; this.lifeSpanHandler = new LifeSpanHandler(this); this.requestHandler = new RequestHandler(this); this.GetLifeSpanHandler += (s, e) => e.SetReturnValue(lifeSpanHandler); this.GetRequestHandler += (s, e) => e.SetReturnValue(requestHandler); }
internal EmbeddedResourceHandler(Assembly resourceAssembly, IChromiumWebBrowser browser) { gcHandle = System.Runtime.InteropServices.GCHandle.Alloc(this); this.browser = browser; this.resourceAssembly = resourceAssembly; this.GetResponseHeaders += EmbeddedResourceHandler_GetResponseHeaders; this.ProcessRequest += EmbeddedResourceHandler_ProcessRequest; this.ReadResponse += EmbeddedResourceHandler_ReadResponse; this.CanGetCookie += (s, e) => e.SetReturnValue(false); this.CanSetCookie += (s, e) => e.SetReturnValue(false); }
internal EvaluateTask(IChromiumWebBrowser wb, string code, JSInvokeMode invokeMode, Action<CfrV8Value, CfrV8Exception> callback) { this.wb = wb; this.code = code; this.invokeMode = invokeMode; this.callback = callback; lock (tasks) tasks.Add(this); Execute += (s, e) => { if (invokeMode == JSInvokeMode.Invoke || (invokeMode == JSInvokeMode.Inherit && wb.RemoteCallbacksWillInvoke)) wb.RenderThreadInvoke(() => Task_Execute(e)); else Task_Execute(e); lock (tasks) tasks.Remove(this); }; }
internal VisitDomTask(IChromiumWebBrowser wb, Action <CfrDomDocument, CfrBrowser> callback) { this.wb = wb; this.callback = callback; this.Execute += Task_Execute; visitor = new CfrDomVisitor(); visitor.Visit += (s, e) => { if (wb.RemoteCallbacksWillInvoke) { wb.RenderThreadInvoke((MethodInvoker)(() => { callback(e.Document, wb.RemoteBrowser); })); } else { callback(e.Document, wb.RemoteBrowser); } }; }
internal EvaluateTask(IChromiumWebBrowser wb, string code, JSInvokeMode invokeMode, Action <CfrV8Value, CfrV8Exception> callback) { this.wb = wb; this.code = code; this.invokeMode = invokeMode; this.callback = callback; Execute += (s, e) => { if (invokeMode == JSInvokeMode.Invoke || (invokeMode == JSInvokeMode.Inherit && wb.RemoteCallbacksWillInvoke)) { wb.RenderThreadInvoke(() => Task_Execute(e)); } else { Task_Execute(e); } }; }
/// <summary> /// 装载插件 /// </summary> /// <param name="webBrowser">浏览器操作接口</param> public void Load(IChromiumWebBrowser webBrowser) { //webBrowser.RegisterJsFunction("PluginTesterCall", (o) => // { // webBrowser.EvaluateJavascript("addCallback(100, 200)", // (value, exception) => { // webBrowser.MainForm.BeginInvoke((MethodInvoker)(() => { // MessageBox.Show(webBrowser.MainForm, value); // })); // }); // } //); bool b = webBrowser.RegisterJsFunction("ReadCertificateInfo", (s) => { if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\ReadCertificateInfo.json")) { return(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\\ReadCertificateInfo.json")); } string str = Newtonsoft.Json.JsonConvert.SerializeObject(ReadCertificateInfo(s)); _logger.Info("ReadCertificateInfo Json:" + str); return(str); }); _logger.Info("注册ReadCertificateInfo:" + b); b = webBrowser.RegisterJsFunction("ReadCardInfo", (s) => { try { if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\ReadCardInfo.json")) { return(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\\ReadCardInfo.json")); } string str = Newtonsoft.Json.JsonConvert.SerializeObject(ReadCardInfo(s)); _logger.Info("ReadCardInfo Json:" + str); return(str); } catch (Exception ex) { return(ex.Message); } }); _logger.Info("注册ReadCardInfo:" + b); }
/// <summary> /// 卸载插件 /// </summary> /// <param name="webBrowser">浏览器操作接口</param> public void Unload(IChromiumWebBrowser webBrowser) { }
internal void ClearParent() { Name = null; m_parent = null; m_browser = null; }
internal void SetBrowser(string propertyName, IChromiumWebBrowser browser) { CheckUnboundState(); Name = propertyName; m_browser = browser; }