2fad53e66b
* refactor: use v8 serialization for ipc * cloning process.env doesn't work * serialize host objects by enumerating key/values * new serialization can handle NaN, Infinity, and undefined correctly * can't allocate v8 objects during GC * backport microtasks fix * fix compile * fix node_stream_loader reentrancy * update subframe spec to expect undefined instead of null * write undefined instead of crashing when serializing host objects * fix webview spec * fix download spec * buffers are transformed into uint8arrays * can't serialize promises * fix chrome.i18n.getMessage * fix devtools tests * fix zoom test * fix debug build * fix lint * update ipcRenderer tests * fix printToPDF test * update patch * remove accidentally re-added remote-side spec * wip * don't attempt to serialize host objects * jump through different hoops to set options.webContents sometimes * whoops * fix lint * clean up error-handling logic * fix memory leak * fix lint * convert host objects using old base::Value serialization * fix lint more * fall back to base::Value-based serialization * remove commented-out code * add docs to breaking-changes.md * Update breaking-changes.md * update ipcRenderer and WebContents docs * lint * use named values for format tag * save a memcpy for ~30% speedup * get rid of calls to ShallowClone * extra debugging for paranoia * d'oh, use the correct named tags * apparently msstl doesn't like this DCHECK * funny story about that DCHECK * disable remote-related functions when enable_remote_module = false * nits * use EnableIf to disable remote methods in mojom * fix include * review comments
95 lines
2.8 KiB
Text
95 lines
2.8 KiB
Text
module electron.mojom;
|
|
|
|
import "mojo/public/mojom/base/string16.mojom";
|
|
import "ui/gfx/geometry/mojom/geometry.mojom";
|
|
import "third_party/blink/public/mojom/messaging/cloneable_message.mojom";
|
|
|
|
interface ElectronRenderer {
|
|
Message(
|
|
bool internal,
|
|
bool send_to_all,
|
|
string channel,
|
|
blink.mojom.CloneableMessage arguments,
|
|
int32 sender_id);
|
|
|
|
UpdateCrashpadPipeName(string pipe_name);
|
|
|
|
// This is an API specific to the "remote" module, and will ultimately be
|
|
// replaced by generic IPC once WeakRef is generally available.
|
|
[EnableIf=enable_remote_module]
|
|
DereferenceRemoteJSCallback(
|
|
string context_id,
|
|
int32 object_id);
|
|
|
|
TakeHeapSnapshot(handle file) => (bool success);
|
|
};
|
|
|
|
interface ElectronAutofillAgent {
|
|
AcceptDataListSuggestion(mojo_base.mojom.String16 value);
|
|
};
|
|
|
|
interface ElectronAutofillDriver {
|
|
ShowAutofillPopup(gfx.mojom.RectF bounds, array<mojo_base.mojom.String16> values, array<mojo_base.mojom.String16> labels);
|
|
HideAutofillPopup();
|
|
};
|
|
|
|
struct DraggableRegion {
|
|
bool draggable;
|
|
gfx.mojom.Rect bounds;
|
|
};
|
|
|
|
interface ElectronBrowser {
|
|
// Emits an event on |channel| from the ipcMain JavaScript object in the main
|
|
// process.
|
|
Message(
|
|
bool internal,
|
|
string channel,
|
|
blink.mojom.CloneableMessage arguments);
|
|
|
|
// Emits an event on |channel| from the ipcMain JavaScript object in the main
|
|
// process, and returns the response.
|
|
Invoke(
|
|
bool internal,
|
|
string channel,
|
|
blink.mojom.CloneableMessage arguments) => (blink.mojom.CloneableMessage result);
|
|
|
|
// Emits an event on |channel| from the ipcMain JavaScript object in the main
|
|
// process, and waits synchronously for a response.
|
|
//
|
|
// NB. this is not marked [Sync] because mojo synchronous methods can be
|
|
// reordered with respect to asynchronous methods on the same channel.
|
|
// Instead, callers can manually block on the response to this method.
|
|
MessageSync(
|
|
bool internal,
|
|
string channel,
|
|
blink.mojom.CloneableMessage arguments) => (blink.mojom.CloneableMessage result);
|
|
|
|
// Emits an event from the |ipcRenderer| JavaScript object in the target
|
|
// WebContents's main frame, specified by |web_contents_id|.
|
|
MessageTo(
|
|
bool internal,
|
|
bool send_to_all,
|
|
int32 web_contents_id,
|
|
string channel,
|
|
blink.mojom.CloneableMessage arguments);
|
|
|
|
MessageHost(
|
|
string channel,
|
|
blink.mojom.CloneableMessage arguments);
|
|
|
|
// This is an API specific to the "remote" module, and will ultimately be
|
|
// replaced by generic IPC once WeakRef is generally available.
|
|
[EnableIf=enable_remote_module]
|
|
DereferenceRemoteJSObject(
|
|
string context_id,
|
|
int32 object_id,
|
|
int32 ref_count);
|
|
|
|
UpdateDraggableRegions(
|
|
array<DraggableRegion> regions);
|
|
|
|
SetTemporaryZoomLevel(double zoom_level);
|
|
|
|
[Sync]
|
|
DoGetZoomLevel() => (double result);
|
|
};
|