webContents: handle POST navigation for new windows

This commit is contained in:
deepak1556 2016-10-10 05:00:38 +05:30 committed by Kevin Sawicki
parent 7cfe1dd0af
commit 0410a184ce
10 changed files with 187 additions and 49 deletions

View file

@ -84,7 +84,7 @@ const setupGuest = function (embedder, frameName, guest, options) {
}
// Create a new guest created by |embedder| with |options|.
const createGuest = function (embedder, url, frameName, options) {
const createGuest = function (embedder, url, frameName, options, postData) {
let guest = frameToGuest[frameName]
if (frameName && (guest != null)) {
guest.loadURL(url)
@ -119,7 +119,10 @@ const createGuest = function (embedder, url, frameName, options) {
//
// The above code would not work if a navigation to "about:blank" is done
// here, since the window would be cleared of all changes in the next tick.
guest.loadURL(url)
const loadOptions = {}
if (postData)
loadOptions.postData = postData
guest.loadURL(url, loadOptions)
}
return setupGuest(embedder, frameName, guest, options)
@ -140,7 +143,9 @@ const getGuestWindow = function (guestId) {
}
// Routed window.open messages.
ipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_OPEN', function (event, url, frameName, disposition, options, additionalFeatures) {
ipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_OPEN', function (event, url, frameName,
disposition, options,
additionalFeatures, postData) {
options = mergeBrowserWindowOptions(event.sender, options)
event.sender.emit('new-window', event, url, frameName, disposition, options, additionalFeatures)
const newGuest = event.newGuest
@ -151,7 +156,7 @@ ipcMain.on('ELECTRON_GUEST_WINDOW_MANAGER_WINDOW_OPEN', function (event, url, fr
event.returnValue = null
}
} else {
event.returnValue = createGuest(event.sender, url, frameName, options)
event.returnValue = createGuest(event.sender, url, frameName, options, postData)
}
})