Skip to content

feat: Electron fetch setting#216

Merged
bmingles merged 6 commits intomainfrom
DH-18191-3_electron-fetch
Feb 10, 2025
Merged

feat: Electron fetch setting#216
bmingles merged 6 commits intomainfrom
DH-18191-3_electron-fetch

Conversation

@bmingles
Copy link
Collaborator

@bmingles bmingles commented Feb 6, 2025

DH-18191:
VS Code now has a Http: Electron Fetch setting that will make use of Electron fetch instead of NodeJS http modules. This allows us to connect without using the custom gRPC transport and also allows the OS trust store to be the record of trust for SSL certs instead of having to set NODE_EXTRA_CA_CERTS.

This PR detects whether the flag is enabled and only uses the custom gRPC transport if needed. Presumably there could be user scenarios where enabling might break other extensions or cause undesirable side effects, so falling back to the gRPC transport still seems like a good idea.

@github-actions
Copy link

github-actions bot commented Feb 6, 2025

End-to-end Test Summary

Tests 📝Passed ✅Failed ❌Skipped ⏭️Pending ⏳Other ❓Flaky 🍂Duration ⏱️
660000004:57:54
A ctrf plugin

Detailed Test Results

NameStatusmsFlaky 🍂
should default to the correct settingspassed ✅1894
should return custom settings: Empty configspassed ✅260
should return custom settings: Populated configspassed ✅97
should be able to load VSCodepassed ✅926
should only be visible when a supported file type is active: test.groovypassed ✅3009
should only be visible when a supported file type is active: test.pypassed ✅1186
A ctrf plugin

Failed Test Summary

No failed tests ✨

Flaky Test Summary

No flaky tests detected. ✨

@github-actions
Copy link

github-actions bot commented Feb 6, 2025

Unit Test Summary

Tests 📝Passed ✅Failed ❌Skipped ⏭️Pending ⏳Other ❓Flaky 🍂Duration ⏱️
1191190000000:00:00
A ctrf plugin

Detailed Test Results

NameStatusmsFlaky 🍂
src/services/ConfigService.spec.ts: getCoreServers > should return core servers: Empty configpassed ✅3
src/services/ConfigService.spec.ts: getCoreServers > should return core servers: String configpassed ✅1
src/services/ConfigService.spec.ts: getCoreServers > should return core servers: No labelpassed ✅1
src/services/ConfigService.spec.ts: getCoreServers > should return core servers: Full configpassed ✅0
src/services/ConfigService.spec.ts: getEnterpriseServers > should return enterprise servers: Empty configpassed ✅0
src/services/ConfigService.spec.ts: getEnterpriseServers > should return enterprise servers: String configpassed ✅1
src/services/PollingService.spec.ts: pollUntilTrue > should resolve when poll function returns truepassed ✅7
src/services/PollingService.spec.ts: pollUntilTrue > should cancel polling if timeout exceededpassed ✅2
src/services/PollingService.spec.ts: pollUntilTrue > should cancel polling if cancel explicitly calledpassed ✅0
src/services/SerializedKeyMap.spec.ts: SerializedKeyMap > should key data by value equalitypassed ✅2
src/services/SerializedKeyMap.spec.ts: SerializedKeyMap > entries > should provide value equality entriespassed ✅1
src/services/SerializedKeyMap.spec.ts: SerializedKeyMap > keys > should provide value equality keyspassed ✅0
src/services/SerializedKeyMap.spec.ts: SerializedKeyMap > forEach > should pass value equality keys to callback: undefinedpassed ✅1
src/services/SerializedKeyMap.spec.ts: SerializedKeyMap > forEach > should pass value equality keys to callback: {}passed ✅1
src/services/SerializedKeyMap.spec.ts: SerializedKeyMap > values > should provide valuespassed ✅0
src/util/assertUtil.spec.ts: assertDefined > should not throw if value is defined: {}passed ✅2
src/util/assertUtil.spec.ts: assertDefined > should not throw if value is defined: testpassed ✅0
src/util/assertUtil.spec.ts: assertDefined > should not throw if value is defined: 999passed ✅1
src/util/assertUtil.spec.ts: assertDefined > should not throw if value is defined: truepassed ✅0
src/util/assertUtil.spec.ts: assertDefined > should not throw if value is defined: falsepassed ✅0
src/util/assertUtil.spec.ts: assertDefined > should not throw if value is defined: 2025-02-06T17:42:02.469Zpassed ✅0
src/util/assertUtil.spec.ts: assertDefined > should throw an error for null or undefined values: nullpassed ✅1
src/util/assertUtil.spec.ts: assertDefined > should throw an error for null or undefined values: undefinedpassed ✅1
src/util/promiseUtils.spec.ts: waitFor > should return a Promise that resolves after a given timeoutpassed ✅4
src/util/promiseUtils.spec.ts: withResolvers > should return a promise that resolves when resolve function is calledpassed ✅2
src/util/promiseUtils.spec.ts: withResolvers > should return a promise that rejects when reject function is calledpassed ✅0
src/util/serverUtils.spec.ts: getInitialServerStates > should derive server states from configpassed ✅4
src/util/serverUtils.spec.ts: getPipServerUrl > should return a localhost url based on given portpassed ✅1
src/util/serverUtils.spec.ts: parsePort > should parse port from stringpassed ✅0
src/util/serverUtils.spec.ts: parsePort > should throw error when port is not a numberpassed ✅1
src/util/tmpUtils.spec.ts: getTempDir > should create temp directory if it does not already exist: true, undefinedpassed ✅4
src/util/tmpUtils.spec.ts: getTempDir > should create temp directory if it does not already exist: true, subDirectorypassed ✅1
src/util/tmpUtils.spec.ts: getTempDir > should create temp directory if it does not already exist: false, undefinedpassed ✅0
src/util/tmpUtils.spec.ts: getTempDir > should create temp directory if it does not already exist: false, subDirectorypassed ✅1
src/util/tmpUtils.spec.ts: getTempDir > should remove directory if recreate is true: true, undefined, /home/runner/work/vscode-deephaven/vscode-deephaven/src/common/tmppassed ✅1
src/util/tmpUtils.spec.ts: getTempDir > should remove directory if recreate is true: true, subDirectory, /home/runner/work/vscode-deephaven/vscode-deephaven/src/common/tmp/subDirectorypassed ✅3
src/util/tmpUtils.spec.ts: getTempDir > should remove directory if recreate is true: false, undefined, /home/runner/work/vscode-deephaven/vscode-deephaven/src/common/tmppassed ✅0
src/util/tmpUtils.spec.ts: getTempDir > should remove directory if recreate is true: false, subDirectory, /home/runner/work/vscode-deephaven/vscode-deephaven/src/common/tmp/subDirectorypassed ✅1
src/util/treeViewUtils.spec.ts: getPanelConnectionTreeItem > should return panel connection tree item: isConnected:true, isInitialized:truepassed ✅5
src/util/treeViewUtils.spec.ts: getPanelConnectionTreeItem > should return panel connection tree item: isConnected:true, isInitialized:falsepassed ✅1
src/util/treeViewUtils.spec.ts: getPanelConnectionTreeItem > should return panel connection tree item: isConnected:false, isInitialized:truepassed ✅0
src/util/treeViewUtils.spec.ts: getPanelConnectionTreeItem > should return panel connection tree item: isConnected:false, isInitialized:falsepassed ✅1
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:deephaven.plot.express.DeephavenFigurepassed ✅1
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:deephaven.ui.Elementpassed ✅1
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:Figurepassed ✅0
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:HierarchicalTablepassed ✅1
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:OtherWidgetpassed ✅1
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:pandas.DataFramepassed ✅0
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:PartitionedTablepassed ✅1
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:Tablepassed ✅0
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:TableMappassed ✅1
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:Treemappassed ✅0
src/util/treeViewUtils.spec.ts: getPanelVariableTreeItem > should return panel variable tree item: type:TreeTablepassed ✅1
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=true, isManaged=true, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=true, isManaged=true, isRunning=falsepassed ✅1
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=true, isManaged=false, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=true, isManaged=false, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=false, isManaged=true, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=false, isManaged=true, isRunning=falsepassed ✅1
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=false, isManaged=false, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerContextValue > should return contextValue based on server state: isConnected=false, isManaged=false, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=0, isManaged=true, label=some labelpassed ✅0
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=0, isManaged=true, label=undefinedpassed ✅1
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=0, isManaged=false, label=some labelpassed ✅1
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=0, isManaged=false, label=undefinedpassed ✅0
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=1, isManaged=true, label=some labelpassed ✅0
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=1, isManaged=true, label=undefinedpassed ✅0
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=1, isManaged=false, label=some labelpassed ✅0
src/util/treeViewUtils.spec.ts: getServerDescription > should return server description based on parameters: connectionCount=1, isManaged=false, label=undefinedpassed ✅0
src/util/treeViewUtils.spec.ts: getServerGroupContextValue > should return context value when servers can be managed: group=Managed, canStartServer=truepassed ✅1
src/util/treeViewUtils.spec.ts: getServerGroupContextValue > should return context value when servers can be managed: group=Managed, canStartServer=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerGroupContextValue > should return context value when servers can be managed: group=Running, canStartServer=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerGroupContextValue > should return context value when servers can be managed: group=Running, canStartServer=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerGroupTreeItem > should return server group tree item: group=Managed, canStartServer=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerGroupTreeItem > should return server group tree item: group=Managed, canStartServer=falsepassed ✅1
src/util/treeViewUtils.spec.ts: getServerGroupTreeItem > should return server group tree item: group=Running, canStartServer=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerGroupTreeItem > should return server group tree item: group=Running, canStartServer=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=true, isManaged=true, isRunning=truepassed ✅1
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=true, isManaged=true, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=true, isManaged=false, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=true, isManaged=false, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=false, isManaged=true, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=false, isManaged=true, isRunning=falsepassed ✅1
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=false, isManaged=false, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerIconID > should return icon id based on server state: isConnected=false, isManaged=false, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=true, isManaged=true, isRunning=truepassed ✅1
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=true, isManaged=true, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=true, isManaged=false, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=true, isManaged=false, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=false, isManaged=true, isRunning=truepassed ✅1
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=false, isManaged=true, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=false, isManaged=false, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHC, isConnected=false, isManaged=false, isRunning=falsepassed ✅1
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=true, isManaged=true, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=true, isManaged=true, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=true, isManaged=false, isRunning=truepassed ✅1
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=true, isManaged=false, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=false, isManaged=true, isRunning=truepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=false, isManaged=true, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=false, isManaged=false, isRunning=truepassed ✅1
src/util/treeViewUtils.spec.ts: getServerTreeItem > should return server tree item: type=DHE, isConnected=false, isManaged=false, isRunning=falsepassed ✅0
src/util/treeViewUtils.spec.ts: getVariableIconPath > should return icon path for variableTypepassed ✅1
src/util/treeViewUtils.spec.ts: groupServers > should group servers by statepassed ✅0
src/util/uiUtils.spec.ts: createConnectionOption > should return connection option: 'DHC', { label: 'python', url: URL{} }passed ✅3
src/util/uiUtils.spec.ts: createConnectionOption > should return connection option: 'DHC', { label: 'groovy', url: URL{} }passed ✅0
src/util/uiUtils.spec.ts: createConnectionQuickPickOptions > should return quick pick options: editorActiveConnectionUrl=No activepassed ✅13
src/util/uiUtils.spec.ts: createConnectionQuickPickOptions > should return quick pick options: editorActiveConnectionUrl=Active Apassed ✅1
src/util/uiUtils.spec.ts: createConnectionQuickPickOptions > should throw if no servers or connectionspassed ✅2
src/util/uiUtils.spec.ts: createConnectText > should return text and tooltip: 'connecting'passed ✅0
src/util/uiUtils.spec.ts: createConnectText > should return text and tooltip: 'connected'passed ✅0
src/util/uiUtils.spec.ts: createConnectText > should return text and tooltip: 'disconnected'passed ✅1
src/util/uiUtils.spec.ts: updateConnectionStatusBarItem > should update connection status bar item: 'connecting'passed ✅0
src/util/uiUtils.spec.ts: updateConnectionStatusBarItem > should update connection status bar item: 'connected'passed ✅1
src/util/uiUtils.spec.ts: updateConnectionStatusBarItem > should update connection status bar item: 'disconnected'passed ✅0
src/util/uiUtils.spec.ts: createSeparatorPickItem > should create a separator quick pick item with labelpassed ✅1
src/util/urlUtils.spec.ts: urlUtils > should convert url to host_port string: http://localhost:4000, localhost_4000passed ✅2
src/util/urlUtils.spec.ts: urlUtils > should convert url to host_port string: https://localhost:5000, localhost_5000passed ✅0
src/util/urlUtils.spec.ts: urlUtils > should convert url to host_port string: http://www.acme.com:6000, www_acme_com_6000passed ✅0
src/util/urlUtils.spec.ts: urlUtils > should convert url to host_port string: https://www.acme.com:7000, www_acme_com_7000passed ✅0
A ctrf plugin

Failed Test Summary

No failed tests ✨

Flaky Test Summary

No flaky tests detected. ✨

@bmingles bmingles force-pushed the DH-18191-3_electron-fetch branch from f8f499e to e33489f Compare February 6, 2025 16:12
@bmingles bmingles marked this pull request as ready for review February 6, 2025 16:32
@bmingles bmingles requested a review from mofojed February 6, 2025 16:33
@bmingles bmingles merged commit 36a2c0d into main Feb 10, 2025
3 checks passed
@bmingles bmingles deleted the DH-18191-3_electron-fetch branch February 10, 2025 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants