Last week in WebKit:
staying above 50 mph
This year’s WebKit Contributors Meeting is almost there: it starts next Thursday. The Contributors meeting is a great opportunity for contributors to discuss the future of WebKit.
If you are attending, don’t forget to prepare demos if you have anything cool to show, and update the wiki with suggestions for the Talks/Hackathons.
New exposed behaviors
Joseph Pecoraro added column numbers to the error messages displayed in the Inspector console.
Allan Sandfeld Jensen added support for mouseenter and mouseleave events. These are enabled by default and available for testing in the nightly builds.
- Andy Estes fixed a bug of Range.getClientRects(). The method could sometimes return rects for lines outside the selected range.
- Andrei Bucur modified the computation of element order for lists (<ol>, <li>) to use the DOM order instead of the Render Tree order. This ensure the numbering is correct even in tricky cases like CSS Regions.
- Lamarque V. Souza updated the implementation of WebSocket.send() to match the latest specification. The method no longer returns a boolean to indicate the success of the operation.
- HTMLOptionsCollection’s namedItem and name getter now return the first item as they should. The specification was updated recently and Ryosuke Niwa modified the code accordingly.
- Mihai Tica added the rendering part of CSS background-blend-mode. CoreGraphics’s GraphicsContext already supports the blend mode, which means you can already try the feature :). It is prefixed, so use -webkit-background-blend-mode with the blend modes defined in the specification.
- Allan updated CSS image-rendering once again. He removed the values crisp-edges, pixelated and -webkit-smooth and added the value -webkit-crisp-edges. This gives us more freedom to track the changing specification.
Engine engineering
There were a lot of performance optimizations this week. I cannot really list half of them so here are some cool random ones:
- Ryosuke Niwa, after banging his head on the wall for a couple of days, improved the performance of rendering a new selection by 20%.
- Antti Koivisto and Andreas Kling made a few changes to avoid recomputing the style when possible.
- Roman Zhuykov made a nice little DFG optimization. A little context: in JavaScript, double values have a negative zero: -0.0, while negative integer are represented with two’s complement do not have a negative zero. Roman changed the code generation to avoid checking for negative zero when certain conditions are met.
- Oliver Hunt added support for JavaScript Math.imul, and made it fast with baseline JIT and DFG implementations.
Some other stuff happening:
- Simon Fraser fixed the SVG pixel tests. This was a very nice change, and I let you discover how simple that was.
- Mikhail Pozdnyakov made improvements to the use of C++11 move semantic in WebKit.
- David Kilzer fixed some unsafe implicit conversion with the goal of enabling -Wshorten-64-to-32 for WTF on the Mac port.
- Some chromium cleaning is still needed. Seokju Kwon cleaned some scripts. Martin cleaned the dead code introduced with skia.
- Andreas Kling and I removed the unmaintained wxWebKit port from the tree.
- I removed the unmaintained Memory Instrumentation code.
- Kent Tamura and Nico Weber helped to clean some mess from chromium.
- Kentaro Hara keeps reviewing the patches about WebIDL and the code generator.
- Jessie did not disembowel me after breaking all Debug bots for a couple of hours.
The WebKitten of the week is Christophe Dumez for his great work on the binding generator and WebKit’s WebIDLs! It looks like we may have a new maintainer for the code generators.
Things to look forward to: