Skip to content

Commit

Permalink
fix: mac port live preview not working on chrome v111
Browse files Browse the repository at this point in the history
  • Loading branch information
abose committed Mar 10, 2023
1 parent 3e1554d commit 797455a
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/LiveDevelopment/Inspector/Inspector.js
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,8 @@ define(function Inspector(require, exports, module) {
var i, page;
for (i in response) {
page = response[i];
if (page.webSocketDebuggerUrl && page.url.indexOf(url) === 0) {
if (page.webSocketDebuggerUrl &&
(page.url.indexOf(url) === 0 || page.url.endsWith("/LiveDevelopment/launch.html"))) {
connect(page.webSocketDebuggerUrl);
// _connectDeferred may be resolved by onConnect or rejected by onError
return;
Expand Down
110 changes: 109 additions & 1 deletion src/LiveDevelopment/MultiBrowserImpl/launchers/node/LauncherDomain.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,102 @@
/*jslint node: true */
"use strict";

var open = require("opn");
var path = require('path');
var childProcess = require('child_process');
var objectAssign = require('object-assign');
var Promise = require('pinkie-promise');

function open(target, opts) {
if (typeof target !== 'string') {
return Promise.reject(new Error('Expected a `target`'));
}

opts = objectAssign({wait: true}, opts);

var cmd;
var appArgs = [];
var args = [];
var cpOpts = {};

if (Array.isArray(opts.app)) {
appArgs = opts.app.slice(1);
opts.app = opts.app[0];
}

if (process.platform === 'darwin') {
cmd = 'open';

if (opts.wait) {
args.push('-W');
}

if (opts.app) {
args.push('-n');
args.push('-a', opts.app);
}
} else if (process.platform === 'win32') {
cmd = 'cmd';
args.push('/c', 'start', '""');
target = target.replace(/&/g, '^&');

if (opts.wait) {
args.push('/wait');
}

if (opts.app) {
args.push(opts.app);
}

if (appArgs.length > 0) {
args = args.concat(appArgs);
}
} else {
if (opts.app) {
cmd = opts.app;
} else {
cmd = path.join(__dirname, 'xdg-open');
}

if (appArgs.length > 0) {
args = args.concat(appArgs);
}

if (!opts.wait) {
// xdg-open will block the process unless
// stdio is ignored even if it's unref'd
cpOpts.stdio = 'ignore';
}
}

args.push(target);

if (process.platform === 'darwin' && appArgs.length > 0) {
args.push('--args');
args = args.concat(appArgs);
}

var cp = childProcess.spawn(cmd, args, cpOpts);

if (opts.wait) {
return new Promise(function (resolve, reject) {
cp.once('error', reject);

cp.once('close', function (code) {
if (code > 0) {
reject(new Error('Exited with code ' + code));
return;
}

resolve(cp);
});
});
}

cp.unref();

return Promise.resolve(cp);
};


/**
* @private
Expand All @@ -44,6 +139,19 @@ function _cmdLaunch(url) {
}

function _launchChromeWithRDP(url, enableRemoteDebugging) {
if (process.platform === 'darwin') {
open(url, {app: ['Google Chrome',
"--disk-cache-size=250000000",
"--no-first-run",
"--no-default-browser-check",
"--disable-default-apps",
"--allow-file-access-from-files",
"--remote-debugging-port=9222",
"--user-data-dir=/tmp/BracketsChromeProfile",
"--remote-allow-origins=*"
]});
return;
}
open(url, {app: ['chrome',
"--disk-cache-size=250000000",
"--no-first-run",
Expand Down

0 comments on commit 797455a

Please sign in to comment.