diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 2cfff0cea1a..9159859427b 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -33,8 +33,8 @@ declare module 'vscode' { export namespace workspace { export function registerRemoteAuthorityResolver(authorityPrefix: string, resolver: RemoteAuthorityResolver): Disposable; - } + //#endregion diff --git a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts index 03b880ecec2..2c740a314d4 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts @@ -30,8 +30,6 @@ import { IPartService, Parts } from 'vs/workbench/services/part/common/partServi @extHostNamedCustomer(MainContext.MainThreadWebviews) export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviver { - _serviceBrand: any; - private static readonly viewType = 'mainThreadWebview'; private static readonly standardSupportedLinkSchemes = ['http', 'https', 'mailto']; @@ -352,7 +350,7 @@ export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviv } } - public getWebview(handle: WebviewPanelHandle): WebviewEditorInput { + private getWebview(handle: WebviewPanelHandle): WebviewEditorInput { const webview = this._webviews.get(handle); if (!webview) { throw new Error('Unknown webview handle:' + handle); diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 4dad35ff4de..68596ed1466 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -505,18 +505,6 @@ export interface ExtHostWebviewsShape { $deserializeWebviewPanel(newWebviewHandle: WebviewPanelHandle, viewType: string, title: string, state: any, position: EditorViewColumn, options: vscode.WebviewOptions): Promise; } -// export type CodeInsetWebviewHandle = string; - -// export interface ExtHostCodeInsetWebviewsShape { -// } - -// export interface ExtHostCodeInsetWebviewShape extends IDisposable { -// $setHtml(handle: WebviewPanelHandle, value: string): void; -// $setOptions(handle: WebviewPanelHandle, options: vscode.WebviewOptions): void; -// $postMessage(handle: WebviewPanelHandle, value: any): Promise; -// } - - export interface MainThreadUrlsShape extends IDisposable { $registerUriHandler(handle: number, extensionId: ExtensionIdentifier): Promise; $unregisterUriHandler(handle: number): Promise; @@ -1179,7 +1167,6 @@ export const ExtHostContext = { ExtHostWorkspace: createExtId('ExtHostWorkspace'), ExtHostWindow: createExtId('ExtHostWindow'), ExtHostWebviews: createExtId('ExtHostWebviews'), - // ExtHostCodeInsetWebviews: createExtId('ExtHostWebviews'), ExtHostProgress: createMainId('ExtHostProgress'), ExtHostComments: createMainId('ExtHostComments'), ExtHostStorage: createMainId('ExtHostStorage'), diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index ecd56ea3c18..5afbf25903d 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -1134,16 +1134,16 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { registerCodeInsetProvider(extension: IExtensionDescription, selector: vscode.DocumentSelector, provider: vscode.CodeInsetProvider): vscode.Disposable { const handle = this._nextHandle(); - // const eventHandle = typeof provider.onDidChangeCodeInsets === 'function' ? this._nextHandle() : undefined; + const eventHandle = typeof provider.onDidChangeCodeInsets === 'function' ? this._nextHandle() : undefined; this._adapter.set(handle, new AdapterData(new CodeInsetAdapter(this._documents, this._heapService, provider), extension)); - this._proxy.$registerCodeInsetSupport(handle, this._transformDocumentSelector(selector), undefined); + this._proxy.$registerCodeInsetSupport(handle, this._transformDocumentSelector(selector), eventHandle); let result = this._createDisposable(handle); - // if (eventHandle !== undefined) { - // const subscription = provider.onDidChangeCodeInsets(_ => this._proxy.$emitCodeLensEvent(eventHandle)); - // result = Disposable.from(result, subscription); - // } + if (eventHandle !== undefined) { + const subscription = provider.onDidChangeCodeInsets(_ => this._proxy.$emitCodeLensEvent(eventHandle)); + result = Disposable.from(result, subscription); + } return result; } diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index f70a2acbe2b..625ba1018ee 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -1140,12 +1140,10 @@ export class CodeLens { export class CodeInset { range: Range; - isResolved: boolean; height?: number; constructor(range: Range, height?: number) { this.range = range; - this.isResolved = false; this.height = height; } } diff --git a/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js b/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js index 36d3759320d..5fb945732cc 100644 --- a/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js +++ b/src/vs/workbench/contrib/webview/electron-browser/webview-pre.js @@ -243,7 +243,7 @@ delete window.frameElement; `; - newDocument.head.prepend(defaultScript); + newDocument.head.prepend(defaultScript, newDocument.head.firstChild); } // apply default styles diff --git a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts index 62ec513e1d5..4f2604715a0 100644 --- a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts @@ -13,12 +13,12 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import * as colorRegistry from 'vs/platform/theme/common/colorRegistry'; import { DARK, ITheme, IThemeService, LIGHT } from 'vs/platform/theme/common/themeService'; import { registerFileProtocol, WebviewProtocol } from 'vs/workbench/contrib/webview/electron-browser/webviewProtocols'; +import { areWebviewInputOptionsEqual } from './webviewEditorService'; import { WebviewFindWidget } from './webviewFindWidget'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { endsWith } from 'vs/base/common/strings'; import { isMacintosh } from 'vs/base/common/platform'; -import { equals } from 'vs/base/common/arrays'; export interface WebviewOptions { readonly allowSvgs?: boolean; @@ -33,20 +33,6 @@ export interface WebviewContentOptions { readonly disableFindView?: boolean; } - -export function areWebviewContentOptionsEqual(a: WebviewContentOptions, b: WebviewContentOptions): boolean { - const sameArray = (a1: ReadonlyArray, a2: ReadonlyArray) => - (a.localResourceRoots === b.localResourceRoots - || (Array.isArray(a.localResourceRoots) && Array.isArray(b.localResourceRoots) - && equals(a.localResourceRoots, b.localResourceRoots, (a, b) => a.toString() === b.toString()))); - - return a.allowScripts === b.allowScripts - && a.disableFindView === b.disableFindView - && sameArray(a.svgWhiteList, b.svgWhiteList) - && sameArray(a.localResourceRoots, b.localResourceRoots); -} - - interface IKeydownEvent { key: string; keyCode: number; @@ -263,7 +249,6 @@ export class WebviewElement extends Disposable { this._webview.setAttribute('partition', `webview${Date.now()}`); this._webview.setAttribute('webpreferences', 'contextIsolation=yes'); - this._webview.setAttribute('autosize', 'on'); this._webview.style.flex = '0 1'; this._webview.style.width = '0'; @@ -417,7 +402,7 @@ export class WebviewElement extends Disposable { } public set options(value: WebviewContentOptions) { - if (this._contentOptions && areWebviewContentOptionsEqual(value, this._contentOptions)) { + if (this._contentOptions && areWebviewInputOptionsEqual(value, this._contentOptions)) { return; } @@ -439,7 +424,7 @@ export class WebviewElement extends Disposable { } public update(value: string, options: WebviewContentOptions, retainContextWhenHidden: boolean) { - if (retainContextWhenHidden && value === this._contents && this._contentOptions && areWebviewContentOptionsEqual(options, this._contentOptions)) { + if (retainContextWhenHidden && value === this._contents && this._contentOptions && areWebviewInputOptionsEqual(options, this._contentOptions)) { return; } this._contents = value;