browser: fix null pointer dereference with getWebPreferences api (#12245)

* add failing spec

* devtools webContents don't have associated webPreferences
This commit is contained in:
Robo
2018-03-14 06:06:51 +09:00
committed by Shelley Vohr
parent 643dd55e07
commit c846f677c9
2 changed files with 12 additions and 0 deletions

View File

@@ -1768,6 +1768,8 @@ void WebContents::OnGetZoomLevel(IPC::Message* reply_msg) {
v8::Local<v8::Value> WebContents::GetWebPreferences(v8::Isolate* isolate) {
WebContentsPreferences* web_preferences =
WebContentsPreferences::FromWebContents(web_contents());
if (!web_preferences)
return v8::Null(isolate);
return mate::ConvertToV8(isolate, *web_preferences->web_preferences());
}

View File

@@ -116,6 +116,16 @@ describe('webContents module', () => {
})
})
describe('getWebPreferences() API', () => {
it('should not crash when called for devTools webContents', (done) => {
w.webContents.openDevTools()
w.webContents.once('devtools-opened', () => {
assert(!w.devToolsWebContents.getWebPreferences())
done()
})
})
})
describe('before-input-event event', () => {
it('can prevent document keyboard events', (done) => {
w.loadURL(`file://${path.join(__dirname, 'fixtures', 'pages', 'key-events.html')}`)