webContents: fix executejavascript when called before page load

This commit is contained in:
deepak1556 2016-04-28 01:54:08 +05:30
parent 0fa92923da
commit 4e6b148eaa
2 changed files with 12 additions and 2 deletions

View file

@ -117,9 +117,11 @@ let wrapWebContents = function (webContents) {
hasUserGesture = false
}
if (this.getURL() && !this.isLoadingMainFrame()) {
return asyncWebFrameMethods.call(this, requestId, 'executeJavaScript', callback, code, hasUserGesture)
asyncWebFrameMethods.call(this, requestId, 'executeJavaScript', callback, code, hasUserGesture)
} else {
return this.once('did-finish-load', asyncWebFrameMethods.bind(this, requestId, 'executeJavaScript', callback, code, hasUserGesture))
this.once('did-finish-load', () => {
asyncWebFrameMethods.call(this, requestId, 'executeJavaScript', callback, code, hasUserGesture)
})
}
}

View file

@ -870,6 +870,14 @@ describe('browser-window module', function () {
})
w.loadURL(server.url)
})
it('executes after page load', function (done) {
w.webContents.executeJavaScript(code, function(result) {
assert.equal(result, expected)
done()
})
w.loadURL(server.url)
})
})
describe('deprecated options', function () {