internal bool OnBrowserProcessMessage(CefBrowser browser, CefFrame frame, CefProcessId sourceProcess, CefProcessMessage message)
        {
            if (message.Name == PROCESS_MESSAGE_BRIDGE_MESSAGE)
            {
                var buff = message.Arguments.GetBinary(0);
                var json = Encoding.UTF8.GetString(buff.ToArray());



                var msg = BridgeMessage.FromJson(json);
                buff.Dispose();



                foreach (var handler in MessageHandlers)
                {
                    handler.OnBrowserSideMessageReceived(msg.Name, frame, msg.Arguments);
                }
                //if (ProcessMessageHandlers.ContainsKey(msg.Name))
                //{
                //    ProcessMessageHandlers[msg.Name].Invoke(this, frame, msg.Arguments);
                //}

                return(true);
            }

            return(false);
        }
        public void SendProcessMessage(CefFrame frame, BridgeMessage message)
        {
            var msg  = CefProcessMessage.Create(PROCESS_MESSAGE_BRIDGE_MESSAGE);
            var json = message.ToJson();

            msg.Arguments.SetBinary(0, CefBinaryValue.Create(Encoding.UTF8.GetBytes(json)));
            frame.SendProcessMessage(ProcessType, msg);
            msg.Dispose();
        }