webkit, why it matters?

22
WEBKIT, WHY IT MATTERS? OPE N SO URCE DAY S 20 1 2, CO PENHAGEN

Upload: kenneth-rohde-christiansen

Post on 11-Nov-2014

858 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: WebKit, why it matters?

WEBKIT

, WHY

IT

MATTE

RS?

OP

EN

SO

UR

CE

DA

YS

20

12

, C

OP

EN

HA

GE

N

Page 2: WebKit, why it matters?

WHO AM I?

KENNETH ROHDE CHRISTIANSEN DANISH WORKS AT NOKIA DANMARK

FORMERLY NOKIA TECHNOLOGY INSTITUTE, BRAZIL DISTRIBUTED QT

WEBKIT TEAM

Page 3: WebKit, why it matters?

“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

Page 4: WebKit, why it matters?

I S I T

A F

OX

, A C

OM

PA

SS

OR

A C

OL

OR

FU

L P

OK

EM

ON

TH

I NG

?

SO WHAT

IS W

EBKIT?

Page 5: WebKit, why it matters?

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

Page 6: WebKit, why it matters?

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.

Page 7: WebKit, why it matters?

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

Page 8: WebKit, why it matters?

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

Page 9: WebKit, why it matters?

BACKSTORY

Page 10: WebKit, why it matters?

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

Page 11: WebKit, why it matters?

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

Page 12: WebKit, why it matters?

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

Page 13: WebKit, why it matters?

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

Page 14: WebKit, why it matters?

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…

Page 15: WebKit, why it matters?

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

Page 16: WebKit, why it matters?

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.

Page 17: WebKit, why it matters?

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

Page 18: WebKit, why it matters?

NEAR FUTURE

Page 19: WebKit, why it matters?

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

Page 20: WebKit, why it matters?

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

Page 21: WebKit, why it matters?

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

Page 22: WebKit, why it matters?

Q&APOTE

NTIAL

ANSWER

S TO Y

OUR POTE

NTIAL

QUESTI

ONS

+1