Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
deno
提交
1052f8d0
D
deno
项目概览
张重言
/
deno
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
deno
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1052f8d0
编写于
9月 05, 2018
作者:
P
Parsa Ghadimi
提交者:
Ryan Dahl
9月 06, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Check allow-net in fetch
上级
1e709aa3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
25 addition
and
6 deletion
+25
-6
js/fetch.ts
js/fetch.ts
+4
-4
js/fetch_test.ts
js/fetch_test.ts
+13
-1
src/handlers.rs
src/handlers.rs
+8
-1
未找到文件。
js/fetch.ts
浏览文件 @
1052f8d0
...
...
@@ -166,8 +166,7 @@ class FetchRequest {
fbs
.
FetchReq
.
addId
(
builder
,
this
.
id
);
fbs
.
FetchReq
.
addUrl
(
builder
,
url
);
const
msg
=
fbs
.
FetchReq
.
endFetchReq
(
builder
);
const
res
=
send
(
builder
,
fbs
.
Any
.
FetchReq
,
msg
);
assert
(
res
==
null
);
send
(
builder
,
fbs
.
Any
.
FetchReq
,
msg
);
}
}
...
...
@@ -177,7 +176,7 @@ export function fetch(
):
Promise
<
Response
>
{
const
fetchReq
=
new
FetchRequest
(
input
as
string
);
const
response
=
fetchReq
.
response
;
return
new
Promise
((
resolve
,
reject
)
=>
{
const
promise
=
new
Promise
<
Response
>
((
resolve
,
reject
)
=>
{
response
.
onHeader
=
(
response
:
FetchResponse
)
=>
{
log
(
"
onHeader
"
);
resolve
(
response
);
...
...
@@ -186,6 +185,7 @@ export function fetch(
log
(
"
onError
"
,
error
);
reject
(
error
);
};
fetchReq
.
start
();
});
fetchReq
.
start
();
return
promise
;
}
js/fetch_test.ts
浏览文件 @
1052f8d0
// Copyright 2018 the Deno authors. All rights reserved. MIT license.
import
{
test
Perm
,
assertEqual
}
from
"
./test_util.ts
"
;
import
{
test
,
testPerm
,
assert
,
assertEqual
}
from
"
./test_util.ts
"
;
import
*
as
deno
from
"
deno
"
;
testPerm
({
net
:
true
},
async
function
fetchJsonSuccess
()
{
...
...
@@ -7,3 +7,15 @@ testPerm({ net: true }, async function fetchJsonSuccess() {
const
json
=
await
response
.
json
();
assertEqual
(
json
.
name
,
"
deno
"
);
});
test
(
async
function
fetchPerm
()
{
let
err
;
try
{
await
fetch
(
"
http://localhost:4545/package.json
"
);
}
catch
(
err_
)
{
err
=
err_
;
}
// TODO assert(err instanceof deno.PermissionDenied).
assert
(
err
);
assertEqual
(
err
.
name
,
"
deno.PermissionDenied
"
);
});
src/handlers.rs
浏览文件 @
1052f8d0
...
...
@@ -289,10 +289,17 @@ fn handle_fetch_req(
base
:
msg
::
Base
,
_
builder
:
&
mut
FlatBufferBuilder
,
)
->
HandlerResult
{
let
deno
=
from_c
(
d
);
if
!
deno
.flags.allow_net
{
let
err
=
std
::
io
::
Error
::
new
(
std
::
io
::
ErrorKind
::
PermissionDenied
,
"allow_net is off."
,
);
return
Err
(
err
.into
());
}
let
msg
=
base
.msg_as_fetch_req
()
.unwrap
();
let
id
=
msg
.id
();
let
url
=
msg
.url
()
.unwrap
();
let
deno
=
from_c
(
d
);
let
url
=
url
.parse
::
<
hyper
::
Uri
>
()
.unwrap
();
let
client
=
Client
::
new
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录