lca2013 – Day 2 – Session 1

Today I thought I’d go between miniconfs a little looking for talks I’m interested in. I was originally going to come mostly to openstack but I some of the talks seem a little specialised and there are some good talks elsewhere. Hopefully everybody will to close to schedule so switching will be easy.

Introduction to OpenStack – Joshua McKenty

Worked at NASA

Components increasing a rapid rate but most computer, networking and storage

Almost all commiters are paid to work on openstack

Quantum/Networking: Lots of paid plugins alongside free options

Generally a bit of an intro to the openstack organisation rather than the technology that I was expecting.

The WebKit Browser Engine – An Overview – Dirk Schulze

What is webkit?

  • Just a browser engine
  • Used in Safari, Chrome and others
  • High market share on mobile, lower penetration on desktop


  • Webcore – triggering load pages, actually drawing, calculating layout,
  • Javascript engine (alternative used in Chrome is V8)
  • “Webkit” – platform dependent stuff, access graphic libraries (gtk, qt)


  • html document + CSS + Javascript
  • Parse HTML docs, get dom elements, create a DOM Tree
  • Everything in DOM tree can be accessed from javascript
  • Render Tree just has stuff needed to render the page
  • Eg <head> element doesn’t get into render tree but are in dom tree, same with “display: none” elements
  • Some elements are in render tree but not Dom tree (eg anonymous blocks)
  • Renderlayer – render elements above/below other elements ( eg using – style=”z-index: 1;” ), stacking context ( also via opacity, filter or mask )

Render Object

  • Layout – dimension of the element ( height, width, plus borders, positioning )
    • So if updated only need to repaint affected area
  • Paint – Draw element on screen
  • Multiple paint phases called from RenderLayer
    • Background, borders
    • floating content
    • inline content
    • Based on CSS boxing model, code follows spec
  • Hit testing
    • Pointer events – homer, onmouseover
  • SVG – different from other renderers
    • One element – one renderer
    • No CSS boxing model, No anonymous blocks, different handling on transformations

Implementing new elements and Interfaces

  • Look at the specification