refactor: replace ipcRendererUtils.invoke() with ipcRendererInternal.invoke() (#19574)

This commit is contained in:
Milan Burda 2019-08-24 00:45:50 +02:00 committed by Jeremy Apthorp
parent 698120daf0
commit 81e9dab52f
29 changed files with 195 additions and 164 deletions

View file

@ -976,12 +976,13 @@ void WebContents::Message(bool internal,
internal, channel, std::move(arguments));
}
void WebContents::Invoke(const std::string& channel,
void WebContents::Invoke(bool internal,
const std::string& channel,
base::Value arguments,
InvokeCallback callback) {
// webContents.emit('-ipc-invoke', new Event(), channel, arguments);
// webContents.emit('-ipc-invoke', new Event(), internal, channel, arguments);
EmitWithSender("-ipc-invoke", bindings_.dispatch_context(),
std::move(callback), channel, std::move(arguments));
std::move(callback), internal, channel, std::move(arguments));
}
void WebContents::MessageSync(bool internal,

View file

@ -491,7 +491,8 @@ class WebContents : public mate::TrackableObject<WebContents>,
void Message(bool internal,
const std::string& channel,
base::Value arguments) override;
void Invoke(const std::string& channel,
void Invoke(bool internal,
const std::string& channel,
base::Value arguments,
InvokeCallback callback) override;
void MessageSync(bool internal,

View file

@ -42,6 +42,7 @@ interface ElectronBrowser {
// Emits an event on |channel| from the ipcMain JavaScript object in the main
// process, and returns the response.
Invoke(
bool internal,
string channel,
mojo_base.mojom.ListValue arguments) => (mojo_base.mojom.Value result);

View file

@ -73,13 +73,14 @@ class IPCRenderer : public mate::Wrappable<IPCRenderer> {
}
v8::Local<v8::Promise> Invoke(mate::Arguments* args,
bool internal,
const std::string& channel,
const base::Value& arguments) {
electron::util::Promise<base::Value> p(args->isolate());
auto handle = p.GetHandle();
electron_browser_ptr_->get()->Invoke(
channel, arguments.Clone(),
internal, channel, arguments.Clone(),
base::BindOnce([](electron::util::Promise<base::Value> p,
base::Value result) { p.Resolve(result); },
std::move(p)));