Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
COSCUP 2020 Google 技術 x 公共參與 x 開源 口罩地圖技術開源
KAI CHU CHUNG
Web Standards for AR workshop at ISMAR13
Rob Manson
Building a JavaScript Library
jeresig
Modern UI Development With Node.js
Ryan Anklam
iOSDC 2018 動画をなめらかに動かす技術
Yuji Hato
Performance Improvements in Browsers
jeresig
Web components with java by Haijian Wang
GWTcon
Power ai image-pipeline
Paulo Sergio Lemes Queiroz
1
of
39
Top clipped slide
Writing Tools using WebKit
Oct. 27, 2010
•
0 likes
1 likes
×
Be the first to like this
Show More
•
2,029 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Slides from the Pivotal Labs Tech Talk
Ariya Hidayat
Follow
passionate technologist
Advertisement
Advertisement
Advertisement
Recommended
Understanding Hardware Acceleration on Mobile Browsers
Ariya Hidayat
7K views
•
71 slides
Analyzing the Performance of Mobile Web
Ariya Hidayat
3.5K views
•
55 slides
Understanding Hardware Acceleration on Mobile Browsers
Ariya Hidayat
17.1K views
•
67 slides
Build HTML5 App (Intel Elements 2011)
Ariya Hidayat
11.2K views
•
62 slides
Going to Mars with Groovy Domain-Specific Languages
Guillaume Laforge
90.5K views
•
162 slides
Html5 with Vaadin and Scala
Joonas Lehtinen
5K views
•
37 slides
More Related Content
Slideshows for you
(20)
COSCUP 2020 Google 技術 x 公共參與 x 開源 口罩地圖技術開源
KAI CHU CHUNG
•
165 views
Web Standards for AR workshop at ISMAR13
Rob Manson
•
4.9K views
Building a JavaScript Library
jeresig
•
11.7K views
Modern UI Development With Node.js
Ryan Anklam
•
79.8K views
iOSDC 2018 動画をなめらかに動かす技術
Yuji Hato
•
5.8K views
Performance Improvements in Browsers
jeresig
•
12.1K views
Web components with java by Haijian Wang
GWTcon
•
1.6K views
Power ai image-pipeline
Paulo Sergio Lemes Queiroz
•
21 views
Asynchronous Module Definition (AMD)
xMartin12
•
15.5K views
Using Grails to power your electric car
Marco Pas
•
2.4K views
Звиад Кардава "Android Things + Google Weave"
IT Event
•
215 views
JBoss World 2010
Chris Ramsdale
•
576 views
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
KAI CHU CHUNG
•
911 views
The Workflow Pattern, Composed (2021)
Zach Klippenstein
•
370 views
GDG Cloud Taipei: Meetup #52 - Istio Security: API Authorization
KAI CHU CHUNG
•
177 views
Groovy & Grails for Spring/Java developers
Peter Ledbrook
•
1.7K views
NvFX GTC 2013
Tristan Lorach
•
1.8K views
Coscup x ruby conf tw 2021 google cloud buildpacks 剖析與實踐
KAI CHU CHUNG
•
335 views
Building Real-Time Applications with Android and WebSockets
Sergi Almar i Graupera
•
48.9K views
PT-4057, Automated CUDA-to-OpenCL™ Translation with CU2CL: What's Next?, by W...
AMD Developer Central
•
5.8K views
Similar to Writing Tools using WebKit
(20)
Introduction to QtWebKit
Ariya Hidayat
•
2.9K views
Hybrid Apps (Native + Web) via QtWebKit
Ariya Hidayat
•
2.6K views
Hybrid Apps (Native + Web) using WebKit
Ariya Hidayat
•
2.4K views
Hybrid Apps (Native + Web) using WebKit
Ariya Hidayat
•
2K views
Guides To Analyzing WebKit Performance
National Cheng Kung University
•
6.4K views
Vaadin & Web Components
Joonas Lehtinen
•
2.7K views
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
•
1.5K views
手把手教你如何串接 Log 到各種網路服務
Mu Chun Wang
•
2K views
Technical Tips: Visual Regression Testing and Environment Comparison with Bac...
Building Blocks
•
2.4K views
[D2 campus seminar]웹브라우저 엔진
NAVER D2
•
11.8K views
Web Performance & Latest in React
Talentica Software
•
65 views
Building a website without a webserver on Azure
Todd Whitehead
•
137 views
Front-End Test Fest Keynote: The State of the Union for Front End Testing.pdf
Applitools
•
560 views
Multimedia in WebKitGtk+, past/present/future
philn2
•
1.2K views
Using Groovy to empower WebRTC Network Systems
antonry
•
1.4K views
Testing of javacript
Lei Kang
•
3K views
Headless browser: puppeteer and git client : GitKraken
SheikhMoonwaraAnjumM
•
56 views
Building Web Apps Sanely - EclipseCon 2010
Chris Ramsdale
•
1.8K views
GraphQL Bangkok Meetup 6.0
Tobias Meixner
•
171 views
Widget Summit 2008
Volkan Unsal
•
777 views
Advertisement
Recently uploaded
(20)
UV Printers Are Able to Create Children's Educational Toys.docx
Fei Yue Digital Technology Co., Limited.
•
0 views
[AgileDevOps West 2023] We're in it together and other perspectives on effect...
Jason Yip
•
0 views
Ion Sources and Beams
DrAlirezaGanjovi
•
0 views
H3C Corporate Brochure.pdf
AbdulRehmanAbid6
•
0 views
Data and Analytics at Holland & Barrett: Building a '3-Michelin-star' Data Pl...
Dobo Radichkov
•
0 views
synthesisofevidenceresource.pdf
abdelkhaleqelhaddad5
•
0 views
Why AI is Taking Over the World?
SabaGhazan2
•
0 views
Designing and Managing IoT Devices for Rapid Deployment - Webinar.pdf
ICS
•
0 views
INTRODUCTION TO AERO WEAPONS.pptx
bvmohan1
•
0 views
5G New Radio Architecture.pdf
Karthick Rajagopal
•
0 views
How to build machine learning apps.pdf
StephenAmell4
•
0 views
us_blackbox_brochure_control-room.pdf
OliviaJohn16
•
0 views
INTERNET SERVICES.pptx
DeepanjotSingh1
•
0 views
technology
AngelAngel153559
•
0 views
Ch3 Small ams Aero.pptx
bvmohan1
•
0 views
Unleashing Innovation: CreativeWebo - Your Top Software Development Company i...
Sagar Salvi
•
0 views
3.5.+Core+Concepts+and+the+Business+Analyst's+Role.pdf
Jess Rodriguez
•
0 views
Carrier Aggregation in LTE Advanced.pdf
SherifHassan89
•
0 views
Phrase break prediction with bidirectional encoder representations in Japanes...
Kosuke Futamata
•
0 views
Server Architecture.pptx
IraRoniYuda
•
0 views
Writing Tools using WebKit
Writing Tools using WebKit ARIYA
HIDAYAT ENGINEERING DIRECTOR, SENCHA
whoami
Let’s Start the
PARTY
Let’s Start the
PARTY
Unintentional Regression This is awesome!
forget to run the
tests REGRESSION Unintentional Regression This is awesome!
forget to run the
tests REGRESSION Unintentional Regression This is awesome!
Pre-commit hook to command
line test runner
Using WebView QWebView webView; webView.show(); webView.setUrl(QUrl("http://www.sencha.com"));
Capture to Image QWebPage
page; QImage image(size, QImage::Format_ARGB32_Premultiplied); image.fill(Qt::transparent); QPainter p(&image); page.mainFrame()->render(&p); p.end(); image.save(fileName);
Test Runner specrunner SpecRunner.html 5
specs, 0 failures in 0.013s specrunner SpecRunner.html FAIL: 5 specs, 1 failure in 0.014s
Network Log 28: GET
http://www.google.com/m/gp 292: Response 200 application/xhtml+xml; charset=UTF-8 0 bytes http://www.google.com/m/gp 311: GET data:image/gif;base64,R0lGODlhiA... 312: GET data:image/gif;base64,R0lGODlhJA... 312: GET data:image/gif;base64,R0lGODlhGA... 312: Response 0 image/gif 3611 bytes data:image/gif;base64,R0lGODlhiA... 312: Finish fail data:image/gif;base64,R0lGODlhiA... 312: Response 0 image/gif 284 bytes data:image/gif;base64,R0lGODlhJA... 312: Finish fail data:image/gif;base64,R0lGODlhJA... 312: Response 0 image/gif 178 bytes data:image/gif;base64,R0lGODlhGA... 312: Finish fail data:image/gif;base64,R0lGODlhGA... 317: Response 200 application/xhtml+xml; charset=UTF-8 0 bytes http://www.google.com/m/gp 324: Finish fail http://www.google.com/m/gp 328: GET http://www.google.com/m/gn/user?... 329: Finish success http://www.google.com/m/gn/user?...
Recorder & Replayer
Remote Console for http://github.com/senchalabs/android-tools
Remote Console for http://github.com/senchalabs/android-tools
THANK YOU!
QUESTIONS? ariya @ sencha.com ariyahidayat ariya.blogspot.com
ADDENDUM
Around the Project
0 10000 20000 30000 40000 50000 60000 70000 80000 0 1 2
3 4 5 6 7 8 9 10 Revisions Years History
0 10000 20000 30000 40000 50000 60000 70000 80000 0 1 2
3 4 5 6 7 8 9 10 Revisions Years History ~2000 commits/month
Level of Involvement Contributor Committer ≈
130 Reviewer ≈ 80 accept or reject patches checks in reviewed patches after 10-20 patches after 80 patches
WebKit Reviewers Apple 38 Google 19 Nokia 7 RIM 6 Misc 12
WebKit Reviewers Apple 38 Google 19 Nokia 7 RIM 6 Misc 12 1
Components of WebKit WebKit
Library JavaScriptCore WebCore HTML rendering SVG DOM CSS
Platform Abstractions Network Unicode
Clipboard Graphics Theme Events Thread Geolocation Timer
Different “Ports” WebCore graphics Mac Chromium
Qt Gtk CoreGraphics Skia QPainter Cairo graphics stack GraphicsContext
Web Browsers Safari WebCore +
JavaScriptCore Eclair WebCore + V8 Chrome Froyo
WebKit Everywhere Browser Devices Runtime
How Fresh? Fall 2010Spring
2010 Chrome 7 534.7 Safari 5 533.18 Android 2.2 533.1 Safari 4 528.16 AIR 2.5 531.9 mid 2009
Extensive Tests the rest 229
MB tests 904 MB≈ 20,000 tests
Workflow 1 Every commit
needs to be reviewed 2 Broken commit must be reverted
Workflow 1 Every commit
needs to be reviewed 2 Broken commit must be reverted quality control zero-regression policy
Get + Build
+ Launch
Requirements • Subversion or
Git • C++ compiler • Perl • Python • Various SDK
Using Subversion svn checkout
http://svn.webkit.org/repository/ webkit/trunk webkit cd webkit ≈ 880 MB .svn
Using git git clone
git://git.webkit.org/WebKit.git cd WebKit ≈ 1.2 GB .git
Build WebKitTools/Scripts/build-webkit --qt for Qt,
--gtk for Gtk+ --debug for “Debug” mode
Launch WebKitTools/Scripts/run-launcher --qt for Qt,
--gtk for Gtk+ --debug for “Debug” mode
Advertisement