webkit, why it matters (pdf version)
DESCRIPTION
TRANSCRIPT
WHO AM I?
KENNETH ROHDE CHRISTIANSEN DANISH WORKS AT NOKIA DANMARK FORMERLY NOKIA TECHNOLOGY INSTITUTE, BRAZIL DISTRIBUTED QT WEBKIT TEAM
“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
WHAT IS ON THE INSIDE? WEB CONTENTS ENGINE LAYOUT ENGINE FETCHING OF DATA PARSING OF HTML, CSS, ETC PAGE RENDERING OPEN SOURCE COMPATIBLE STANDARDS COMPLIANT STABLE
SECURE PORTABLE GOOD USABILITY HACKABLE EMBEDDABLE HYBRID ENABLER APPLICATION PLATFORM MORE AND MORE, AN OS
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.
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
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
BACKSTORY
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
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
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
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
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…
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
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.
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
NEAR FUTURE
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
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
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
+1