An introduction to WebKit content blockers<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p class="intro">I'm not sure what to think of content blockers in Apple's Safari for iPhone and iPad browser, and the technology that powers it, the open source WebKit.</p> <p><a href="
http://www.imore.com/wwdc-2015" alt="WWDC 2015"><img src="
" class="badge-left" width="150" height="150" />[/url]</p> <p>As someone who makes content, I never block it. That's because I want more content and blocking it will lead to less. That said, I'm trying to understand content blocking and what it means not just for my work on the web, but my life on it. <!--break--></p> <p>I had the chance to talk to several people about the technology at
WWDC 2015 and it's absolutely clear to me no one is making content blockers to hurt any creators or any companies. They're doing it to give people more control over what they see, hear, and experience on the internet. It's a tool, and how it's used will determine if it's good or bad for you, me, and the websites we all know and love.</p> <p>The WebKit blog,
Surfin' Safari, has posted some more information about what content blockers are and how the extensions work.</p>
<p>We have been building these features with a focus on providing better control over privacy. We wanted to enable better privacy filters, and that is what has been driving the feature set that exists today.</p> <p>There is a whole universe of features that can take advantage of the content blocker API, around privacy or better user experience. We would love to hear your feedback about what works well, what needs improvement, and what is missing.</p> <p>A major benefit of the declarative content blocking extension model is that the extension does not see the URLs of pages and resources the user browsed to or had a page request. WebKit itself does not keep track of what rules have been executed on which URLs; we do not track you by design.</p> <p>Everything has been developed in the open; everyone is welcome to audit and improve the code. The main part of content blockers lives in Source/WebCore/contentextensions.</p>
<p>If you're considering making or using a content blocker in Safari for iPhone or iPad, read the rest and let me know what you think and why.</p> <div class="devicebox"> <h3>
WWDC 2015</h3> <p><img src="
" alt="WWDC 2015" /></p> <ul><li>
WWDC 2015 hub</li> <li>
iOS 9 hub</li> <li>
OS X 10.11 hub</li> <li>
Apple Watch hub</li> <li>
Swift hub</li> <li>
Discussion forums</li> </ul></div> <div> <style> <!--/*--><![CDATA[/* ><!--*/ <!--/*--><![CDATA[/* ><!--*/ <!--/*--><![CDATA[/* ><!--*/ .devicebox { background-color: #5CB8DB; border: 1px solid #E2E9EB; float: right; display: block; margin: 0 0px 10px 10px; max-width: 350px; overflow: hidden; width: 50%; } .devicebox h3 { background: #8D98BD; font-family: "camptonmedium",sans-serif; font-size: 20px; margin-bottom: 0; margin-top: 0; padding: 0; text-align: center; } .devicebox h3 a { display: block; line-height: 30px; padding: 0 10px; } .devicebox h3 a:hover { background: #7e88aa; text-decoration: none; } .devicebox .video { margin: auto; } .devicebox p, .entry-content .devicebox p > img, .devicebox img { margin: 0px; max-width: 100%; padding: 0px; } div .devicebox *, div .devicebox li, div .devicebox a:active, div .devicebox a:hover, div .devicebox a:link, div .devicebox a:visited { color: #fff; } .devicebox a:hover { text-decoration: underline; } .devicebox p, .devicebox ul li, .devicebox ol li { font-size: 16px; padding: initial; } .devicebox ul { margin: 0; padding: 0.5em 1em 1em 30px; } .devicebox ul li { display: list-item; line-height: 24px; list-style: disc outside none; } .devicebox ul li:before { display: none; } .devicebox p ~ p { padding: 0px 15px 15px; line-height: 1.25; } .devicebox p:first-of-type + p { padding: 15px; } div *:last-of-type + .devicebox, div *:last-of-type + div ~ .devicebox { float: none; margin: 0 auto 30px; max-width: 700px; min-height: 225px; position: relative; width: 100%; } div *:last-of-type + .devicebox .video, div *:last-of-type + div ~ .devicebox .video { bottom: 0px; left: 50%; position: absolute; right: 0px; top: 30px; } div *:last-of-type + .devicebox .video_iframe, div *:last-of-type + div ~ .devicebox .video_iframe { height: 100%; padding: 0px; } div *:last-of-type + .devicebox h3 + p, div *:last-of-type + div ~ .devicebox h3 + p { bottom: 0; left: 50%; overflow: hidden; position: absolute; right: 0; top: 30px; width: 50% } div *:last-of-type + .devicebox h3 + p img, div *:last-of-type + div ~ .devicebox h3 + p img { float: right; height: 100%; width: auto; } div *:last-of-type + .devicebox ul, div *:last-of-type + div ~ .devicebox ul, div *:last-of-type + .devicebox p, div *:last-of-type + div ~ .devicebox p { width: 43%; } @media all and (max-width: 500px) { .devicebox { float: none; margin: 0 0 30px; max-width: 100%; width: 100%; } div *:last-of-type + .devicebox .video, div *:last-of-type + div ~ .devicebox .video { left: 0; position: relative; top: 0; } div *:last-of-type + .devicebox .video_iframe, div *:last-of-type + div ~ .devicebox .video_iframe { padding-bottom: 56.25%; } div *:last-of-type + .devicebox h3 + p, div *:last-of-type + div ~ .devicebox h3 + p { left: 0; position: relative; top: 0; } div *:last-of-type + .devicebox ul, div *:last-of-type + div ~ .devicebox ul { width: auto; } } /*--><!]]]]]]><![CDATA[><![CDATA[>*/ /*--><!]]]]><![CDATA[>*/ /*--><!]]>*/ </style></div> </div></div></div><img width='1' height='1' src='
' border='0'/><br clear='all'/>
<a href="
http://da.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/rc/1/rc.htm" rel="nofollow"><img src="
http://da.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/rc/1/rc.img" border="0"/>[/url]
<a href="
http://da.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/rc/2/rc.htm" rel="nofollow"><img src="
http://da.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/rc/2/rc.img" border="0"/>[/url]
<a href="
http://da.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/rc/3/rc.htm" rel="nofollow"><img src="
http://da.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/rc/3/rc.img" border="0"/>[/url]
<img src="[url]http://da.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/a2.img" border="0"/>[/url]<img width="1" height="1" src="
http://pi.feedsportal.com/r/231049462908/u/49/f/616881/c/33998/s/47366016/sc/15/a2t.img" border="0"/><img src="
http://feeds.feedburner.com/~r/TheIphoneBlog/~4/CknT4Asod-Q" height="1" width="1" alt=""/>
Source:
An introduction to WebKit content blockers