diff --git a/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.cpp b/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.cpp index 04fb9316d8..11f4172c38 100644 --- a/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.cpp +++ b/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.cpp @@ -31,52 +31,6 @@ namespace CefSharp } } - JavascriptResponse^ CefBrowserWrapper::EvaluateScriptInContext(CefRefPtr context, CefString script) - { - CefRefPtr result; - CefRefPtr exception; - JavascriptResponse^ response = gcnew JavascriptResponse(); - - response->Success = context->Eval(script, result, exception); - if (response->Success) - { - if (result->IsFunction()) - { - response->Result = _callbackRegistry->Register(context, result); - } - else - { - response->Result = TypeUtils::ConvertFromCef(result); - } - } - else if (exception.get()) - { - response->Message = StringUtils::ToClr(exception->GetMessage()); - } - - return response; - } - - JavascriptResponse^ CefBrowserWrapper::DoEvaluateScript(System::Int64 frameId, String^ script) - { - auto frame = _cefBrowser->GetFrame(frameId); - CefRefPtr context = frame->GetV8Context(); - - if (context.get() && context->Enter()) - { - try - { - return EvaluateScriptInContext(context, StringUtils::ToNative(script)); - } - finally - { - context->Exit(); - } - } - - return nullptr; - } - JavascriptResponse^ CefBrowserWrapper::DoCallback(System::Int64 callbackId, array^ parameters) { return _callbackRegistry->Execute(callbackId, parameters); diff --git a/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.h b/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.h index af95ad8b42..832d7d0909 100644 --- a/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.h +++ b/CefSharp.BrowserSubprocess.Core/CefBrowserWrapper.h @@ -62,10 +62,6 @@ namespace CefSharp // The WCF proxy to the parent process. property IBrowserProcess^ BrowserProcess; - JavascriptResponse^ EvaluateScriptInContext(CefRefPtr context, CefString script); - - virtual JavascriptResponse^ DoEvaluateScript(System::Int64 frameId, String^ script); - JavascriptResponse^ DoCallback(System::Int64 callbackId, array^ parameters); void DestroyJavascriptCallback(Int64 id); diff --git a/CefSharp.BrowserSubprocess/CefRenderProcess.cs b/CefSharp.BrowserSubprocess/CefRenderProcess.cs index 5232a6e968..839c1b9655 100644 --- a/CefSharp.BrowserSubprocess/CefRenderProcess.cs +++ b/CefSharp.BrowserSubprocess/CefRenderProcess.cs @@ -113,72 +113,6 @@ public override void OnBrowserDestroyed(CefBrowserWrapper browser) browser.JavascriptRootObject = null; } - public Task EvaluateScriptAsync(int browserId, long frameId, string script, TimeSpan? timeout) - { - var factory = RenderThreadTaskFactory; - var browser = browsers.FirstOrDefault(x => x.BrowserId == browserId); - if (browser == null) - { - return TaskExtensions.FromResult(new JavascriptResponse - { - Success = false, - Message = string.Format("Browser with Id {0} not found in Render Sub Process.", browserId) - }); - } - - var task = factory.StartNew(() => - { - try - { - var response = browser.DoEvaluateScript(frameId, script); - - return response; - } - catch (Exception ex) - { - return new JavascriptResponse - { - Success = false, - Message = ex.ToString() - }; - } - }, TaskCreationOptions.AttachedToParent); - - return timeout.HasValue ? task.WithTimeout(timeout.Value) : task; - } - - public IAsyncResult BeginEvaluateScriptAsync(int browserId, long frameId, string script, TimeSpan? timeout, AsyncCallback callback, object state) - { - var tcs = new TaskCompletionSource(state); - var task = EvaluateScriptAsync(browserId, frameId, script, timeout); - task.ContinueWith(t => - { - if (t.IsFaulted) - { - tcs.TrySetException(t.Exception.InnerExceptions); - } - else if (t.IsCanceled) - { - tcs.TrySetCanceled(); - } - else - { - tcs.TrySetResult(t.Result); - } - - if (callback != null) - { - callback(tcs.Task); - } - }); - return tcs.Task; - } - - public JavascriptResponse EndEvaluateScriptAsync(IAsyncResult result) - { - return ((Task)result).Result; - } - public IAsyncResult BeginJavascriptCallbackAsync(int browserId, long callbackId, object[] parameters, TimeSpan? timeout, AsyncCallback callback, object state) { var tcs = new TaskCompletionSource(state); diff --git a/CefSharp/Internals/BrowserProcessServiceHost.cs b/CefSharp/Internals/BrowserProcessServiceHost.cs index 9748fcc904..0e458760a8 100644 --- a/CefSharp/Internals/BrowserProcessServiceHost.cs +++ b/CefSharp/Internals/BrowserProcessServiceHost.cs @@ -51,20 +51,6 @@ public void SetOperationContext(OperationContext operationContext) operationContextTaskCompletionSource.SetResult(operationContext); } - public Task EvaluateScriptAsync(int browserId, long frameId, string script, TimeSpan? timeout) - { - var operationContextTask = operationContextTaskCompletionSource.Task; - // Use TaskScheduler.Default to ensure that the work occurs - // on a background thread. - return operationContextTask.ContinueWith(t => - { - var context = t.Result; - var renderProcess = context.GetCallbackChannel(); - var asyncResult = renderProcess.BeginEvaluateScriptAsync(browserId, frameId, script, timeout, null, null); - return Task.Factory.FromAsync(asyncResult, renderProcess.EndEvaluateScriptAsync); - }, TaskScheduler.Default).Unwrap(); - } - protected override void OnClose(TimeSpan timeout) { var task = operationContextTaskCompletionSource.Task; diff --git a/CefSharp/Internals/IRenderProcess.cs b/CefSharp/Internals/IRenderProcess.cs index 8b2c70a683..4b232314f9 100644 --- a/CefSharp/Internals/IRenderProcess.cs +++ b/CefSharp/Internals/IRenderProcess.cs @@ -11,11 +11,6 @@ namespace CefSharp.Internals [ServiceContract] public interface IRenderProcess { - [OperationContract(AsyncPattern=true)] - IAsyncResult BeginEvaluateScriptAsync(int browserId, long frameId, string script, TimeSpan? timeout, AsyncCallback callback, object state); - - JavascriptResponse EndEvaluateScriptAsync(IAsyncResult result); - [OperationContract(AsyncPattern = true)] IAsyncResult BeginJavascriptCallbackAsync(int browserId, long callbackId, object[] parameters, TimeSpan? timeout, AsyncCallback callback, object state); diff --git a/CefSharp/Internals/JavascriptCallbackEndpointBehavior.cs b/CefSharp/Internals/JavascriptCallbackEndpointBehavior.cs index ad4a8be12f..36a50624c2 100644 --- a/CefSharp/Internals/JavascriptCallbackEndpointBehavior.cs +++ b/CefSharp/Internals/JavascriptCallbackEndpointBehavior.cs @@ -16,7 +16,6 @@ internal sealed class JavascriptCallbackEndpointBehavior : IEndpointBehavior private static readonly List Methods = new List { ReflectionUtils.GetMethodName(p => p.CallMethod(0, null, null)), - ReflectionUtils.GetMethodName(p => p.BeginEvaluateScriptAsync(0, 0, null, null, null, null)).Substring(5), ReflectionUtils.GetMethodName(p => p.BeginJavascriptCallbackAsync(0, 0, null, null, null, null)).Substring(5), };