Avoid race condition where login handler webcontents becomes null

This commit is contained in:
Matt Crocker 2017-11-19 14:08:11 -08:00
parent f469059e90
commit efaf7a6b85

View file

@ -633,12 +633,17 @@ void App::OnLogin(LoginHandler* login_handler,
const base::DictionaryValue& request_details) { const base::DictionaryValue& request_details) {
v8::Locker locker(isolate()); v8::Locker locker(isolate());
v8::HandleScope handle_scope(isolate()); v8::HandleScope handle_scope(isolate());
bool prevent_default = Emit( bool prevent_default = false;
"login", content::WebContents* web_contents = login_handler->GetWebContents();
WebContents::CreateFrom(isolate(), login_handler->GetWebContents()), if (web_contents) {
request_details, prevent_default =
login_handler->auth_info(), Emit("login",
base::Bind(&PassLoginInformation, make_scoped_refptr(login_handler))); WebContents::CreateFrom(isolate(), web_contents),
request_details,
login_handler->auth_info(),
base::Bind(&PassLoginInformation,
make_scoped_refptr(login_handler)));
}
// Default behavior is to always cancel the auth. // Default behavior is to always cancel the auth.
if (!prevent_default) if (!prevent_default)