#include "libcef_dll/cpptoc/dev_tools_message_observer_cpptoc.h"
#include "libcef_dll/ctocpp/browser_ctocpp.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
int CEF_CALLBACK dev_tools_message_observer_on_dev_tools_message(
struct _cef_dev_tools_message_observer_t* self,
cef_browser_t* browser,
const void* message,
size_t message_size) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
DCHECK(browser);
if (!browser)
return 0;
DCHECK(message);
if (!message)
return 0;
bool _retval = CefDevToolsMessageObserverCppToC::Get(self)->OnDevToolsMessage(
CefBrowserCToCpp::Wrap(browser), message, message_size);
return _retval;
}
void CEF_CALLBACK dev_tools_message_observer_on_dev_tools_method_result(
struct _cef_dev_tools_message_observer_t* self,
cef_browser_t* browser,
int message_id,
int success,
const void* result,
size_t result_size) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return;
DCHECK(browser);
if (!browser)
return;
CefDevToolsMessageObserverCppToC::Get(self)->OnDevToolsMethodResult(
CefBrowserCToCpp::Wrap(browser), message_id, success ? true : false,
result, result_size);
}
void CEF_CALLBACK dev_tools_message_observer_on_dev_tools_event(
struct _cef_dev_tools_message_observer_t* self,
cef_browser_t* browser,
const cef_string_t* method,
const void* params,
size_t params_size) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return;
DCHECK(browser);
if (!browser)
return;
DCHECK(method);
if (!method)
return;
CefDevToolsMessageObserverCppToC::Get(self)->OnDevToolsEvent(
CefBrowserCToCpp::Wrap(browser), CefString(method), params, params_size);
}
void CEF_CALLBACK dev_tools_message_observer_on_dev_tools_agent_attached(
struct _cef_dev_tools_message_observer_t* self,
cef_browser_t* browser) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return;
DCHECK(browser);
if (!browser)
return;
CefDevToolsMessageObserverCppToC::Get(self)->OnDevToolsAgentAttached(
CefBrowserCToCpp::Wrap(browser));
}
void CEF_CALLBACK dev_tools_message_observer_on_dev_tools_agent_detached(
struct _cef_dev_tools_message_observer_t* self,
cef_browser_t* browser) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return;
DCHECK(browser);
if (!browser)
return;
CefDevToolsMessageObserverCppToC::Get(self)->OnDevToolsAgentDetached(
CefBrowserCToCpp::Wrap(browser));
}
}
CefDevToolsMessageObserverCppToC::CefDevToolsMessageObserverCppToC() {
GetStruct()->on_dev_tools_message =
dev_tools_message_observer_on_dev_tools_message;
GetStruct()->on_dev_tools_method_result =
dev_tools_message_observer_on_dev_tools_method_result;
GetStruct()->on_dev_tools_event =
dev_tools_message_observer_on_dev_tools_event;
GetStruct()->on_dev_tools_agent_attached =
dev_tools_message_observer_on_dev_tools_agent_attached;
GetStruct()->on_dev_tools_agent_detached =
dev_tools_message_observer_on_dev_tools_agent_detached;
}
CefDevToolsMessageObserverCppToC::~CefDevToolsMessageObserverCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefDevToolsMessageObserver>
CefCppToCRefCounted<CefDevToolsMessageObserverCppToC,
CefDevToolsMessageObserver,
cef_dev_tools_message_observer_t>::
UnwrapDerived(CefWrapperType type, cef_dev_tools_message_observer_t* s) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType
CefCppToCRefCounted<CefDevToolsMessageObserverCppToC,
CefDevToolsMessageObserver,
cef_dev_tools_message_observer_t>::kWrapperType =
WT_DEV_TOOLS_MESSAGE_OBSERVER;