refactor: add invoke helpers in window-setup (#18233)

This commit is contained in:
Milan Burda 2019-05-18 20:52:29 +02:00 committed by Alexey Kuzmin
parent 2b4ad2cb09
commit af0ad4454e

View file

@ -81,9 +81,7 @@ class LocationProxy {
// It's right, that's bad, but we're doing it anway.
(guestURL as any)[propertyKey] = newVal
return this.ipcRenderer.sendSync(
'ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC',
this.guestId, 'loadURL', guestURL.toString())
return this._invokeWebContentsMethodSync('loadURL', guestURL.toString())
}
}
})
@ -102,7 +100,7 @@ class LocationProxy {
}
private getGuestURL (): URL | null {
const urlString = ipcRendererInternal.sendSync('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', this.guestId, 'getURL')
const urlString = this._invokeWebContentsMethodSync('getURL') as string
try {
return new URL(urlString)
} catch (e) {
@ -111,6 +109,10 @@ class LocationProxy {
return null
}
private _invokeWebContentsMethodSync (method: string, ...args: any[]) {
return ipcRendererInternal.sendSync('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', this.guestId, method, ...args)
}
}
class BrowserWindowProxy {
@ -127,7 +129,7 @@ class BrowserWindowProxy {
}
public set location (url: string | any) {
url = resolveURL(url)
ipcRendererInternal.sendSync('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', this.guestId, 'loadURL', url)
this._invokeWebContentsMethodSync('loadURL', url)
}
constructor (guestId: number) {
@ -145,23 +147,35 @@ class BrowserWindowProxy {
}
public focus () {
ipcRendererInternal.send('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_METHOD', this.guestId, 'focus')
this._invokeWindowMethod('focus')
}
public blur () {
ipcRendererInternal.send('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_METHOD', this.guestId, 'blur')
this._invokeWindowMethod('blur')
}
public print () {
ipcRendererInternal.send('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', this.guestId, 'print')
this._invokeWebContentsMethod('print')
}
public postMessage (message: any, targetOrigin: any) {
ipcRendererInternal.send('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_POSTMESSAGE', this.guestId, message, toString(targetOrigin), window.location.origin)
}
public eval (...args: any[]) {
ipcRendererInternal.send('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', this.guestId, 'executeJavaScript', ...args)
public eval (code: string) {
this._invokeWebContentsMethod('executeJavaScript', code)
}
private _invokeWindowMethod (method: string, ...args: any[]) {
return ipcRendererInternal.send('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_METHOD', this.guestId, method, ...args)
}
private _invokeWebContentsMethod (method: string, ...args: any[]) {
return ipcRendererInternal.send('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD', this.guestId, method, ...args)
}
private _invokeWebContentsMethodSync (method: string, ...args: any[]) {
return ipcRendererInternal.sendSync('ELECTRON_GUEST_WINDOW_MANAGER_WEB_CONTENTS_METHOD_SYNC', this.guestId, method, ...args)
}
}