diff --git a/package.json b/package.json
index 203c1fb812..daa31e306c 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,7 @@
"@blueprintjs/core": "^3.36.0",
"@blueprintjs/popover2": "^0.12.2",
"@blueprintjs/select": "^3.15.0",
- "@electron/fiddle-core": "^1.3.3",
+ "@electron/fiddle-core": "^1.4.0",
"@octokit/rest": "^17.0.0",
"@sentry/electron": "^5.11.0",
"algoliasearch": "^4.12.0",
diff --git a/src/interfaces.ts b/src/interfaces.ts
index 51f73fde5a..1a50b29b35 100644
--- a/src/interfaces.ts
+++ b/src/interfaces.ts
@@ -280,6 +280,7 @@ export interface StartFiddleParams {
dir: string;
options: string[];
env: { [x: string]: string | undefined };
+ runFromAsar?: boolean;
}
export interface DownloadVersionParams {
diff --git a/src/main/fiddle-core.ts b/src/main/fiddle-core.ts
index bc516c2699..cd90e3db53 100644
--- a/src/main/fiddle-core.ts
+++ b/src/main/fiddle-core.ts
@@ -35,6 +35,7 @@ export async function startFiddle(
localPath,
options,
version,
+ runFromAsar,
} = params;
const env = { ...process.env };
@@ -53,7 +54,7 @@ export async function startFiddle(
const child = await runner.spawn(
isValidBuild && localPath ? Installer.getExecPath(localPath) : version,
dir,
- { args: options, cwd: dir, env },
+ { args: options, cwd: dir, env, runFromAsar },
);
fiddleProcesses.set(webContents, child);
diff --git a/src/renderer/components/commands-runner.tsx b/src/renderer/components/commands-runner.tsx
index e2fdd124ae..2c1bd6228a 100644
--- a/src/renderer/components/commands-runner.tsx
+++ b/src/renderer/components/commands-runner.tsx
@@ -1,6 +1,14 @@
import * as React from 'react';
-import { Button, ButtonProps, Spinner } from '@blueprintjs/core';
+import {
+ Button,
+ ButtonGroup,
+ ButtonProps,
+ Menu,
+ MenuItem,
+ Spinner,
+} from '@blueprintjs/core';
+import { Popover2 } from '@blueprintjs/popover2';
import { observer } from 'mobx-react';
import { InstallState, VersionSource } from '../../interfaces';
@@ -59,7 +67,9 @@ export const Runner = observer(
props.icon = ;
} else {
props.text = 'Run';
- props.onClick = window.app.runner.run;
+ props.onClick = () => {
+ window.app.runner.run({ runFromAsar: false });
+ };
props.icon = 'play';
}
break;
@@ -76,8 +86,36 @@ export const Runner = observer(
props.icon = ;
}
}
+ const isAsarDisabled: boolean =
+ props.disabled || isRunning || isInstallingModules;
- return ;
+ return (
+
+
+
+
+ );
}
},
);
+
+const AsarButton = ({ disabled }: { disabled: boolean }): JSX.Element => {
+ const asarButton = (
+
+ );
+
+ return (
+
+
+
+ );
+};
diff --git a/src/renderer/components/commands.tsx b/src/renderer/components/commands.tsx
index 86292d2b38..933b774660 100644
--- a/src/renderer/components/commands.tsx
+++ b/src/renderer/components/commands.tsx
@@ -55,6 +55,8 @@ export const Commands = observer(
+
+
{isBisectCommandShowing && (
diff --git a/src/renderer/runner.ts b/src/renderer/runner.ts
index fa38415a9c..cb1f338272 100644
--- a/src/renderer/runner.ts
+++ b/src/renderer/runner.ts
@@ -20,11 +20,16 @@ export enum ForgeCommands {
MAKE = 'make',
}
+export interface RunOptions {
+ runFromAsar?: boolean;
+}
+
interface RunFiddleParams {
localPath: string | undefined;
isValidBuild: boolean; // If the localPath is a valid Electron build
version: string; // The user selected version
dir: string;
+ runFromAsar?: boolean;
}
const resultString: Record = Object.freeze({
@@ -139,8 +144,9 @@ export class Runner {
/**
* Actually run the fiddle.
*/
- public async run(): Promise {
+ public async run(runOptions?: RunOptions): Promise {
const options = { includeDependencies: false, includeElectron: false };
+ const runFromAsar = runOptions?.runFromAsar ?? false;
const { appState } = this;
const currentRunnable = appState.currentElectronVersion;
@@ -220,6 +226,7 @@ export class Runner {
isValidBuild,
dir,
version,
+ runFromAsar,
});
}
diff --git a/tests/renderer/components/__snapshots__/commands-runner-spec.tsx.snap b/tests/renderer/components/__snapshots__/commands-runner-spec.tsx.snap
index 11b5693e11..ce8a4aa652 100644
--- a/tests/renderer/components/__snapshots__/commands-runner-spec.tsx.snap
+++ b/tests/renderer/components/__snapshots__/commands-runner-spec.tsx.snap
@@ -1,85 +1,120 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Runner component renders InstallState.downloading 1`] = `
-
- }
- id="button-run"
- text="Downloading"
-/>
+
+
+ }
+ id="button-run"
+ text="Downloading"
+ />
+
+
`;
exports[`Runner component renders InstallState.installed 1`] = `
-
+
+
+
+
`;
exports[`Runner component renders InstallState.installing 1`] = `
-
- }
- id="button-run"
- text="Unzipping"
-/>
+
+
+ }
+ id="button-run"
+ text="Unzipping"
+ />
+
+
`;
exports[`Runner component renders InstallState.missing 1`] = `
-
- }
- id="button-run"
- text="Checking status"
-/>
+
+
+ }
+ id="button-run"
+ text="Checking status"
+ />
+
+
`;
exports[`Runner component renders idle 1`] = `
-
+
+
+
+
`;
exports[`Runner component renders installing modules 1`] = `
-
- }
- id="button-run"
- text="Installing modules"
-/>
+
+
+ }
+ id="button-run"
+ text="Installing modules"
+ />
+
+
`;
exports[`Runner component renders running 1`] = `
-
+
+
+
+
`;
diff --git a/tests/renderer/components/__snapshots__/commands-spec.tsx.snap b/tests/renderer/components/__snapshots__/commands-spec.tsx.snap
index 58a2265b00..cd642dd334 100644
--- a/tests/renderer/components/__snapshots__/commands-spec.tsx.snap
+++ b/tests/renderer/components/__snapshots__/commands-spec.tsx.snap
@@ -23,6 +23,11 @@ exports[`Commands component renders when system is darwin 1`] = `
+
+
@@ -77,6 +82,11 @@ exports[`Commands component renders when system not is darwin 1`] = `
+
+
diff --git a/yarn.lock b/yarn.lock
index ddad25caf6..156b932a9b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1089,11 +1089,21 @@
glob "^7.1.6"
minimatch "^3.0.4"
-"@electron/fiddle-core@^1.3.3":
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/@electron/fiddle-core/-/fiddle-core-1.3.3.tgz#adb54cd4cb3c63726c945c028808e39baa562747"
- integrity sha512-aBUN+jsNsLo+Ywfl0wQy2TRRGC8TvLF42Lt9zOdrzGgT7vzDNiFvr7+UiRVvC5inGR0XgeTmZpwaS6CnT6ZPWA==
+"@electron/asar@^3.3.1":
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.4.1.tgz#4e9196a4b54fba18c56cd8d5cac67c5bdc588065"
+ integrity sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==
+ dependencies:
+ commander "^5.0.0"
+ glob "^7.1.6"
+ minimatch "^3.0.4"
+
+"@electron/fiddle-core@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@electron/fiddle-core/-/fiddle-core-1.4.0.tgz#b19840053a1a8e2e6cba45db3bd80b296b90fb88"
+ integrity sha512-dPoLYJJ5HtvnWG8p29JorKn6mlX4JOsQb6eGKT41Q48SqAm96WXkarHCGDA4PQWj5qJq1R75aBHtH78pLjX46A==
dependencies:
+ "@electron/asar" "^3.3.1"
"@electron/get" "^2.0.0"
debug "^4.3.3"
env-paths "^2.2.1"