@@ -19,6 +19,7 @@ import { IFileDialogService } from 'vs/platform/dialogs/common/dialogs';
19
19
import { FileOperation , IFileService } from 'vs/platform/files/common/files' ;
20
20
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation' ;
21
21
import { ILabelService } from 'vs/platform/label/common/label' ;
22
+ import { IStorageService } from 'vs/platform/storage/common/storage' ;
22
23
import { IUndoRedoService , UndoRedoElementType } from 'vs/platform/undoRedo/common/undoRedo' ;
23
24
import { MainThreadWebviewPanels } from 'vs/workbench/api/browser/mainThreadWebviewPanels' ;
24
25
import { MainThreadWebviews , reviveWebviewExtension } from 'vs/workbench/api/browser/mainThreadWebviews' ;
@@ -28,7 +29,7 @@ import { CustomEditorInput } from 'vs/workbench/contrib/customEditor/browser/cus
28
29
import { CustomDocumentBackupData } from 'vs/workbench/contrib/customEditor/browser/customEditorInputFactory' ;
29
30
import { ICustomEditorModel , ICustomEditorService } from 'vs/workbench/contrib/customEditor/common/customEditor' ;
30
31
import { CustomTextEditorModel } from 'vs/workbench/contrib/customEditor/common/customTextEditorModel' ;
31
- import { WebviewExtensionDescription } from 'vs/workbench/contrib/webview/browser/webview' ;
32
+ import { ExtensionKeyedWebviewOriginStore , WebviewExtensionDescription } from 'vs/workbench/contrib/webview/browser/webview' ;
32
33
import { WebviewInput } from 'vs/workbench/contrib/webviewPanel/browser/webviewEditorInput' ;
33
34
import { IWebviewWorkbenchService } from 'vs/workbench/contrib/webviewPanel/browser/webviewWorkbenchService' ;
34
35
import { editorGroupToColumn } from 'vs/workbench/services/editor/common/editorGroupColumn' ;
@@ -55,11 +56,14 @@ export class MainThreadCustomEditors extends Disposable implements extHostProtoc
55
56
56
57
private readonly _editorRenameBackups = new Map < string , CustomDocumentBackupData > ( ) ;
57
58
59
+ private readonly _webviewOriginStore : ExtensionKeyedWebviewOriginStore ;
60
+
58
61
constructor (
59
62
context : IExtHostContext ,
60
63
private readonly mainThreadWebview : MainThreadWebviews ,
61
64
private readonly mainThreadWebviewPanels : MainThreadWebviewPanels ,
62
65
@IExtensionService extensionService : IExtensionService ,
66
+ @IStorageService storageService : IStorageService ,
63
67
@IWorkingCopyService workingCopyService : IWorkingCopyService ,
64
68
@IWorkingCopyFileService workingCopyFileService : IWorkingCopyFileService ,
65
69
@ICustomEditorService private readonly _customEditorService : ICustomEditorService ,
@@ -69,6 +73,8 @@ export class MainThreadCustomEditors extends Disposable implements extHostProtoc
69
73
) {
70
74
super ( ) ;
71
75
76
+ this . _webviewOriginStore = new ExtensionKeyedWebviewOriginStore ( 'mainThreadCustomEditors.origins' , storageService ) ;
77
+
72
78
this . _proxyCustomEditors = context . getProxy ( extHostProtocol . ExtHostContext . ExtHostCustomEditors ) ;
73
79
74
80
this . _register ( workingCopyFileService . registerWorkingCopyProvider ( ( editorResource ) => {
@@ -134,6 +140,8 @@ export class MainThreadCustomEditors extends Disposable implements extHostProtoc
134
140
const handle = webviewInput . id ;
135
141
const resource = webviewInput . resource ;
136
142
143
+ webviewInput . webview . origin = this . _webviewOriginStore . getOrigin ( viewType , extension . id ) ;
144
+
137
145
this . mainThreadWebviewPanels . addWebviewInput ( handle , webviewInput , { serializeBuffersForPostMessage } ) ;
138
146
webviewInput . webview . options = options ;
139
147
webviewInput . webview . extension = extension ;
0 commit comments