Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
8841c6bb
energy
项目概览
energye
/
energy
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
energy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8841c6bb
编写于
3月 14, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
upgrade-dev v2.3.2
上级
0f3f65bd
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
50 addition
and
27 deletion
+50
-27
cef/cef-ipc-browser.go
cef/cef-ipc-browser.go
+10
-5
cef/cef-ipc-render.go
cef/cef-ipc-render.go
+19
-20
cef/cef-types-binary-value.go
cef/cef-types-binary-value.go
+3
-0
cef/cef-types-list-value.go
cef/cef-types-list-value.go
+3
-0
example/dev-test/ipc-event/ipc-event.go
example/dev-test/ipc-event/ipc-event.go
+5
-2
example/dev-test/ipc-event/resources/ipc-event.html
example/dev-test/ipc-event/resources/ipc-event.html
+7
-0
pkgs/json/json.go
pkgs/json/json.go
+3
-0
未找到文件。
cef/cef-ipc-browser.go
浏览文件 @
8841c6bb
...
...
@@ -34,12 +34,15 @@ func (m *ipcBrowserProcess) ipcEmitMessage(browser *ICefBrowser, frame *ICefFram
if
eventCallback
==
nil
{
return
}
var
argsBytes
[]
byte
//参数 字节数组
args
:=
argument
.
GetBinary
(
2
)
size
:=
args
.
GetSize
()
argsBytes
:=
make
([]
byte
,
size
)
args
.
GetData
(
argsBytes
,
0
)
args
.
Free
()
//立即释放掉
if
args
.
IsValid
()
{
size
:=
args
.
GetSize
()
argsBytes
=
make
([]
byte
,
size
)
args
.
GetData
(
argsBytes
,
0
)
args
.
Free
()
//立即释放掉
}
ipcContext
:=
ipc
.
NewContext
(
browser
.
Identifier
(),
frame
.
Identifier
(),
argsBytes
)
argsBytes
=
nil
if
ctxCallback
:=
eventCallback
.
ContextCallback
();
ctxCallback
!=
nil
{
...
...
@@ -68,7 +71,9 @@ func (m *ipcBrowserProcess) ipcEmitMessage(browser *ICefBrowser, frame *ICefFram
replay
.
Clear
()
replyMessage
.
Free
()
}
ipcContext
.
ArgumentList
()
.
Free
()
if
ipcContext
.
ArgumentList
()
!=
nil
{
ipcContext
.
ArgumentList
()
.
Free
()
}
ipcContext
.
Result
(
nil
)
return
}
...
...
cef/cef-ipc-render.go
浏览文件 @
8841c6bb
...
...
@@ -174,29 +174,28 @@ func (m *ipcRenderProcess) ipcEmitExecute(name string, object *ICefV8Value, argu
isFree
=
true
return
}
context
:=
V8ContextRef
.
Current
()
var
messageId
int32
=
0
//回调函数
if
emitCallback
!=
nil
{
//回调函数临时存放到缓存中
messageId
=
ipcRender
.
emitHandler
.
addCallback
(
&
ipcCallback
{
arguments
:
arguments
,
context
:
context
,
function
:
V8ValueRef
.
UnWrap
(
emitCallback
),
})
}
ipcEmitMessage
=
ProcessMessageRef
.
new
(
internalProcessMessageIPCEmit
)
argument
:=
ipcEmitMessage
.
ArgumentList
()
binaryValue
=
BinaryValueRef
.
New
(
args
)
argument
.
SetInt
(
0
,
messageId
)
// 消息id
argument
.
SetString
(
1
,
emitNameValue
)
// 事件名
argument
.
SetBinary
(
2
,
binaryValue
)
// args
frame
:=
context
.
Frame
()
frame
.
SendProcessMessage
(
consts
.
PID_BROWSER
,
ipcEmitMessage
)
args
=
nil
frame
.
Free
()
//context.Free()
}
context
:=
V8ContextRef
.
Current
()
var
messageId
int32
=
0
//回调函数
if
emitCallback
!=
nil
{
//回调函数临时存放到缓存中
messageId
=
ipcRender
.
emitHandler
.
addCallback
(
&
ipcCallback
{
arguments
:
arguments
,
context
:
context
,
function
:
V8ValueRef
.
UnWrap
(
emitCallback
),
})
}
ipcEmitMessage
=
ProcessMessageRef
.
new
(
internalProcessMessageIPCEmit
)
argument
:=
ipcEmitMessage
.
ArgumentList
()
argument
.
SetInt
(
0
,
messageId
)
// 消息id
argument
.
SetString
(
1
,
emitNameValue
)
// 事件名
argument
.
SetBinary
(
2
,
binaryValue
)
// args
frame
:=
context
.
Frame
()
frame
.
SendProcessMessage
(
consts
.
PID_BROWSER
,
ipcEmitMessage
)
frame
.
Free
()
retVal
.
SetResult
(
V8ValueRef
.
NewBool
(
true
))
}
return
...
...
cef/cef-types-binary-value.go
浏览文件 @
8841c6bb
...
...
@@ -64,6 +64,9 @@ func (m *ICefBinaryValue) Instance() uintptr {
}
func
(
m
*
ICefBinaryValue
)
IsValid
()
bool
{
if
m
.
instance
==
nil
{
return
false
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CefBinaryValue_IsValid
)
.
Call
(
m
.
Instance
())
return
api
.
GoBool
(
r1
)
}
...
...
cef/cef-types-list-value.go
浏览文件 @
8841c6bb
...
...
@@ -240,6 +240,9 @@ func (m *ICefListValue) SetValue(index uint32, value *ICefValue) (result bool) {
}
func
(
m
*
ICefListValue
)
SetBinary
(
index
uint32
,
value
*
ICefBinaryValue
)
(
result
bool
)
{
if
value
==
nil
||
value
.
instance
==
nil
{
return
false
}
r1
,
_
,
_
:=
imports
.
Proc
(
internale_CefListValue_SetBinary
)
.
Call
(
m
.
Instance
(),
uintptr
(
index
),
value
.
Instance
())
result
=
api
.
GoBool
(
r1
)
if
result
{
...
...
example/dev-test/ipc-event/ipc-event.go
浏览文件 @
8841c6bb
...
...
@@ -42,8 +42,11 @@ func main() {
go
server
.
StartHttpServer
()
})
ipc
.
Emit
(
""
,
"aaa"
,
"bbb"
)
ipc
.
EmitAndCallback
(
""
,
func
()
{},
"aaaa"
)
ipc
.
On
(
"testGoEmit"
,
func
(
context
ipc
.
IContext
)
{
fmt
.
Println
(
"testGoEmit"
,
context
.
BrowserId
(),
context
.
FrameId
())
//ipc.Emit("", "aaa", "bbb")
//ipc.EmitAndCallback("", func() {}, "aaaa")
})
ipc
.
OnArguments
(
"testResultArgs"
,
func
(
args1
int
)
(
string
,
int
,
float64
,
bool
,
*
MyError
,
[]
string
,
[]
*
src
.
StructVarDemo
,
[]
src
.
StructVarDemo
,
map
[
string
]
string
,
map
[
string
]
interface
{},
[]
map
[
string
]
interface
{})
{
fmt
.
Println
(
"args1"
,
args1
)
...
...
example/dev-test/ipc-event/resources/ipc-event.html
浏览文件 @
8841c6bb
...
...
@@ -127,6 +127,10 @@
});
function
testGoEmit
()
{
ipc
.
emit
(
"
testGoEmit
"
);
}
function
bindFunc
()
{
energy
.
funcName
();
}
...
...
@@ -138,6 +142,7 @@
msg
(
'
doubleField
'
,
energy
.
doubleField
);
msg
(
'
boolField
'
,
energy
.
boolField
);
}
</script>
</head>
<body
style=
"margin: 0px;padding: 0px;"
>
...
...
@@ -152,6 +157,8 @@
<button
onclick=
"testInArgs()"
>
testInArgs
</button>
<button
onclick=
"testResultArgs()"
>
testResultArgs
</button>
<br>
<button
onclick=
"testGoEmit()"
>
testGoEmit
</button>
<br>
<button
onclick=
"bindFunc()"
>
bindFunc
</button>
<button
onclick=
"bindField()"
>
bindField
</button>
</p>
...
...
pkgs/json/json.go
浏览文件 @
8841c6bb
...
...
@@ -632,6 +632,9 @@ func (m *jsonData) Clear() {
}
func
(
m
*
jsonData
)
Free
()
{
if
m
==
nil
{
return
}
m
.
V
=
nil
m
.
S
=
0
m
.
T
=
GO_VALUE_INVALID
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录