示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
 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);
     };
 }
示例#4
0
 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);
         }
     };
 }
示例#5
0
 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);
         }
     };
 }
示例#6
0
        /// <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);
        }
示例#7
0
 /// <summary>
 /// 卸载插件
 /// </summary>
 /// <param name="webBrowser">浏览器操作接口</param>
 public void Unload(IChromiumWebBrowser webBrowser)
 {
 }
示例#8
0
 internal void ClearParent()
 {
     Name      = null;
     m_parent  = null;
     m_browser = null;
 }
示例#9
0
 internal void SetBrowser(string propertyName, IChromiumWebBrowser browser)
 {
     CheckUnboundState();
     Name      = propertyName;
     m_browser = browser;
 }