feat: add senderIsMainFrame to messages sent via ipcRenderer.sendTo() (#38868)

* feat: add isMainFrame to events emitted via ipcRenderer.sendTo()

* chore: rename isMainFrame to senderIsMainFrame
This commit is contained in:
Milan Burda 2023-07-24 14:27:30 +02:00 committed by GitHub
parent 09e6e4b9a7
commit 3df6d337f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 71 additions and 21 deletions

View file

@ -2031,7 +2031,8 @@ void WebContents::MessageSync(
void WebContents::MessageTo(int32_t web_contents_id,
const std::string& channel,
blink::CloneableMessage arguments) {
blink::CloneableMessage arguments,
content::RenderFrameHost* render_frame_host) {
TRACE_EVENT1("electron", "WebContents::MessageTo", "channel", channel);
auto* target_web_contents = FromID(web_contents_id);
@ -2047,8 +2048,10 @@ void WebContents::MessageTo(int32_t web_contents_id,
return;
int32_t sender_id = ID();
bool sender_is_main_frame = render_frame_host->GetParent() == nullptr;
web_frame_main->GetRendererApi()->Message(false /* internal */, channel,
std::move(arguments), sender_id);
std::move(arguments), sender_id,
sender_is_main_frame);
}
}

View file

@ -431,7 +431,8 @@ class WebContents : public ExclusiveAccessContext,
content::RenderFrameHost* render_frame_host);
void MessageTo(int32_t web_contents_id,
const std::string& channel,
blink::CloneableMessage arguments);
blink::CloneableMessage arguments,
content::RenderFrameHost* render_frame_host);
void MessageHost(const std::string& channel,
blink::CloneableMessage arguments,
content::RenderFrameHost* render_frame_host);

View file

@ -185,7 +185,8 @@ void WebFrameMain::Send(v8::Isolate* isolate,
return;
GetRendererApi()->Message(internal, channel, std::move(message),
0 /* sender_id */);
0 /* sender_id */,
false /* sender_is_main_frame */);
}
const mojo::Remote<mojom::ElectronRenderer>& WebFrameMain::GetRendererApi() {