阿珂现在多少钱王者荣耀阿珂视频

博客访问: 355694
博文数量: 95
博客积分: 4086
博客等级: 上校
技术积分: 900
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
typedef struct _WebKitWebView WebKitWebVstruct _WebKitWebView {&&& GtkContainer parent_&&& WebKitWebViewPrivate *};typedef struct _WebKitWebViewPrivate WebKitWebViewPstruct _WebKitWebViewPrivate {&&&&&&& WebCore::Page* coreP&&&&&&& WebKitWebSettings* webS&&&&&&& WebKitWebInspector* webI&&&&&&& WebKitWebWindowFeatures* webWindowF&&&&&&& WebKitWebFrame* mainF // here--------------------------------------------&&&&&&& WebCore::String applicationNameForUserA&&&&&&& WebCore::String* userA&&&&&&& WebKitWebBackForwardList* backForwardL&&&&&&& gint lastPopupXP&&&&&&& gint lastPopupYP&&&&&&& HashSet&&&&&&&&&&&&&& GtkIMContext* imC&&&&&&& GtkTargetList* copy_target_&&&&&&& GtkTargetList* paste_target_&&&&&&& &&&&&&& GtkAdjustment* horizontalA&&&&&&& GtkAdjustment* verticalA&&&&&&& gboolean zoomFullC};typedef struct _WebKitWebFrame WebKitWebFstruct _WebKitWebFrame {&&& GObject parent_&&& WebKitWebFramePrivate *};typedef struct _WebKitWebFramePrivate WebKitWebFramePstruct _WebKitWebFramePrivate {&&&&&&& WebCore::Frame* coreF&&&&&&& WebKitWebView* webV&&&&&&& gchar*&&&&&&& gchar*&&&&&&& gchar*};WebCore::Page* core(WebKitWebView* webView){&&& if (!webView)&&&&&&& return 0;&&& WebKitWebViewPrivate* priv = webView->&&& return priv ? priv->corePage : 0;}
阅读(1945) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。【社区专栏】10年浏览器开发经验谈:Blink WebKit-Glue层分析
发表于 16:23|
来源社区投递|
摘要:Blink基于WebKit引擎开发,从Chrome28开始使用,并在持续修改优化中。Blink在WebKit上封装了一层,称为WebKit Glue。本文简要介绍了WebKit Glue层。
【关于作者】灰熊(笔名),宅男一枚!喜欢中国象棋,乒乓球。十年浏览器开发相关工作经验,包括WAP手机浏览器,三星电子数字电视Webkit核浏览器和猎豹安全浏览器。&
Blink基于WebKit引擎开发,从Chrome28开始使用,并在持续修改优化中。实际上,Blink就是从WebKit fork 出来的另外一个代码分支。与此同时,Chrome的源代码和Webkit也有了很大区别,Google对Webkit的源代码重新进行了梳理,并且大幅度删减了不相关移植的文件。使代码的可读性更好,编译效率更高。
Webkit Glue介绍
Blink在WebKit上封装了一层,称为WebKit Glue。WebKit Glue层中,大部分类型的结构和接口都和WebKit类似,Chrome中依托WebKit的组件,都只是调用WebKit
Glue层的接口,而不是直接调用WebKit中的类型。
这样WebKit版本升级接口有变化时,只需要修改WebKit Glue层,ChromeRenderer层代码保持不变;另外一个作用就是隔了绝WebKit
的数据类型, ChromeRenderer不使用WebKit 的数据类型最终也能调用到WebCore的接口。在下图中对应的执行路径为11和12。
WebKit Glue层提供许多方便的类型转换(如,我们使用std::string取代WebCore::String,GURL取代KURL)。WebKit
Glue对象都与Webkit对象相似,只是以"Web"作为前缀。例如,WebCore::Frame变成 WebFrame。WebCore的数据类型决不直接在Chrome使用。API都被加到WebKit
Glue层,以方便Chrome Render模块中调用。
Webkit Glue代码分析
如下图所示:WebKit Glue起到了连接Chrome Renderer和WebKit的桥梁的作用。它和WebKit结合的很紧密,实际上是嵌入WebKit的一个子层,类似于实现了设计模式中的外观(Facade)模式。封装了WebKit的数据类型,比如WebCore::Frame,
WebCore::Node等。
Chrome Renderer直接调用WebKit Glue对象,从而操作WebKit对象。另一方面,WebKit Glue通过Client接口保持Chrome
Renderer对象的引用,实现了反向依赖注入。
如下表所示,WebKit Glue代码可以分为“接口声明”和“具体实现”两部分。接口声明部分的代码位于目录“third_party\webkit\public\web”。实现部分代码位于目录“third_party\webkit\source\web”。“接口声明”部分代码又可以分为两部分:封装类型和Client。
(third_party\webkit\public\web)
WebWidget.h
WebFrame.h
WebWidgetClient.h
WebViewClient.h
WebFrameClient.h
(third_party\webkit\source\web)
WebViewImpl.h
WebFrameImpl.h
(content\renderer)
render_widget.h
render_view_impl.h
Webkit Glue初始化接口
这个接口定义在文件“third_party\webkit\public\web\WebKit.h”。
主要包括两个函数:初始化Webkit函数,停用WebKit函数。
执行流程实例
WebView实例:当页面得到焦点时调用WebCore::Frame::View::paintContents方法的调用栈。Webkit
Glue 层的WebView::setIsActive方法起到了中转传递的作用。
其中,RenderViewImpl与WebViewImpl之间的连接关系UML类图如下所示:
响应处理WebKit事件。对应图一中的21和22. 如下面的UML类图所示,所有事件被ChromeClient转发给WebView,然后通过WebViewClient传递给RenderViewImpl。
实例:网页的show事件最终会被被转发给RenderWidget::show
本文简要介绍了WebKit Glue层。代码实例参照Chrome34.0.分析。Blink的代码仍然出于活跃的变动之中,所述代码路径和名字空间可能会和其它版本有所出入,仅供参考!
如果你想展示自己的开源项目,与我们分享个人从事开源事业的故事或对开源界的观察与思考,欢迎将文章投递到 wangdj AT csdn.net,邮件主题中注明:[开源分享],
我们乐意为您提供一个展示的平台。
欢迎关注我们的官方微博和我们的微信(左侧图片,扫一扫),获取优秀开源资讯
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在这个豌豆荚招聘前端工程师的页面中,说豌豆荚win版本是基于webkit开发的客户端软件,职位要求里说用web前端技术开发windows客户端,我是前端小白,只知道这些技术可以用来开发web前端,请前端大牛讲一讲用这些web前端技术开发win客户端具体是怎么回事?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
谢邀,不是很了解这方面,但是还是要说点什么。。有错漏之处请大家指出。
豆瓣很早之前有一个叫做One Ring的开源项目,虽然已经很久没有更新(不知道是不是已经放弃了),但是可作为一个典型的学习参考范例。
OneRing是一个跨平台的桌面应用开发库,使用HTML5+CSS3制作用户界面,用Javascript编写交互逻辑,同时提供用写web后端的技术编写后台逻辑。
OneRing由框架和应用两个部分组成。框架部分通过为本地窗口内嵌一个WebKit浏览器来提供各个操作系统的桌面展现。并提供了一致的js接口。应用部分是一个Web
Server,负责应用逻辑,用html/css描述界面,用js提供用户交互。
根据hongqn大表叔的解释,做OneRing是为了使用Web技术来开发桌面应用(感觉很爽)。下面来看一下OneRing的出生迭代。
1.我们常见的Web技术是这样的:
2.加入App Launcher,监听本地端口,当运行程序时打开系统默认浏览器:
3.上面的实现有一个问题,应用还是在浏览器中运行,感觉不像本地体验,所以本地展示不能使用浏览器,封装一下浏览器,使用IE的窗体:
4.IE must DIE!所以所以,用webkit代替ie来做本地界面:
5.但是要访问系统API怎么办呢?使用onering.js:
6.服务端避免防火墙的annoying:
OneRing应用的启动流程:
应用启动,加载框架运行时库,注册应用url的访问方法(如WSGI),并调用框架的loop函数。
loop函数会访问应用的 /init URL,得到一个json数据,描述初始应用窗口的相关参数,如位置、大小、窗口属性、初始页面url等。
框架根据该数据创建窗口,并让该窗口内的浏览器访问初始页面url,渲染用户界面,然后等待UI事件。
用户在界面上操作时,可以通过超链接改变整个窗口内容,也可以使用Ajax技术更新窗口内部分内容。
应用可以让浏览器调用ONERING名字空间下的js函数,和操作系统进行交互,该名字空间由url onering://onering/onering.js 加载。
应用通过 bind(event, function) 函数监听窗口更改大小、移动等操作系统UI事件。
可以使用pub/sub机制主动推送消息给浏览器。
调用 ONERING.exit() 可以退出应用;所有窗口都关闭后也会退出应用。
解释很无力,看一个Python示例代码:
#!/usr/bin/env python
import json
import web
import onering
'/init', 'init',
'/', 'index',
class init:
def GET(self):
web.header('Content-Type', 'application/json')
return json.dumps({'width': 400, 'height': 300, 'url': '/'})
class index:
def GET(self):
web.header('Content-Type', 'text/html')
return """&html&
&head&&script type="text/javascript" src="onering://onering/onering.js"&&/script&&/head&
&p&Hello, world!&/p&
&button onclick="javascript:ONERING.exit()"&Exit&/button&
&/body&&/html&"""
app = web.application(urls, globals())
if __name__ == '__main__':
onering.register_wsgi_app("demo", app.wsgifunc())
onering.loop("demo")
豌豆荚2.0时参考了OneRing的设计思路,重写了OneRing(豌豆荚一直说开源出来也没有开源-_-)。
豌豆荚2.0技术架构图:
参考OneRing的通信层,把通信层分成三个部分,一个是前端,一个是后端服务,另一个是操作系统,定义了这三个端,六个方向的通信实现的策略:
几个OneRing相关连接:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
腾讯的浏览器、管家、QQ音乐等等这些的都是基于HTML等Web技术的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
windows8 APP支持前端技术,有API的,当然同时仍然支持 C++/C#
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
手机上有 , 可以用 HTML + CSS + Javascript 写 Apps.(实际上在App内使用了系统的WebView, 然后加载你写的HTML.)
电脑上有 , 用处是一样的.(自带了WebKit.)
Wunderlist 就是用 TideSDK 开发的. 其他详见:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
坦白说我一直用 abode air
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
还能用mozilla xul runner
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
v2ex上有问过这个问题,,可以参考一下。
主要由以下几个框架:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
程序就像浏览器一样,嵌入一个指定的页面喽,这不是很简单的道理吗。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
腾讯Web前端团队 – TAT(Tencent Alloy Team) 也出了一个用web开发桌面app的引擎,叫webtop
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
google有一个项目叫,用web开发技术开发出来的程序能够在PC和移动客户端上运行,当然,也可以在浏览器上运行,这就是chrome os的准备工作
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
推荐使用 Atom/electron 或 hw
它们结合io.js(nodejs),Chromium,html+CSS+JS 开发桌面端应用
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
谢邀,现在流行的做法肯定是nw.js(node-webkit),可以了解一下这个库。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
电脑上的有道词典 貌似也是用这种技术开发的
你可以百度关键字 "hex
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知

我要回帖

更多关于 王者荣耀阿珂怎么玩 的文章

 

随机推荐