CefFrame::GetIdentifier differs between browser and render processes

Issue #2687 resolved
Alex Maitland created an issue

What steps will reproduce the problem?

  • Load a web page that has a single frame
  • Call SendProcessMessage from CefRenderProcessHandler::OnContextCreated with args containing the frame identifier
  • In CefClient::OnProcessMessageReceived compare CefFrame::GetIdentifier to the Identifier in the CefProcessMessage args

What is the expected output? What do you see instead?

Frame Identifier to be the same across processes

What version of the product are you using? On what operating system?

Tested with 75.0.6+g90ecd35+chromium-75.0.3770.80 on Windows 10

Does the problem reproduce with the cefclient or cefsimple sample application at the same version? How about with a newer or older version?

Can be reproduced using cefclient

Disabling network service makes no difference

Forum discussion at https://magpcss.org/ceforum/viewtopic.php?f=6&t=16830

Comments (3)

  1. Denis Yarkovoy

    It looks like the frame ID in the renderer process is calculated in \cef\libcef\renderer\render_frame_util.cc and is based on render_frame->GetRenderView()->GetRoutingID(), which is supposed to be the same as the renderer process ID, but aparently it is not. Maybe just replace it with RenderThreadImpl::current()->GetClientId() ?

  2. Log in to comment