Connecting Technology for Great Experiences - How does QML and Web fit together?
WebKit, why it matters (PDF version)
1.
2. WHO AM I?
KENNETH ROHDE CHRISTIANSEN DANISH WORKS AT NOKIA DANMARK
FORMERLY NOKIA TECHNOLOGY INSTITUTE, BRAZIL DISTRIBUTED QT
WEBKIT TEAM
3. “ACCOMPLISHMENTS”
BRAZIL WORKED IN A CONCEPTING TEAM, MOSTLY TOUCH BASED DESIGNS
FIRST TOUCH PORTED WEBKIT TO THE ENLIGHTENMENT FOUNDATION LIBRARIES (EFL)
NOKIA AQUIRED TROLLTECH JOINED THE QT WEBKIT TEAM DEVELOPMENT /
MAINTENANCE
BECAME OFFICIAL WEBKIT REVIEWER
PART OF A SMALL GROUP OF FRIENDS DEVELOPING THE YBERBROWSER FOR FUN
WHICH EVENTUALLY TURNED INTO THE N9 BROWSER, CODE NAMED GROB
STILL WORKING ON BROWSERS, W3C WORK, PLUS DELIVERING THE QT WEBKIT
MODULE INTO QT5
4.
5. WHAT IS ON THE INSIDE?
WEB CONTENTS ENGINE SECURE
LAYOUT ENGINE PORTABLE
FETCHING OF DATA GOOD USABILITY
PARSING OF HTML, CSS, ETC HACKABLE
PAGE RENDERING EMBEDDABLE
OPEN SOURCE
COMPATIBLE HYBRID ENABLER
STANDARDS COMPLIANT APPLICATION PLATFORM
STABLE MORE AND MORE, AN OS
6. WOW, THAT IS A MOUTHFUL
WHAT IS MORE INTERESTING IS WHAT IT IS NOT:
WEBKIT IS NOT A BROWSER IT IS AN ENGINEERING PROJECT, NOT A SCIENCE PROJECT
ALSO, WEBKIT HAS A STRONG FOCUS ON BEING A WEB CONTENT / APP ENGINE AND
THOUGH IT COMES WITH GENERAL PURPOSE PARTS, THOSE ARE ONLY GEARED
TOWARD THE ABOVE.
7. WHO ARE THE PEOPLE BEHIND?
MOSTLY BIG COMPANIES, THOUGHT WE HAVE A FEW OPEN SOURCE CONTRIBUTORS
SOME OF THE ACTIVE ONES NOKIA, APPLE, GOOGLE, RIM, ADOBE
8. SO WHERE IS IT IN USE?
GOOGLE CHROME APPLE SAFARI IPHONE PLAYSTATION 3
BLACKBERRY PLAYBOOK NOKIA N9 VALVE STEAM EA ORIGIN
NETFLIX ADOBE AIR HP TOUCHPAD ANDROID GOOGLE EARTH NOKIA
S60 (SYMBIAN) BLACKBERRY PHONES WEBOS CHROMEBOOKS
SPOTIFY SAMSUNG TIZEN SENCHA ANIMATOR APPLE MAIL AMINO
FREEDOM JUMP AMAZON KINDLE FIRE
PLUS LOTS OF HYBRID APPS ON IOS AND ANDROID
10. BORN OUT OF OPEN SOURCE
SO WEBKIT WAS FORGED IN THE CATACOMBS OF APPLE? NAH…
WEBKIT STARTED AS A FORK OF THE KHTML+KJS LIBRARIES FROM THE OPEN
SOURCE KDE PROJECT, WHICH ITSELF WERE A FORK OF THE KHTMLW – THE
KDE HTML WIDGET
MUCH WORK NEEDED TO BE DONE TO FOLLOW THE W3C STANDARDIZATION
IN ‘99 LARS KNOLL (CURRENT QT PROJECT MAIN MAINTAINER) LEAD AN EFFORT TO
CATCH UP AND IT BORE FRUITS
KHTML WAS NOW SO GOOD THAT APPLE FORKED IT INTO WHAT WE TODAY KNOW AS
WEBKIT
11. THE WEBKIT / KHTML WARS
IN JANUARY 2003 STEVE JOBS ANNOUNCED THE OPENSOURCING OF WEBCORE AND
THE TEAM INTRODUCED THEMSELVES TO KHTML DEVELOPERS
“When we were evaluating technologies over a year ago, KHTML and KJS stood
out. Not only were they the basis of an excellent modern and standards compliant
web browser, they were also less than 140,000 lines of code. The size of your code
and ease of development within that code made it a better choice for us than other
open source projects. Your clean design was also a plus. And the small size of your
code is a significant reason for our winning startup performance…”
Don Melton, Apple
FAST FORWARD TWO YEARS AND THE OPEN SOURCE ATTEMPT WAS FAILING
12. A ROCKY MARRIAGE
APPLE HAS THEIR OWN PRIORITIES AND CULTURE
CODE DUMPS WHICH SEEMINGLY WERE HARD TO UNDERSTAND
AND BACKPORT (OBJECTIVE C, UNRELATED CHANGES, ETC)
KHTML AND KJS WERE GREAT TO BUILD UPON BUT GIVING BACK TO
THE COMMUNITY IN A WAY THEY COULD MAKE ACTUAL USE OF
AND APPRECIATE WAS JUST NOT WORKING OUT AS PLANNED
13. THE TRUE OPEN SOURCING
7TH OF JUNE, 2005, APPLE ANNOUNCED THE OPEN SOURCING OF WEBKIT (API, CORE
AND JS ENGINE)
SOURCE CONTROL TREES, BUGTRACKING TOOLS (NOT THE INTERNAL ONE)
BASICALLY THE BUILDING BLOCKS TO CREATE A BROWSER + A CONTRIBUTION
MODEL WHICH ALLOWED OTHER TO CONTRIBUTE IN A FAIR AND EQUAL MANNER
AND SO THE WORLD TOOK AND WELCOME WEBKIT WITH OPEN ARMS
14. AND THE REST IS HISTORY
SOME SMALL EXCERPTS:
NOKIA DID THE FIRST MOBILE PORT OF WEBKIT TO THEIR S60 FRAMEWORK
APPLE USED WEBKIT FOR THEIR IPHONE PLATFORM
GOOGLE CREATED THE ANDROID BROWSER USING WEBKIT
GOOGLE ABANDONED FIREFOX AND CREATED CHROME
WEBKIT BECAME THE DEFACTO MOBILE BROWSER ENGINE, “FORCING” OTHER
MOBILE BROWSER TO SUPPORT WEBKIT EXTENTIONS AND CSS PREFIXES.
AND IT IS ALL JUST GETTING STARTED…
15. SO HOW? PORTS? HUH?
HOW CAN WEBKIT BE SO VERSATILE AND IS THERE REALLY JUST ONE WEBKIT?
WEBKIT IS NOT A BROWSER BUT AN ENGINE AND A VERY FORKED ONE
IT CONSISTS OF PORTS (APPLE, GOOGLE, GTK+, QT, ETC) WHICH PROVIDES API,
AND PLATFORM INTEGRATION.
MANY BROWSER USES FORKS OF TRUNK WEBKIT
16. HOW DO THE PORTS STACK UP?
IT IS HARD TO TELL
THE APPLE AND CHROME PORTS ARE THE MOST WELL MAINTAINED ONES. THEY
HAVE BEEN DEVELOPED FOR A LONG TIME AND HAVE BIG WELL-ESTABLISHED
TEAMS.
APPLE PORTS PROVIDES API FOR APP DEVELOPMENT AS WELL, ACROSS IOS, WIN
AND MAC, CHROME DOESN’T, IT IS A BROWSER.
QT IS A MULTI-PLATFORM PORT, DESIGNED FOR DEVELOPING BROWSER BUT
PROVIDES AN EXTENSIVE API FOR APP DEVELOPMENT AS WELL. IT IS ALSO
CLOSING IN ON CHROME AND APPLE PORTS IN STANDARDS SUPPORT AND
TESTING. QT WEBKIT COMES WITH MOBILE FEATURES, SOMETHING OTHER
PORTS ONLY DO TO A LIMITED EXTEND.
17. WHAT CAN I USE WEBKIT FOR? (SOME MARKETING)
YOU COULD WRITE A BROWSER? ;-) OR YOU COULD USE IT FOR HYBRID APP
DEVELOPMENT
QT IS POPULAR FOR THIS: SPOTIFY, NETFLIX (PS3, BOX ETC), EA ORIGIN
I WILL RECOMMEND TAKING A LOOK AT QT WEBKIT
• CROSS PLATFORM
• MOBILE FEATURES
• VIBRANT COMMUNITY
• RASHBERRY PI
• NOKIA N9
• HYBRID FEATURES, EASILY EMBEDDABLE, QT QUICK VIEW
19. HOW TO CONTRIBUTE
GET THE CODE FROM GIT.WEBKIT.ORG (OR SIMILAR)
BUILD IT USING Tools/Scripts/build-webkit
FOR QT: Tools/Scripts/build-webkit –qt
RUN IT (check the wiki or the tools in Tools/Scripts as this can differ per platform)
READ THE FOLLOWING SITES:
http://www.webkit.org/coding/technical-articles.html
http://www.webkit.org/coding/coding-style.html
http://www.webkit.org/coding/contributing.html
20. PITFALLS AND COMMON SENSE
CREATE BUG REPORT PER PATCH CC RELEVANT PEOPLE (CHECK THE WIKI)
ACCEPT THAT YOU ARE A NEWBIE AND ARE GOING TO DO EVERYTHING WRONG
DO NOT GIVE UP!
CODING STYLE / NAMING IS VERY IMPORTANT FOR SUCH A BIG PROJECT ACCEPT IT
AND USE THE SCRIPTS TO FIND THE MOST COMMON ISSUES
RUN THE TEST SUITE
JOIN THE IRC CHANNELS (FREENODE #WEBKIT, #QTWEBKIT, QTWEBKIT-CPH)
JOIN THE MAILING LISTS
21. REVIEWERS AND COMMITTERS?
COWBOYS AND INDIANS?
IF YOU UNDERSTAND HOW THE PROJECT WORKS AND ACTS AS SUCH THEN
10-30 PATCHES WILL GRAND YOU A COMMITTER NOMINATION
IF YOU HAVE 80-120 SUBSTANTIAL PATCHES, THEN YOU CAN BE NOMINATED TO
BECOME A REVIEWER AND BE ADDED TO THE REVIEWER MAILING LIST
MOSTLY EVERY YEAR THERE IS A CONTRIBUTOR SUMMIT (FOR COMMITTERS
AND REVIEWERS) IN THE BAY AREA (CUPERTINO SO FAR) WHERE THE
FUTURE OF THE PROJECT IS DISCUSSED AND WHERE YOU CAN MEET
FELLOW CONTRIBUTORS