I observe very strange behavior:
- Code: Select all
class my_callback_Cpp___ : public CefV8Handler
{
public:
bool Execute(const CefString& name, CefRefPtr<CefV8Value> object, const CefV8ValueList& arguments, CefRefPtr<CefV8Value>& retval, CefString& exception) override
{
std::string my_string_data; //inside my data
if ((*object).IsString() == true)
{
my_string_data= (*my_CefV8Value).GetStringValue();
}
std::cout<<"my_string_data:" << my_string_data<<std::endl;
std::cout<<"my_string_data_SIZE:" << my_string_data<<std::endl;
CefRefPtr<CefProcessMessage> msg = CefProcessMessage::Create(*my_string_data);
browser_->GetMainFrame()->SendProcessMessage(PID_BROWSER, msg);
}
}
the following @my_string_data@ is output to the console:
- Code: Select all
my_string_data: 29744672 999 0 noneю RIFFпї?пї? WE
my_string_data_SIZE: 50
Next I get my_string_data in OnProcessMessageReceived in Browser procces:
- Code: Select all
bool OnProcessMessageReceived(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefProcessId source_process, CefRefPtr<CefProcessMessage> message) override
{
std::string CefProcessMessage_message_name;
CefProcessMessage_message_name_temp = message->GetName();
std::cout << "CefProcessMessage_message_name:"<< CefProcessMessage_message_name <<std::endl;
std::cout << "CefProcessMessage_message_name_SIZE:" << CefProcessMessage_message_name.size() << std::endl;
}
- Code: Select all
CefProcessMessage_message_name: 29308512 999 0 noneпї? RIFFпї?пї? WE
CefProcessMessage_message_name_SIZE: 52
That is, during the transfer of the string - 2 bytes were added ??
- Code: Select all
29744672 999 0 noneю RIFFпї?пї? WE
29308512 999 0 noneпї? RIFFпї?пї? WE
Or am I misunderstanding something?