SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Web Standards Support
      in WebKit
      허 준 회   (Joone Hur)


          Collabora
About me

• WebKit Committer
• Working for Collabora (http://collabora.com)
• Working on WebKitGtk+, WebKit-Clutter

• Blog: http://opensoftware.kr
• Email: joone.hur@collabora.com
Contents

• Custom scheme and content handlers
• AddSearchProvider
• Navigation Timing
• Device API
   o Battery Status Event
   o Contacts API
   o HTML Media Capture API
• Unified Storage Quota API
• Shadow DOM API
• WebKit News
   o WebCL & WebKit2 based Browser
Custom scheme and content handlers
• 웹 사 이 트 에 서 Protocol 이 나 mimetype 을 임 의 로 등 록 하 여 특 정
  URL 에 서 처 리 하 도 록 함
• Interface
   o window.navigator.registerProtocalHandler(scheme, url, title)
   o window.navigator.registerContentHandler(mineType, url, title)
• References
   o http://dev.w3.org/html5/spec/Overview.html#dom-navigator-
     registerprotocolhandler
   o http://trac.webkit.org/changeset/50477
   o https://developer.mozilla.org/En/DOM:window.navigator.register
     ContentHandler
   o https://developer.mozilla.org/en/DOM/window.navigator.registerP
     rotocolHandler
• Firefox, Chromium 지 원
Example
<head>
    <script type="text/javascript">
        function RegisterHandler () {
            navigator.registerProtocolHandler ("mailto",
"http://help.dottoro.com/protocolHandler.php?uri=%s", "Dottoro mailto
protocol handler");
    }
    </script>
</head>
<body>
    <button onclick="RegisterHandler ();">Register a handler for the mailto
protocol!</button>
</body>
AddSearchProvider




• Search Box 에 검 색 엔 진 을 등 록 하 는 기 능  
• 지 원 하 는 interface
   o window.external.AddSearchProvider()
   o window.external.IsSearchProviderInstalled()


• Firefox, IE, Chromium 에 서   지 원
Navigation Timing

• This specification defines an interface for web applications
  to access timing information related to navigation and
  elements.
• The API will allow web application to gather performance
  metrics about various factors such as page redirect, DNS
  lookup, connection & secure connection statistics,
  request/response time, various events, etc
• Chromium, Firefox Support
• Reference
   o   http://www.w3.org/TR/navigation-timing/
Performance Timing, Performance Navigation
Example

var start = new Date().getTime();
function onLoad() {
  var now = new Date().getTime();
  var latency = now - start;
  alert("page loading time: " + latency);
}


function onLoad() {
  var now = new Date().getTime();
  var page_load_time = now - performance.timing.navigationStart;
  alert("User-perceived page loading time: " + page_load_time);
}
Demo Page for Navigation Timing

http://webtimingdemo.appspot.com/
Device API

• Battery Status Event Specification
   o http://www.w3.org/TR/battery-status/
   o https://bugs.webkit.org/show_bug.cgi?id=62698


• Contacts API
  o http://www.w3.org/TR/2011/WD-contacts-api-20110616/
  o https://bugs.webkit.org/show_bug.cgi?id=63223


• HTML Media Capture
HTML Media Capture
<input type="file" accept="image/*" capture="camera"
id="capture"> 

• HTML Media Capture is the HTML Form Based specification
  that allows the user to take a picture, record a sound file, or
  record a video like the file picker interface.
• The "capture" attribute can have the following values:
   o camera. microphone, camcorder, filesystem
• References
   o http://www.w3.org/TR/html-media-capture/
   o https://bugs.webkit.org/show_bug.cgi?id=63062
Unified Storage Quota API

• The feature/API is to allow webapps to request or query per-
  origin storage quota across multiple storage types (e.g.
  IndexedDB, SQL DB and FileSystemAPI)
• References
   o http://lists.w3.org/Archives/Public/public-
     webapps/2011JanMar/0346.html
   o https://bugs.webkit.org/show_bug.cgi?id=60355
Example
function errorCallback(error)
{
    testFailed("Error occurred: " + error);
    finishJSTest();
}

var grantedQuota;
function quotaCallback(newQuota)
{
    grantedQuota = newQuota;

    // We must be given 0 quota, the same amount as we requested.
    shouldBe("grantedQuota", "0");

    finishJSTest();
}

if (window.webkitStorageInfo) {
    window.jsTestIsAsync = true;

    // Requesting '0' quota for testing 
    // (this request must be almost always granted 
    // without showing any platform specific notification UI).
    webkitStorageInfo.requestQuota(webkitStorageInfo.TEMPORARY, 0, quotaCallback, errorCallback);
} else  
    debug("This test requires window.webkitStorageInfo.");
Shadow DOM API

• Expose the minimum subset of the larger Web Component
  Model
• Shadow DOM refers to the ability of the browser to include a
  subtree of DOM elements into the rendering of a document,
  but not into the main document DOM tree
• API
   o Element.webkitShadow
   o Element.webkitPseudo
   o document.webkitCreateShadow()
   o window.WebKitShadowRootConstructor
   o window.WebKitTreeScopeConstructor
• References
  o   http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/1345.html
Example

<!DOCTYPE HTML> <html> <body> The object's downloading progress:
<progress id="foo" value="33" max="100"></progress> </body> </html>


var download_progress = document.getElementsById("foo");
console.log(download_progress.firstChild); // returns null
root = download_progress.shadowRoot;
Example
#if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG
/* progress */

progress {
    -webkit-appearance: progress-bar;
    -webkit-box-sizing: border-box;
    display: inline-block;                <progress>
    height: 1em;
    width: 10em;                            ┗ <div> ::-webkit-progress-bar
    vertical-align: -0.2em;
}
                                                ┗ <div>::-webkit-progress-value
progress::-webkit-progress-bar {
    background-color: gray;
    height: 100%;
    width: 100%;
    -webkit-box-sizing: border-box;
}

progress::-webkit-progress-value {
    background-color: green;
    height: 100%;
    width: 50%; /* should be removed later */
    -webkit-box-sizing: border-box;
}
#endif
WebCL




Samsung has added WebCL JS API to WebKit

WebCL is a new activity in Khronos that is defining JavaScript
bindings to OpenCL

http://code.google.com/p/webcl/
WebKit2 on Nokia N9

• Provides QtWebKit2 based browser
• Reference
   o http://conversations.nokia.com/2011/06/28/nokia-n9-
     opening-the-browser/
고 맙 습 니 다   !

Mais conteúdo relacionado

Mais procurados

Korea linuxforum2014 html5game-sangseoklim
Korea linuxforum2014 html5game-sangseoklimKorea linuxforum2014 html5game-sangseoklim
Korea linuxforum2014 html5game-sangseoklimSang Seok Lim
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkImam Raza
 
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Igalia
 
Bundling your front-end with Webpack
Bundling your front-end with WebpackBundling your front-end with Webpack
Bundling your front-end with WebpackDanillo Corvalan
 
Pushing the Boundaries of Sencha and HTML5′s WebRTC
Pushing the Boundaries of Sencha and HTML5′s WebRTCPushing the Boundaries of Sencha and HTML5′s WebRTC
Pushing the Boundaries of Sencha and HTML5′s WebRTCRich Waters
 
Native-Javascript Bridging Using WKWebViews in iOS8
Native-Javascript Bridging Using WKWebViews in iOS8Native-Javascript Bridging Using WKWebViews in iOS8
Native-Javascript Bridging Using WKWebViews in iOS8Priya Rajagopal
 
Client vs Server Templating: Speed up initial load for SPA with Angular as an...
Client vs Server Templating: Speed up initial load for SPA with Angular as an...Client vs Server Templating: Speed up initial load for SPA with Angular as an...
Client vs Server Templating: Speed up initial load for SPA with Angular as an...David Amend
 
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCamp
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCampHow to keep Drupal relevant in the Git-based and API-driven CMS era - BADCamp
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCampJesus Manuel Olivas
 
jQuery Conf 2012
jQuery Conf 2012jQuery Conf 2012
jQuery Conf 2012Brett Holt
 
Web Components Everywhere
Web Components EverywhereWeb Components Everywhere
Web Components EverywhereIlia Idakiev
 
A High-Performance Solution to Microservice UI Composition @ XConf Hamburg
A High-Performance Solution to Microservice UI Composition @ XConf HamburgA High-Performance Solution to Microservice UI Composition @ XConf Hamburg
A High-Performance Solution to Microservice UI Composition @ XConf HamburgDr. Arif Wider
 
Drupal point of vue
Drupal point of vueDrupal point of vue
Drupal point of vueDavid Ličen
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering PipelineHyungwook Lee
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esdavrous
 

Mais procurados (20)

Polymer Web Framework - Swecha Boot Camp
Polymer Web Framework - Swecha Boot CampPolymer Web Framework - Swecha Boot Camp
Polymer Web Framework - Swecha Boot Camp
 
Web Components
Web ComponentsWeb Components
Web Components
 
Korea linuxforum2014 html5game-sangseoklim
Korea linuxforum2014 html5game-sangseoklimKorea linuxforum2014 html5game-sangseoklim
Korea linuxforum2014 html5game-sangseoklim
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
 
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
 
Bundling your front-end with Webpack
Bundling your front-end with WebpackBundling your front-end with Webpack
Bundling your front-end with Webpack
 
An Overview on Nuxt.js
An Overview on Nuxt.jsAn Overview on Nuxt.js
An Overview on Nuxt.js
 
Pushing the Boundaries of Sencha and HTML5′s WebRTC
Pushing the Boundaries of Sencha and HTML5′s WebRTCPushing the Boundaries of Sencha and HTML5′s WebRTC
Pushing the Boundaries of Sencha and HTML5′s WebRTC
 
Native-Javascript Bridging Using WKWebViews in iOS8
Native-Javascript Bridging Using WKWebViews in iOS8Native-Javascript Bridging Using WKWebViews in iOS8
Native-Javascript Bridging Using WKWebViews in iOS8
 
Client vs Server Templating: Speed up initial load for SPA with Angular as an...
Client vs Server Templating: Speed up initial load for SPA with Angular as an...Client vs Server Templating: Speed up initial load for SPA with Angular as an...
Client vs Server Templating: Speed up initial load for SPA with Angular as an...
 
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCamp
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCampHow to keep Drupal relevant in the Git-based and API-driven CMS era - BADCamp
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCamp
 
jQuery Conf 2012
jQuery Conf 2012jQuery Conf 2012
jQuery Conf 2012
 
Web Components Everywhere
Web Components EverywhereWeb Components Everywhere
Web Components Everywhere
 
A High-Performance Solution to Microservice UI Composition @ XConf Hamburg
A High-Performance Solution to Microservice UI Composition @ XConf HamburgA High-Performance Solution to Microservice UI Composition @ XConf Hamburg
A High-Performance Solution to Microservice UI Composition @ XConf Hamburg
 
Drupal point of vue
Drupal point of vueDrupal point of vue
Drupal point of vue
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering Pipeline
 
Demystifying HTML5
Demystifying HTML5Demystifying HTML5
Demystifying HTML5
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
 
Deploy like a pro!
Deploy like a pro!Deploy like a pro!
Deploy like a pro!
 
SnapyX - ParisJS
SnapyX - ParisJSSnapyX - ParisJS
SnapyX - ParisJS
 

Semelhante a Web Standards Support in WebKit

HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on MobileAdam Lu
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
 
Rich Portlet Development in uPortal
Rich Portlet Development in uPortalRich Portlet Development in uPortal
Rich Portlet Development in uPortalJennifer Bourey
 
Performance Metrics in a Day with Selenium
Performance Metrics in a Day with SeleniumPerformance Metrics in a Day with Selenium
Performance Metrics in a Day with SeleniumMark Watson
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWAREFIWARE
 
Notes on SF W3Conf
Notes on SF W3ConfNotes on SF W3Conf
Notes on SF W3ConfEdy Dawson
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WAREFermin Galan
 
Automating Research Data Flows and Introduction to the Globus Platform
Automating Research Data Flows and Introduction to the Globus PlatformAutomating Research Data Flows and Introduction to the Globus Platform
Automating Research Data Flows and Introduction to the Globus PlatformGlobus
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to TornadoGavin Roy
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCLFastly
 
Automating Research Data Flows and an Introduction to the Globus Platform
Automating Research Data Flows and an Introduction to the Globus PlatformAutomating Research Data Flows and an Introduction to the Globus Platform
Automating Research Data Flows and an Introduction to the Globus PlatformGlobus
 
e10sとアプリ間通信
e10sとアプリ間通信e10sとアプリ間通信
e10sとアプリ間通信Makoto Kato
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSocketsGonzalo Ayuso
 
How to Build Your First Web App in Go
How to Build Your First Web App in GoHow to Build Your First Web App in Go
How to Build Your First Web App in GoAll Things Open
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
HTML for the Mobile Web, Firefox OS
HTML for the Mobile Web, Firefox OSHTML for the Mobile Web, Firefox OS
HTML for the Mobile Web, Firefox OSAll Things Open
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Arun Gupta
 
[HEWEBAR 2012] Adaptive Images in Responsive Web Design
[HEWEBAR 2012] Adaptive Images in Responsive Web Design[HEWEBAR 2012] Adaptive Images in Responsive Web Design
[HEWEBAR 2012] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersBrian Huff
 

Semelhante a Web Standards Support in WebKit (20)

HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
 
Rich Portlet Development in uPortal
Rich Portlet Development in uPortalRich Portlet Development in uPortal
Rich Portlet Development in uPortal
 
Performance Metrics in a Day with Selenium
Performance Metrics in a Day with SeleniumPerformance Metrics in a Day with Selenium
Performance Metrics in a Day with Selenium
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
Notes on SF W3Conf
Notes on SF W3ConfNotes on SF W3Conf
Notes on SF W3Conf
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WARE
 
Automating Research Data Flows and Introduction to the Globus Platform
Automating Research Data Flows and Introduction to the Globus PlatformAutomating Research Data Flows and Introduction to the Globus Platform
Automating Research Data Flows and Introduction to the Globus Platform
 
An Introduction to Tornado
An Introduction to TornadoAn Introduction to Tornado
An Introduction to Tornado
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
 
Automating Research Data Flows and an Introduction to the Globus Platform
Automating Research Data Flows and an Introduction to the Globus PlatformAutomating Research Data Flows and an Introduction to the Globus Platform
Automating Research Data Flows and an Introduction to the Globus Platform
 
e10sとアプリ間通信
e10sとアプリ間通信e10sとアプリ間通信
e10sとアプリ間通信
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
 
How to Build Your First Web App in Go
How to Build Your First Web App in GoHow to Build Your First Web App in Go
How to Build Your First Web App in Go
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
HTML for the Mobile Web, Firefox OS
HTML for the Mobile Web, Firefox OSHTML for the Mobile Web, Firefox OS
HTML for the Mobile Web, Firefox OS
 
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
Spark IT 2011 - Simplified Web Development using Java Server Faces 2.0
 
[HEWEBAR 2012] Adaptive Images in Responsive Web Design
[HEWEBAR 2012] Adaptive Images in Responsive Web Design[HEWEBAR 2012] Adaptive Images in Responsive Web Design
[HEWEBAR 2012] Adaptive Images in Responsive Web Design
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
 

Mais de Joone Hur

Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...
Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...
Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...Joone Hur
 
GNOME development on Tizen Mobile
GNOME development on Tizen MobileGNOME development on Tizen Mobile
GNOME development on Tizen MobileJoone Hur
 
How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+Joone Hur
 
WebKitGtk+ Project
WebKitGtk+ ProjectWebKitGtk+ Project
WebKitGtk+ ProjectJoone Hur
 
GNOME3 & 그놈 한국 공동체
GNOME3 & 그놈 한국 공동체GNOME3 & 그놈 한국 공동체
GNOME3 & 그놈 한국 공동체Joone Hur
 
웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)Joone Hur
 
웹브라우저는 어떻게 동작하나?
웹브라우저는 어떻게 동작하나?웹브라우저는 어떻게 동작하나?
웹브라우저는 어떻게 동작하나?Joone Hur
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010Joone Hur
 
Fennec의 현재와 미래
Fennec의 현재와 미래Fennec의 현재와 미래
Fennec의 현재와 미래Joone Hur
 

Mais de Joone Hur (9)

Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...
Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...
Accelerate graphics performance with ozone-gbm on Intel based Linux desktop s...
 
GNOME development on Tizen Mobile
GNOME development on Tizen MobileGNOME development on Tizen Mobile
GNOME development on Tizen Mobile
 
How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+
 
WebKitGtk+ Project
WebKitGtk+ ProjectWebKitGtk+ Project
WebKitGtk+ Project
 
GNOME3 & 그놈 한국 공동체
GNOME3 & 그놈 한국 공동체GNOME3 & 그놈 한국 공동체
GNOME3 & 그놈 한국 공동체
 
웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)웹 브라우저는 어떻게 동작하나? (2)
웹 브라우저는 어떻게 동작하나? (2)
 
웹브라우저는 어떻게 동작하나?
웹브라우저는 어떻게 동작하나?웹브라우저는 어떻게 동작하나?
웹브라우저는 어떻게 동작하나?
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010
 
Fennec의 현재와 미래
Fennec의 현재와 미래Fennec의 현재와 미래
Fennec의 현재와 미래
 

Último

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Web Standards Support in WebKit

  • 1. Web Standards Support in WebKit 허 준 회 (Joone Hur) Collabora
  • 2. About me • WebKit Committer • Working for Collabora (http://collabora.com) • Working on WebKitGtk+, WebKit-Clutter • Blog: http://opensoftware.kr • Email: joone.hur@collabora.com
  • 3. Contents • Custom scheme and content handlers • AddSearchProvider • Navigation Timing • Device API o Battery Status Event o Contacts API o HTML Media Capture API • Unified Storage Quota API • Shadow DOM API • WebKit News o WebCL & WebKit2 based Browser
  • 4. Custom scheme and content handlers • 웹 사 이 트 에 서 Protocol 이 나 mimetype 을 임 의 로 등 록 하 여 특 정 URL 에 서 처 리 하 도 록 함 • Interface o window.navigator.registerProtocalHandler(scheme, url, title) o window.navigator.registerContentHandler(mineType, url, title) • References o http://dev.w3.org/html5/spec/Overview.html#dom-navigator- registerprotocolhandler o http://trac.webkit.org/changeset/50477 o https://developer.mozilla.org/En/DOM:window.navigator.register ContentHandler o https://developer.mozilla.org/en/DOM/window.navigator.registerP rotocolHandler • Firefox, Chromium 지 원
  • 5. Example <head>     <script type="text/javascript">         function RegisterHandler () {             navigator.registerProtocolHandler ("mailto", "http://help.dottoro.com/protocolHandler.php?uri=%s", "Dottoro mailto protocol handler");     }     </script> </head> <body>     <button onclick="RegisterHandler ();">Register a handler for the mailto protocol!</button> </body>
  • 6. AddSearchProvider • Search Box 에 검 색 엔 진 을 등 록 하 는 기 능   • 지 원 하 는 interface o window.external.AddSearchProvider() o window.external.IsSearchProviderInstalled() • Firefox, IE, Chromium 에 서 지 원
  • 7. Navigation Timing • This specification defines an interface for web applications to access timing information related to navigation and elements. • The API will allow web application to gather performance metrics about various factors such as page redirect, DNS lookup, connection & secure connection statistics, request/response time, various events, etc • Chromium, Firefox Support • Reference o http://www.w3.org/TR/navigation-timing/
  • 9. Example var start = new Date().getTime(); function onLoad() {   var now = new Date().getTime();   var latency = now - start;   alert("page loading time: " + latency); } function onLoad() {   var now = new Date().getTime();   var page_load_time = now - performance.timing.navigationStart;   alert("User-perceived page loading time: " + page_load_time); }
  • 10. Demo Page for Navigation Timing http://webtimingdemo.appspot.com/
  • 11. Device API • Battery Status Event Specification o http://www.w3.org/TR/battery-status/ o https://bugs.webkit.org/show_bug.cgi?id=62698 • Contacts API o http://www.w3.org/TR/2011/WD-contacts-api-20110616/ o https://bugs.webkit.org/show_bug.cgi?id=63223 • HTML Media Capture
  • 12. HTML Media Capture <input type="file" accept="image/*" capture="camera" id="capture">  • HTML Media Capture is the HTML Form Based specification that allows the user to take a picture, record a sound file, or record a video like the file picker interface. • The "capture" attribute can have the following values: o camera. microphone, camcorder, filesystem • References o http://www.w3.org/TR/html-media-capture/ o https://bugs.webkit.org/show_bug.cgi?id=63062
  • 13. Unified Storage Quota API • The feature/API is to allow webapps to request or query per- origin storage quota across multiple storage types (e.g. IndexedDB, SQL DB and FileSystemAPI) • References o http://lists.w3.org/Archives/Public/public- webapps/2011JanMar/0346.html o https://bugs.webkit.org/show_bug.cgi?id=60355
  • 14. Example function errorCallback(error) {     testFailed("Error occurred: " + error);     finishJSTest(); } var grantedQuota; function quotaCallback(newQuota) {     grantedQuota = newQuota;     // We must be given 0 quota, the same amount as we requested.     shouldBe("grantedQuota", "0");     finishJSTest(); } if (window.webkitStorageInfo) {     window.jsTestIsAsync = true;     // Requesting '0' quota for testing      // (this request must be almost always granted      // without showing any platform specific notification UI).     webkitStorageInfo.requestQuota(webkitStorageInfo.TEMPORARY, 0, quotaCallback, errorCallback); } else       debug("This test requires window.webkitStorageInfo.");
  • 15. Shadow DOM API • Expose the minimum subset of the larger Web Component Model • Shadow DOM refers to the ability of the browser to include a subtree of DOM elements into the rendering of a document, but not into the main document DOM tree • API o Element.webkitShadow o Element.webkitPseudo o document.webkitCreateShadow() o window.WebKitShadowRootConstructor o window.WebKitTreeScopeConstructor • References o http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/1345.html
  • 16. Example <!DOCTYPE HTML> <html> <body> The object's downloading progress: <progress id="foo" value="33" max="100"></progress> </body> </html> var download_progress = document.getElementsById("foo"); console.log(download_progress.firstChild); // returns null root = download_progress.shadowRoot;
  • 17. Example #if defined(ENABLE_PROGRESS_TAG) && ENABLE_PROGRESS_TAG /* progress */ progress {     -webkit-appearance: progress-bar;     -webkit-box-sizing: border-box;     display: inline-block; <progress>     height: 1em;     width: 10em; ┗ <div> ::-webkit-progress-bar     vertical-align: -0.2em; } ┗ <div>::-webkit-progress-value progress::-webkit-progress-bar {     background-color: gray;     height: 100%;     width: 100%;     -webkit-box-sizing: border-box; } progress::-webkit-progress-value {     background-color: green;     height: 100%;     width: 50%; /* should be removed later */     -webkit-box-sizing: border-box; } #endif
  • 18. WebCL Samsung has added WebCL JS API to WebKit WebCL is a new activity in Khronos that is defining JavaScript bindings to OpenCL http://code.google.com/p/webcl/
  • 19. WebKit2 on Nokia N9 • Provides QtWebKit2 based browser • Reference o http://conversations.nokia.com/2011/06/28/nokia-n9- opening-the-browser/
  • 20. 고 맙 습 니 다 !