/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ var execSync = require('child_process').execSync; var opn = require('opn'); function openBrowser(url) { if (process.platform === 'darwin') { try { // Try our best to reuse existing tab // on OS X Google Chrome with AppleScript execSync('ps cax | grep "Google Chrome"'); execSync( 'osascript openChrome.applescript ' + url, {cwd: __dirname, stdio: 'ignore'} ); return true; } catch (err) { // Ignore errors. } } // Fallback to opn // (It will always open new tab) try { opn(url).catch(() => {}); // Prevent `unhandledRejection` error. return true; } catch (err) { return false; } } module.exports = openBrowser;