The issue is that the call to -beginSheetModalForWindow:completionHandler: passes a block that calls bridge_.get(), but it's not clear that bridge_.get() is retained. When setting up a block the objects that appear within the block are retained by the runtime but I suspect bridge_.get() doesn't look like something that needs to be retained.
Because -beginSheetModalForWindow:completionHandler: is asynchronous, SelectFileDialogImpl::SelectFileImpl() will return, and bridge_ (an ivar of SelectFileDialogImpl) will get destroyed soon after when FileSelectHelper::RunFileChooserOnUIThread() exits.
Comment 1 by shrike@chromium.org
, Jan 18 2018