@nativedesktop/react 0.4.40 → 0.4.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -595,7 +595,7 @@ var widgetEvents = {
|
|
|
595
595
|
tabview: [{ name: "selectionChanged", handler: "onSelectionChanged", payload: "index" }, { name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
596
596
|
grid: [{ name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
597
597
|
listview: [{ name: "rowActivated", handler: "onRowActivated", payload: "index" }, { name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
598
|
-
webview: [{ name: "navigate", handler: "onNavigate", payload: "text" }, { name: "titleChanged", handler: "onTitleChanged", payload: "text" }, { name: "loadingChanged", handler: "onLoadingChanged", payload: "checked" }, { name: "backAvailable", handler: "onBackAvailable", payload: "checked" }, { name: "forwardAvailable", handler: "onForwardAvailable", payload: "checked" }, { name: "loadProgress", handler: "onLoadProgress", payload: "value" }, { name: "loadFailed", handler: "onLoadFailed", payload: "data" }, { name: "newWindow", handler: "onNewWindow", payload: "text" }, { name: "browserCommand", handler: "onBrowserCommand", payload: "text" }, { name: "downloadRequested", handler: "onDownloadRequested", payload: "data" }, { name: "downloadUpdated", handler: "onDownloadUpdated", payload: "data" }, { name: "javaScriptResult", handler: "onJavaScriptResult", payload: "data" }, { name: "scriptMessage", handler: "onScriptMessage", payload: "data" }, { name: "schemeRequest", handler: "onSchemeRequest", payload: "data" }, { name: "cookiesResult", handler: "onCookiesResult", payload: "data" }, { name: "cookiesChanged", handler: "onCookiesChanged", payload: "data" }, { name: "faviconChanged", handler: "onFaviconChanged", payload: "data" }, { name: "findResult", handler: "onFindResult", payload: "data" }, { name: "securityChanged", handler: "onSecurityChanged", payload: "data" }, { name: "linkHover", handler: "onLinkHover", payload: "text" }, { name: "contextMenu", handler: "onContextMenu", payload: "data" }, { name: "contextMenuItemClicked", handler: "onContextMenuItemClicked", payload: "data" }, { name: "sessionSaved", handler: "onSessionSaved", payload: "data" }, { name: "audioStateChanged", handler: "onAudioStateChanged", payload: "data" }, { name: "extensionsList", handler: "onExtensionsList", payload: "data" }, { name: "extensionActions", handler: "onExtensionActions", payload: "data" }, { name: "extensionsChanged", handler: "onExtensionsChanged", payload: "data" }, { name: "chromeDialog", handler: "onChromeDialog", payload: "data" }, { name: "permissionRequest", handler: "onPermissionRequest", payload: "data" }, { name: "permissionRequestDismissed", handler: "onPermissionRequestDismissed", payload: "data" }, { name: "zoomChanged", handler: "onZoomChanged", payload: "data" }, { name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
598
|
+
webview: [{ name: "navigate", handler: "onNavigate", payload: "text" }, { name: "titleChanged", handler: "onTitleChanged", payload: "text" }, { name: "loadingChanged", handler: "onLoadingChanged", payload: "checked" }, { name: "focusChanged", handler: "onFocusChanged", payload: "checked" }, { name: "backAvailable", handler: "onBackAvailable", payload: "checked" }, { name: "forwardAvailable", handler: "onForwardAvailable", payload: "checked" }, { name: "loadProgress", handler: "onLoadProgress", payload: "value" }, { name: "loadFailed", handler: "onLoadFailed", payload: "data" }, { name: "newWindow", handler: "onNewWindow", payload: "text" }, { name: "browserCommand", handler: "onBrowserCommand", payload: "text" }, { name: "downloadRequested", handler: "onDownloadRequested", payload: "data" }, { name: "downloadUpdated", handler: "onDownloadUpdated", payload: "data" }, { name: "javaScriptResult", handler: "onJavaScriptResult", payload: "data" }, { name: "scriptMessage", handler: "onScriptMessage", payload: "data" }, { name: "schemeRequest", handler: "onSchemeRequest", payload: "data" }, { name: "cookiesResult", handler: "onCookiesResult", payload: "data" }, { name: "cookiesChanged", handler: "onCookiesChanged", payload: "data" }, { name: "faviconChanged", handler: "onFaviconChanged", payload: "data" }, { name: "findResult", handler: "onFindResult", payload: "data" }, { name: "securityChanged", handler: "onSecurityChanged", payload: "data" }, { name: "linkHover", handler: "onLinkHover", payload: "text" }, { name: "contextMenu", handler: "onContextMenu", payload: "data" }, { name: "contextMenuItemClicked", handler: "onContextMenuItemClicked", payload: "data" }, { name: "sessionSaved", handler: "onSessionSaved", payload: "data" }, { name: "audioStateChanged", handler: "onAudioStateChanged", payload: "data" }, { name: "extensionsList", handler: "onExtensionsList", payload: "data" }, { name: "extensionActions", handler: "onExtensionActions", payload: "data" }, { name: "extensionsChanged", handler: "onExtensionsChanged", payload: "data" }, { name: "chromeDialog", handler: "onChromeDialog", payload: "data" }, { name: "permissionRequest", handler: "onPermissionRequest", payload: "data" }, { name: "permissionRequestDismissed", handler: "onPermissionRequestDismissed", payload: "data" }, { name: "zoomChanged", handler: "onZoomChanged", payload: "data" }, { name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
599
599
|
nativeview: [{ name: "nativeEvent", handler: "onNativeEvent", payload: "data" }, { name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
600
600
|
splitview: [{ name: "revealChanged", handler: "onRevealChanged", payload: "checked" }, { name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
601
601
|
headerbar: [{ name: "back", handler: "onBack", payload: "none" }, { name: "forward", handler: "onForward", payload: "none" }, { name: "dragStarted", handler: "onDragStarted", payload: "text" }, { name: "dragEnded", handler: "onDragEnded", payload: "none" }, { name: "dragOver", handler: "onDragOver", payload: "dragPoint" }, { name: "dropped", handler: "onDropped", payload: "dragPoint" }],
|
|
@@ -672,7 +672,7 @@ var handlerPropNames = {
|
|
|
672
672
|
tabview: ["onSelectionChanged", "onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
673
673
|
grid: ["onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
674
674
|
listview: ["onRowActivated", "onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
675
|
-
webview: ["onNavigate", "onTitleChanged", "onLoadingChanged", "onBackAvailable", "onForwardAvailable", "onLoadProgress", "onLoadFailed", "onNewWindow", "onBrowserCommand", "onDownloadRequested", "onDownloadUpdated", "onJavaScriptResult", "onScriptMessage", "onSchemeRequest", "onCookiesResult", "onCookiesChanged", "onFaviconChanged", "onFindResult", "onSecurityChanged", "onLinkHover", "onContextMenu", "onContextMenuItemClicked", "onSessionSaved", "onAudioStateChanged", "onExtensionsList", "onExtensionActions", "onExtensionsChanged", "onChromeDialog", "onPermissionRequest", "onPermissionRequestDismissed", "onZoomChanged", "onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
675
|
+
webview: ["onNavigate", "onTitleChanged", "onLoadingChanged", "onFocusChanged", "onBackAvailable", "onForwardAvailable", "onLoadProgress", "onLoadFailed", "onNewWindow", "onBrowserCommand", "onDownloadRequested", "onDownloadUpdated", "onJavaScriptResult", "onScriptMessage", "onSchemeRequest", "onCookiesResult", "onCookiesChanged", "onFaviconChanged", "onFindResult", "onSecurityChanged", "onLinkHover", "onContextMenu", "onContextMenuItemClicked", "onSessionSaved", "onAudioStateChanged", "onExtensionsList", "onExtensionActions", "onExtensionsChanged", "onChromeDialog", "onPermissionRequest", "onPermissionRequestDismissed", "onZoomChanged", "onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
676
676
|
nativeview: ["onNativeEvent", "onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
677
677
|
splitview: ["onRevealChanged", "onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
678
678
|
headerbar: ["onBack", "onForward", "onDragStarted", "onDragEnded", "onDragOver", "onDropped"],
|
|
@@ -909,6 +909,10 @@ class Batch {
|
|
|
909
909
|
return this.ops.length;
|
|
910
910
|
}
|
|
911
911
|
}
|
|
912
|
+
var removalListeners = new Set;
|
|
913
|
+
function onNodeRemoved(listener) {
|
|
914
|
+
removalListeners.add(listener);
|
|
915
|
+
}
|
|
912
916
|
|
|
913
917
|
class NodeRegistry {
|
|
914
918
|
byId = new Map;
|
|
@@ -919,7 +923,10 @@ class NodeRegistry {
|
|
|
919
923
|
return this.byId.get(id);
|
|
920
924
|
}
|
|
921
925
|
unregister(id) {
|
|
922
|
-
this.byId.delete(id)
|
|
926
|
+
if (!this.byId.delete(id))
|
|
927
|
+
return;
|
|
928
|
+
for (const listener of removalListeners)
|
|
929
|
+
listener(id);
|
|
923
930
|
}
|
|
924
931
|
}
|
|
925
932
|
|
|
@@ -1400,7 +1407,9 @@ var hostConfig = {
|
|
|
1400
1407
|
hideTextInstance() {},
|
|
1401
1408
|
unhideTextInstance() {},
|
|
1402
1409
|
getPublicInstance: (i) => i,
|
|
1403
|
-
detachDeletedInstance() {
|
|
1410
|
+
detachDeletedInstance(inst) {
|
|
1411
|
+
registry.unregister(inst.id);
|
|
1412
|
+
},
|
|
1404
1413
|
maySuspendCommit: () => false,
|
|
1405
1414
|
preloadInstance: () => true,
|
|
1406
1415
|
startSuspendingCommit() {},
|
|
@@ -1445,6 +1454,13 @@ function dispatchSystemEvent(channel, data) {
|
|
|
1445
1454
|
globalThis.__nd_app_active = true;
|
|
1446
1455
|
else if (channel === "app.deactivate")
|
|
1447
1456
|
globalThis.__nd_app_active = false;
|
|
1457
|
+
else if (channel === "webview.engine") {
|
|
1458
|
+
const d = data;
|
|
1459
|
+
globalThis.__nd_webview_engine = {
|
|
1460
|
+
engine: d?.engine === "chromium" ? "chromium" : "system",
|
|
1461
|
+
style: d?.style === "chrome" || d?.style === "alloy" ? d.style : null
|
|
1462
|
+
};
|
|
1463
|
+
}
|
|
1448
1464
|
for (const handler of registry2().get(channel) ?? [])
|
|
1449
1465
|
handler(data);
|
|
1450
1466
|
if (channel === "notification.click") {
|
|
@@ -1553,6 +1569,12 @@ var system = {
|
|
|
1553
1569
|
}
|
|
1554
1570
|
};
|
|
1555
1571
|
var webviewEngine = {
|
|
1572
|
+
active() {
|
|
1573
|
+
return globalThis.__nd_webview_engine?.engine ?? "system";
|
|
1574
|
+
},
|
|
1575
|
+
cefStyle() {
|
|
1576
|
+
return globalThis.__nd_webview_engine?.style ?? null;
|
|
1577
|
+
},
|
|
1556
1578
|
async registerScheme(scheme, options = {}) {
|
|
1557
1579
|
await call("webviewEngine.registerScheme", {
|
|
1558
1580
|
scheme,
|
|
@@ -1951,13 +1973,56 @@ var seq2 = 0;
|
|
|
1951
1973
|
function nextId(prefix) {
|
|
1952
1974
|
return `${prefix}${++seq2}`;
|
|
1953
1975
|
}
|
|
1954
|
-
|
|
1955
|
-
|
|
1976
|
+
var inFlight = new Map;
|
|
1977
|
+
onNodeRemoved((nodeId) => {
|
|
1978
|
+
const calls = inFlight.get(nodeId);
|
|
1979
|
+
if (!calls)
|
|
1980
|
+
return;
|
|
1981
|
+
inFlight.delete(nodeId);
|
|
1982
|
+
for (const [id, reject2] of calls)
|
|
1983
|
+
reject2(new Error(`the <webview> was removed before request ${id} was answered`));
|
|
1984
|
+
});
|
|
1985
|
+
function request(node, pending, prefix, command, args) {
|
|
1986
|
+
const id = nextId(prefix);
|
|
1956
1987
|
return new Promise((resolve2, reject2) => {
|
|
1957
|
-
|
|
1958
|
-
|
|
1988
|
+
if (!registry.get(node.id)) {
|
|
1989
|
+
reject2(new Error(`${command}: the <webview> is no longer mounted`));
|
|
1990
|
+
return;
|
|
1991
|
+
}
|
|
1992
|
+
let calls = inFlight.get(node.id);
|
|
1993
|
+
if (!calls)
|
|
1994
|
+
inFlight.set(node.id, calls = new Map);
|
|
1995
|
+
const forget = () => {
|
|
1996
|
+
pending.delete(id);
|
|
1997
|
+
calls.delete(id);
|
|
1998
|
+
if (calls.size === 0 && inFlight.get(node.id) === calls)
|
|
1999
|
+
inFlight.delete(node.id);
|
|
2000
|
+
};
|
|
2001
|
+
pending.set(id, {
|
|
2002
|
+
resolve: (value) => {
|
|
2003
|
+
forget();
|
|
2004
|
+
resolve2(value);
|
|
2005
|
+
},
|
|
2006
|
+
reject: (reason) => {
|
|
2007
|
+
forget();
|
|
2008
|
+
reject2(reason);
|
|
2009
|
+
}
|
|
2010
|
+
});
|
|
2011
|
+
calls.set(id, (reason) => {
|
|
2012
|
+
forget();
|
|
2013
|
+
reject2(reason);
|
|
2014
|
+
});
|
|
2015
|
+
try {
|
|
2016
|
+
sendCommand(node, command, { id, ...args });
|
|
2017
|
+
} catch (error) {
|
|
2018
|
+
forget();
|
|
2019
|
+
reject2(error);
|
|
2020
|
+
}
|
|
1959
2021
|
});
|
|
1960
2022
|
}
|
|
2023
|
+
function executeJavaScript(node, code, world) {
|
|
2024
|
+
return request(node, pendingEvals, "js", "executeJavaScript", world ? { code, world } : { code });
|
|
2025
|
+
}
|
|
1961
2026
|
function onJavaScriptResult(e) {
|
|
1962
2027
|
const result = e.data;
|
|
1963
2028
|
const call2 = pendingEvals.get(result.id);
|
|
@@ -1970,11 +2035,7 @@ function onJavaScriptResult(e) {
|
|
|
1970
2035
|
call2.reject(new Error(result.error ?? "executeJavaScript failed"));
|
|
1971
2036
|
}
|
|
1972
2037
|
function getCookies(node, url) {
|
|
1973
|
-
|
|
1974
|
-
return new Promise((resolve2, reject2) => {
|
|
1975
|
-
pendingCookies.set(id, { resolve: resolve2, reject: reject2 });
|
|
1976
|
-
sendCommand(node, "getCookies", url ? { id, url } : { id });
|
|
1977
|
-
});
|
|
2038
|
+
return request(node, pendingCookies, "ck", "getCookies", url ? { url } : {});
|
|
1978
2039
|
}
|
|
1979
2040
|
function onCookiesResult(e) {
|
|
1980
2041
|
const result = e.data;
|
|
@@ -1988,11 +2049,7 @@ function onCookiesResult(e) {
|
|
|
1988
2049
|
call2.reject(new Error(result.error ?? "getCookies failed"));
|
|
1989
2050
|
}
|
|
1990
2051
|
function saveSession(node) {
|
|
1991
|
-
|
|
1992
|
-
return new Promise((resolve2, reject2) => {
|
|
1993
|
-
pendingSessions.set(id, { resolve: resolve2, reject: reject2 });
|
|
1994
|
-
sendCommand(node, "saveSession", { id });
|
|
1995
|
-
});
|
|
2052
|
+
return request(node, pendingSessions, "ss", "saveSession", {});
|
|
1996
2053
|
}
|
|
1997
2054
|
function onSessionSaved(e) {
|
|
1998
2055
|
const result = e.data;
|
|
@@ -2003,11 +2060,7 @@ function onSessionSaved(e) {
|
|
|
2003
2060
|
call2.resolve(result.state ?? "");
|
|
2004
2061
|
}
|
|
2005
2062
|
function listExtensions(node) {
|
|
2006
|
-
|
|
2007
|
-
return new Promise((resolve2, reject2) => {
|
|
2008
|
-
pendingExtensions.set(id, { resolve: resolve2, reject: reject2 });
|
|
2009
|
-
sendCommand(node, "listExtensions", { id });
|
|
2010
|
-
});
|
|
2063
|
+
return request(node, pendingExtensions, "ext", "listExtensions", {});
|
|
2011
2064
|
}
|
|
2012
2065
|
function onExtensionsList(e) {
|
|
2013
2066
|
const result = e.data;
|
|
@@ -2030,20 +2083,12 @@ function setExtensionEnabled(node, extensionId, enabled) {
|
|
|
2030
2083
|
return extensionMutation(node, "setExtensionEnabled", { extensionId, enabled });
|
|
2031
2084
|
}
|
|
2032
2085
|
function extensionMutation(node, command, args) {
|
|
2033
|
-
|
|
2034
|
-
return new Promise((resolve2, reject2) => {
|
|
2035
|
-
pendingExtensions.set(id, { resolve: resolve2, reject: reject2 });
|
|
2036
|
-
sendCommand(node, command, { id, ...args });
|
|
2037
|
-
});
|
|
2086
|
+
return request(node, pendingExtensions, "ext", command, args);
|
|
2038
2087
|
}
|
|
2039
2088
|
var extensionsWatchers = [];
|
|
2040
2089
|
function watchExtensions(node, listener) {
|
|
2041
|
-
|
|
2042
|
-
return
|
|
2043
|
-
pendingWatches.set(id, { resolve: resolve2, reject: reject2 });
|
|
2044
|
-
extensionsWatchers.push(listener);
|
|
2045
|
-
sendCommand(node, "watchExtensions", { id });
|
|
2046
|
-
});
|
|
2090
|
+
extensionsWatchers.push(listener);
|
|
2091
|
+
return request(node, pendingWatches, "ext", "watchExtensions", {});
|
|
2047
2092
|
}
|
|
2048
2093
|
function onExtensionsChanged(e) {
|
|
2049
2094
|
const result = e.data;
|
|
@@ -2062,18 +2107,10 @@ function onExtensionsChanged(e) {
|
|
|
2062
2107
|
listener({ reason: result.reason ?? "" });
|
|
2063
2108
|
}
|
|
2064
2109
|
function readExtensionAction(node) {
|
|
2065
|
-
|
|
2066
|
-
return new Promise((resolve2, reject2) => {
|
|
2067
|
-
pendingActionState.set(id, { resolve: resolve2, reject: reject2 });
|
|
2068
|
-
sendCommand(node, "readExtensionAction", { id });
|
|
2069
|
-
});
|
|
2110
|
+
return request(node, pendingActionState, "ext", "readExtensionAction", {});
|
|
2070
2111
|
}
|
|
2071
2112
|
function listExtensionActions(node) {
|
|
2072
|
-
|
|
2073
|
-
return new Promise((resolve2, reject2) => {
|
|
2074
|
-
pendingActions.set(id, { resolve: resolve2, reject: reject2 });
|
|
2075
|
-
sendCommand(node, "listExtensionActions", { id });
|
|
2076
|
-
});
|
|
2113
|
+
return request(node, pendingActions, "ext", "listExtensionActions", {});
|
|
2077
2114
|
}
|
|
2078
2115
|
function onExtensionActions(e) {
|
|
2079
2116
|
const result = e.data;
|
|
@@ -55,7 +55,7 @@ export declare const hostConfig: {
|
|
|
55
55
|
hideTextInstance(): void;
|
|
56
56
|
unhideTextInstance(): void;
|
|
57
57
|
getPublicInstance: (i: Instance) => Instance;
|
|
58
|
-
detachDeletedInstance(): void;
|
|
58
|
+
detachDeletedInstance(inst: Instance): void;
|
|
59
59
|
maySuspendCommit: () => boolean;
|
|
60
60
|
preloadInstance: () => boolean;
|
|
61
61
|
startSuspendingCommit(): void;
|
|
@@ -12,6 +12,7 @@ export interface NodeRecord {
|
|
|
12
12
|
props: Record<string, unknown>;
|
|
13
13
|
handlers: Record<string, Handler>;
|
|
14
14
|
}
|
|
15
|
+
export declare function onNodeRemoved(listener: (id: number) => void): void;
|
|
15
16
|
export declare class NodeRegistry {
|
|
16
17
|
private byId;
|
|
17
18
|
register(rec: NodeRecord): void;
|
|
@@ -3,6 +3,10 @@ declare global {
|
|
|
3
3
|
var __nd_system_events: Map<string, Set<SystemEventHandler>> | undefined;
|
|
4
4
|
var __nd_notification_data: Map<string, unknown> | undefined;
|
|
5
5
|
var __nd_app_active: boolean | undefined;
|
|
6
|
+
var __nd_webview_engine: {
|
|
7
|
+
engine: WebviewEngineName;
|
|
8
|
+
style: CefStyle;
|
|
9
|
+
} | undefined;
|
|
6
10
|
}
|
|
7
11
|
/** Wired up by renderer.ts from `ndp.onSystemEvent()` — not part of the public API. */
|
|
8
12
|
export declare function dispatchSystemEvent(channel: string, data: unknown): void;
|
|
@@ -141,8 +145,29 @@ export interface RegisterSchemeOptions {
|
|
|
141
145
|
*/
|
|
142
146
|
secure?: boolean;
|
|
143
147
|
}
|
|
148
|
+
/** Which web engine the host actually started. */
|
|
149
|
+
export type WebviewEngineName = "chromium" | "system";
|
|
150
|
+
/** CEF's browser style, or null when the host is not running CEF at all. */
|
|
151
|
+
export type CefStyle = "chrome" | "alloy" | null;
|
|
144
152
|
/** Engine-level `<webview>` configuration. `core:webview` is default-granted. */
|
|
145
153
|
export declare const webviewEngine: {
|
|
154
|
+
/**
|
|
155
|
+
* Which engine this host actually started, synchronously. Asking for
|
|
156
|
+
* `chromium` is not the same as getting it: a host with no usable CEF
|
|
157
|
+
* distribution falls back to the system engine, and before this the only
|
|
158
|
+
* way to tell was to read `navigator.userAgent` out of a live view.
|
|
159
|
+
*
|
|
160
|
+
* Backed by the host's `webview.engine` stream, replayed right after the
|
|
161
|
+
* handshake like `app.isActive()`, so it is correct from the first render.
|
|
162
|
+
* "system" against a host that predates the stream.
|
|
163
|
+
*/
|
|
164
|
+
active(): WebviewEngineName;
|
|
165
|
+
/**
|
|
166
|
+
* CEF's browser style: "chrome" (Chromium's own browser runtime, which is
|
|
167
|
+
* what runs the extension system) or "alloy". Null whenever `active()` is
|
|
168
|
+
* not "chromium".
|
|
169
|
+
*/
|
|
170
|
+
cefStyle(): CefStyle;
|
|
146
171
|
/**
|
|
147
172
|
* Registers a custom URI scheme (`crx`, `app`, …) with the web engine.
|
|
148
173
|
* Requests for it arrive as the `schemeRequest` event on the `<webview>`
|