Merge pull request #3895 from cdr/jsjoeio-fix-webview-uri

fix(lib/vscode): patch authority in asWebviewUri
This commit is contained in:
Joe Previte 2021-08-05 16:47:35 -07:00 committed by GitHub
commit f75edc26b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View File

@ -55,9 +55,12 @@ export function asWebviewUri(
}); });
} }
// NOTE@coder: Add the port separately because if the port is in the domain the
// URL will be invalid and the browser will not request it.
const authorityUrl = new URL(`${resource.scheme}://${resource.authority}`);
return URI.from({ return URI.from({
scheme: Schemas.https, scheme: Schemas.https,
authority: `${resource.scheme}+${resource.authority}.${webviewRootResourceAuthority}`, authority: `${resource.scheme}+${authorityUrl.hostname}.${webviewRootResourceAuthority}${authorityUrl.port ? (':' + authorityUrl.port) : ''}`,
path: resource.path, path: resource.path,
fragment: resource.fragment, fragment: resource.fragment,
query: resource.query, query: resource.query,

View File

@ -256,7 +256,7 @@ async function processResourceRequest(event, requestUrl) {
const firstHostSegment = requestUrl.hostname.slice(0, requestUrl.hostname.length - (resourceBaseAuthority.length + 1)); const firstHostSegment = requestUrl.hostname.slice(0, requestUrl.hostname.length - (resourceBaseAuthority.length + 1));
const scheme = firstHostSegment.split('+', 1)[0]; const scheme = firstHostSegment.split('+', 1)[0];
const authority = firstHostSegment.slice(scheme.length + 1); // may be empty const authority = firstHostSegment.slice(scheme.length + 1) + requestUrl.port ? (':' + requestUrl.port) : ''; // may be empty
for (const parentClient of parentClients) { for (const parentClient of parentClients) {
parentClient.postMessage({ parentClient.postMessage({