Compare commits
3 Commits
5808428879
...
afe5aedfef
Author | SHA1 | Date |
---|---|---|
chriswang521 | afe5aedfef | |
chriswang521 | 08cd478fed | |
chriswang521 | 0fc07841bc |
|
@ -114,7 +114,7 @@
|
||||||
|
|
||||||
2. 安装指定版本nodejs:
|
2. 安装指定版本nodejs:
|
||||||
|
|
||||||
版本要求:>=16.14.x and <17
|
版本要求:>=18.15.x and <19
|
||||||
|
|
||||||
获取地址:https://nodejs.org/dist/
|
获取地址:https://nodejs.org/dist/
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "kylin-code-dev",
|
"name": "kylin-code-dev",
|
||||||
"IDEVersion": "0.1.3",
|
"IDEVersion": "0.2.0",
|
||||||
"version": "1.68.0",
|
"version": "1.68.0",
|
||||||
"distro": "2966cd72fc1a3a5fb89bf2d85a1a66e56206961a",
|
"distro": "2966cd72fc1a3a5fb89bf2d85a1a66e56206961a",
|
||||||
"author": {
|
"author": {
|
||||||
|
|
|
@ -163,7 +163,7 @@ export class OpenerService implements IOpenerService {
|
||||||
// validate against the original URI that this URI resolves to, if one exists
|
// validate against the original URI that this URI resolves to, if one exists
|
||||||
const validationTarget = this._resolvedUriTargets.get(targetURI) ?? target;
|
const validationTarget = this._resolvedUriTargets.get(targetURI) ?? target;
|
||||||
for (const validator of this._validators) {
|
for (const validator of this._validators) {
|
||||||
if (!(await validator.shouldOpen(validationTarget))) {
|
if (!(await validator.shouldOpen(validationTarget, options))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -246,7 +246,7 @@ export class LinkDetector extends Disposable implements IEditorContribution {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.openerService.open(uri, { openToSide, fromUserGesture, allowContributedOpeners: true, allowCommands: true });
|
return this.openerService.open(uri, { openToSide, fromUserGesture, allowContributedOpeners: true, allowCommands: true, fromWorkspace: true });
|
||||||
|
|
||||||
}, err => {
|
}, err => {
|
||||||
const messageOrError =
|
const messageOrError =
|
||||||
|
|
|
@ -41,6 +41,7 @@ export type OpenExternalOptions = {
|
||||||
readonly openExternal?: boolean;
|
readonly openExternal?: boolean;
|
||||||
readonly allowTunneling?: boolean;
|
readonly allowTunneling?: boolean;
|
||||||
readonly allowContributedOpeners?: boolean | string;
|
readonly allowContributedOpeners?: boolean | string;
|
||||||
|
readonly fromWorkspace?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type OpenOptions = OpenInternalOptions & OpenExternalOptions;
|
export type OpenOptions = OpenInternalOptions & OpenExternalOptions;
|
||||||
|
@ -61,7 +62,7 @@ export interface IExternalOpener {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IValidator {
|
export interface IValidator {
|
||||||
shouldOpen(resource: URI | string): Promise<boolean>;
|
shouldOpen(resource: URI | string, openOptions?: OpenOptions): Promise<boolean>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IExternalUriResolver {
|
export interface IExternalUriResolver {
|
||||||
|
|
|
@ -89,7 +89,7 @@ export class MainThreadWebviews extends Disposable implements extHostProtocol.Ma
|
||||||
private onDidClickLink(handle: extHostProtocol.WebviewHandle, link: string): void {
|
private onDidClickLink(handle: extHostProtocol.WebviewHandle, link: string): void {
|
||||||
const webview = this.getWebview(handle);
|
const webview = this.getWebview(handle);
|
||||||
if (this.isSupportedLink(webview, URI.parse(link))) {
|
if (this.isSupportedLink(webview, URI.parse(link))) {
|
||||||
this._openerService.open(link, { fromUserGesture: true, allowContributedOpeners: true, allowCommands: true });
|
this._openerService.open(link, { fromUserGesture: true, allowContributedOpeners: true, allowCommands: true, fromWorkspace: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -713,7 +713,7 @@ var requirejs = (function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (linkToOpen) {
|
if (linkToOpen) {
|
||||||
this.openerService.open(linkToOpen, { fromUserGesture: true, allowCommands: false });
|
this.openerService.open(linkToOpen, { fromUserGesture: true, allowCommands: false, fromWorkspace: true });
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import Severity from 'vs/base/common/severity';
|
||||||
import { URI } from 'vs/base/common/uri';
|
import { URI } from 'vs/base/common/uri';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||||
import { IOpenerService, matchesScheme } from 'vs/platform/opener/common/opener';
|
import { IOpenerService, matchesScheme, OpenOptions } from 'vs/platform/opener/common/opener';
|
||||||
import { IProductService } from 'vs/platform/product/common/productService';
|
import { IProductService } from 'vs/platform/product/common/productService';
|
||||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||||
|
@ -45,7 +45,7 @@ export class OpenerValidatorContributions implements IWorkbenchContribution {
|
||||||
@IConfigurationService private readonly _configurationService: IConfigurationService,
|
@IConfigurationService private readonly _configurationService: IConfigurationService,
|
||||||
@IWorkspaceTrustManagementService private readonly _workspaceTrustService: IWorkspaceTrustManagementService,
|
@IWorkspaceTrustManagementService private readonly _workspaceTrustService: IWorkspaceTrustManagementService,
|
||||||
) {
|
) {
|
||||||
this._openerService.registerValidator({ shouldOpen: r => this.validateLink(r) });
|
this._openerService.registerValidator({ shouldOpen: (uri, options) => this.validateLink(uri, options) });
|
||||||
|
|
||||||
this._readAuthenticationTrustedDomainsResult = new IdleValue(() =>
|
this._readAuthenticationTrustedDomainsResult = new IdleValue(() =>
|
||||||
this._instantiationService.invokeFunction(readAuthenticationTrustedDomains));
|
this._instantiationService.invokeFunction(readAuthenticationTrustedDomains));
|
||||||
|
@ -64,12 +64,12 @@ export class OpenerValidatorContributions implements IWorkbenchContribution {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async validateLink(resource: URI | string): Promise<boolean> {
|
async validateLink(resource: URI | string, openOptions?: OpenOptions): Promise<boolean> {
|
||||||
if (!matchesScheme(resource, Schemas.http) && !matchesScheme(resource, Schemas.https)) {
|
if (!matchesScheme(resource, Schemas.http) && !matchesScheme(resource, Schemas.https)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._workspaceTrustService.isWorkspaceTrusted() && !this._configurationService.getValue('workbench.trustedDomains.promptInTrustedWorkspace')) {
|
if (openOptions?.fromWorkspace && this._workspaceTrustService.isWorkspaceTrusted() && !this._configurationService.getValue('workbench.trustedDomains.promptInTrustedWorkspace')) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue