Merge pull request #5137 from electron/fix-did-fail-load

Revert #3643
This commit is contained in:
Cheng Zhao 2016-04-13 20:12:50 +09:00
commit 07572965df
3 changed files with 14 additions and 22 deletions

View file

@ -547,28 +547,21 @@ void WebContents::DidFinishLoad(content::RenderFrameHost* render_frame_host,
void WebContents::DidFailProvisionalLoad(
content::RenderFrameHost* render_frame_host,
const GURL& url,
int error_code,
const base::string16& error_description,
int code,
const base::string16& description,
bool was_ignored_by_handler) {
bool is_main_frame = !render_frame_host->GetParent();
Emit("did-fail-provisional-load",
error_code,
error_description,
url,
is_main_frame);
Emit("did-fail-provisional-load", code, description, url, is_main_frame);
Emit("did-fail-load", code, description, url, is_main_frame);
}
void WebContents::DidFailLoad(content::RenderFrameHost* render_frame_host,
const GURL& validated_url,
const GURL& url,
int error_code,
const base::string16& error_description,
bool was_ignored_by_handler) {
bool is_main_frame = !render_frame_host->GetParent();
Emit("did-fail-load",
error_code,
error_description,
validated_url,
is_main_frame);
Emit("did-fail-load", error_code, error_description, url, is_main_frame);
}
void WebContents::DidStartLoading() {

View file

@ -146,15 +146,6 @@ let wrapWebContents = function (webContents) {
return menu.popup(params.x, params.y)
})
// This error occurs when host could not be found.
webContents.on('did-fail-provisional-load', function (...args) {
// Calling loadURL during this event might cause crash, so delay the event
// until next tick.
setImmediate(() => {
this.emit.apply(this, ['did-fail-load'].concat(args))
})
})
// The devtools requests the webContents to reload.
webContents.on('devtools-reload-page', function () {
webContents.reload()

View file

@ -153,6 +153,14 @@ describe('browser-window module', function () {
})
w.loadURL('file://' + path.join(fixtures, 'api', 'did-fail-load-iframe.html'))
})
it('does not crash in did-fail-provisional-load handler', function (done) {
w.webContents.once('did-fail-provisional-load', function () {
w.loadURL('http://localhost:11111')
done()
})
w.loadURL('http://localhost:11111')
})
})
describe('BrowserWindow.show()', function () {