private RenderCallInfo AddRemoteCallback(PluginMessage pluginMessage, IV8Callback callback)
        {
            var info = new RenderCallInfo(pluginMessage, callback);

            _pendingCallbacks.Add(info);
            return(info);
        }
 /// <summary>
 /// Called by <see cref="OnBrowserCallbackInvokeReceived(PluginMessage,ResultData)"/>
 /// to invoke a V8 callback.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="info"></param>
 /// <param name="result"></param>
 private void InvokeV8Callback(CefV8Context context, RenderCallInfo info, ResultData result)
 {
     try
     {
         if (context != null && info.Callback != null)
         {
             info.Callback.Invoke(this, context, result, result.ErrorCode, result.Error);
         }
         if (!info.IsRetained)
         {
             info.Dispose();
         }
     }
     catch (Exception exception)
     {
         Logger.Error("InvokeV8Callback Failed: {0}", exception);
     }
 }