Exemplo n.º 1
0
 internal Callback(CefMessageRouterBrowserSide router, int browserId, long queryId, bool persistent)
 {
     _router     = router;
     _browserId  = browserId;
     _queryId    = queryId;
     _persistent = persistent;
 }
Exemplo n.º 2
0
 internal Callback(CefMessageRouterBrowserSide router, int browserId, long queryId, bool persistent)
 {
     _router = router;
     _browserId = browserId;
     _queryId = queryId;
     _persistent = persistent;
 }
Exemplo n.º 3
0
 internal OnQueryEventArgs(CefBrowser _browser, CefFrame _frame, long _queryId, string _request, bool _persistent, CefMessageRouterBrowserSide.Callback _callback)
 {
     browser = _browser;
     frame = _frame;
     queryId = _queryId;
     request = _request;
     persistent = _persistent;
     callback = _callback;
     Handled = false; //default return value
 }
Exemplo n.º 4
0
        public override bool OnQuery(CefBrowser browser, CefFrame frame, long queryId, string request, bool persistent, CefMessageRouterBrowserSide.Callback callback)
        {
            Debug.WriteLine(DBGPREFIX + "OnQuery called, [" + queryId + " " + (persistent ? "" : "not" + " persistent]: ") + request);
	        var handler = OnQueryEvent;
	        if (handler != null)
	        {
                Debug.WriteLine(DBGPREFIX + "OnQuery Delegate");
		        var e = new OnQueryEventArgs(browser, frame, queryId, request, persistent, callback);
		        handler(this, e);
                return e.Handled;
	        }
            return false;
        }
Exemplo n.º 5
0
        internal LVCefClient(LVCefControl lvCefControl)
        {
            Debug.WriteLine(DBGPREFIX + "Created");
            if (lvCefControl == null)
                throw new CefRuntimeException(DBGPREFIX + "Instance of a LVCefControl required to create an LVCefClient");
            _lvCefControl = lvCefControl;
            _messageRouter = new CefMessageRouterBrowserSide(new CefMessageRouterConfig());

            LifeSpanHandler = new LVCefLifeSpanHandler(_lvCefControl, _messageRouter);
            RequestHandler = new LVCefRequestHandler(_lvCefControl, _messageRouter);
            MessageRouterHandler = new LVCefMessageRouterHandler(_lvCefControl, _messageRouter);
            RegisterMessageRouter();
        }
Exemplo n.º 6
0
            /// <summary>
            /// Notify the associated JavaScript onFailure callback that the query has
            /// failed with the specified |error_code| and |error_message|.
            /// </summary>
            public void Failure(int errorCode, string errorMessage)
            {
                if (!CefRuntime.CurrentlyOn(CefThreadId.UI))
                {
                    // Must execute on the UI thread to access member variables.
                    Helpers.PostTask(CefThreadId.UI,
                                     Helpers.Apply(this.Failure, errorCode, errorMessage)
                                     );
                    return;
                }

                if (_router != null)
                {
                    Helpers.PostTaskUncertainty(CefThreadId.UI,
                                                Helpers.Apply(_router.OnCallbackFailure, _browserId, _queryId, errorCode, errorMessage)
                                                );

                    // Failure always invalidates the callback.
                    _router = null;
                }
            }
Exemplo n.º 7
0
            /// <summary>
            /// Notify the associated JavaScript onSuccess callback that the query has
            /// completed successfully with the specified |response|.
            /// </summary>
            public void Success(string response)
            {
                if (!CefRuntime.CurrentlyOn(CefThreadId.UI))
                {
                    Helpers.PostTask(CefThreadId.UI,
                                     Helpers.Apply(this.Success, response)
                                     );
                    return;
                }

                if (_router != null)
                {
                    Helpers.PostTaskUncertainty(CefThreadId.UI,
                                                Helpers.Apply(_router.OnCallbackSuccess, _browserId, _queryId, response)
                                                );

                    if (!_persistent)
                    {
                        // Non-persistent callbacks are only good for a single use.
                        _router = null;
                    }
                }
            }
Exemplo n.º 8
0
            /// <summary>
            /// Notify the associated JavaScript onSuccess callback that the query has
            /// completed successfully with the specified |response|.
            /// </summary>
            public void Success(string response)
            {
                if (!CefRuntime.CurrentlyOn(CefThreadId.UI))
                {
                    Helpers.PostTask(CefThreadId.UI,
                        Helpers.Apply(this.Success, response)
                        );
                    return;
                }

                if (_router != null)
                {
                    Helpers.PostTaskUncertainty(CefThreadId.UI,
                        Helpers.Apply(_router.OnCallbackSuccess, _browserId, _queryId, response)
                        );

                    if (!_persistent)
                    {
                        // Non-persistent callbacks are only good for a single use.
                        _router = null;
                    }
                }
            }
Exemplo n.º 9
0
 internal LVCefMessageRouterHandler(LVCefControl lvCefControl, CefMessageRouterBrowserSide messageRouter)
 {
     Debug.WriteLine(DBGPREFIX + "Created");
     _lvCefControl = lvCefControl;
     _messageRouter = messageRouter;
 }
Exemplo n.º 10
0
            public override bool OnQuery(CefBrowser browser, CefFrame frame, long queryId, string request, bool persistent, CefMessageRouterBrowserSide.Callback callback)
            {
                if (request == "wait5")
                {
                    new Thread(() =>
                    {
                        Thread.Sleep(5000);
                        callback.Success("success! responded after 5 sec timeout."); // TODO: at this place crash can occurs, if application closed
                    }).Start();
                    return true;
                }

                if (request == "wait5f")
                {
                    new Thread(() =>
                    {
                        Thread.Sleep(5000);
                        callback.Failure(12345, "success! responded after 5 sec timeout. responded as failure.");
                    }).Start();
                    return true;
                }

                if (request == "wait30")
                {
                    new Thread(() =>
                    {
                        Thread.Sleep(30000);
                        callback.Success("success! responded after 30 sec timeout.");
                    }).Start();
                    return true;
                }

                if (request == "noanswer")
                {
                    return true;
                }

                var chars = request.ToCharArray();
                Array.Reverse(chars);
                var response = new string(chars);
                callback.Success(response);
                return true;
            }
Exemplo n.º 11
0
 internal void Detach()
 {
     Helpers.RequireUIThread();
     _router = null;
 }
Exemplo n.º 12
0
 internal void Detach()
 {
     Helpers.RequireUIThread();
     _router = null;
 }
Exemplo n.º 13
0
            /// <summary>
            /// Notify the associated JavaScript onFailure callback that the query has
            /// failed with the specified |error_code| and |error_message|.
            /// </summary>
            public void Failure(int errorCode, string errorMessage)
            {
                if (!CefRuntime.CurrentlyOn(CefThreadId.UI))
                {
                    // Must execute on the UI thread to access member variables.
                    Helpers.PostTask(CefThreadId.UI,
                        Helpers.Apply(this.Failure, errorCode, errorMessage)
                        );
                    return;
                }

                if (_router != null)
                {
                    Helpers.PostTaskUncertainty(CefThreadId.UI,
                        Helpers.Apply(_router.OnCallbackFailure, _browserId, _queryId, errorCode, errorMessage)
                        );

                    // Failure always invalidates the callback.
                    _router = null;
                }
            }
Exemplo n.º 14
0
 internal LVCefRequestHandler(LVCefControl lvCefControl, CefMessageRouterBrowserSide messageRouter)
 {
     Debug.WriteLine(DBGPREFIX + "Constructor");
     _lvCefControl = lvCefControl;
     _messageRouter = messageRouter;
 }