SIGN IN SIGN UP
cefsharp / CefSharp UNCLAIMED

.NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework

0 0 0 C#
// Copyright © 2015 The CefSharp Authors. All rights reserved.
2015-07-14 10:59:10 +02:00
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#pragma once
#include "include/cef_v8.h"
#include "JavascriptCallbackRegistry.h"
#include "JavascriptAsyncMethodCallback.h"
2015-07-14 10:59:10 +02:00
namespace CefSharp
{
namespace BrowserSubprocess
2015-07-14 10:59:10 +02:00
{
namespace Async
{
2015-08-03 10:37:09 +10:00
private class JavascriptAsyncMethodHandler : public virtual CefV8Handler
2015-07-14 10:59:10 +02:00
{
private:
gcroot<JavascriptCallbackRegistry^> _callbackRegistry;
gcroot<Func<JavascriptAsyncMethodCallback^, int64_t>^> _methodCallbackSave;
int64_t _objectId;
2015-07-14 10:59:10 +02:00
public:
JavascriptAsyncMethodHandler(int64_t objectId, JavascriptCallbackRegistry^ callbackRegistry, Func<JavascriptAsyncMethodCallback^, int64_t>^ methodCallbackSave)
:_callbackRegistry(callbackRegistry), _objectId(objectId), _methodCallbackSave(methodCallbackSave)
2015-07-14 10:59:10 +02:00
{
}
virtual bool Execute(const CefString& name, CefRefPtr<CefV8Value> object, const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval, CefString& exception);
2015-07-31 12:38:12 +02:00
~JavascriptAsyncMethodHandler()
{
// The callback registry is a shared instance among all method handlers (async & sync).
// It's lifecycle is managed in the JavascriptRootObjectWrapper.
2015-07-31 12:38:12 +02:00
_callbackRegistry = nullptr;
_methodCallbackSave = nullptr;
}
2021-09-03 10:51:18 +10:00
IMPLEMENT_REFCOUNTINGM(JavascriptAsyncMethodHandler);
2015-07-14 10:59:10 +02:00
};
}
}
}