{"id":1255,"date":"2015-02-18T15:27:00","date_gmt":"2015-02-18T21:27:00","guid":{"rendered":"http:\/\/www.alandmoore.com\/blog\/?p=1255"},"modified":"2015-02-18T15:49:39","modified_gmt":"2015-02-18T21:49:39","slug":"meet-admbrowser","status":"publish","type":"post","link":"https:\/\/alandmoore.com\/blog\/2015\/02\/18\/meet-admbrowser\/","title":{"rendered":"Meet ADMBrowser"},"content":{"rendered":"<p>\nIt&#8217;s been a snowy week like Tennessee hasn&#8217;t seen in decades, so with a couple of extra down-days on my hands I decided to work on a project that&#8217;s been on my docket for some time:  porting <a href=\"http:\/\/github.com\/alandmoore\/wcgbrowser\">WCGBrowser<\/a> to a new web-rendering engine.\n<\/p>\n<p>\nWCGBrowser has been my most popular open-source project by far, and between blog posts I&#8217;ve seen and emails I&#8217;ve received, it seems to be powering kiosks and signage from New England to the Netherlands, Germany, and Australia.  I&#8217;ve found it quite useful within my own organization, but it&#8217;s Achille&#8217;s heel for many years has been QtWebKit.\n<\/p>\n<p>\nQtWebKit is, basically, dead, and starting to stink a little.  Its performance is slow, it&#8217;s buggy with some websites, and it tends to leak memory like a seive.  The Qt community has been working for the last couple year to integrate Chrome\/Chromium&#8217;s <a href=\"http:\/\/www.chromium.org\/blink\">Blink<\/a> browser engine into Qt, and recently with the release of 5.4 this new &#8220;QtWebEngine&#8221; library is now available for me to play with on Arch Linux.\n<\/p>\n<p>\nSo I&#8217;ve begun porting the browser to QtWebEngine.  It became immediately obvious that this was going to break a lot of things in WCGBrowser, and I&#8217;ve been wanting to change the name for a while, so I decided to fork WCGBrowser and start a new project.\n<\/p>\n<p>\nI give you <a href=\"http:\/\/github.com\/alandmoore\/admbrowser\">ADMBrowser<\/a>.\n<\/p>\n<p>\nYeah, I went full ego on the name.  Mostly I just want to avoid a name collision with a commercial browser, since there is a new one being bankrolled by VC every five minutes.\n<\/p>\n<div id=\"outline-container-sec-1\" class=\"outline-2\">\n<h2 id=\"sec-1\">ADMBrowser<\/h2>\n<div class=\"outline-text-2\" id=\"text-1\">\n<p>\nSo far ADMBrowser is a quick-n-dirty port of WCGBrowser to QtWebEngine, basically discarding any features that couldn&#8217;t be easily ported with a search-and-replace.  Sadly, that&#8217;s a lot of important features so far:\n<\/p>\n<ul class=\"org-ul\">\n<li>Plugin support\n<\/li>\n<li>External File (PDF, etc) support\n<\/li>\n<li>Privacy mode\n<\/li>\n<li>Proxy support\n<\/li>\n<li>Certificate handling\n<\/li>\n<\/ul>\n<p>\nThat&#8217;s just the quick core-features test findings.  I haven&#8217;t tried all the more obscure features yet.  Needless to say, don&#8217;t swap your production rig to ADMBrowser just yet.\n<\/p>\n<p>\nApart from the WebEngine move, I plan to clean up some of the redundant configuration options and maybe organize things a little better.  I&#8217;ll also be dropping support for Python 2 (or at least not going far out of my way to support it).\n<\/p>\n<p>\nHopefully QtWebEngine will mature quickly, or workarounds will come to light.  I can tell already that many rendering and performance bugs from the old WCGBrowser are tidied by by the new renderer.\n<\/p>\n<p>\nIf you&#8217;re Python &amp; Qt coder who might be able to help me fix some of these things, please feel free to fork and submit pull requests.\n<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The author introduces the ADMBrowser project, still in its infancy<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[33,28,47,41],"class_list":["post-1255","post","type-post","status-publish","format-standard","hentry","category-programming","tag-kiosk","tag-programming-2","tag-python","tag-software-projects"],"_links":{"self":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts\/1255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/comments?post=1255"}],"version-history":[{"count":1,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts\/1255\/revisions"}],"predecessor-version":[{"id":1257,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/posts\/1255\/revisions\/1257"}],"wp:attachment":[{"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/media?parent=1255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/categories?post=1255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alandmoore.com\/blog\/wp-json\/wp\/v2\/tags?post=1255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}