Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
a60a8aef
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a60a8aef
编写于
7月 14, 2019
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Introduce request handler in web api
上级
c0e7048e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
18 addition
and
5 deletion
+18
-5
src/vs/workbench/browser/web.main.ts
src/vs/workbench/browser/web.main.ts
+7
-2
src/vs/workbench/services/request/browser/requestService.ts
src/vs/workbench/services/request/browser/requestService.ts
+4
-0
src/vs/workbench/workbench.main.ts
src/vs/workbench/workbench.main.ts
+0
-3
src/vs/workbench/workbench.web.api.ts
src/vs/workbench/workbench.web.api.ts
+7
-0
未找到文件。
src/vs/workbench/browser/web.main.ts
浏览文件 @
a60a8aef
...
...
@@ -40,6 +40,8 @@ import { joinPath } from 'vs/base/common/resources';
import
{
BrowserStorageService
}
from
'
vs/platform/storage/browser/storageService
'
;
import
{
IStorageService
}
from
'
vs/platform/storage/common/storage
'
;
import
{
getThemeTypeSelector
,
DARK
,
HIGH_CONTRAST
,
LIGHT
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
IRequestService
}
from
'
vs/platform/request/common/request
'
;
import
{
WebRequestService
as
RequestService
}
from
'
vs/workbench/services/request/browser/requestService
'
;
class
CodeRendererMain
extends
Disposable
{
...
...
@@ -160,7 +162,7 @@ class CodeRendererMain extends Disposable {
fileService
.
registerProvider
(
Schemas
.
userData
,
userDataProvider
);
}
const
services
=
await
Promise
.
all
([
const
[
configurationService
,
storageService
]
=
await
Promise
.
all
([
this
.
createWorkspaceService
(
payload
,
environmentService
,
fileService
,
remoteAgentService
,
logService
).
then
(
service
=>
{
// Workspace
...
...
@@ -181,7 +183,10 @@ class CodeRendererMain extends Disposable {
})
]);
return
{
serviceCollection
,
logService
,
storageService
:
services
[
1
]
};
// Request Service
serviceCollection
.
set
(
IRequestService
,
new
RequestService
(
this
.
configuration
.
requestHandler
,
remoteAgentService
,
configurationService
,
logService
));
return
{
serviceCollection
,
logService
,
storageService
};
}
private
async
createStorageService
(
payload
:
IWorkspaceInitializationPayload
,
environmentService
:
IWorkbenchEnvironmentService
,
fileService
:
IFileService
,
logService
:
ILogService
):
Promise
<
BrowserStorageService
>
{
...
...
src/vs/workbench/services/request/browser/requestService.ts
浏览文件 @
a60a8aef
...
...
@@ -16,6 +16,7 @@ export class WebRequestService extends RequestService {
private
readonly
remoteRequestChannel
:
RequestChannelClient
|
null
;
constructor
(
private
readonly
requestHandler
:
((
options
:
IRequestOptions
)
=>
Promise
<
IRequestContext
>
)
|
undefined
,
@
IRemoteAgentService
remoteAgentService
:
IRemoteAgentService
,
@
IConfigurationService
configurationService
:
IConfigurationService
,
@
ILogService
logService
:
ILogService
...
...
@@ -26,6 +27,9 @@ export class WebRequestService extends RequestService {
}
async
request
(
options
:
IRequestOptions
,
token
:
CancellationToken
):
Promise
<
IRequestContext
>
{
if
(
this
.
requestHandler
)
{
return
this
.
requestHandler
(
options
);
}
try
{
const
context
=
await
super
.
request
(
options
,
token
);
if
(
this
.
remoteRequestChannel
&&
context
.
res
.
statusCode
===
405
)
{
...
...
src/vs/workbench/workbench.main.ts
浏览文件 @
a60a8aef
...
...
@@ -68,8 +68,6 @@ import { IExtensionGalleryService } from 'vs/platform/extensionManagement/common
import
{
IContextViewService
}
from
'
vs/platform/contextview/browser/contextView
'
;
import
{
ContextViewService
}
from
'
vs/platform/contextview/browser/contextViewService
'
;
import
{
ExtensionGalleryService
}
from
'
vs/platform/extensionManagement/node/extensionGalleryService
'
;
import
{
IRequestService
}
from
'
vs/platform/request/common/request
'
;
import
{
RequestService
}
from
'
vs/platform/request/browser/requestService
'
;
import
{
LifecycleService
}
from
'
vs/platform/lifecycle/electron-browser/lifecycleService
'
;
import
{
ILifecycleService
}
from
'
vs/platform/lifecycle/common/lifecycle
'
;
import
{
ILocalizationsService
}
from
'
vs/platform/localizations/common/localizations
'
;
...
...
@@ -154,7 +152,6 @@ registerSingleton(ITextResourceConfigurationService, TextResourceConfigurationSe
registerSingleton
(
IAccessibilityService
,
AccessibilityService
,
true
);
registerSingleton
(
IContextViewService
,
ContextViewService
,
true
);
registerSingleton
(
IExtensionGalleryService
,
ExtensionGalleryService
,
true
);
registerSingleton
(
IRequestService
,
RequestService
,
true
);
registerSingleton
(
ILifecycleService
,
LifecycleService
);
registerSingleton
(
ILocalizationsService
,
LocalizationsService
);
registerSingleton
(
ISharedProcessService
,
SharedProcessService
,
true
);
...
...
src/vs/workbench/workbench.web.api.ts
浏览文件 @
a60a8aef
...
...
@@ -7,6 +7,7 @@ import 'vs/workbench/workbench.web.main';
import
{
main
}
from
'
vs/workbench/browser/web.main
'
;
import
{
UriComponents
}
from
'
vs/base/common/uri
'
;
import
{
IFileSystemProvider
}
from
'
vs/platform/files/common/files
'
;
import
{
IRequestOptions
,
IRequestContext
}
from
'
vs/platform/request/common/request
'
;
export
interface
IWorkbenchConstructionOptions
{
...
...
@@ -37,6 +38,12 @@ export interface IWorkbenchConstructionOptions {
* state like settings, keybindings, UI state (e.g. opened editors) and snippets.
*/
userDataProvider
?:
IFileSystemProvider
;
/**
* Experimental: Optional request handler to handle http requests.
* In case not provided, workbench uses <code>XMLHttpRequest</code>.
*/
requestHandler
?:
(
requestOptions
:
IRequestOptions
)
=>
Promise
<
IRequestContext
>
;
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录