eclipse-theia/theia

Frontend initialization of electron app fails on Windows when runing the exe via UNC path

Open

#13,512 opened on Mar 21, 2024

View on GitHub
 (2 comments) (0 reactions) (0 assignees)TypeScript (2,478 forks)batch import
help wantedmessaging

Repository metrics

Stars
 (18,676 stars)
PR merge metrics
 (Avg merge 15d 4h) (75 merged PRs in 30d)

Description

Bug Description:

The initialization of my theia custom electron application fails on Windows when running theia via UNC path. ( --no-sandbox option is presented) From the Network tab of DevTools the following request is refused: Request URL: http://<server_name_of_UNC_paht>/socket.io/?EIO=4&transport=polling&t=OvSpqm9

Although, from the logs, it is listening to http://127.0.0.1:<port_number> . The same request that is addressed to localhost returns the response successfully: $ curl http://127.0.0.1/:<port_number>/socket.io/?EIO=4&transport=polling 0{"sid":"cx7PqAU7lTT64JufAAAB","upgrades":["websocket"],"pingInterval":30000,"pingTimeout":60000,"maxPayload":100000000}

Steps to Reproduce:

I use the following configuration to build/package my custom theia application:

package.json of electron-app

{
  "private": true,
  "name": "Custom_theia",
  "version": "0.0.1",
  "description": "Custom Theia app",
  "author": "Custom",
  "main": "src-gen/backend/electron-main.js",
  "dependencies": {
    "@theia/core": "1.46.1",
    "@theia/electron": "1.46.1",
    "@theia/preferences": "1.46.1",
    "@theia/filesystem": "1.46.1",
    "@theia/workspace": "1.46.1",
    "@theia/plugin-ext-vscode": "1.46.1",
    "node-gyp": "^9.0.0"
  },
  "devDependencies": {
    "@theia/cli": "latest",
    "electron": "^23.2.4",
    "electron-builder": "^23.0.3",
  },
  "theiaExtensions": [
  ],
  "theiaPluginsDir": "plugins",
  "scripts": {
    "theia_build": "theia build",
    "rebuild_electron": "theia rebuild:electron",
    "build": "yarn theia_build && yarn rebuild_electron",
    "start_win": "theia start --mode=electron --plugins=local-dir:./plugins",
    "start_lin": "theia start --mode=electron --no-sandbox --plugins=local-dir:./plugins",
    "dist": "electron-builder"
  },
  "theia": {
    "target": "electron",
    "frontend": {
      "config": {
        "applicationName": "Custom Theia"
      }
    }
  }
}

electron-builder.json

{
	"appId": "custom.theia",
	"productName": "custom_theia",
	"electronDist": "../node_modules/electron/dist",
        "electronVersion": "23.2.4",
	"asar": false,
	"files": [
		"src-gen",
		"src",
		"lib",
		"!**node_modules/electron/**"
	],
	"extraResources": [
		{
			"from": "./plugins",
			"to": "plugins"
		}
	],
	"win": {
		"executableName": "custom_theia",
		"artifactName": "${productName}_${version}.${ext}",	
		"target": [
			"nsis"
		]
	},
	"linux": {
		"executableName": "custom_theia",
		"artifactName": "${productName}_${version}.${ext}",
		"category": "Development",
		"target": [
			"AppImage"
		]
	},
	"nsis": {
		"oneClick": false,
		"perMachine": false,
		"allowToChangeInstallationDirectory": true,
		"runAfterFinish": false,
		"artifactName": "${productName}_${version}_Setup.${ext}",
		"uninstallDisplayName": "${productName}"
	},
}

Steps to reproduce:

  1. yarn
  2. yarn build
  3. yarn dist
  4. run the generated executable under the dist/win-unpacked directory through the UNC path with the --no-sandbox option.

The front-end does not open successfully; it keeps sending the socket.io request (mentioned in the bug description) forever.

Additional Information

Don't see the same behavior on Linux.

  • Operating System: Windows
  • Theia Version: 1.46.1

Contributor guide