mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-17 23:35:54 +01:00
Avoid re-parsing uri
This commit is contained in:
@@ -195,11 +195,9 @@ export class CodeApplication extends Disposable {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const isAllowedWebviewRequest = (details: Electron.OnBeforeRequestListenerDetails): boolean => {
|
const isAllowedWebviewRequest = (uri: URI, details: Electron.OnBeforeRequestListenerDetails): boolean => {
|
||||||
const url = URI.parse(details.url);
|
|
||||||
|
|
||||||
// Only restrict top level page of webviews: index.html
|
// Only restrict top level page of webviews: index.html
|
||||||
if (url.path !== '/index.html') {
|
if (uri.path !== '/index.html') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,9 +220,8 @@ export class CodeApplication extends Disposable {
|
|||||||
|
|
||||||
session.defaultSession.webRequest.onBeforeRequest((details, callback) => {
|
session.defaultSession.webRequest.onBeforeRequest((details, callback) => {
|
||||||
const uri = URI.parse(details.url);
|
const uri = URI.parse(details.url);
|
||||||
|
|
||||||
if (uri.scheme === Schemas.vscodeWebview) {
|
if (uri.scheme === Schemas.vscodeWebview) {
|
||||||
if (!isAllowedWebviewRequest(details)) {
|
if (!isAllowedWebviewRequest(uri, details)) {
|
||||||
this.logService.error('Blocked vscode-webview request', details.url);
|
this.logService.error('Blocked vscode-webview request', details.url);
|
||||||
return callback({ cancel: true });
|
return callback({ cancel: true });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user