from: npm/cli#1311 (comment)
Note: we should make openUrl return a promise. Also, I see that it checks process.argv explicitly for a --no-browser flag, which is not great. (Should just be checking npm.config.get('browser') === false or better yet, npm.flatOptions.browser === false.)