[Webkit-unassigned] [Bug 169037] [WK2] Missing C API for UserContentExtensionStore prevents instantiating content extensions

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Mar 1 07:50:18 PST 2017


https://bugs.webkit.org/show_bug.cgi?id=169037

--- Comment #1 from Adrian Perez <aperez at igalia.com> ---
I have already a WIP patch for this, as a side effect of working on
bug #167941 and wanting to unskip the layout tests in the GTK+ port.
Once I figure out a couple of rough edges and can run the tests I
will upload the patch.

The API bits being added would be:

  // Source/WebKit2/UIProcess/API/C/WKUserContentExtensionStoreRef.h

  WK_EXPORT WKUserContentExtensionStoreRef WKUserContentExtensionStoreCreate(WKStringRef path);

  enum {
    kWKUserContentExtensionStoreSuccess = 0,
    kWKUserContentExtensionStoreLookupFailed,
    kWKUserContentExtensionStoreVersionMismatch,
    kWKUserContentExtensionStoreCompileFailed,
    kWKUserContentExtensionStoreRemoveFailed,
  };
  typedef uint32_t WKUserContentExtensionStoreResult;

  typedef void (*WKUserContentExtensionStoreFilterFunction)(WKUserContentExtensionStoreRef,   
                                                            WKUserContentFilterRef,
                                                            WKUserContentExtensionStoreResult,
                                                            void*);

  void WKUserContentExtensionStoreCompileFilter(WKUserContentExtensionStoreRef,
                                                WKStringRef identifier,
                                                WKStringRef jsonSource,
                                                void* context,
                                                WKUserContentExtensionStoreFilterFunction callback);

  void WKUserContentExtensionStoreLookupFilter(WKUserContentExtensionStoreRef,
                                               WKStringRef identifier,
                                               void* context,
                                               WKUserContentExtensionStoreFilterFunction callback);

  void WKUserContentExtensionStoreRemoveFilter(WKUserContentExtensionStoreRef,
                                               WKStringRef identifier,
                                               void* context,
                                               WKUserContentExtensionStoreFilterFunction callback);

The order of parameters follows the underlying API::UserContentExtensionsStore methods, and where
a C++ lambda is accepted, a callback function is used instead. As in other functions in the C API
which take callbacks, the “context” parameter (a “void*” passed back to the callback) appears in
the signature _before_ the “callback” parameter.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170301/dad0aa24/attachment-0001.html>


More information about the webkit-unassigned mailing list