SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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         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
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

Contenu connexe

En vedette

WebKit vs. the mobile Web
WebKit vs. the mobile WebWebKit vs. the mobile Web
WebKit vs. the mobile WebJosh Tumath
 
FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...
FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...
FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...Yandex
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionjuanjosanchezpenas
 
WebKitGtk+ Project
WebKitGtk+ ProjectWebKitGtk+ Project
WebKitGtk+ ProjectJoone Hur
 
[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)
[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)
[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)EnlightenmentProject
 
Understanding Webkit Rendering
Understanding Webkit RenderingUnderstanding Webkit Rendering
Understanding Webkit RenderingAriya Hidayat
 
Airbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkitAirbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkitnaseemh
 

En vedette (12)

Web components v1 intro
Web components v1 introWeb components v1 intro
Web components v1 intro
 
פיתוח אפליקציות Webkit לדפדפנים סלולריים Ppt
פיתוח אפליקציות Webkit לדפדפנים סלולריים Pptפיתוח אפליקציות Webkit לדפדפנים סלולריים Ppt
פיתוח אפליקציות Webkit לדפדפנים סלולריים Ppt
 
WebKit vs. the mobile Web
WebKit vs. the mobile WebWebKit vs. the mobile Web
WebKit vs. the mobile Web
 
FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...
FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...
FrontTalks: Вадим Макеев (Opera Software), «Зачем Опере Вебкит, или Опиум для...
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolution
 
WebKitGtk+ Project
WebKitGtk+ ProjectWebKitGtk+ Project
WebKitGtk+ Project
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)
[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)
[KOR][E-Kor-Seminar 2014][2/8] Webkit EFL (Ryuan)
 
Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
Understanding Webkit Rendering
Understanding Webkit RenderingUnderstanding Webkit Rendering
Understanding Webkit Rendering
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
Airbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkitAirbnb tech talk: Levi Weintraub on webkit
Airbnb tech talk: Levi Weintraub on webkit
 

Similaire à WebKit, why it matters (PDF version)

Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem Axway Appcelerator
 
Mobile Services with Qt
Mobile Services with QtMobile Services with Qt
Mobile Services with QtEspen Riskedal
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsOlaf Janssen
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumit Kataria
 
Happy Helming With Okteto
Happy Helming With OktetoHappy Helming With Okteto
Happy Helming With Oktetosangam biradar
 
IBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep DiveIBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep DiveIBM
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefoxNAVER D2
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemBoydlee Pollentine
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaChristian Heilmann
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .netChris Love
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the airNokia
 
Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Future Insights
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Igalia
 
CHIRIMEN open hardware became open source (English)
CHIRIMEN open hardware became open source  (English)CHIRIMEN open hardware became open source  (English)
CHIRIMEN open hardware became open source (English)Satoru Takagi
 
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioCreate Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioGuilhem Ensuque
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxPoooi2
 
SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011Eric Wahlforss
 

Similaire à WebKit, why it matters (PDF version) (20)

Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem
 
Mobile Services with Qt
Mobile Services with QtMobile Services with Qt
Mobile Services with Qt
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trends
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststem
 
Happy Helming With Okteto
Happy Helming With OktetoHappy Helming With Okteto
Happy Helming With Okteto
 
Mobile Platforms Redux
Mobile Platforms ReduxMobile Platforms Redux
Mobile Platforms Redux
 
IBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep DiveIBM Bluemix™ Architecture & Deep Dive
IBM Bluemix™ Architecture & Deep Dive
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
 
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium EcosystemAppcelerator Titanium - An Introduction to the Titanium Ecosystem
Appcelerator Titanium - An Introduction to the Titanium Ecosystem
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .net
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the air
 
Firefox os
Firefox osFirefox os
Firefox os
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
 
Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)
 
CHIRIMEN open hardware became open source (English)
CHIRIMEN open hardware became open source  (English)CHIRIMEN open hardware became open source  (English)
CHIRIMEN open hardware became open source (English)
 
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS StudioCreate Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
Create Cross-Platform Native Mobile Apps in Flex with ELIPS Studio
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptx
 
SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011
 

Plus de Kenneth Rohde Christiansen

Plus de Kenneth Rohde Christiansen (8)

Progressive Web Apps - deep dive
Progressive Web Apps - deep diveProgressive Web Apps - deep dive
Progressive Web Apps - deep dive
 
New trends on web platform
New trends on web platformNew trends on web platform
New trends on web platform
 
Web Assembly (W3C TPAC presentation)
Web Assembly (W3C TPAC presentation)Web Assembly (W3C TPAC presentation)
Web Assembly (W3C TPAC presentation)
 
Generic sensors for the Web
Generic sensors for the WebGeneric sensors for the Web
Generic sensors for the Web
 
HTML literals, the JSX of the platform
HTML literals, the JSX of the platformHTML literals, the JSX of the platform
HTML literals, the JSX of the platform
 
Cold front - bridging the web and the physical world
Cold front - bridging the web and the physical worldCold front - bridging the web and the physical world
Cold front - bridging the web and the physical world
 
Qt WebKit going Mobile
Qt WebKit going MobileQt WebKit going Mobile
Qt WebKit going Mobile
 
Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?Connecting Technology for Great Experiences - How does QML and Web fit together?
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
  • 22. +1