chore: make raw requires type-safe (#29006)
* chore: make raw requires type-safe * refactor: no need for separate webViewImplModule * refactor: no need for separate guestViewInternalModule
This commit is contained in:
parent
8d0e7aed9f
commit
2c65060ec8
13 changed files with 68 additions and 58 deletions
|
@ -70,10 +70,3 @@ export function attachGuest (
|
|||
export function detachGuest (guestInstanceId: number) {
|
||||
return ipcRendererUtils.invokeSync(IPC_MESSAGES.GUEST_VIEW_MANAGER_DETACH_GUEST, guestInstanceId);
|
||||
}
|
||||
|
||||
export const guestViewInternalModule = {
|
||||
deregisterEvents,
|
||||
createGuest,
|
||||
attachGuest,
|
||||
detachGuest
|
||||
};
|
||||
|
|
|
@ -9,9 +9,11 @@
|
|||
// modules must be passed from outside, all included files must be plain JS.
|
||||
|
||||
import { WEB_VIEW_CONSTANTS } from '@electron/internal/renderer/web-view/web-view-constants';
|
||||
import { WebViewImpl as IWebViewImpl, webViewImplModule } from '@electron/internal/renderer/web-view/web-view-impl';
|
||||
import type * as webViewImplModule from '@electron/internal/renderer/web-view/web-view-impl';
|
||||
import type { SrcAttribute } from '@electron/internal/renderer/web-view/web-view-attributes';
|
||||
|
||||
type IWebViewImpl = webViewImplModule.WebViewImpl;
|
||||
|
||||
// Return a WebViewElement class that is defined in this context.
|
||||
const defineWebViewElement = (v8Util: NodeJS.V8UtilBinding, webViewImpl: typeof webViewImplModule) => {
|
||||
const { guestViewInternal, WebViewImpl } = webViewImpl;
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
import * as electron from 'electron';
|
||||
|
||||
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
||||
import * as ipcRendererUtils from '@electron/internal/renderer/ipc-renderer-internal-utils';
|
||||
import * as guestViewInternal from '@electron/internal/renderer/web-view/guest-view-internal';
|
||||
|
@ -8,7 +6,9 @@ import { syncMethods, asyncMethods, properties } from '@electron/internal/common
|
|||
import type { WebViewAttribute, PartitionAttribute } from '@electron/internal/renderer/web-view/web-view-attributes';
|
||||
import { deserialize } from '@electron/internal/common/type-utils';
|
||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
||||
const { webFrame } = electron;
|
||||
|
||||
export { webFrame } from 'electron';
|
||||
export * as guestViewInternal from '@electron/internal/renderer/web-view/guest-view-internal';
|
||||
|
||||
const v8Util = process._linkedBinding('electron_common_v8_util');
|
||||
|
||||
|
@ -272,11 +272,3 @@ export const setupMethods = (WebViewElement: typeof ElectronInternal.WebViewElem
|
|||
});
|
||||
}
|
||||
};
|
||||
|
||||
export const webViewImplModule = {
|
||||
setupAttributes,
|
||||
setupMethods,
|
||||
guestViewInternal,
|
||||
webFrame,
|
||||
WebViewImpl
|
||||
};
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
import { ipcRendererInternal } from '@electron/internal/renderer/ipc-renderer-internal';
|
||||
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
||||
|
||||
import type * as webViewImpl from '@electron/internal/renderer/web-view/web-view-impl';
|
||||
import type * as webViewElement from '@electron/internal/renderer/web-view/web-view-element';
|
||||
|
||||
const v8Util = process._linkedBinding('electron_common_v8_util');
|
||||
|
||||
function handleFocusBlur () {
|
||||
|
@ -16,16 +19,14 @@ function handleFocusBlur () {
|
|||
});
|
||||
}
|
||||
|
||||
export function webViewInit (
|
||||
contextIsolation: boolean, webviewTag: ElectronInternal.WebViewElement, guestInstanceId: number
|
||||
) {
|
||||
export function webViewInit (contextIsolation: boolean, webviewTag: boolean, guestInstanceId: number) {
|
||||
// Don't allow recursive `<webview>`.
|
||||
if (webviewTag && guestInstanceId == null) {
|
||||
const { webViewImplModule } = require('@electron/internal/renderer/web-view/web-view-impl');
|
||||
if (webviewTag && !guestInstanceId) {
|
||||
const webViewImplModule = require('@electron/internal/renderer/web-view/web-view-impl') as typeof webViewImpl;
|
||||
if (contextIsolation) {
|
||||
v8Util.setHiddenValue(window, 'web-view-impl', webViewImplModule);
|
||||
} else {
|
||||
const { setupWebView } = require('@electron/internal/renderer/web-view/web-view-element');
|
||||
const { setupWebView } = require('@electron/internal/renderer/web-view/web-view-element') as typeof webViewElement;
|
||||
setupWebView(v8Util, webViewImplModule);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue