Skip to content

Commit

Permalink
refactor: merge ipcMainUtils.handle / handleSync (#17062)
Browse files Browse the repository at this point in the history
  • Loading branch information
miniak authored and MarshallOfSound committed Feb 26, 2019
1 parent 848d165 commit 5a99ea4
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 17 deletions.
2 changes: 1 addition & 1 deletion lib/browser/chrome-devtools.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ ipcMainUtils.handle('ELECTRON_INSPECTOR_SELECT_FILE', function (event) {
})
})

ipcMainUtils.handleSync('ELECTRON_INSPECTOR_CONFIRM', function (event, message, title) {
ipcMainUtils.handle('ELECTRON_INSPECTOR_CONFIRM', function (event, message, title) {
return new Promise((resolve, reject) => {
assertChromeDevTools(event.sender, 'window.confirm()')

Expand Down
4 changes: 2 additions & 2 deletions lib/browser/chrome-extension.js
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ ipcMainInternal.on('CHROME_RUNTIME_CONNECT', function (event, extensionId, conne
page.webContents._sendInternalToAll(`CHROME_RUNTIME_ONCONNECT_${extensionId}`, event.sender.id, portId, connectInfo)
})

ipcMainUtils.handleSync('CHROME_EXTENSION_MANIFEST', function (event, extensionId) {
ipcMainUtils.handle('CHROME_EXTENSION_MANIFEST', function (event, extensionId) {
const manifest = manifestMap[extensionId]
if (!manifest) {
throw new Error(`Invalid extensionId: ${extensionId}`)
Expand Down Expand Up @@ -232,7 +232,7 @@ const getMessagesPath = (extensionId) => {
}
}

ipcMainUtils.handleSync('CHROME_GET_MESSAGES', function (event, extensionId) {
ipcMainUtils.handle('CHROME_GET_MESSAGES', function (event, extensionId) {
const messagesPath = getMessagesPath(extensionId)
return fs.readFileSync(messagesPath)
})
Expand Down
14 changes: 5 additions & 9 deletions lib/browser/ipc-main-internal-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,11 @@ const callHandler = async function (handler: IPCHandler, event: ElectronInternal
export const handle = function <T extends IPCHandler> (channel: string, handler: T) {
ipcMainInternal.on(channel, (event, requestId, ...args) => {
callHandler(handler, event, args, responseArgs => {
event._replyInternal(`${channel}_RESPONSE_${requestId}`, ...responseArgs)
})
})
}

export const handleSync = function <T extends IPCHandler> (channel: string, handler: T) {
ipcMainInternal.on(channel, (event, ...args) => {
callHandler(handler, event, args, responseArgs => {
event.returnValue = responseArgs
if (requestId) {
event._replyInternal(`${channel}_RESPONSE_${requestId}`, ...responseArgs)
} else {
event.returnValue = responseArgs
}
})
})
}
8 changes: 4 additions & 4 deletions lib/browser/rpc-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -479,19 +479,19 @@ ipcMainInternal.on('ELECTRON_BROWSER_WINDOW_CLOSE', function (event) {
event.returnValue = null
})

ipcMainUtils.handleSync('ELECTRON_CRASH_REPORTER_INIT', function (event, options) {
ipcMainUtils.handle('ELECTRON_CRASH_REPORTER_INIT', function (event, options) {
return crashReporterInit(options)
})

ipcMainUtils.handleSync('ELECTRON_BROWSER_GET_LAST_WEB_PREFERENCES', function (event) {
ipcMainUtils.handle('ELECTRON_BROWSER_GET_LAST_WEB_PREFERENCES', function (event) {
return event.sender.getLastWebPreferences()
})

ipcMainUtils.handleSync('ELECTRON_BROWSER_CLIPBOARD_READ_FIND_TEXT', function (event) {
ipcMainUtils.handle('ELECTRON_BROWSER_CLIPBOARD_READ_FIND_TEXT', function (event) {
return electron.clipboard.readFindText()
})

ipcMainUtils.handleSync('ELECTRON_BROWSER_CLIPBOARD_WRITE_FIND_TEXT', function (event, text) {
ipcMainUtils.handle('ELECTRON_BROWSER_CLIPBOARD_WRITE_FIND_TEXT', function (event, text) {
return electron.clipboard.writeFindText(text)
})

Expand Down
2 changes: 1 addition & 1 deletion lib/renderer/ipc-renderer-internal-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export function invoke<T> (command: string, ...args: any[]) {
}

export function invokeSync<T> (command: string, ...args: any[]): T {
const [ error, result ] = ipcRendererInternal.sendSync(command, ...args)
const [ error, result ] = ipcRendererInternal.sendSync(command, null, ...args)

if (error) {
throw errorUtils.deserialize(error)
Expand Down

0 comments on commit 5a99ea4

Please sign in to comment.