[webkit-help] Testing content blocking

Benjamin Poulain benjamin at webkit.org
Tue Jun 16 22:38:15 PDT 2015


On 6/16/15 10:32 PM, Robert Jones wrote:
> Hi Benjamin,
>
> On Tue, Jun 16, 2015 at 10:19 PM, Benjamin Poulain <benjamin at webkit.org
> <mailto:benjamin at webkit.org>> wrote:
>
>     Hi Rob,
>
>     On 6/16/15 9:54 PM, Robert Jones wrote:
>
>         I'm trying out some things with the new content blocking features in
>         WebKit.  Does anyone have suggestions on how to test content
>         blocking
>         beyond the following technique:
>
>            - Create JSON file
>            - Force iOS Simulator to reload the JSON file
>            - Reload the web page in mobile Safari
>            - Visually observe the correct behavior
>
>
>     I don't know if you use it, but you can ask Safari to reload the
>     extension once it is enabled:
>          +[SFContentBlockerManager
>     reloadContentBlockerWithIdentifier:completionHandler:]
>
>
> Thanks for the suggestion.  That's much easier than what I've been doing.
>
>
>     You can hook up that to a button so that you can just change the
>     file, press the button, enjoy.
>
>         I've noticed, when using 'css-display-none', that the blocked
>         content is
>         still visible in the web inspector, although the content is
>         correctly
>         blocked in mobile Safari.  So, I don't think I can observe the
>         output of
>         the web inspector.
>
>
>     If you select the element in inspector and check its computed style
>     in the sidebar, you will see that its display is set to none.
>
>     You can also see in the "Rules" panel that there is a "User
>     Stylesheet" that will have your selector and "display: none !important".
>
>
> Ah, I didn't know about these.  That helps a lot.
>
>
>
>         Is it possible to hook into some other part of WebKit to find
>         out what's
>         being blocked?  Are there perhaps some unit tests that do
>         something like
>         this?
>
>
>     In WebKit, we can test the rules in browser by using Minibrowser. It
>     lets us load any json file and we do a lot of ad hoc testing like that.
>
>
> What is Minibrowser?  Do you have a URL?  Is this something I can use too?

MiniBrowser is just a tiny test browser in WebKit.

If you get the WebKit source code and build it 
(Tools/Scripts/build-webkit --release, that takes a while), you can run 
minibrowser with Tools/Scripts/run-minibrowser.

If you use +[SFContentBlockerManager 
reloadContentBlockerWithIdentifier:completionHandler:], MiniBrowser 
offers pretty much the same thing.

>     The unit tests are in Tools/TestWebKitAPI/Tests/WebCore
>     The closest to the front end is ContentExtensions.cpp.
>
>
> Thanks, I'll look there to start.
>
>
>     Please file a bug report on http://bugreport.apple.com with what
>     tools you would like to help you develop your rules.
>     We have been mostly converting giant privacy list into the
>     declarative format and we are still getting feedback on what tools
>     developers want.
>
>
> I will once I've spent a bit more time on this.  I have a pretty good
> idea of what I'd like to see.

Once you start filing bug reports, can you please email me the bug numbers?
I'll triage them immediately to the Content Blockers enhancements.

>
>
>     If you run into any problem, email us on this list and we'll try to
>     help.
>
>
> Great!
>
> Cheers,
> Rob
>



More information about the webkit-help mailing list