QCefView icon indicating copy to clipboard operation
QCefView copied to clipboard

添加响应数据拦截接口。修复RenderHandler重写函数名错误的BUG。完成DownloadHandler接口函数。

Open leashi opened this issue 2 years ago • 3 comments

1.添加响应数据拦截接口。 2.修复RenderHandler重写函数名错误的BUG。 3.完成DownloadHandler接口函数。

leashi avatar Jul 30 '22 11:07 leashi

hi @leashi 感谢你辛苦提交的PR,但是你这个修改没有遵照QCefView的设计原则。 QCefView的一个设计目的就是完全隔离任何cef相关的资源和类型,所以QCefView是不能直接使用任何CEF内部的类型的,而这个PR里面打破了这个原则。

当然你的修改可能在你的项目中使用起来没有问题,但是作为QCefView无法接受你这个PR,因为这会导致需要暴露CEF的头文件给QCefView的用户。

tishion avatar Aug 01 '22 14:08 tishion

你的原则我很理解。 只是cef的封装本身就很不错,为啥要屏蔽呢?屏蔽了cef内部细节反而影响了一些使用。弄得我很纠结。

leashi avatar Aug 02 '22 03:08 leashi

你的原则我很理解。 只是cef的封装本身就很不错,为啥要屏蔽呢?屏蔽了cef内部细节反而影响了一些使用。弄得我很纠结。

QCefView就是为了封装CEF才诞生的,因为这个项目是一个Qt的组件,为了符合Qt组件的设计原则,我说了,你这个修改可以私下在你的项目中用,但是作为QCefView的开源项目不能接受。

如果你暴露了Cef的相关类型给用户,那为何不让用户直接使用libcef SDK呢,而且你这个修改从工程化角度来说就没有完成,你在QCefView的头文件添加了额外的引用,那你需要把额外引用的第一层,第二层,第N层头文件都给到用户,这最终导致你需要把Cef的include目录暴露给用户,试想如果用户为了引入QCefView而必须引用CEF的一堆类型头文件,那对用户来说增加了额外的负担和学习成本。

这就是“封装”的意义。

另外downloadhandler已经有一个feature分支在进行,这里也不会直接暴露Cef相关的类型出来,而是用Qt封装一层对等类型再暴露出来。

tishion avatar Aug 03 '22 03:08 tishion