On 6/16/15 10:32 PM, Robert Jones wrote:
Hi Benjamin,

On Tue, Jun 16, 2015 at 10:19 PM, Benjamin Poulain <[email protected]
<mailto:[email protected]>> 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


_______________________________________________
webkit-help mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-help

Reply via email to