I'm trying to follow this enter link description here:
CefRegisterSchemeHandlerFactory:
- Code: Select all
class my_CEF__application_callback_class : public CefApp, public CefBrowserProcessHandler, public CefRenderProcessHandler
{
void OnContextInitialized() override
{
CefRefPtr<MySchemeHandlerFactory>my_SchemeHandlerFactory_ptr;
my_SchemeHandlerFactory_ptr = new my_SchemeHandlerFactory_class();
CefRegisterSchemeHandlerFactory("http", "my_binary_app", my_SchemeHandlerFactory_ptr);
}
}
my_SchemeHandlerFactory_class:
- Code: Select all
class my_SchemeHandlerFactory_class: public CefSchemeHandlerFactory
{
public:
virtual CefRefPtr<CefResourceHandler> Create(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, const CefString& scheme_name, CefRefPtr<CefRequest> request) override
{
std::cout << "Create" << std::endl;
CefRefPtr<CefResourceHandler>my_CefResourceHandler_ptr;
my_CefResourceHandler_ptr = new my_ResourceHandler_class();
return my_CefResourceHandler_ptr;
}
IMPLEMENT_REFCOUNTING(MySchemeHandlerFactory);
};
my_ResourceHandler_class:
- Code: Select all
class my_ResourceHandler_class: public CefResourceHandler
{
public:
virtual bool Open(CefRefPtr<CefRequest> request, bool& handle_request, CefRefPtr<CefCallback> callback) override
{
std::cout << "Open" << std::endl;
handle_request = false;
return false;
}
virtual void GetResponseHeaders(CefRefPtr<CefResponse> response, int64& response_length, CefString& redirectUrl) override
{
std::cout << "GetResponseHeaders" << std::endl;
}
virtual bool Read(void* data_out, int bytes_to_read, int& bytes_read, CefRefPtr<CefResourceReadCallback> callback) override
{
std::cout << "Read" << std::endl;
return true;
}
private:
IMPLEMENT_REFCOUNTING(MyResourceHandler);
};
And from javascript I call the following code:
- Code: Select all
std::string my_JS_code =
"let URL = \"http://my_binary_app\";"
"let my_req = new XMLHttpRequest();"
"my_req.open(\"GET\", URL);"
"let my_let = \"Hello\";"
"my_req.send(my_let);";
(browser)->GetMainFrame()->ExecuteJavaScript(my_JS_code, "", 1);
And at the end - after executing the JS code - I expect to call the methods of the my_ResourceHandler_class class, but absolutely nothing happens.
I'm obviously doing something wrong, but I can't figure out what exactly I'm doing wrong.