webkit / blink community 동향 및 개발방향

20
WebKit / Blink Community 동향 개발 방향 삼성전자 김규영 책임 2014. 9. 16

Upload: gyuyoung-kim

Post on 12-Jul-2015

483 views

Category:

Internet


8 download

TRANSCRIPT

Page 1: WebKit / Blink Community 동향 및 개발방향

WebKit / Blink Community 동향 및 개발 방향

삼성전자 김규영 책임

2014. 9. 16

Page 2: WebKit / Blink Community 동향 및 개발방향

Contents

1. WebKit and Blink ? 2. Product based on WebKit 3. WebKit History 4. Basic Overview of WebKit and Blink 5. Speech of Development 6. Active Contributors before Blink 7. Google Leaving 8. Why ? 9. Other WebKit Ports ? 10. WebKit vs. Blink – Commit Count 11. Impact after Blink 12. Major Changes after Blink 13. Conclusion

Page 3: WebKit / Blink Community 동향 및 개발방향

WebKit and Blink ?

• WebKit 은 브라우저에서 Web Page를 Rendering 하기 위한 Layout 엔진

• Test-driven 개발 방식을 사용 중이며, 2005년부터 Opensource로 개발되어져 오고 있음

• Blink는 2013년 WebKit에서 Forking 된 Layout 엔진으로서 Chromium 프로젝트를 위한 Web Rendering 엔진으로 개발 중

• Test-driven 방식으로 개발되고 있으며, Window, Mac, Android, iOS, Linux 등의 플랫폼을 지원

Page 4: WebKit / Blink Community 동향 및 개발방향

Product based on WebKit and Blink

Netfront Browser

Dolphin Browser

Konqueror Browser

Android Browser

Chrome

Blackberry Browser

Tizen Browser/WebRuntime

webOS Browser

Opera Browser

Safari Browser

Swing Browser

UC Browser

Amazon Silk Browser

Page 5: WebKit / Blink Community 동향 및 개발방향

WebKit History

1998 2003 2005 2007 2008 2010 2012 2013

KHTML

Safari based on KHTML

Announce WebKit Opensource

Mobile Safari on iOS

Android Browser

Google Chrome

WebKit2 Announcement

Upstream EFL Port

Google upstream Android Port

Google launches Blink

Opera uses Chromium

Apple upstream iOS Port

Page 6: WebKit / Blink Community 동향 및 개발방향

Basic Overview of Web Rendering

Life of Web Page Component Hierarchy in WebKit

Page 7: WebKit / Blink Community 동향 및 개발방향

Speed of Development

• Lifetime of the project – ~ 150,000 Commits

– ~ 120,000 Bugs

• 2012 year – ~ 35,000 Commits, ~ 100 Commits a day, 1 commit in every ~ 15 minutes

– ~ 30,000 Bugs

• 4GB size of the repository – 3.2 GB(80%) test and test expectations

– Test driven development – ~ 35,000 tests, 1.7 M lines of code

• Buildbot and Early Warning System

Page 8: WebKit / Blink Community 동향 및 개발방향

Active Contributors before Blink

Apple vs. Google Commits Top 10 company after Apple, Google

출처: http://blog.bitergia.com/2012/12/05/activity-of-apple-google-and-other-companies-in-the-webkit-project/

Page 9: WebKit / Blink Community 동향 및 개발방향

Google Leaving

Eric Seidel

Page 10: WebKit / Blink Community 동향 및 개발방향

Why ?

• Apple의 WebKit Ownership 강화

– [webkit-dev] Changes to the WebKit2 development process https://lists.webkit.org/pipermail/webkit-dev/2013-January/023255.html

– [webkit-dev] Breaking other Ports https://lists.webkit.org/pipermail/webkit-dev/2013-January/023509.html

• Apple과 Google의 Web Engine Goal 차이

– Web Engine vs. Web Platform

• 너무 많은 Build System과 Port

– 12 ports, 8 build systems. E.g) Xcode, GNUMakefile, GYP, CMake, …

– [webkit-dev] WebKit Wishes https://lists.webkit.org/pipermail/webkit-dev/2013-January/023530.html

Page 11: WebKit / Blink Community 동향 및 개발방향

Other WebKit Ports ?

• Opera는 자체 엔진을 버리고 Chromium에 합류

• QT Port는 Blink로 떠났으나, Chromium trunk에 Upstream 안됨

• GTK Port는 계속 WebKit에 남음 – Igalia가 활발히 활동 중

• EFL Port는 계속 WebKit에 유지 중 – 단, Samsung은 Blink도 활발히 함

• Intel은 Chromium based Crosswalk 프로젝트 Launching – https://crosswalk-project.org

• Blackberry Port는 제거됨

• Adobe는 Blink/WebKit 둘 다 Contribution – 최근에는 WebKit에 집중. CSS Region의 Blink 제거 영향 ?

• Wince Port는 제거 예정

Page 12: WebKit / Blink Community 동향 및 개발방향

WebKit vs. Blink – Commit Count

22,026 Commits vs. 30,050 Commits

기간: 2013.04.03 ~ 2014.08.30

Page 13: WebKit / Blink Community 동향 및 개발방향

WebKit vs. Blink - Contributor

WebKit Blink

Page 14: WebKit / Blink Community 동향 및 개발방향

WebKit vs. Blink - Contributor (Cont.)

WebKit

23명의 Contributors가 전체 Commit의 50% 차지 32명의 Contributors가 전체 Commit의 50% 차지

Blink

기간: 2013.04.03 ~ 2014.08.30

Page 15: WebKit / Blink Community 동향 및 개발방향

Impact after Blink

• WebKit – Android, Skia, V8 등 chromium에서 사용되던 모듈 제거

– 약 2GB의 data제거, 대략 17만 line이 제거

• Blink – Blink에서 사용되지 않는 포트 모두 제거 (Multi Port 지원 코드 제거)

• Key Patch의 Cross 적용 – Utility Feature, New HTML5 Feature, CSS JIT(Blink ongoing), CSS Region, and so on

• WebKit/Blink에서 Owner가 Missing된 모듈 다수 발생 – HTML5, Coordinated Graphics, Fixed Layout, SVG, CSS, Shadow DOM

• Code Review의 어려움 발생 – Review Quality 하향 됨

• Apple은 WebKit2의 Port Reviewer에게 Ownership 이양 – 2013 WebKit Contributor Meeting

Page 16: WebKit / Blink Community 동향 및 개발방향

Major Changes after Blink

• WebKit – FTL(Four Tier LLVM) JIT

– 기존 DFG JIT에 비해 평균 35% 성능 향상

– CSS JIT – CSS Selector Matching Performance

– Benchmark 상에서 2x 이상의 성능 향상

– GTK, EFL은 WebKit1 Port 제거 – 단, Mac WebKit1 Port는 WebView Legacy를 이유로 유지

– WebKit2에 iOS Port 활발히 Upstream – iOS8에 WebView based on WebKit2 탑재 ?

Page 17: WebKit / Blink Community 동향 및 개발방향

Major Changes after Blink (Cont.)

• Blink – Experimental or new Features - HTML5, CSS

Web Bluetooth, Beacon, Screen Orientation, Battery Status API, Text Encoding API, CSS Figure, CSS Canvas2D

– Memory Controller (Oilpan)

기존 Reference counting 방식의 WebKit object의 Memory 관리방식을 Tracing Garbage Collector 방식으로 변경

– Aura UI Framework

통합된 UI Framework 로서 Native platform을 위한 Abstraction Layer 제공

– Blink in JS

Blink 개발자가 C++ 대신에 JavaScript로 DOM 기능을 구현 할 수 있게 지원

Page 18: WebKit / Blink Community 동향 및 개발방향

Conclusion

• WebKit과 Blink는 서로 경쟁 및 협력을 통해 둘다 발전할 것으로 예상되나, Browser 시장 점유율이 Chrome이 갈수록 증가하고 있기 때문에 Blink의 영향력이 갈수록 강해질 것으로 예상

• Apple은 WebKit을 고성능 Web Engine으로서의 개발에 집중하고 있는 것에 비해, Google은 Web Platform으로서 개발 중

Page 19: WebKit / Blink Community 동향 및 개발방향

Q&A

Page 20: WebKit / Blink Community 동향 및 개발방향