当所有扩展都被禁用时,这个问题是否会发生?:是的(除了Live Share)
- 版本:1.85.0
- 提交:af28b32
- 日期:2023-12-06T17:43:36.790Z(6天前)
- 浏览器:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
- Live Share:v1.0.5900
重现步骤:
- Live Share:登录
- 尝试连接到一个Live Share会话(点击加入,登录,然后粘贴邀请链接)
- 窗口重新加载,开始打开实时共享工作区,呈现一个工作区信任模态,要求我信任
/tmp/vsliveshare-workspace-tmp-<stuff>/Visual Studio Live Share (Workspace)
。点击“是,我信任作者”。VS Code记录异常并停止打开工作区。 <-- 这里就是问题所在,我本以为它会打开工作区并连接 - 使用开发者:重新加载窗口
- 在重新加载后,我们进入受限模式,顶部有一个横幅“受限模式旨在安全浏览代码...”。点击管理,然后信任。这次没有异常。
- 再重新加载一次,现在我们能够连接。
这是异常信息:
ERR Cannot read properties of undefined (reading 'scheme'): TypeError: Cannot read properties of undefined (reading 'scheme')
at h.P (.../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:2605:167197)
at .../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:2605:171789
at Array.map (<anonymous>)
at h.setUrisTrust (.../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:2605:171777)
at h.setWorkspaceTrust (.../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:2605:171570)
at m.completeWorkspaceTrustRequest (.../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:2605:173655)
at Object.run (.../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:2690:68778)
at c.f (.../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:633:42862)
at c.prompt (.../stable-af28b32d7e553898b2a91af498b1fb666fdebe0c/static/out/vs/workbench/workbench.web.main.js:766:23881)
看起来这里的uris
中的一个是undefined
:
vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.ts
第620行 in af28b32
| this.doSetUrisTrust(awaitPromise.all(uris.map(uri=>this.getCanonicalUri(uri))),trusted); |
也许这运行得太早了,或者在工作区的文件夹完全初始化之前?
我觉得我以前见过其他情况,如果我点击得太快,我需要多次信任一个工作区才能成功。但这是最可重复的。你只需要做的就是在托管实时共享协作会话的窗口中停止它,然后启动一个新的窗口 - 这将为你加入的协作者提供一个全新的(未受信任的)工作区。这使得测试变得非常容易。
1条答案
按热度按时间fdx2calv1#
@sbatten, 我知道你在实施工作区信任时一直在查看Live Share,请你看一下这个。