{"id":403,"date":"2011-11-04T19:05:49","date_gmt":"2011-11-04T18:05:49","guid":{"rendered":"http:\/\/gnome\/minibrowser-ported-to-gtk-api"},"modified":"2011-11-04T19:05:49","modified_gmt":"2011-11-04T18:05:49","slug":"webkit2-gtk-minibrowser-ported-to-gtk-api","status":"publish","type":"post","link":"https:\/\/blogs.igalia.com\/carlosgc\/2011\/11\/04\/webkit2-gtk-minibrowser-ported-to-gtk-api\/","title":{"rendered":"WebKit2 GTK+ MiniBrowser ported to GTK+ API!"},"content":{"rendered":"<p>MiniBrowser is a small web browser application for testing <a href=\"http:\/\/trac.webkit.org\/wiki\/WebKit2\">WebKit2<\/a>. MiniBrowser for the GTK+ port <a href=\"http:\/\/blogs.igalia.com\/alex\/2011\/04\/08\/webkit2-minibrowser-for-the-gtk-port-running\/\">has been working for some time now<\/a>, but it was implemented using the C-based WebKit2 API. <a href=\"https:\/\/lists.webkit.org\/pipermail\/webkit-gtk\/2011-October\/000794.html\">WebKitGTK+ 1.7.1<\/a> introduced an initial high level GTK+ API for WebKit2 more similar to the current <a href=\"http:\/\/webkitgtk.org\/reference\/index.html\">WebKit1 GTK+ API<\/a>. This week, <a href=\"http:\/\/www.igalia.com\/\">Igalia<\/a>&#8216;s <a href=\"http:\/\/www.igalia.com\/nc\/work\/project\/item\/webkitgtk\/\">WebKit team<\/a> started to <a href=\"https:\/\/bugs.webkit.org\/show_bug.cgi?id=71447\">port the MiniBrowser<\/a> code to use the new GTK+ API.<\/p>\n<table border=\"0\" width=\"100%\">\n<tbody>\n<tr align=\"center\">\n<td><a href=\"http:\/\/blogs.igalia.com\/carlosgc\/files\/old\/mini-browser.png\"> <img decoding=\"async\" src=\"http:\/\/blogs.igalia.com\/carlosgc\/files\/old\/mini-browser-min.png\" alt=\"MiniBrowser running\" \/><\/a><\/td>\n<\/tr>\n<tr align=\"center\">\n<td><em>MiniBrowser running<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This new GTK+ API is far from complete compared to the <a href=\"http:\/\/webkitgtk.org\/reference\/index.html\">WebKit1 API<\/a>, but it&#8217;s already possible to implement a small application with basic features, and we have plans to create a webkit2 branch for <a href=\"http:\/\/projects.gnome.org\/epiphany\/\">epiphany<\/a> soon. API is already documented in the <a href=\"http:\/\/trac.webkit.org\/browser\/trunk\/Source\/WebKit2\/UIProcess\/API\/gtk\">code<\/a>, but the html generation is not available yet. We are already working on it so that WebKitGTK+ 1.7.2 will generate the API documentation when compiled with &#8211;enable-gtk-doc and &#8211;enable-webkit2 and it will be available on the <a href=\"http:\/\/webkitgtk.org\">WebKitGTK+ website<\/a> too.<\/p>\n<p>Thanks to the <a href=\"http:\/\/trac.webkit.org\/wiki\/WebKit2#ProcessArchitecture\">multiprocess architecture<\/a>, WebKit2GTK+ solves the problem of using flash (or any other plugin using GTK+2) with GTK+3. The UI process depends unconditonally on GTK+3 and the plugin process is always built with GTK+2. And of course, flash will never crash or block your web browser. Plugins are broken in WebKitGTK+ 1.7.1 due to a <a href=\"https:\/\/bugs.webkit.org\/show_bug.cgi?id=71027\">bug<\/a> that has already been fixed, so in order to try it out you need to either wait until 1.7.2 is released or <a href=\"https:\/\/trac.webkit.org\/wiki\/BuildingGtk\">build WebKit from current git master<\/a>.<\/p>\n<table border=\"0\" width=\"100%\">\n<tbody>\n<tr align=\"center\">\n<td><a href=\"http:\/\/blogs.igalia.com\/carlosgc\/files\/old\/mini-browser-flash.png\"> <img decoding=\"async\" src=\"http:\/\/blogs.igalia.com\/carlosgc\/files\/old\/mini-browser-flash-min.png\" alt=\"MiniBrowser showing a youtube video\" \/><\/a><\/td>\n<\/tr>\n<tr align=\"center\">\n<td><em>MiniBrowser showing a youtube video<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>MiniBrowser is a small web browser application for testing WebKit2. MiniBrowser for the GTK+ port has been working for some time now, but it was implemented using the C-based WebKit2 API. WebKitGTK+ 1.7.1 introduced an initial high level GTK+ API &hellip; <a href=\"https:\/\/blogs.igalia.com\/carlosgc\/2011\/11\/04\/webkit2-gtk-minibrowser-ported-to-gtk-api\/\">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":[6,7,8],"tags":[22],"class_list":["post-403","post","type-post","status-publish","format-standard","hentry","category-gnome","category-igalia","category-webkit","tag-webkit"],"_links":{"self":[{"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/posts\/403","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=403"}],"version-history":[{"count":0,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/posts\/403\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/media?parent=403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/categories?post=403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.igalia.com\/carlosgc\/wp-json\/wp\/v2\/tags?post=403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}