지난 달에
제 6차
W3C
HTML5 KIG Meeting에 처음으로 참석하게 되었다. 이 모임은 국내 HTML5 표준화에
관심을 갖는 분들이 모여 HTML5 표준화
현황을 나누고 논의하는 자리이다. 이번
모임에서는 HTML5 Web App, Device API, Navigation Timing
Spec에 대한 소개가 진행되었는데,
실제 WebKit에서
어떻게 지원되고 있는지 간단하게 정리해보았다.
Custom scheme and content handlers
브라우저에서 사용하는 Protocol이나 mimetype을 임의로 등록하여 특정 URL에서 처리하도록 하는 기능이다.
즉, http://, ftp://와 같은 Protocol을
브라우저에 임의로 등록할 수고 있고, 이를
Protocol로 요청이 들어오면 특정
URL이 처리할 수 있도록 한다.
아래와 같은 인터페이스를 지원하고 있고, 실제 Spec은 여기서 확인할 수 있다.
window.navigator.registerProtocalHandler(scheme,
url, title)
window.navigator.registerContentHandler(mineType,
url, title)
예) navigator.registerContentHandler('application/x-soup', 'soup?url=%s', 'SoupWeb'')
위 Feature는
WebKit에 구현되어 있지만,
아래와 같이 Build할
때, enable해야 사용할 수 있다.
하지만, 아직은
Chromium에서만 지원하는 듯
보인다.
WebKit/Tools/Scripts/build-webkit
--register-protocol-handler
실제 구현은
된 초기patch는 여기서 확인 가능하다. 최근,
이미
사용 중인 protocol에
blacklist
를 각 브라우저 개발 업체로 부터
수집하였고, 이에 대한
처리가 WebKit에
반영되었다.
AddSearchProvider
Search Box에
검색 엔진을 등록하는 기능인데, 이
역할을 UI에서 할지 Engine에서
해야할지 아직 논란이 있다. 이미
IE와 Firefox에서
지원하고 있지만, WebKit Community내에서는 합의가 필요한 상태다.
지원하는
interface 는 다음과 같다.
window.external.AddSearchProvider()
window.external.IsSearchProviderInstalled()
whatwg에 다음과
같이 제안이 이루어졌고,
[whatwg]
Proposal for IsSearchProviderInstalled / AddSearchProvider
WebKit에도
오래전에 버그로 등록은 되어 있지만, 현재로서는
구현 계획이 없다.
그러면, 브라우저에서는 어떻게 사용하는지
살펴보자.
Google에서 WebKit에 반영하도록 노력한다고 하니, 진행
과정을 지켜봐야겠다.
HTML Media Capture
Device
API Spec은 특히 Mobile분야에서
관심이 많은데, Web App과
Native App간의 경계를 허무는
작업이라고도 할 수 있다. 그
중에서 HTML
Media Capture Spec은 User Agent에서 device의
microphone과 camera에
접근하도록 한다. 현재 WebKit에는 버그만 등록된 상태이다.
Navigation Timing
지금까지 웹 성능을 측정하는 일은 브라우저 개발자만이 가능한 일이였다. 브라우저 개발자도 HTTP 모듈까지 소스코드로 접근해야만 어느 정도 측정이 가능했었는데, 이를 웹 개발자도 가능하도록 Navigation Timing이라는 Spec이 표준화 중에 있으며, 이미 Chromium은 지원하고 있고, 데모 페이지에서 테스트할 수 있다. 이를 통해 Page를 요청하여 로딩하는 전 과정에서 얼마나 시간이 걸리는지 단계별로 Profiling 할 수 있게 된다. 현재, GTK+ port, QT port에서 이를 구현하고 있다.
앞으로 매달 열리는 HTML5 KIG Meeting에서 논의된 웹표준 내용을 가운데, WebKit에서 얼마만큼 구현하고 있는 소개할 예정이다.
참고