コード例 #1
0
 public void OnContextCreated(ICefBrowser browser, ICefFrame frame, ICefV8Context context)
 {
     if (browsers.TryGetValue(browser.Identifier, out var browserController))
     {
         browserController.OnContextCreated(frame, context);
     }
 }
コード例 #2
0
        public void Initialize(ICefBrowser browser, MessageClient client)
        {
            this.browser = browser;
            this.client  = client;

            client.ProcessMessageReceived += ClientOnProcessMessageReceived;
        }
コード例 #3
0
        private void CallbackDone(PromiseResult promiseResult, ICefBrowser browser, long executionId)
        {
            var callbackResult = new CallbackResult <ICefValue>
            {
                ExecutionId = executionId,
                Success     = promiseResult.Success
            };

            if (promiseResult.Success)
            {
                callbackResult.Result = v8Serializer.Serialize(promiseResult.Result);
            }
            else if (!string.IsNullOrWhiteSpace(promiseResult.Error))
            {
                callbackResult.Error = promiseResult.Error;
            }

            var response = new RpcResponse <ICefValue>
            {
                CallbackResult = callbackResult
            };
            var msg        = CefProcessMessage.Create(Messages.RpcResponseMessage);
            var serialized = v8Serializer.Serialize(response);

            msg.Arguments.SetValue(0, serialized);

            browser.SendProcessMessage(CefProcessId.Browser, msg);
        }
コード例 #4
0
 public void OnBrowserDestroyed(ICefBrowser browser)
 {
     if (browsers.TryGetValue(browser.Identifier, out var browserController))
     {
         browsers.Remove(browser.Identifier);
         browserController.Dispose();
     }
 }
コード例 #5
0
ファイル: MessageClient.cs プロジェクト: rpc-bindings/cefglue
        bool ICefClient.OnProcessMessageReceived(ICefBrowser browser, CefProcessId sourceProcess, ICefProcessMessage message)
        {
            var args = new ProcessMessageReceivedArgs(browser, message);

            OnProcessMessageReceived(args);

            return(args.Handled);
        }
コード例 #6
0
        public BrowserController(ICefBrowser browser, PromiseService promiseService)
        {
            this.browser = browser;
            functionCallPromiseRegistry  = new SavedValueFactory <Promise>(promiseService.CreatePromise);
            dynamicObjectPromiseRegistry = new SavedValueFactory <Promise>(promiseService.CreatePromise);

            objectSerializer.Serializers.Insert(0, new V8Serializer(promiseService, callbackRegistry));
            objectSerializer.Deserializers.Insert(0, new V8Deserializer(functionCallPromiseRegistry));
        }
コード例 #7
0
        public bool OnBeforeNavigation(ICefBrowser browser, ICefFrame frame, ICefRequest request, CefNavigationType navigation_type,
                                       bool isRedirect)
        {
            if (browsers.TryGetValue(browser.Identifier, out var browserController))
            {
                browserController.OnBeforeNavigate(frame, request, navigation_type, isRedirect);
            }

            return(false);
        }
コード例 #8
0
        public bool OnProcessMessageReceived(ICefBrowser browser, CefProcessId sourceProcess,
                                             ICefProcessMessage message)
        {
            var handled = false;

            if (browsers.TryGetValue(browser.Identifier, out var browserController))
            {
                handled = browserController.OnProcessMessage(message);
            }

            if (!handled)
            {
                var args = new ProcessMessageReceivedArgs(browser, message);
                ProcessMessageReceived?.Invoke(this, args);
                handled = args.Handled;
            }

            return(handled);
        }
コード例 #9
0
 public ProcessMessageReceivedArgs(ICefBrowser browser, ICefProcessMessage message)
 {
     Browser = browser;
     Message = message;
 }
コード例 #10
0
 public void OnBrowserCreated(ICefBrowser browser)
 {
     browsers.Add(browser.Identifier, new BrowserController(browser, promiseService));
 }