{"id":686,"date":"2013-09-27T14:58:51","date_gmt":"2013-09-27T12:58:51","guid":{"rendered":"http:\/\/blogs.igalia.com\/carlosgc\/?p=686"},"modified":"2013-09-27T14:58:51","modified_gmt":"2013-09-27T12:58:51","slug":"webkitgtk-2-2-0-it-shines-and-doesnt-blink","status":"publish","type":"post","link":"https:\/\/blogs.igalia.com\/carlosgc\/2013\/09\/27\/webkitgtk-2-2-0-it-shines-and-doesnt-blink\/","title":{"rendered":"WebKitGTK+ 2.2.0: It shines and doesn&#8217;t blink"},"content":{"rendered":"<p>With a bit of delay but we have finally released a<a href=\"https:\/\/lists.webkit.org\/pipermail\/webkit-gtk\/2013-September\/001590.html\"> new stable version of WebKitGTK+<\/a>. This is the first stable release after the <a href=\"http:\/\/blogs.igalia.com\/carlosgc\/2013\/04\/11\/webkitgtk-2-0-0\/\">major 2.0 release<\/a>. It mainly contains a lot of bug fixes and a few important new futures and API additions.<\/p>\n<h2>New Web Inspector<\/h2>\n<p>WebKitGTK+ now uses the <a href=\"https:\/\/www.webkit.org\/blog\/2518\/state-of-web-inspector\/\">new Web Inspector<\/a> recently opensourced and upstreamed by Apple. We took advantage of the migration to improve the way inspector resources are distributed by compiling them in the WebKitGTK+ library as GResources. This means that resources are now always available without having to run make install or set environment variables.<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blogs.igalia.com\/carlosgc\/files\/2013\/09\/webkit-new-inspector.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-687\" alt=\"WebKitGTK+ new Web Inspector\" src=\"http:\/\/blogs.igalia.com\/carlosgc\/files\/2013\/09\/webkit-new-inspector-300x264.png\" width=\"300\" height=\"264\" srcset=\"https:\/\/blogs.igalia.com\/carlosgc\/files\/2013\/09\/webkit-new-inspector-300x264.png 300w, https:\/\/blogs.igalia.com\/carlosgc\/files\/2013\/09\/webkit-new-inspector-1024x901.png 1024w, https:\/\/blogs.igalia.com\/carlosgc\/files\/2013\/09\/webkit-new-inspector.png 1068w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h2>Initial Wayland support<\/h2>\n<p>WebKitGTK+ 2.2 can be built with <a href=\"http:\/\/wayland.freedesktop.org\/\">Wayland<\/a> target if it&#8217;s available (it requires GTK+ 3.10 compiled with Wayland support). Not everything is fully supported yet, but the WebKit layout tests can be run under the Weston compositor and WebGL content works under Wayland displays too. There&#8217;s more detailed information in <a href=\"http:\/\/falcosigh.wordpress.com\/2013\/09\/23\/final-remarks-on-gsoc-2013\/\">\u017dan Dober\u0161ek&#8217;s blog<\/a>.<\/p>\n<h2>Video accelerated compositing support<\/h2>\n<p>When accelerated compositing is enabled, the GStreamer media player can play videos using OpenGL. You can find more details in <a href=\"http:\/\/blogs.igalia.com\/vjaquez\/2013\/07\/26\/composited-video-support-in-webkitgtk\/\">V\u00edctor&#8217;s blog<\/a>.<\/p>\n<h2>Custom JavaScript injection<\/h2>\n<p>This was one of the major regressions in WebKit2GTK+ compared to the WebKit1 API. WebKitGTK+ 2.2 now allows to inject custom JavaScript code using the JavaScriptCore C API from a WebKit Web Process Extension. New API has been added to also allow running specific JavaScript code in isolated worlds. You can find examples about how to use this API and how to write Web Process Extensions in general in <a href=\"http:\/\/blogs.igalia.com\/carlosgc\/2013\/09\/10\/webkit2gtk-web-process-extensions\/\">this post<\/a>.<\/p>\n<h2>Improved accessibility support in WebKit2<\/h2>\n<p>Accessibility support in WebKit2 has been reworked to not depend on pango and gail, which resulted in several bugs fixed and a much better accessibility support. Check <a href=\"http:\/\/mariospr.org\/2013\/09\/13\/goodbye-pango-goodbye-gail\/\">Mario&#8217;s blog<\/a> for all the details.<\/p>\n<h2>New API<\/h2>\n<ul>\n<li><a href=\"http:\/\/webkitgtk.org\/reference\/webkit2gtk\/stable\/WebKitAuthenticationRequest.html\"><code>WebKitAuthenticationRequest<\/code><\/a>: This is a new object used by the new <a href=\"http:\/\/webkitgtk.org\/reference\/webkit2gtk\/stable\/WebKitWebView.html#WebKitWebView-authenticate\"><code>WebKitWebView::authenticate<\/code><\/a> signal, that allows to implement a custom authentication mechanism (instead of the embedded dialog used by default) or simply disable HTTPS authentication entirely.<\/li>\n<li><a href=\"http:\/\/webkitgtk.org\/reference\/webkit2gtk\/stable\/WebKitScriptWorld.html\"><code>WebKitScriptWorld<\/code><\/a>: Used to inject custom JavaScript code in the main world, but also to create isolated worlds.<\/li>\n<li><a href=\"http:\/\/webkitgtk.org\/reference\/webkit2gtk\/stable\/WebKitURISchemeRequest.html#webkit-uri-scheme-request-finish-error\"><code>webkit_uri_scheme_request_finish_error()<\/code><\/a>: This new method makes it possible to finish a load of a custom URI scheme request with an error.<\/li>\n<li>New <a href=\"http:\/\/webkitgtk.org\/reference\/webkit2gtk\/stable\/WebKitSettings.html\"><code>WebKitSettings<\/code><\/a>: <a href=\"http:\/\/webkitgtk.org\/reference\/webkit2gtk\/stable\/WebKitSettings.html#WebKitSettings--enable-accelerated-2d-canvas\">enable-accelerated-2d-canvas<\/a> and <a href=\"http:\/\/webkitgtk.org\/reference\/webkit2gtk\/stable\/WebKitSettings.html#WebKitSettings--enable-write-console-messages-to-stdout\">enable-write-console-messages-to-stdout<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>With a bit of delay but we have finally released a new stable version of WebKitGTK+. This is the first stable release after the major 2.0 release. It mainly contains a lot of bug fixes and a few important new &hellip; <a href=\"https:\/\/blogs.igalia.com\/carlosgc\/2013\/09\/27\/webkitgtk-2-2-0-it-shines-and-doesnt-blink\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,7,8],"tags":[22],"class_list":["post-686","post","type-post","status-publish","format-standard","hentry","category-free-software","category-igalia","category-webkit","tag-webkit"],"_links":{"self":[{"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/posts\/686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/comments?post=686"}],"version-history":[{"count":5,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/posts\/686\/revisions"}],"predecessor-version":[{"id":692,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/posts\/686\/revisions\/692"}],"wp:attachment":[{"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/media?parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/categories?post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/tags?post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}