Changeset 213696 in webkit


Ignore:
Timestamp:
Mar 9, 2017, 5:48:30 PM (8 years ago)
Author:
achristensen@apple.com
Message:

Expose public APIs for content filters
https://bugs.webkit.org/show_bug.cgi?id=150479

Reviewed by Brady Eidson and Geoff Garen.

Source/WebCore:

  • English.lproj/Localizable.strings:

Source/WebKit2:

This takes _WKUserContentExtensionStore and _WKUserContentFilter and turns them into the consistently-named public API
WKContentExtensionStore and WKContentExtension respectively with the same design and functionaly of the original SPI.
We also added public functions to WKUserContentController corresponding to existing private functions.

The old SPI ObjC classes are now just wrappers around the new ObjC classes, which are wrappers around C++ objects in the API namespace.

The peak-memory-reducing optimization of having NS_RELEASES_ARGUMENT in _compileContentExtensionForIdentifier is kept for Safari,
but the public API doesn't need such an optimization. The public compileContentExtensionForIdentifier will not deallocate the input
NSString during compiling.

We moved the error codes into the WKErrorDomain, which requires changing the values of the error codes and domain, but source
compiled that uses the SPI before and after should still work. Using new applications with old frameworks or vice versa will
have unexpected error codes, though.

  • Shared/API/APIObject.h:
  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKPageGroupAddUserContentFilter):
(WKPageGroupRemoveUserContentFilter):

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/APIContentExtension.cpp: Copied from UIProcess/API/APIUserContentExtension.cpp.

(API::ContentExtension::ContentExtension):
(API::ContentExtension::~ContentExtension):
(API::UserContentExtension::UserContentExtension): Deleted.
(API::UserContentExtension::~UserContentExtension): Deleted.

  • UIProcess/API/APIContentExtension.h: Copied from UIProcess/API/APIUserContentExtension.h.
  • UIProcess/API/APIContentExtensionStore.cpp: Copied from UIProcess/API/APIUserContentExtensionStore.cpp.

(API::ContentExtensionStore::defaultStore):
(API::ContentExtensionStore::storeWithPath):
(API::ContentExtensionStore::ContentExtensionStore):
(API::ContentExtensionStore::~ContentExtensionStore):
(API::compiledToFile):
(API::createExtension):
(API::ContentExtensionStore::lookupContentExtension):
(API::ContentExtensionStore::compileContentExtension):
(API::ContentExtensionStore::removeContentExtension):
(API::ContentExtensionStore::synchronousRemoveAllContentExtensions):
(API::ContentExtensionStore::invalidateContentExtensionVersion):
(API::contentExtensionStoreErrorCategory):
(API::UserContentExtensionStore::defaultStore): Deleted.
(API::UserContentExtensionStore::storeWithPath): Deleted.
(API::UserContentExtensionStore::UserContentExtensionStore): Deleted.
(API::UserContentExtensionStore::~UserContentExtensionStore): Deleted.
(API::UserContentExtensionStore::lookupContentExtension): Deleted.
(API::UserContentExtensionStore::compileContentExtension): Deleted.
(API::UserContentExtensionStore::removeContentExtension): Deleted.
(API::UserContentExtensionStore::synchronousRemoveAllContentExtensions): Deleted.
(API::UserContentExtensionStore::invalidateContentExtensionVersion): Deleted.
(API::userContentExtensionStoreErrorCategory): Deleted.

  • UIProcess/API/APIContentExtensionStore.h: Copied from UIProcess/API/APIUserContentExtensionStore.h.

(API::make_error_code):

  • UIProcess/API/APIUserContentExtension.cpp: Removed.
  • UIProcess/API/APIUserContentExtension.h: Removed.
  • UIProcess/API/APIUserContentExtensionStore.cpp: Removed.
  • UIProcess/API/APIUserContentExtensionStore.h: Removed.
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKPageGroup.cpp:
  • UIProcess/API/C/WKUserContentControllerRef.cpp:

(WKUserContentControllerAddUserContentFilter):
(WKUserContentControllerRemoveAllUserContentFilters):

  • UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:

(WKUserContentExtensionStoreGetTypeID):

  • UIProcess/API/Cocoa/APIUserContentExtensionStoreCocoa.mm:

(API::ContentExtensionStore::defaultStorePath):
(API::UserContentExtensionStore::defaultStorePath): Deleted.

  • UIProcess/API/Cocoa/WKContentExtension.h: Copied from UIProcess/API/Cocoa/_WKUserContentFilter.h.
  • UIProcess/API/Cocoa/WKContentExtension.mm: Copied from UIProcess/API/Cocoa/_WKUserContentFilter.mm.

(-[WKContentExtension dealloc]):
(-[WKContentExtension _apiObject]):
(-[_WKUserContentFilter dealloc]): Deleted.
(-[_WKUserContentFilter _apiObject]): Deleted.

  • UIProcess/API/Cocoa/WKContentExtensionInternal.h: Copied from UIProcess/API/Cocoa/_WKUserContentFilterInternal.h.

(WebKit::wrapper):

  • UIProcess/API/Cocoa/WKContentExtensionStore.h: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStore.h.
  • UIProcess/API/Cocoa/WKContentExtensionStore.mm: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm.

(-[WKContentExtensionStore dealloc]):
(+[WKContentExtensionStore defaultStore]):
(+[WKContentExtensionStore storeWithURL:]):
(-[WKContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[WKContentExtensionStore _compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:releasesArgument:]):
(-[WKContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[WKContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(-[WKContentExtensionStore _apiObject]):
(-[WKContentExtensionStore _removeAllContentExtensions]):
(-[WKContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
(-[WKContentExtensionStore _compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore dealloc]): Deleted.
(+[_WKUserContentExtensionStore defaultStore]): Deleted.
(+[_WKUserContentExtensionStore storeWithURL:]): Deleted.
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): Deleted.
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]): Deleted.
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]): Deleted.
(-[_WKUserContentExtensionStore _apiObject]): Deleted.
(-[_WKUserContentExtensionStore _removeAllContentExtensions]): Deleted.
(-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]): Deleted.

  • UIProcess/API/Cocoa/WKContentExtensionStoreInternal.h: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h.

(WebKit::wrapper):

  • UIProcess/API/Cocoa/WKContentExtensionStorePrivate.h: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h.
  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKError.mm:

(localizedDescriptionForErrorCode):

  • UIProcess/API/Cocoa/WKUserContentController.h:
  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController addContentExtension:]):
(-[WKUserContentController removeContentExtension:]):
(-[WKUserContentController removeAllContentExtensions]):
(-[WKUserContentController _addUserContentFilter:]):
(-[WKUserContentController _removeUserContentFilter:]):
(-[WKUserContentController _removeAllUserContentFilters]):

  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:

(+[_WKUserContentExtensionStore defaultStore]):
(+[_WKUserContentExtensionStore storeWithURL:]):
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore _apiObject]):
(-[_WKUserContentExtensionStore _removeAllContentExtensions]):
(-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
(-[_WKUserContentExtensionStore _initWithWKContentExtensionStore:]):
(-[_WKUserContentExtensionStore dealloc]): Deleted.

  • UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h:

(WebKit::wrapper): Deleted.

  • UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
  • UIProcess/API/Cocoa/_WKUserContentFilter.mm:

(-[_WKUserContentFilter _apiObject]):
(-[_WKUserContentFilter _initWithWKContentExtension:]):
(-[_WKUserContentFilter dealloc]): Deleted.

  • UIProcess/API/Cocoa/_WKUserContentFilterInternal.h:

(WebKit::wrapper): Deleted.

  • UIProcess/API/Cocoa/_WKUserContentFilterPrivate.h: Added.
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addContentExtension):
(WebKit::WebUserContentControllerProxy::removeContentExtension):
(WebKit::WebUserContentControllerProxy::removeAllContentExtensions):
(WebKit::WebUserContentControllerProxy::addUserContentExtension): Deleted.
(WebKit::WebUserContentControllerProxy::removeUserContentExtension): Deleted.
(WebKit::WebUserContentControllerProxy::removeAllUserContentExtensions): Deleted.

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/WebPageGroup.cpp:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addContentExtensions):
(WebKit::WebUserContentController::removeContentExtension):
(WebKit::WebUserContentController::removeAllContentExtensions):
(WebKit::WebUserContentController::addUserContentExtensions): Deleted.
(WebKit::WebUserContentController::removeUserContentExtension): Deleted.
(WebKit::WebUserContentController::removeAllUserContentExtensions): Deleted.

  • WebProcess/UserContent/WebUserContentController.h:
  • WebProcess/UserContent/WebUserContentController.messages.in:
  • WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:

(WebKit::blockedByContentFilterError):

Tools:

Keep the existing tests to verify that I made the wrapper classes for the old SPI work correctly.
Add new identical tests for the new API are added with the new names.
We should keep both until we migrate from and remove the old SPI.
Enum error code values and strings have changed, but the API is source compatible.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm.

(WKUserContentExtensionStoreTest::SetUp):
(TEST_F):
(checkDomain):
(_WKUserContentExtensionStoreTest::SetUp): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm:

(checkDomain):

Location:
trunk
Files:
1 added
32 edited
8 copied
4 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r213691 r213696  
     12017-03-09  Brian Nicholson  <bnicholson@mozilla.com> and Alex Christensen  <achristensen@webkit.org>
     2
     3        Expose public APIs for content filters
     4        https://bugs.webkit.org/show_bug.cgi?id=150479
     5
     6        Reviewed by Brady Eidson and Geoff Garen.
     7
     8        * English.lproj/Localizable.strings:
     9
    1102017-03-09  Matt Baker  <mattbaker@apple.com>
    211
  • trunk/Source/WebCore/English.lproj/Localizable.strings

    r212211 r213696  
    173173"Click to restart" = "Click to restart";
    174174
     175/* WKErrorContentExtensionStoreCompileFailed description */
     176"Compiling a WKContentExtension failed" = "Compiling a WKContentExtension failed";
     177
    175178/* WebKitErrorCannotShowMIMEType description */
    176179"Content with specified MIME type can’t be shown" = "Content with specified MIME type can’t be shown";
     
    359362"Look Up “<selection>”" = "Look Up “<selection>”";
    360363
     364/* WKErrorContentExtensionStoreLookupFailed description */
     365"Looking up a WKContentExtension failed" = "Looking up a WKContentExtension failed";
     366
     367/* WKErrorContentExtensionStoreVersionMismatch description */
     368"Looking up a WKContentExtension found a binary that is incompatible" = "Looking up a WKContentExtension found a binary that is incompatible";
     369
    361370/* Media Loop context menu item */
    362371"Loop" = "Loop";
     
    497506"Reload" = "Reload";
    498507
     508/* WKErrorContentExtensionStoreRemoveFailed description */
     509"Removing a WKContentExtension failed" = "Removing a WKContentExtension failed";
     510
    499511/* default label for Reset buttons in forms on web pages */
    500512"Reset" = "Reset";
  • trunk/Source/WebCore/contentextensions/DFABytecode.h

    r213533 r213696  
    3434typedef uint8_t DFABytecode;
    3535
    36 // Increment UserContentExtensionStore::CurrentContentExtensionFileVersion
     36// Increment ContentExtensionStore::CurrentContentExtensionFileVersion
    3737// when making any non-backwards-compatible changes to the bytecode.
    3838// FIXME: Changes here should not require changes in WebKit2.  Move all versioning to WebCore.
  • trunk/Source/WebKit2/ChangeLog

    r213693 r213696  
     12017-03-09  Brian Nicholson  <bnicholson@mozilla.com> and Alex Christensen  <achristensen@webkit.org>
     2
     3        Expose public APIs for content filters
     4        https://bugs.webkit.org/show_bug.cgi?id=150479
     5
     6        Reviewed by Brady Eidson and Geoff Garen.
     7
     8        This takes _WKUserContentExtensionStore and _WKUserContentFilter and turns them into the consistently-named public API
     9        WKContentExtensionStore and WKContentExtension respectively with the same design and functionaly of the original SPI.
     10        We also added public functions to WKUserContentController corresponding to existing private functions.
     11
     12        The old SPI ObjC classes are now just wrappers around the new ObjC classes, which are wrappers around C++ objects in the API namespace.
     13       
     14        The peak-memory-reducing optimization of having NS_RELEASES_ARGUMENT in _compileContentExtensionForIdentifier is kept for Safari,
     15        but the public API doesn't need such an optimization.  The public compileContentExtensionForIdentifier will not deallocate the input
     16        NSString during compiling.
     17       
     18        We moved the error codes into the WKErrorDomain, which requires changing the values of the error codes and domain, but source
     19        compiled that uses the SPI before and after should still work.  Using new applications with old frameworks or vice versa will
     20        have unexpected error codes, though.
     21
     22        * Shared/API/APIObject.h:
     23        * Shared/API/c/WKDeprecatedFunctions.cpp:
     24        (WKPageGroupAddUserContentFilter):
     25        (WKPageGroupRemoveUserContentFilter):
     26        * Shared/Cocoa/APIObject.mm:
     27        (API::Object::newObject):
     28        * UIProcess/API/APIContentExtension.cpp: Copied from UIProcess/API/APIUserContentExtension.cpp.
     29        (API::ContentExtension::ContentExtension):
     30        (API::ContentExtension::~ContentExtension):
     31        (API::UserContentExtension::UserContentExtension): Deleted.
     32        (API::UserContentExtension::~UserContentExtension): Deleted.
     33        * UIProcess/API/APIContentExtension.h: Copied from UIProcess/API/APIUserContentExtension.h.
     34        * UIProcess/API/APIContentExtensionStore.cpp: Copied from UIProcess/API/APIUserContentExtensionStore.cpp.
     35        (API::ContentExtensionStore::defaultStore):
     36        (API::ContentExtensionStore::storeWithPath):
     37        (API::ContentExtensionStore::ContentExtensionStore):
     38        (API::ContentExtensionStore::~ContentExtensionStore):
     39        (API::compiledToFile):
     40        (API::createExtension):
     41        (API::ContentExtensionStore::lookupContentExtension):
     42        (API::ContentExtensionStore::compileContentExtension):
     43        (API::ContentExtensionStore::removeContentExtension):
     44        (API::ContentExtensionStore::synchronousRemoveAllContentExtensions):
     45        (API::ContentExtensionStore::invalidateContentExtensionVersion):
     46        (API::contentExtensionStoreErrorCategory):
     47        (API::UserContentExtensionStore::defaultStore): Deleted.
     48        (API::UserContentExtensionStore::storeWithPath): Deleted.
     49        (API::UserContentExtensionStore::UserContentExtensionStore): Deleted.
     50        (API::UserContentExtensionStore::~UserContentExtensionStore): Deleted.
     51        (API::UserContentExtensionStore::lookupContentExtension): Deleted.
     52        (API::UserContentExtensionStore::compileContentExtension): Deleted.
     53        (API::UserContentExtensionStore::removeContentExtension): Deleted.
     54        (API::UserContentExtensionStore::synchronousRemoveAllContentExtensions): Deleted.
     55        (API::UserContentExtensionStore::invalidateContentExtensionVersion): Deleted.
     56        (API::userContentExtensionStoreErrorCategory): Deleted.
     57        * UIProcess/API/APIContentExtensionStore.h: Copied from UIProcess/API/APIUserContentExtensionStore.h.
     58        (API::make_error_code):
     59        * UIProcess/API/APIUserContentExtension.cpp: Removed.
     60        * UIProcess/API/APIUserContentExtension.h: Removed.
     61        * UIProcess/API/APIUserContentExtensionStore.cpp: Removed.
     62        * UIProcess/API/APIUserContentExtensionStore.h: Removed.
     63        * UIProcess/API/C/WKAPICast.h:
     64        * UIProcess/API/C/WKPageGroup.cpp:
     65        * UIProcess/API/C/WKUserContentControllerRef.cpp:
     66        (WKUserContentControllerAddUserContentFilter):
     67        (WKUserContentControllerRemoveAllUserContentFilters):
     68        * UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:
     69        (WKUserContentExtensionStoreGetTypeID):
     70        * UIProcess/API/Cocoa/APIUserContentExtensionStoreCocoa.mm:
     71        (API::ContentExtensionStore::defaultStorePath):
     72        (API::UserContentExtensionStore::defaultStorePath): Deleted.
     73        * UIProcess/API/Cocoa/WKContentExtension.h: Copied from UIProcess/API/Cocoa/_WKUserContentFilter.h.
     74        * UIProcess/API/Cocoa/WKContentExtension.mm: Copied from UIProcess/API/Cocoa/_WKUserContentFilter.mm.
     75        (-[WKContentExtension dealloc]):
     76        (-[WKContentExtension _apiObject]):
     77        (-[_WKUserContentFilter dealloc]): Deleted.
     78        (-[_WKUserContentFilter _apiObject]): Deleted.
     79        * UIProcess/API/Cocoa/WKContentExtensionInternal.h: Copied from UIProcess/API/Cocoa/_WKUserContentFilterInternal.h.
     80        (WebKit::wrapper):
     81        * UIProcess/API/Cocoa/WKContentExtensionStore.h: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStore.h.
     82        * UIProcess/API/Cocoa/WKContentExtensionStore.mm: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm.
     83        (-[WKContentExtensionStore dealloc]):
     84        (+[WKContentExtensionStore defaultStore]):
     85        (+[WKContentExtensionStore storeWithURL:]):
     86        (-[WKContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
     87        (-[WKContentExtensionStore _compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:releasesArgument:]):
     88        (-[WKContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
     89        (-[WKContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
     90        (-[WKContentExtensionStore _apiObject]):
     91        (-[WKContentExtensionStore _removeAllContentExtensions]):
     92        (-[WKContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
     93        (-[WKContentExtensionStore _compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
     94        (-[_WKUserContentExtensionStore dealloc]): Deleted.
     95        (+[_WKUserContentExtensionStore defaultStore]): Deleted.
     96        (+[_WKUserContentExtensionStore storeWithURL:]): Deleted.
     97        (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): Deleted.
     98        (-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]): Deleted.
     99        (-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]): Deleted.
     100        (-[_WKUserContentExtensionStore _apiObject]): Deleted.
     101        (-[_WKUserContentExtensionStore _removeAllContentExtensions]): Deleted.
     102        (-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]): Deleted.
     103        * UIProcess/API/Cocoa/WKContentExtensionStoreInternal.h: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h.
     104        (WebKit::wrapper):
     105        * UIProcess/API/Cocoa/WKContentExtensionStorePrivate.h: Copied from UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h.
     106        * UIProcess/API/Cocoa/WKError.h:
     107        * UIProcess/API/Cocoa/WKError.mm:
     108        (localizedDescriptionForErrorCode):
     109        * UIProcess/API/Cocoa/WKUserContentController.h:
     110        * UIProcess/API/Cocoa/WKUserContentController.mm:
     111        (-[WKUserContentController addContentExtension:]):
     112        (-[WKUserContentController removeContentExtension:]):
     113        (-[WKUserContentController removeAllContentExtensions]):
     114        (-[WKUserContentController _addUserContentFilter:]):
     115        (-[WKUserContentController _removeUserContentFilter:]):
     116        (-[WKUserContentController _removeAllUserContentFilters]):
     117        * UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
     118        * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
     119        (+[_WKUserContentExtensionStore defaultStore]):
     120        (+[_WKUserContentExtensionStore storeWithURL:]):
     121        (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
     122        (-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
     123        (-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
     124        (-[_WKUserContentExtensionStore _apiObject]):
     125        (-[_WKUserContentExtensionStore _removeAllContentExtensions]):
     126        (-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
     127        (-[_WKUserContentExtensionStore _initWithWKContentExtensionStore:]):
     128        (-[_WKUserContentExtensionStore dealloc]): Deleted.
     129        * UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h:
     130        (WebKit::wrapper): Deleted.
     131        * UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
     132        * UIProcess/API/Cocoa/_WKUserContentFilter.mm:
     133        (-[_WKUserContentFilter _apiObject]):
     134        (-[_WKUserContentFilter _initWithWKContentExtension:]):
     135        (-[_WKUserContentFilter dealloc]): Deleted.
     136        * UIProcess/API/Cocoa/_WKUserContentFilterInternal.h:
     137        (WebKit::wrapper): Deleted.
     138        * UIProcess/API/Cocoa/_WKUserContentFilterPrivate.h: Added.
     139        * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
     140        (WebKit::WebUserContentControllerProxy::addProcess):
     141        (WebKit::WebUserContentControllerProxy::addContentExtension):
     142        (WebKit::WebUserContentControllerProxy::removeContentExtension):
     143        (WebKit::WebUserContentControllerProxy::removeAllContentExtensions):
     144        (WebKit::WebUserContentControllerProxy::addUserContentExtension): Deleted.
     145        (WebKit::WebUserContentControllerProxy::removeUserContentExtension): Deleted.
     146        (WebKit::WebUserContentControllerProxy::removeAllUserContentExtensions): Deleted.
     147        * UIProcess/UserContent/WebUserContentControllerProxy.h:
     148        * UIProcess/WebPageGroup.cpp:
     149        * WebKit2.xcodeproj/project.pbxproj:
     150        * WebProcess/UserContent/WebUserContentController.cpp:
     151        (WebKit::WebUserContentController::addContentExtensions):
     152        (WebKit::WebUserContentController::removeContentExtension):
     153        (WebKit::WebUserContentController::removeAllContentExtensions):
     154        (WebKit::WebUserContentController::addUserContentExtensions): Deleted.
     155        (WebKit::WebUserContentController::removeUserContentExtension): Deleted.
     156        (WebKit::WebUserContentController::removeAllUserContentExtensions): Deleted.
     157        * WebProcess/UserContent/WebUserContentController.h:
     158        * WebProcess/UserContent/WebUserContentController.messages.in:
     159        * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
     160        (WebKit::blockedByContentFilterError):
     161
    11622017-03-09  Brady Eidson  <beidson@apple.com>
    2163
  • trunk/Source/WebKit2/Shared/API/APIObject.h

    r213686 r213696  
    104104        CacheManager,
    105105        ColorPickerResultListener,
     106        ContentExtension,
     107        ContentExtensionStore,
    106108        ContextMenuListener,
    107109        CookieManager,
     
    147149        URLSchemeHandlerTask,
    148150        UserContentController,
    149         UserContentExtension,
    150         UserContentExtensionStore,
    151151        UserContentWorld,
    152152        UserInitiatedAction,
  • trunk/Source/WebKit2/Shared/API/c/WKDeprecatedFunctions.cpp

    r213198 r213696  
    2626#include "config.h"
    2727
     28#include "APIContentExtension.h"
    2829#include "APIDictionary.h"
    29 #include "APIUserContentExtension.h"
    3030#include "WKArray.h"
    3131#include "WKContextPrivate.h"
     
    5757}
    5858
    59 void WKPageGroupAddUserContentFilter(WKPageGroupRef pageGroupRef, WKUserContentFilterRef userContentFilterRef)
     59void WKPageGroupAddUserContentFilter(WKPageGroupRef pageGroupRef, WKUserContentFilterRef contentFilterRef)
    6060{
    6161#if ENABLE(CONTENT_EXTENSIONS)
    62     toImpl(pageGroupRef)->userContentController().addUserContentExtension(*toImpl(userContentFilterRef));
     62    toImpl(pageGroupRef)->userContentController().addContentExtension(*toImpl(contentFilterRef));
    6363#else
    6464    UNUSED_PARAM(pageGroupRef);
    65     UNUSED_PARAM(userContentFilterRef);
     65    UNUSED_PARAM(contentFilterRef);
    6666#endif
    6767}
    6868
    69 void WKPageGroupRemoveUserContentFilter(WKPageGroupRef pageGroupRef, WKStringRef userContentFilterNameRef)
     69void WKPageGroupRemoveUserContentFilter(WKPageGroupRef pageGroupRef, WKStringRef contentFilterNameRef)
    7070{
    7171#if ENABLE(CONTENT_EXTENSIONS)
    72     toImpl(pageGroupRef)->userContentController().removeUserContentExtension(toWTFString(userContentFilterNameRef));
     72    toImpl(pageGroupRef)->userContentController().removeContentExtension(toWTFString(contentFilterNameRef));
    7373#else
    7474    UNUSED_PARAM(pageGroupRef);
    75     UNUSED_PARAM(userContentFilterNameRef);
     75    UNUSED_PARAM(contentFilterNameRef);
    7676#endif
    7777}
  • trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm

    r213686 r213696  
    3434#import "WKBrowsingContextGroupInternal.h"
    3535#import "WKConnectionInternal.h"
     36#import "WKContentExtensionInternal.h"
     37#import "WKContentExtensionStoreInternal.h"
    3638#import "WKFrameInfoInternal.h"
    3739#import "WKNSArray.h"
     
    7274#import "_WKHitTestResultInternal.h"
    7375#import "_WKProcessPoolConfigurationInternal.h"
    74 #import "_WKUserContentExtensionStoreInternal.h"
    75 #import "_WKUserContentFilterInternal.h"
    7676#import "_WKUserContentWorldInternal.h"
    7777#import "_WKUserInitiatedActionInternal.h"
     
    235235        break;
    236236
    237     case Type::UserContentExtension:
    238         wrapper = [_WKUserContentFilter alloc];
    239         break;
    240 
    241     case Type::UserContentExtensionStore:
    242         wrapper = [_WKUserContentExtensionStore alloc];
     237    case Type::ContentExtension:
     238        wrapper = [WKContentExtension alloc];
     239        break;
     240
     241    case Type::ContentExtensionStore:
     242        wrapper = [WKContentExtensionStore alloc];
    243243        break;
    244244
  • trunk/Source/WebKit2/UIProcess/API/APIContentExtension.cpp

    r213687 r213696  
    2525
    2626#include "config.h"
    27 #include "APIUserContentExtension.h"
     27#include "APIContentExtension.h"
    2828
    2929#if ENABLE(CONTENT_EXTENSIONS)
     
    3333namespace API {
    3434
    35 UserContentExtension::UserContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&& contentExtension)
     35ContentExtension::ContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&& contentExtension)
    3636    : m_name(name)
    3737    , m_compiledExtension(WTFMove(contentExtension))
     
    3939}
    4040
    41 UserContentExtension::~UserContentExtension()
     41ContentExtension::~ContentExtension()
    4242{
    4343}
  • trunk/Source/WebKit2/UIProcess/API/APIContentExtension.h

    r213687 r213696  
    2424 */
    2525
    26 #ifndef APIUserContentExtension_h
    27 #define APIUserContentExtension_h
     26#pragma once
    2827
    2928#include "APIObject.h"
     
    3635namespace API {
    3736
    38 class UserContentExtension final : public ObjectImpl<Object::Type::UserContentExtension> {
     37class ContentExtension final : public ObjectImpl<Object::Type::ContentExtension> {
    3938public:
    4039#if ENABLE(CONTENT_EXTENSIONS)
    41     static Ref<UserContentExtension> create(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&& contentExtension)
     40    static Ref<ContentExtension> create(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&& contentExtension)
    4241    {
    43         return adoptRef(*new UserContentExtension(name, WTFMove(contentExtension)));
     42        return adoptRef(*new ContentExtension(name, WTFMove(contentExtension)));
    4443    }
    4544
    46     UserContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&&);
    47     virtual ~UserContentExtension();
     45    ContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&&);
     46    virtual ~ContentExtension();
    4847
    4948    const WTF::String& name() const { return m_name; }
     
    5756
    5857} // namespace API
    59 
    60 #endif // APIUserContentExtension_h
  • trunk/Source/WebKit2/UIProcess/API/APIContentExtensionStore.cpp

    r213687 r213696  
    2525
    2626#include "config.h"
    27 #include "APIUserContentExtensionStore.h"
     27#include "APIContentExtensionStore.h"
    2828
    2929#if ENABLE(CONTENT_EXTENSIONS)
    3030
    31 #include "APIUserContentExtension.h"
     31#include "APIContentExtension.h"
    3232#include "NetworkCacheData.h"
    3333#include "NetworkCacheFileSystem.h"
     
    4747namespace API {
    4848
    49 UserContentExtensionStore& UserContentExtensionStore::defaultStore()
    50 {
    51     static UserContentExtensionStore* defaultStore = adoptRef(new UserContentExtensionStore).leakRef();
     49ContentExtensionStore& ContentExtensionStore::defaultStore()
     50{
     51    static ContentExtensionStore* defaultStore = adoptRef(new ContentExtensionStore).leakRef();
    5252    return *defaultStore;
    5353}
    5454
    55 Ref<UserContentExtensionStore> UserContentExtensionStore::storeWithPath(const WTF::String& storePath)
    56 {
    57     return adoptRef(*new UserContentExtensionStore(storePath));
    58 }
    59 
    60 UserContentExtensionStore::UserContentExtensionStore()
    61     : UserContentExtensionStore(defaultStorePath())
    62 {
    63 }
    64 
    65 UserContentExtensionStore::UserContentExtensionStore(const WTF::String& storePath)
     55Ref<ContentExtensionStore> ContentExtensionStore::storeWithPath(const WTF::String& storePath)
     56{
     57    return adoptRef(*new ContentExtensionStore(storePath));
     58}
     59
     60ContentExtensionStore::ContentExtensionStore()
     61    : ContentExtensionStore(defaultStorePath())
     62{
     63}
     64
     65ContentExtensionStore::ContentExtensionStore(const WTF::String& storePath)
    6666    : m_storePath(storePath)
    67     , m_compileQueue(WorkQueue::create("UserContentExtensionStore Compile Queue", WorkQueue::Type::Concurrent))
    68     , m_readQueue(WorkQueue::create("UserContentExtensionStore Read Queue"))
    69     , m_removeQueue(WorkQueue::create("UserContentExtensionStore Remove Queue"))
    70 {
    71 }
    72 
    73 UserContentExtensionStore::~UserContentExtensionStore()
     67    , m_compileQueue(WorkQueue::create("ContentExtensionStore Compile Queue", WorkQueue::Type::Concurrent))
     68    , m_readQueue(WorkQueue::create("ContentExtensionStore Read Queue"))
     69    , m_removeQueue(WorkQueue::create("ContentExtensionStore Remove Queue"))
     70{
     71}
     72
     73ContentExtensionStore::~ContentExtensionStore()
    7474{
    7575}
     
    8686
    8787struct ContentExtensionMetaData {
    88     uint32_t version { UserContentExtensionStore::CurrentContentExtensionFileVersion };
     88    uint32_t version { ContentExtensionStore::CurrentContentExtensionFileVersion };
    8989    uint64_t actionsSize { 0 };
    9090    uint64_t filtersWithoutConditionsBytecodeSize { 0 };
     
    261261    String temporaryFilePath = WebCore::openTemporaryFile("ContentExtension", temporaryFileHandle);
    262262    if (temporaryFileHandle == WebCore::invalidPlatformFileHandle)
    263         return UserContentExtensionStore::Error::CompileFailed;
     263        return ContentExtensionStore::Error::CompileFailed;
    264264   
    265265    char invalidHeader[ContentExtensionFileHeaderSize];
     
    268268    if (WebCore::writeToFile(temporaryFileHandle, invalidHeader, sizeof(invalidHeader)) == -1) {
    269269        WebCore::closeFile(temporaryFileHandle);
    270         return UserContentExtensionStore::Error::CompileFailed;
     270        return ContentExtensionStore::Error::CompileFailed;
    271271    }
    272272
     
    279279    if (compilationClient.hadErrorWhileWritingToFile()) {
    280280        WebCore::closeFile(temporaryFileHandle);
    281         return UserContentExtensionStore::Error::CompileFailed;
     281        return ContentExtensionStore::Error::CompileFailed;
    282282    }
    283283   
    284284    mappedData = adoptAndMapFile(temporaryFileHandle, 0, metaData.fileSize());
    285285    if (mappedData.isNull())
    286         return UserContentExtensionStore::Error::CompileFailed;
     286        return ContentExtensionStore::Error::CompileFailed;
    287287
    288288    if (!WebCore::moveFile(temporaryFilePath, finalFilePath))
    289         return UserContentExtensionStore::Error::CompileFailed;
     289        return ContentExtensionStore::Error::CompileFailed;
    290290
    291291    return { };
    292292}
    293293
    294 static RefPtr<API::UserContentExtension> createExtension(const String& identifier, const ContentExtensionMetaData& metaData, const Data& fileData)
     294static RefPtr<API::ContentExtension> createExtension(const String& identifier, const ContentExtensionMetaData& metaData, const Data& fileData)
    295295{
    296296    auto sharedMemory = WebKit::SharedMemory::create(const_cast<uint8_t*>(fileData.data()), fileData.size(), WebKit::SharedMemory::Protection::ReadOnly);
     
    315315    );
    316316    auto compiledContentExtension = WebKit::WebCompiledContentExtension::create(WTFMove(compiledContentExtensionData));
    317     return API::UserContentExtension::create(identifier, WTFMove(compiledContentExtension));
    318 }
    319 
    320 void UserContentExtensionStore::lookupContentExtension(const WTF::String& identifier, Function<void(RefPtr<API::UserContentExtension>, std::error_code)> completionHandler)
     317    return API::ContentExtension::create(identifier, WTFMove(compiledContentExtension));
     318}
     319
     320void ContentExtensionStore::lookupContentExtension(const WTF::String& identifier, Function<void(RefPtr<API::ContentExtension>, std::error_code)> completionHandler)
    321321{
    322322    m_readQueue->dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
     
    332332        }
    333333       
    334         if (metaData.version != UserContentExtensionStore::CurrentContentExtensionFileVersion) {
     334        if (metaData.version != ContentExtensionStore::CurrentContentExtensionFileVersion) {
    335335            RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), completionHandler = WTFMove(completionHandler)] {
    336336                completionHandler(nullptr, Error::VersionMismatch);
     
    340340       
    341341        RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), identifier = WTFMove(identifier), fileData = WTFMove(fileData), metaData = WTFMove(metaData), completionHandler = WTFMove(completionHandler)] {
    342             RefPtr<API::UserContentExtension> userContentExtension = createExtension(identifier, metaData, fileData);
    343             completionHandler(userContentExtension, { });
     342            RefPtr<API::ContentExtension> contentExtension = createExtension(identifier, metaData, fileData);
     343            completionHandler(contentExtension, { });
    344344        });
    345345    });
    346346}
    347347
    348 void UserContentExtensionStore::compileContentExtension(const WTF::String& identifier, WTF::String&& json, Function<void(RefPtr<API::UserContentExtension>, std::error_code)> completionHandler)
     348void ContentExtensionStore::compileContentExtension(const WTF::String& identifier, WTF::String&& json, Function<void(RefPtr<API::ContentExtension>, std::error_code)> completionHandler)
    349349{
    350350    m_compileQueue->dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), json = json.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)] () mutable {
     
    362362
    363363        RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), identifier = WTFMove(identifier), fileData = WTFMove(fileData), metaData = WTFMove(metaData), completionHandler = WTFMove(completionHandler)] {
    364             RefPtr<API::UserContentExtension> userContentExtension = createExtension(identifier, metaData, fileData);
    365             completionHandler(userContentExtension, { });
     364            RefPtr<API::ContentExtension> contentExtension = createExtension(identifier, metaData, fileData);
     365            completionHandler(contentExtension, { });
    366366        });
    367367    });
    368368}
    369369
    370 void UserContentExtensionStore::removeContentExtension(const WTF::String& identifier, Function<void(std::error_code)> completionHandler)
     370void ContentExtensionStore::removeContentExtension(const WTF::String& identifier, Function<void(std::error_code)> completionHandler)
    371371{
    372372    m_removeQueue->dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable {
     
    386386}
    387387
    388 void UserContentExtensionStore::synchronousRemoveAllContentExtensions()
     388void ContentExtensionStore::synchronousRemoveAllContentExtensions()
    389389{
    390390    for (const auto& path : WebCore::listDirectory(m_storePath, "*"))
     
    392392}
    393393
    394 void UserContentExtensionStore::invalidateContentExtensionVersion(const WTF::String& identifier)
     394void ContentExtensionStore::invalidateContentExtensionVersion(const WTF::String& identifier)
    395395{
    396396    auto file = WebCore::openFile(constructedPath(m_storePath, identifier), WebCore::OpenForWrite);
    397397    if (file == WebCore::invalidPlatformFileHandle)
    398398        return;
    399     ContentExtensionMetaData invalidHeader;
     399    ContentExtensionMetaData invalidHeader = {0, 0, 0, 0, 0, 0};
    400400    auto bytesWritten = WebCore::writeToFile(file, reinterpret_cast<const char*>(&invalidHeader), sizeof(invalidHeader));
    401401    ASSERT_UNUSED(bytesWritten, bytesWritten == sizeof(invalidHeader));
     
    403403}
    404404   
    405 const std::error_category& userContentExtensionStoreErrorCategory()
    406 {
    407     class UserContentExtensionStoreErrorCategory : public std::error_category {
     405const std::error_category& contentExtensionStoreErrorCategory()
     406{
     407    class ContentExtensionStoreErrorCategory : public std::error_category {
    408408        const char* name() const noexcept final
    409409        {
    410             return "user content extension store";
     410            return "content extension store";
    411411        }
    412412
    413413        std::string message(int errorCode) const final
    414414        {
    415             switch (static_cast<UserContentExtensionStore::Error>(errorCode)) {
    416             case UserContentExtensionStore::Error::LookupFailed:
     415            switch (static_cast<ContentExtensionStore::Error>(errorCode)) {
     416            case ContentExtensionStore::Error::LookupFailed:
    417417                return "Unspecified error during lookup.";
    418             case UserContentExtensionStore::Error::VersionMismatch:
     418            case ContentExtensionStore::Error::VersionMismatch:
    419419                return "Version of file does not match version of interpreter.";
    420             case UserContentExtensionStore::Error::CompileFailed:
     420            case ContentExtensionStore::Error::CompileFailed:
    421421                return "Unspecified error during compile.";
    422             case UserContentExtensionStore::Error::RemoveFailed:
     422            case ContentExtensionStore::Error::RemoveFailed:
    423423                return "Unspecified error during remove.";
    424424            }
     
    428428    };
    429429
    430     static NeverDestroyed<UserContentExtensionStoreErrorCategory> contentExtensionErrorCategory;
     430    static NeverDestroyed<ContentExtensionStoreErrorCategory> contentExtensionErrorCategory;
    431431    return contentExtensionErrorCategory;
    432432}
  • trunk/Source/WebKit2/UIProcess/API/APIContentExtensionStore.h

    r213687 r213696  
    3838namespace API {
    3939
    40 class UserContentExtension;
     40class ContentExtension;
    4141
    42 class UserContentExtensionStore final : public ObjectImpl<Object::Type::UserContentExtensionStore> {
     42class ContentExtensionStore final : public ObjectImpl<Object::Type::ContentExtensionStore> {
    4343public:
    4444    enum class Error {
    45         LookupFailed = 1,
     45        LookupFailed = 6, // Mirrors value of WKErrorContentExtensionStoreLookupFailed
    4646        VersionMismatch,
    4747        CompileFailed,
     
    5353    const static uint32_t CurrentContentExtensionFileVersion = 8;
    5454
    55     static UserContentExtensionStore& defaultStore();
    56     static Ref<UserContentExtensionStore> storeWithPath(const WTF::String& storePath);
     55    static ContentExtensionStore& defaultStore();
     56    static Ref<ContentExtensionStore> storeWithPath(const WTF::String& storePath);
    5757
    58     explicit UserContentExtensionStore();
    59     explicit UserContentExtensionStore(const WTF::String& storePath);
    60     virtual ~UserContentExtensionStore();
     58    explicit ContentExtensionStore();
     59    explicit ContentExtensionStore(const WTF::String& storePath);
     60    virtual ~ContentExtensionStore();
    6161
    62     void compileContentExtension(const WTF::String& identifier, WTF::String&& json, Function<void(RefPtr<API::UserContentExtension>, std::error_code)>);
    63     void lookupContentExtension(const WTF::String& identifier, Function<void(RefPtr<API::UserContentExtension>, std::error_code)>);
     62    void compileContentExtension(const WTF::String& identifier, WTF::String&& json, Function<void(RefPtr<API::ContentExtension>, std::error_code)>);
     63    void lookupContentExtension(const WTF::String& identifier, Function<void(RefPtr<API::ContentExtension>, std::error_code)>);
    6464    void removeContentExtension(const WTF::String& identifier, Function<void(std::error_code)>);
    6565
     
    7777};
    7878
    79 const std::error_category& userContentExtensionStoreErrorCategory();
     79const std::error_category& contentExtensionStoreErrorCategory();
    8080
    81 inline std::error_code make_error_code(UserContentExtensionStore::Error error)
     81inline std::error_code make_error_code(ContentExtensionStore::Error error)
    8282{
    83     return { static_cast<int>(error), userContentExtensionStoreErrorCategory() };
     83    return { static_cast<int>(error), contentExtensionStoreErrorCategory() };
    8484}
    8585
     
    8787
    8888namespace std {
    89     template<> struct is_error_code_enum<API::UserContentExtensionStore::Error> : public true_type { };
     89template<> struct is_error_code_enum<API::ContentExtensionStore::Error> : public true_type { };
    9090}
    9191
  • trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h

    r212557 r213696  
    5252
    5353namespace API {
     54class ContentExtension;
     55class ContentExtensionStore;
    5456class ExperimentalFeature;
    5557class FrameHandle;
     
    6466class ProcessPoolConfiguration;
    6567class SessionState;
    66 class UserContentExtension;
    67 class UserContentExtensionStore;
    6868class UserScript;
    6969class WebsiteDataStore;
     
    162162WK_ADD_API_MAPPING(WKTextCheckerRef, WebTextChecker)
    163163WK_ADD_API_MAPPING(WKUserContentControllerRef, WebUserContentControllerProxy)
    164 WK_ADD_API_MAPPING(WKUserContentExtensionStoreRef, API::UserContentExtensionStore)
    165 WK_ADD_API_MAPPING(WKUserContentFilterRef, API::UserContentExtension)
     164WK_ADD_API_MAPPING(WKUserContentExtensionStoreRef, API::ContentExtensionStore)
     165WK_ADD_API_MAPPING(WKUserContentFilterRef, API::ContentExtension)
    166166WK_ADD_API_MAPPING(WKUserMediaPermissionCheckRef, UserMediaPermissionCheckProxy)
    167167WK_ADD_API_MAPPING(WKUserMediaPermissionRequestRef, UserMediaPermissionRequestProxy)
  • trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp

    r207168 r213696  
    2727#include "WKPageGroup.h"
    2828
    29 #include "APIUserContentExtension.h"
     29#include "APIContentExtension.h"
    3030#include "APIUserContentWorld.h"
    3131#include "APIUserScript.h"
  • trunk/Source/WebKit2/UIProcess/API/C/WKUserContentControllerRef.cpp

    r181200 r213696  
    2727#include "WKUserContentControllerRef.h"
    2828
    29 #include "APIUserContentExtension.h"
     29#include "APIContentExtension.h"
    3030#include "APIUserScript.h"
    3131#include "WKAPICast.h"
     
    6363{
    6464#if ENABLE(CONTENT_EXTENSIONS)
    65     toImpl(userContentControllerRef)->addUserContentExtension(*toImpl(userContentFilterRef));
     65    toImpl(userContentControllerRef)->addContentExtension(*toImpl(userContentFilterRef));
    6666#endif
    6767}
     
    7070{
    7171#if ENABLE(CONTENT_EXTENSIONS)
    72     toImpl(userContentControllerRef)->removeAllUserContentExtensions();
     72    toImpl(userContentControllerRef)->removeAllContentExtensions();
    7373#endif
    7474}
  • trunk/Source/WebKit2/UIProcess/API/C/WKUserContentExtensionStoreRef.cpp

    r182161 r213696  
    2727#include "WKUserContentExtensionStoreRef.h"
    2828
    29 #include "APIUserContentExtensionStore.h"
     29#include "APIContentExtensionStore.h"
    3030#include "WKAPICast.h"
    3131
     
    3535{
    3636#if ENABLE(CONTENT_EXTENSIONS)
    37     return toAPI(API::UserContentExtensionStore::APIType);
     37    return toAPI(API::ContentExtensionStore::APIType);
    3838#else
    3939    return 0;
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/APIUserContentExtensionStoreCocoa.mm

    r182161 r213696  
    2525
    2626#include "config.h"
    27 #include "APIUserContentExtensionStore.h"
     27#include "APIContentExtensionStore.h"
    2828
    2929#if ENABLE(CONTENT_EXTENSIONS)
     
    3333namespace API {
    3434
    35 String UserContentExtensionStore::defaultStorePath()
     35String ContentExtensionStore::defaultStorePath()
    3636{
    3737    static dispatch_once_t onceToken;
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtension.h

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2828#if WK_API_ENABLED
    2929
    30 WK_CLASS_AVAILABLE(macosx(10.11), ios(9.0))
    31 @interface _WKUserContentFilter : NSObject
     30WK_CLASS_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA))
     31@interface WKContentExtension : NSObject
    3232
    3333@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtension.mm

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2525
    2626#import "config.h"
    27 #import "_WKUserContentFilterInternal.h"
     27#import "WKContentExtensionInternal.h"
    2828
    2929#if WK_API_ENABLED
    3030
    3131#include "WebCompiledContentExtension.h"
    32 #include <WebCore/ContentExtensionCompiler.h>
    33 #include <WebCore/ContentExtensionError.h>
    34 #include <string>
    3532
    36 @implementation _WKUserContentFilter
     33@implementation WKContentExtension
    3734
    3835- (void)dealloc
    3936{
    40     _userContentExtension->~UserContentExtension();
     37    _contentExtension->~ContentExtension();
    4138
    4239    [super dealloc];
     
    4744- (API::Object&)_apiObject
    4845{
    49     return *_userContentExtension;
     46    return *_contentExtension;
    5047}
    5148
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionInternal.h

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #import "_WKUserContentFilter.h"
     26#import "WKContentExtension.h"
    2727
    2828#if WK_API_ENABLED
    2929
    30 #import "APIUserContentExtension.h"
     30#import "APIContentExtension.h"
    3131#import "WKObject.h"
    3232
    3333namespace WebKit {
    3434
    35 inline _WKUserContentFilter *wrapper(API::UserContentExtension& userContentExtension)
     35inline WKContentExtension *wrapper(API::ContentExtension& contentExtension)
    3636{
    37     ASSERT([userContentExtension.wrapper() isKindOfClass:[_WKUserContentFilter class]]);
    38     return (_WKUserContentFilter *)userContentExtension.wrapper();
     37    ASSERT([contentExtension.wrapper() isKindOfClass:[WKContentExtension class]]);
     38    return (WKContentExtension *)contentExtension.wrapper();
    3939}
    4040
    4141}
    4242
    43 @interface _WKUserContentFilter () <WKObject> {
     43@interface WKContentExtension () <WKObject> {
    4444@package
    45     API::ObjectStorage<API::UserContentExtension> _userContentExtension;
     45    API::ObjectStorage<API::ContentExtension> _contentExtension;
    4646}
    4747@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStore.h

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2828#if WK_API_ENABLED
    2929
    30 @class _WKUserContentFilter;
     30@class WKContentExtension;
    3131
    32 WK_CLASS_AVAILABLE(macosx(10.11), ios(9.0))
    33 @interface _WKUserContentExtensionStore : NSObject
     32WK_CLASS_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA))
     33@interface WKContentExtensionStore : NSObject
    3434
    3535+ (instancetype)defaultStore;
    3636+ (instancetype)storeWithURL:(NSURL *)url;
    3737
    38 - (void)compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *) NS_RELEASES_ARGUMENT encodedContentExtension completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler;
    39 - (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler;
     38- (void)compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *) encodedContentExtension completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler;
     39- (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler;
    4040- (void)removeContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(NSError *))completionHandler;
    4141
    4242@end
    4343
    44 WK_EXTERN NSString * const _WKUserContentExtensionsDomain WK_API_AVAILABLE(macosx(10.12), ios(10.0));
    45 
    46 typedef NS_ENUM(NSInteger, _WKUserContentExtensionStoreErrorCode) {
    47     _WKUserContentExtensionStoreErrorLookupFailed = 1,
    48     _WKUserContentExtensionStoreErrorVersionMismatch,
    49     _WKUserContentExtensionStoreErrorCompileFailed,
    50     _WKUserContentExtensionStoreErrorRemoveFailed,
    51 } WK_API_AVAILABLE(macosx(10.12), ios(10.0));
    52 
    5344#endif // WK_API_ENABLED
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStore.mm

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2525
    2626#import "config.h"
    27 #import "_WKUserContentExtensionStoreInternal.h"
     27#import "WKContentExtensionInternal.h"
     28#import "WKContentExtensionStoreInternal.h"
    2829
    2930#if WK_API_ENABLED
    3031
    3132#import "WKErrorInternal.h"
    32 #import "_WKUserContentFilterInternal.h"
    33 #import <string>
    3433
    35 NSString * const _WKUserContentExtensionsDomain = @"_WKUserContentExtensionsDomain";
    36 
    37 @implementation _WKUserContentExtensionStore
     34@implementation WKContentExtensionStore
    3835
    3936- (void)dealloc
    4037{
    41     _userContentExtensionStore->~UserContentExtensionStore();
     38    _contentExtensionStore->~ContentExtensionStore();
    4239
    4340    [super dealloc];
     
    4643+ (instancetype)defaultStore
    4744{
    48     return WebKit::wrapper(API::UserContentExtensionStore::defaultStore());
     45    return WebKit::wrapper(API::ContentExtensionStore::defaultStore());
    4946}
    5047
    5148+ (instancetype)storeWithURL:(NSURL *)url
    5249{
    53     Ref<API::UserContentExtensionStore> store = API::UserContentExtensionStore::storeWithPath(url.absoluteURL.fileSystemRepresentation);
     50    Ref<API::ContentExtensionStore> store = API::ContentExtensionStore::storeWithPath(url.absoluteURL.fileSystemRepresentation);
    5451    return WebKit::wrapper(store.leakRef());
    5552}
    5653
    57 - (void)compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *)encodedContentExtension completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler
     54- (void)compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *)encodedContentExtension completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler
     55{
     56    [self _compileContentExtensionForIdentifier:identifier encodedContentExtension:encodedContentExtension completionHandler:completionHandler releasesArgument:NO];
     57}
     58
     59- (void)_compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *)encodedContentExtension completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler releasesArgument:(BOOL)releasesArgument
    5860{
    5961    auto handler = adoptNS([completionHandler copy]);
    6062
    6163    String json(encodedContentExtension);
    62     [encodedContentExtension release];
    63     encodedContentExtension = nil;
     64    if (releasesArgument) {
     65        [encodedContentExtension release];
     66        encodedContentExtension = nil;
     67    }
    6468
    65     _userContentExtensionStore->compileContentExtension(identifier, WTFMove(json), [handler](RefPtr<API::UserContentExtension> contentExtension, std::error_code error) {
     69    _contentExtensionStore->compileContentExtension(identifier, WTFMove(json), [handler](RefPtr<API::ContentExtension> contentExtension, std::error_code error) {
    6670        if (error) {
    67             auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
     71            auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get();
    6872           
    6973            auto userInfo = @{NSHelpAnchorErrorKey: [NSString stringWithFormat:@"Extension compilation failed: %s", error.message().c_str()]};
    7074
    71             // error.value() could have a specific compiler error that is not equal to _WKUserContentExtensionStoreErrorCompileFailed.
    72             // We want to use error.message, but here we want to only pass on CompileFailed.
    73             rawHandler(nil, [NSError errorWithDomain:_WKUserContentExtensionsDomain code:_WKUserContentExtensionStoreErrorCompileFailed userInfo:userInfo]);
     75            // error.value() could have a specific compiler error that is not equal to WKErrorContentExtensionStoreCompileFailed.
     76            // We want to use error.message, but here we want to only pass on CompileFailed with userInfo from the std::error_code.
     77            rawHandler(nil, [NSError errorWithDomain:WKErrorDomain code:WKErrorContentExtensionStoreCompileFailed userInfo:userInfo]);
    7478            return;
    7579        }
    7680
    77         auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
     81        auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get();
    7882        rawHandler(WebKit::wrapper(*contentExtension.get()), nil);
    7983    });
    8084}
    8185
    82 - (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler
     86- (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler
    8387{
    8488    auto handler = adoptNS([completionHandler copy]);
    8589
    86     _userContentExtensionStore->lookupContentExtension(identifier, [handler](RefPtr<API::UserContentExtension> contentExtension, std::error_code error) {
     90    _contentExtensionStore->lookupContentExtension(identifier, [handler](RefPtr<API::ContentExtension> contentExtension, std::error_code error) {
    8791        if (error) {
    88             auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
     92            auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get();
    8993
    9094            auto userInfo = @{NSHelpAnchorErrorKey: [NSString stringWithFormat:@"Extension lookup failed: %s", error.message().c_str()]};
    91             ASSERT(error.value() == _WKUserContentExtensionStoreErrorLookupFailed || error.value() == _WKUserContentExtensionStoreErrorVersionMismatch);
    92             rawHandler(nil, [NSError errorWithDomain:_WKUserContentExtensionsDomain code:error.value() userInfo:userInfo]);
     95            ASSERT(error.value() == WKErrorContentExtensionStoreLookupFailed || error.value() == WKErrorContentExtensionStoreVersionMismatch);
     96            rawHandler(nil, [NSError errorWithDomain:WKErrorDomain code:error.value() userInfo:userInfo]);
    9397            return;
    9498        }
    9599
    96         auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
     100        auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get();
    97101        rawHandler(WebKit::wrapper(*contentExtension.get()), nil);
    98102    });
     
    103107    auto handler = adoptNS([completionHandler copy]);
    104108
    105     _userContentExtensionStore->removeContentExtension(identifier, [handler](std::error_code error) {
     109    _contentExtensionStore->removeContentExtension(identifier, [handler](std::error_code error) {
    106110        if (error) {
    107111            auto rawHandler = (void (^)(NSError *))handler.get();
    108112
    109113            auto userInfo = @{NSHelpAnchorErrorKey: [NSString stringWithFormat:@"Extension removal failed: %s", error.message().c_str()]};
    110             ASSERT(error.value() == _WKUserContentExtensionStoreErrorRemoveFailed);
    111             rawHandler([NSError errorWithDomain:_WKUserContentExtensionsDomain code:_WKUserContentExtensionStoreErrorRemoveFailed userInfo:userInfo]);
     114            ASSERT(error.value() == WKErrorContentExtensionStoreRemoveFailed);
     115            rawHandler([NSError errorWithDomain:WKErrorDomain code:WKErrorContentExtensionStoreRemoveFailed userInfo:userInfo]);
    112116            return;
    113117        }
     
    122126- (API::Object&)_apiObject
    123127{
    124     return *_userContentExtensionStore;
     128    return *_contentExtensionStore;
    125129}
    126130
    127131@end
    128132
    129 @implementation _WKUserContentExtensionStore (WKPrivate)
     133@implementation WKContentExtensionStore (WKPrivate)
    130134
    131135// For testing only.
     
    133137- (void)_removeAllContentExtensions
    134138{
    135     _userContentExtensionStore->synchronousRemoveAllContentExtensions();
     139    _contentExtensionStore->synchronousRemoveAllContentExtensions();
    136140}
    137141
    138142- (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier
    139143{
    140     _userContentExtensionStore->invalidateContentExtensionVersion(identifier);
     144    _contentExtensionStore->invalidateContentExtensionVersion(identifier);
     145}
     146
     147// NS_RELEASES_ARGUMENT to keep peak memory usage low.
     148
     149- (void)_compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *)encodedContentExtension completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler
     150{
     151    [self _compileContentExtensionForIdentifier:identifier encodedContentExtension:encodedContentExtension completionHandler:completionHandler releasesArgument:YES];
    141152}
    142153
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStoreInternal.h

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #import "_WKUserContentExtensionStorePrivate.h"
     26#import "WKContentExtensionStorePrivate.h"
    2727
    2828#if WK_API_ENABLED
    2929
    30 #import "APIUserContentExtensionStore.h"
     30#import "APIContentExtensionStore.h"
    3131#import "WKObject.h"
    3232
    3333namespace WebKit {
    3434
    35 inline _WKUserContentExtensionStore *wrapper(API::UserContentExtensionStore& store)
     35inline WKContentExtensionStore *wrapper(API::ContentExtensionStore& store)
    3636{
    37     ASSERT([store.wrapper() isKindOfClass:[_WKUserContentExtensionStore class]]);
    38     return (_WKUserContentExtensionStore *)store.wrapper();
     37    ASSERT([store.wrapper() isKindOfClass:[WKContentExtensionStore class]]);
     38    return (WKContentExtensionStore *)store.wrapper();
    3939}
    4040
    4141}
    4242
    43 @interface _WKUserContentExtensionStore () <WKObject> {
     43@interface WKContentExtensionStore () <WKObject> {
    4444@package
    45     API::ObjectStorage<API::UserContentExtensionStore> _userContentExtensionStore;
     45    API::ObjectStorage<API::ContentExtensionStore> _contentExtensionStore;
    4646}
    4747@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStorePrivate.h

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #import <WebKit/_WKUserContentExtensionStore.h>
     26#import <WebKit/WKContentExtensionStore.h>
    2727
    2828#if WK_API_ENABLED
    2929
    30 @interface _WKUserContentExtensionStore (WKPrivate)
     30@interface WKContentExtensionStore (WKPrivate)
    3131
    3232// For testing only.
     
    3434- (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier;
    3535
     36// NS_RELEASES_ARGUMENT to keep peak memory usage low.
     37- (void)_compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *) NS_RELEASES_ARGUMENT encodedContentExtension completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler;
     38
    3639@end
    3740
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKError.h

    r202789 r213696  
    3737/*! @enum WKErrorCode
    3838 @abstract Constants used by NSError to indicate errors in the WebKit domain.
    39  @constant WKErrorUnknown                           Indicates that an unknown error occurred.
    40  @constant WKErrorWebContentProcessTerminated       Indicates that the Web Content process was terminated.
    41  @constant WKErrorWebViewInvalidated                Indicates that the WKWebView was invalidated.
    42  @constant WKErrorJavaScriptExceptionOccurred       Indicates that a JavaScript exception occurred.
    43  @constant WKErrorJavaScriptResultTypeIsUnsupported Indicates that the result of JavaScript execution could not be returned.
     39 @constant WKErrorUnknown                              Indicates that an unknown error occurred.
     40 @constant WKErrorWebContentProcessTerminated          Indicates that the Web Content process was terminated.
     41 @constant WKErrorWebViewInvalidated                   Indicates that the WKWebView was invalidated.
     42 @constant WKErrorJavaScriptExceptionOccurred          Indicates that a JavaScript exception occurred.
     43 @constant WKErrorJavaScriptResultTypeIsUnsupported    Indicates that the result of JavaScript execution could not be returned.
     44 @constant WKErrorContentExtensionStoreLookupFailed    Indicates that looking up a WKUserContentExtension failed.
     45 @constant WKErrorContentExtensionStoreVersionMismatch Indicates that looking up a WKUserContentExtension found an extension with an incompatible binary version.
     46 @constant WKErrorContentExtensionStoreCompileFailed   Indicates that compiling a WKUserContentExtension failed.
     47 @constant WKErrorContentExtensionStoreRemoveFailed    Indicates that removing a WKUserContentExtension failed.
    4448 */
    4549typedef NS_ENUM(NSInteger, WKErrorCode) {
     
    4953    WKErrorJavaScriptExceptionOccurred,
    5054    WKErrorJavaScriptResultTypeIsUnsupported WK_API_AVAILABLE(macosx(10.11), ios(9.0)),
     55    WKErrorContentExtensionStoreLookupFailed WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)),
     56    WKErrorContentExtensionStoreVersionMismatch WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)),
     57    WKErrorContentExtensionStoreCompileFailed WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)),
     58    WKErrorContentExtensionStoreRemoveFailed WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)),
    5159} WK_API_AVAILABLE(macosx(10.10), ios(8.0));
    5260
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKError.mm

    r191543 r213696  
    5858    case WKErrorJavaScriptResultTypeIsUnsupported:
    5959        return WEB_UI_STRING("JavaScript execution returned a result of an unsupported type", "WKErrorJavaScriptResultTypeIsUnsupported description");
     60
     61    case WKErrorContentExtensionStoreLookupFailed:
     62        return WEB_UI_STRING("Looking up a WKUserContentExtension failed", "WKErrorContentExtensionStoreLookupFailed description");
     63
     64    case WKErrorContentExtensionStoreVersionMismatch:
     65        return WEB_UI_STRING("Looking up a WKUserContentExtension found a binary that is incompatible", "WKErrorContentExtensionStoreVersionMismatch description");
     66
     67    case WKErrorContentExtensionStoreCompileFailed:
     68        return WEB_UI_STRING("Compiling a WKUserContentExtension failed", "WKErrorContentExtensionStoreCompileFailed description");
     69
     70    case WKErrorContentExtensionStoreRemoveFailed:
     71        return WEB_UI_STRING("Removing a WKUserContentExtension failed", "WKErrorContentExtensionStoreRemoveFailed description");
    6072    }
    6173}
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.h

    r202789 r213696  
    3232NS_ASSUME_NONNULL_BEGIN
    3333
     34@class WKContentExtension;
    3435@class WKUserScript;
    3536@protocol WKScriptMessageHandler;
     
    7172- (void)removeScriptMessageHandlerForName:(NSString *)name;
    7273
     74/*! @abstract Adds a user content extension.
     75 @param name The name of the user content extension to add.
     76 */
     77- (void)addContentExtension:(WKContentExtension *)contentExtension WK_API_AVAILABLE(macosx(WK_IOS_TBA), ios(WK_IOS_TBA));
     78
     79/*! @abstract Removes a user content extension.
     80 @param name The identifier of the user content extension to remove.
     81 */
     82- (void)removeContentExtension:(NSString *)identifier WK_API_AVAILABLE(macosx(WK_IOS_TBA), ios(WK_IOS_TBA));
     83
     84/*! @abstract Removes all associated user content extensions.
     85 */
     86- (void)removeAllContentExtensions WK_API_AVAILABLE(macosx(WK_IOS_TBA), ios(WK_IOS_TBA));
     87
    7388@end
    7489
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm

    r205150 r213696  
    3131#import "APISerializedScriptValue.h"
    3232#import "APIUserContentWorld.h"
     33#import "WKContentExtensionInternal.h"
    3334#import "WKFrameInfoInternal.h"
    3435#import "WKNSArray.h"
     
    9091{
    9192    _userContentControllerProxy->removeAllUserScripts();
     93}
     94
     95- (void)addContentExtension:(WKContentExtension *)contentExtension
     96{
     97#if ENABLE(CONTENT_EXTENSIONS)
     98    _userContentControllerProxy->addContentExtension(*contentExtension->_contentExtension);
     99#endif
     100}
     101
     102- (void)removeContentExtension:(NSString *)identifier
     103{
     104#if ENABLE(CONTENT_EXTENSIONS)
     105    _userContentControllerProxy->removeContentExtension(identifier);
     106#endif
     107}
     108
     109- (void)removeAllContentExtensions
     110{
     111#if ENABLE(CONTENT_EXTENSIONS)
     112    _userContentControllerProxy->removeAllContentExtensions();
     113#endif
    92114}
    93115
     
    154176{
    155177#if ENABLE(CONTENT_EXTENSIONS)
    156     _userContentControllerProxy->addUserContentExtension(*userContentFilter->_userContentExtension);
     178    _userContentControllerProxy->addContentExtension(*userContentFilter->_contentExtension->_contentExtension);
    157179#endif
    158180}
     
    161183{
    162184#if ENABLE(CONTENT_EXTENSIONS)
    163     _userContentControllerProxy->removeUserContentExtension(userContentFilterName);
     185    _userContentControllerProxy->removeContentExtension(userContentFilterName);
    164186#endif
    165187}
     
    168190{
    169191#if ENABLE(CONTENT_EXTENSIONS)
    170     _userContentControllerProxy->removeAllUserContentExtensions();
     192    _userContentControllerProxy->removeAllContentExtensions();
    171193#endif
    172194}
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.h

    r205559 r213696  
    4545
    4646typedef NS_ENUM(NSInteger, _WKUserContentExtensionStoreErrorCode) {
    47     _WKUserContentExtensionStoreErrorLookupFailed = 1,
     47    _WKUserContentExtensionStoreErrorLookupFailed = 6, // Mirrors value of WKErrorContentExtensionStoreLookupFailed
    4848    _WKUserContentExtensionStoreErrorVersionMismatch,
    4949    _WKUserContentExtensionStoreErrorCompileFailed,
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm

    r201457 r213696  
    2929#if WK_API_ENABLED
    3030
     31#import "WKContentExtensionStoreInternal.h"
     32#import "WKContentExtensionStorePrivate.h"
    3133#import "WKErrorInternal.h"
     34#import "_WKUserContentExtensionStorePrivate.h"
    3235#import "_WKUserContentFilterInternal.h"
     36#import "_WKUserContentFilterPrivate.h"
    3337#import <string>
    3438
    35 NSString * const _WKUserContentExtensionsDomain = @"_WKUserContentExtensionsDomain";
     39NSString * const _WKUserContentExtensionsDomain = @"WKErrorDomain";
    3640
    3741@implementation _WKUserContentExtensionStore
    3842
    39 - (void)dealloc
    40 {
    41     _userContentExtensionStore->~UserContentExtensionStore();
    42 
    43     [super dealloc];
    44 }
    45 
    4643+ (instancetype)defaultStore
    4744{
    48     return WebKit::wrapper(API::UserContentExtensionStore::defaultStore());
     45    return [[[_WKUserContentExtensionStore alloc] _initWithWKContentExtensionStore:[WKContentExtensionStore defaultStore]] autorelease];
    4946}
    5047
    5148+ (instancetype)storeWithURL:(NSURL *)url
    5249{
    53     Ref<API::UserContentExtensionStore> store = API::UserContentExtensionStore::storeWithPath(url.absoluteURL.fileSystemRepresentation);
    54     return WebKit::wrapper(store.leakRef());
     50    return [[[_WKUserContentExtensionStore alloc] _initWithWKContentExtensionStore:[WKContentExtensionStore storeWithURL:url]] autorelease];
    5551}
    5652
    5753- (void)compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *)encodedContentExtension completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler
    5854{
    59     auto handler = adoptNS([completionHandler copy]);
    60 
    61     String json(encodedContentExtension);
    62     [encodedContentExtension release];
    63     encodedContentExtension = nil;
    64 
    65     _userContentExtensionStore->compileContentExtension(identifier, WTFMove(json), [handler](RefPtr<API::UserContentExtension> contentExtension, std::error_code error) {
    66         if (error) {
    67             auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
    68            
    69             auto userInfo = @{NSHelpAnchorErrorKey: [NSString stringWithFormat:@"Extension compilation failed: %s", error.message().c_str()]};
    70 
    71             // error.value() could have a specific compiler error that is not equal to _WKUserContentExtensionStoreErrorCompileFailed.
    72             // We want to use error.message, but here we want to only pass on CompileFailed.
    73             rawHandler(nil, [NSError errorWithDomain:_WKUserContentExtensionsDomain code:_WKUserContentExtensionStoreErrorCompileFailed userInfo:userInfo]);
    74             return;
    75         }
    76 
    77         auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
    78         rawHandler(WebKit::wrapper(*contentExtension.get()), nil);
    79     });
     55    [_contentExtensionStore _compileContentExtensionForIdentifier:identifier encodedContentExtension:encodedContentExtension completionHandler:^(WKContentExtension *contentExtension, NSError *error) {
     56        _WKUserContentFilter *contentFilter = contentExtension ? [[[_WKUserContentFilter alloc] _initWithWKContentExtension:contentExtension] autorelease] : nil;
     57        completionHandler(contentFilter, error);
     58    }];
    8059}
    8160
    8261- (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler
    8362{
    84     auto handler = adoptNS([completionHandler copy]);
    85 
    86     _userContentExtensionStore->lookupContentExtension(identifier, [handler](RefPtr<API::UserContentExtension> contentExtension, std::error_code error) {
    87         if (error) {
    88             auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
    89 
    90             auto userInfo = @{NSHelpAnchorErrorKey: [NSString stringWithFormat:@"Extension lookup failed: %s", error.message().c_str()]};
    91             ASSERT(error.value() == _WKUserContentExtensionStoreErrorLookupFailed || error.value() == _WKUserContentExtensionStoreErrorVersionMismatch);
    92             rawHandler(nil, [NSError errorWithDomain:_WKUserContentExtensionsDomain code:error.value() userInfo:userInfo]);
    93             return;
    94         }
    95 
    96         auto rawHandler = (void (^)(_WKUserContentFilter *, NSError *))handler.get();
    97         rawHandler(WebKit::wrapper(*contentExtension.get()), nil);
    98     });
     63    [_contentExtensionStore lookupContentExtensionForIdentifier:identifier completionHandler:^(WKContentExtension *contentExtension, NSError *error) {
     64        _WKUserContentFilter *contentFilter = contentExtension ? [[[_WKUserContentFilter alloc] _initWithWKContentExtension:contentExtension] autorelease] : nil;
     65        completionHandler(contentFilter, error);
     66    }];
    9967}
    10068
    10169- (void)removeContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(NSError *))completionHandler
    10270{
    103     auto handler = adoptNS([completionHandler copy]);
    104 
    105     _userContentExtensionStore->removeContentExtension(identifier, [handler](std::error_code error) {
    106         if (error) {
    107             auto rawHandler = (void (^)(NSError *))handler.get();
    108 
    109             auto userInfo = @{NSHelpAnchorErrorKey: [NSString stringWithFormat:@"Extension removal failed: %s", error.message().c_str()]};
    110             ASSERT(error.value() == _WKUserContentExtensionStoreErrorRemoveFailed);
    111             rawHandler([NSError errorWithDomain:_WKUserContentExtensionsDomain code:_WKUserContentExtensionStoreErrorRemoveFailed userInfo:userInfo]);
    112             return;
    113         }
    114 
    115         auto rawHandler = (void (^)(NSError *))handler.get();
    116         rawHandler(nil);
    117     });
     71    [_contentExtensionStore removeContentExtensionForIdentifier:identifier completionHandler:completionHandler];
    11872}
    11973
     
    12276- (API::Object&)_apiObject
    12377{
    124     return *_userContentExtensionStore;
     78    return [_contentExtensionStore _apiObject];
    12579}
    12680
     
    13387- (void)_removeAllContentExtensions
    13488{
    135     _userContentExtensionStore->synchronousRemoveAllContentExtensions();
     89    [_contentExtensionStore _removeAllContentExtensions];
    13690}
    13791
    13892- (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier
    13993{
    140     _userContentExtensionStore->invalidateContentExtensionVersion(identifier);
     94    [_contentExtensionStore _invalidateContentExtensionVersionForIdentifier:identifier];
     95}
     96
     97- (id)_initWithWKContentExtensionStore:(WKContentExtensionStore*)contentExtensionStore
     98{
     99    self = [super init];
     100    if (!self)
     101        return nil;
     102   
     103    _contentExtensionStore = contentExtensionStore;
     104   
     105    return self;
    141106}
    142107
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h

    r182161 r213696  
    2828#if WK_API_ENABLED
    2929
    30 #import "APIUserContentExtensionStore.h"
     30#import "APIContentExtensionStore.h"
    3131#import "WKObject.h"
    3232
    33 namespace WebKit {
    34 
    35 inline _WKUserContentExtensionStore *wrapper(API::UserContentExtensionStore& store)
    36 {
    37     ASSERT([store.wrapper() isKindOfClass:[_WKUserContentExtensionStore class]]);
    38     return (_WKUserContentExtensionStore *)store.wrapper();
    39 }
    40 
    41 }
     33@class WKContentExtensionStore;
    4234
    4335@interface _WKUserContentExtensionStore () <WKObject> {
    4436@package
    45     API::ObjectStorage<API::UserContentExtensionStore> _userContentExtensionStore;
     37    RetainPtr<WKContentExtensionStore> _contentExtensionStore;
    4638}
    4739@end
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h

    r201457 r213696  
    2828#if WK_API_ENABLED
    2929
     30@class WKContentExtensionStore;
     31
    3032@interface _WKUserContentExtensionStore (WKPrivate)
    3133
     
    3436- (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier;
    3537
     38- (id)_initWithWKContentExtensionStore:(WKContentExtensionStore*)contentExtensionStore;
     39
    3640@end
    3741
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentFilter.mm

    r182922 r213696  
    3636@implementation _WKUserContentFilter
    3737
    38 - (void)dealloc
    39 {
    40     _userContentExtension->~UserContentExtension();
    41 
    42     [super dealloc];
    43 }
    44 
    4538#pragma mark WKObject protocol implementation
    4639
    4740- (API::Object&)_apiObject
    4841{
    49     return *_userContentExtension;
     42    return [_contentExtension _apiObject];
     43}
     44
     45@end
     46
     47@implementation _WKUserContentFilter (WKPrivate)
     48
     49- (id)_initWithWKContentExtension:(WKContentExtension*)contentExtension
     50{
     51    self = [super init];
     52    if (!self)
     53        return nil;
     54   
     55    _contentExtension = contentExtension;
     56   
     57    return self;
    5058}
    5159
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentFilterInternal.h

    r181200 r213696  
    2828#if WK_API_ENABLED
    2929
    30 #import "APIUserContentExtension.h"
     30#import "APIContentExtension.h"
    3131#import "WKObject.h"
    3232
    33 namespace WebKit {
    34 
    35 inline _WKUserContentFilter *wrapper(API::UserContentExtension& userContentExtension)
    36 {
    37     ASSERT([userContentExtension.wrapper() isKindOfClass:[_WKUserContentFilter class]]);
    38     return (_WKUserContentFilter *)userContentExtension.wrapper();
    39 }
    40 
    41 }
     33@class WKContentExtension;
    4234
    4335@interface _WKUserContentFilter () <WKObject> {
    4436@package
    45     API::ObjectStorage<API::UserContentExtension> _userContentExtension;
     37    RetainPtr<WKContentExtension> _contentExtension;
    4638}
    4739@end
  • trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp

    r205150 r213696  
    4040
    4141#if ENABLE(CONTENT_EXTENSIONS)
    42 #include "APIUserContentExtension.h"
     42#include "APIContentExtension.h"
    4343#include "WebCompiledContentExtension.h"
    4444#endif
     
    9898
    9999#if ENABLE(CONTENT_EXTENSIONS)
    100     Vector<std::pair<String, WebCompiledContentExtensionData>> userContentExtensions;
    101     for (const auto& userContentExtension : m_userContentExtensions.values())
    102         userContentExtensions.append(std::make_pair(userContentExtension->name(), userContentExtension->compiledExtension().data()));
    103     webProcessProxy.connection()->send(Messages::WebUserContentController::AddUserContentExtensions(userContentExtensions), m_identifier);
     100    Vector<std::pair<String, WebCompiledContentExtensionData>> contentExtensions;
     101    for (const auto& contentExtension : m_contentExtensions.values())
     102        contentExtensions.append(std::make_pair(contentExtension->name(), contentExtension->compiledExtension().data()));
     103    webProcessProxy.connection()->send(Messages::WebUserContentController::AddContentExtensions(contentExtensions), m_identifier);
    104104#endif
    105105}
     
    339339
    340340#if ENABLE(CONTENT_EXTENSIONS)
    341 void WebUserContentControllerProxy::addUserContentExtension(API::UserContentExtension& userContentExtension)
    342 {
    343     m_userContentExtensions.set(userContentExtension.name(), &userContentExtension);
    344 
    345     auto pair = std::make_pair(userContentExtension.name(), userContentExtension.compiledExtension().data());
    346 
    347     for (WebProcessProxy* process : m_processes)
    348         process->connection()->send(Messages::WebUserContentController::AddUserContentExtensions({ pair }), m_identifier);
    349 }
    350 
    351 void WebUserContentControllerProxy::removeUserContentExtension(const String& name)
    352 {
    353     m_userContentExtensions.remove(name);
    354 
    355     for (WebProcessProxy* process : m_processes)
    356         process->connection()->send(Messages::WebUserContentController::RemoveUserContentExtension(name), m_identifier);
    357 }
    358 
    359 void WebUserContentControllerProxy::removeAllUserContentExtensions()
    360 {
    361     m_userContentExtensions.clear();
    362 
    363     for (WebProcessProxy* process : m_processes)
    364         process->connection()->send(Messages::WebUserContentController::RemoveAllUserContentExtensions(), m_identifier);
     341void WebUserContentControllerProxy::addContentExtension(API::ContentExtension& contentExtension)
     342{
     343    m_contentExtensions.set(contentExtension.name(), &contentExtension);
     344
     345    auto pair = std::make_pair(contentExtension.name(), contentExtension.compiledExtension().data());
     346
     347    for (WebProcessProxy* process : m_processes)
     348        process->connection()->send(Messages::WebUserContentController::AddContentExtensions({ pair }), m_identifier);
     349}
     350
     351void WebUserContentControllerProxy::removeContentExtension(const String& name)
     352{
     353    m_contentExtensions.remove(name);
     354
     355    for (WebProcessProxy* process : m_processes)
     356        process->connection()->send(Messages::WebUserContentController::RemoveContentExtension(name), m_identifier);
     357}
     358
     359void WebUserContentControllerProxy::removeAllContentExtensions()
     360{
     361    m_contentExtensions.clear();
     362
     363    for (WebProcessProxy* process : m_processes)
     364        process->connection()->send(Messages::WebUserContentController::RemoveAllContentExtensions(), m_identifier);
    365365}
    366366#endif
  • trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h

    r205150 r213696  
    2424 */
    2525
    26 #ifndef WebUserContentControllerProxy_h
    27 #define WebUserContentControllerProxy_h
     26#pragma once
    2827
    2928#include "APIObject.h"
     
    3938namespace API {
    4039class Array;
     40class ContentExtension;
    4141class UserContentWorld;
    42 class UserContentExtension;
    4342class UserScript;
    4443class UserStyleSheet;
     
    9392
    9493#if ENABLE(CONTENT_EXTENSIONS)
    95     void addUserContentExtension(API::UserContentExtension&);
    96     void removeUserContentExtension(const String&);
    97     void removeAllUserContentExtensions();
     94    void addContentExtension(API::ContentExtension&);
     95    void removeContentExtension(const String&);
     96    void removeAllContentExtensions();
    9897#endif
    9998
     
    117116
    118117#if ENABLE(CONTENT_EXTENSIONS)
    119     HashMap<String, RefPtr<API::UserContentExtension>> m_userContentExtensions;
     118    HashMap<String, RefPtr<API::ContentExtension>> m_contentExtensions;
    120119#endif
    121120};
    122121
    123122} // namespace WebKit
    124 
    125 #endif // WebUserContentControllerProxy_h
  • trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp

    r207168 r213696  
    2828
    2929#include "APIArray.h"
    30 #include "APIUserContentExtension.h"
     30#include "APIContentExtension.h"
    3131#include "APIUserScript.h"
    3232#include "APIUserStyleSheet.h"
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r213686 r213696  
    11551155                5CBC9B8D1C65279C00A8FDCF /* NetworkDataTaskCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */; };
    11561156                5CBC9B8E1C652CA000A8FDCF /* NetworkDataTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */; };
     1157                5CD286511E7235990094FDC8 /* WKContentExtensionStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD2864D1E722F440094FDC8 /* WKContentExtensionStore.h */; settings = {ATTRIBUTES = (Public, ); }; };
     1158                5CD286521E7235A60094FDC8 /* WKContentExtension.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CD2864B1E722F440094FDC8 /* WKContentExtension.mm */; };
     1159                5CD286531E7235AA0094FDC8 /* _WKUserContentFilterPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD286491E722F440094FDC8 /* _WKUserContentFilterPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1160                5CD286541E7235B10094FDC8 /* WKContentExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD2864A1E722F440094FDC8 /* WKContentExtension.h */; settings = {ATTRIBUTES = (Public, ); }; };
     1161                5CD286551E7235B80094FDC8 /* WKContentExtensionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD2864C1E722F440094FDC8 /* WKContentExtensionInternal.h */; };
     1162                5CD286561E7235C60094FDC8 /* WKContentExtensionStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CD2864E1E722F440094FDC8 /* WKContentExtensionStore.mm */; };
     1163                5CD286571E7235C90094FDC8 /* WKContentExtensionStoreInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD2864F1E722F440094FDC8 /* WKContentExtensionStoreInternal.h */; };
     1164                5CD286581E7235D10094FDC8 /* WKContentExtensionStorePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CD286501E722F440094FDC8 /* WKContentExtensionStorePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11571165                5CE85B201C88E64B0070BFCE /* PingLoad.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CE85B1F1C88E6430070BFCE /* PingLoad.h */; };
    11581166                5CFECB041E1ED1CC00F88504 /* LegacyCustomProtocolManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CFECB031E1ED1C800F88504 /* LegacyCustomProtocolManager.cpp */; };
     
    12051213                7C361D79192803BD0036A59D /* WebUserContentControllerProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C361D77192803BD0036A59D /* WebUserContentControllerProxyMessages.h */; };
    12061214                7C387434172F5615001BD88A /* PageBanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C387433172F5615001BD88A /* PageBanner.cpp */; };
    1207                 7C3A06A71AAB903E009D74BA /* APIUserContentExtensionStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C3A06A51AAB903E009D74BA /* APIUserContentExtensionStore.cpp */; };
    1208                 7C3A06A81AAB903E009D74BA /* APIUserContentExtensionStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C3A06A61AAB903E009D74BA /* APIUserContentExtensionStore.h */; };
     1215                7C3A06A71AAB903E009D74BA /* APIContentExtensionStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C3A06A51AAB903E009D74BA /* APIContentExtensionStore.cpp */; };
     1216                7C3A06A81AAB903E009D74BA /* APIContentExtensionStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C3A06A61AAB903E009D74BA /* APIContentExtensionStore.h */; };
    12091217                7C3F8C90173AF52D007B7F39 /* PluginInformation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C3F8C8E173AF52D007B7F39 /* PluginInformation.cpp */; };
    12101218                7C3F8C91173AF52D007B7F39 /* PluginInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C3F8C8F173AF52D007B7F39 /* PluginInformation.h */; };
     
    12391247                7C89D2A41A678875003A5FDE /* WKUserScriptRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2A21A678875003A5FDE /* WKUserScriptRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12401248                7C89D2A61A6789EA003A5FDE /* APIUserScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2A51A6789EA003A5FDE /* APIUserScript.cpp */; };
    1241                 7C89D2B31A6B068C003A5FDE /* APIUserContentExtension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2B11A6B068C003A5FDE /* APIUserContentExtension.cpp */; };
    1242                 7C89D2B41A6B068C003A5FDE /* APIUserContentExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2B21A6B068C003A5FDE /* APIUserContentExtension.h */; };
     1249                7C89D2B31A6B068C003A5FDE /* APIContentExtension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2B11A6B068C003A5FDE /* APIContentExtension.cpp */; };
     1250                7C89D2B41A6B068C003A5FDE /* APIContentExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2B21A6B068C003A5FDE /* APIContentExtension.h */; };
    12431251                7C89D2B61A6B0DD9003A5FDE /* WKUserContentControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2B51A6B0DD9003A5FDE /* WKUserContentControllerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12441252                7C89D2B91A6B0F2C003A5FDE /* _WKUserContentFilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2B71A6B0F2C003A5FDE /* _WKUserContentFilter.mm */; };
     
    33783386                5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkDataTask.h; path = NetworkProcess/NetworkDataTask.h; sourceTree = "<group>"; };
    33793387                5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkDataTaskCocoa.mm; path = NetworkProcess/cocoa/NetworkDataTaskCocoa.mm; sourceTree = "<group>"; };
     3388                5CD286491E722F440094FDC8 /* _WKUserContentFilterPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKUserContentFilterPrivate.h; sourceTree = "<group>"; };
     3389                5CD2864A1E722F440094FDC8 /* WKContentExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentExtension.h; sourceTree = "<group>"; };
     3390                5CD2864B1E722F440094FDC8 /* WKContentExtension.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKContentExtension.mm; sourceTree = "<group>"; };
     3391                5CD2864C1E722F440094FDC8 /* WKContentExtensionInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentExtensionInternal.h; sourceTree = "<group>"; };
     3392                5CD2864D1E722F440094FDC8 /* WKContentExtensionStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentExtensionStore.h; sourceTree = "<group>"; };
     3393                5CD2864E1E722F440094FDC8 /* WKContentExtensionStore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKContentExtensionStore.mm; sourceTree = "<group>"; };
     3394                5CD2864F1E722F440094FDC8 /* WKContentExtensionStoreInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentExtensionStoreInternal.h; sourceTree = "<group>"; };
     3395                5CD286501E722F440094FDC8 /* WKContentExtensionStorePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContentExtensionStorePrivate.h; sourceTree = "<group>"; };
    33803396                5CE85B1F1C88E6430070BFCE /* PingLoad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PingLoad.h; path = NetworkProcess/PingLoad.h; sourceTree = "<group>"; };
    33813397                5CFECB031E1ED1C800F88504 /* LegacyCustomProtocolManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LegacyCustomProtocolManager.cpp; path = NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp; sourceTree = "<group>"; };
     
    34383454                7C361D77192803BD0036A59D /* WebUserContentControllerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebUserContentControllerProxyMessages.h; sourceTree = "<group>"; };
    34393455                7C387433172F5615001BD88A /* PageBanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageBanner.cpp; sourceTree = "<group>"; };
    3440                 7C3A06A51AAB903E009D74BA /* APIUserContentExtensionStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIUserContentExtensionStore.cpp; sourceTree = "<group>"; };
    3441                 7C3A06A61AAB903E009D74BA /* APIUserContentExtensionStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIUserContentExtensionStore.h; sourceTree = "<group>"; };
     3456                7C3A06A51AAB903E009D74BA /* APIContentExtensionStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIContentExtensionStore.cpp; sourceTree = "<group>"; };
     3457                7C3A06A61AAB903E009D74BA /* APIContentExtensionStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIContentExtensionStore.h; sourceTree = "<group>"; };
    34423458                7C3F8C8E173AF52D007B7F39 /* PluginInformation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginInformation.cpp; sourceTree = "<group>"; };
    34433459                7C3F8C8F173AF52D007B7F39 /* PluginInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginInformation.h; sourceTree = "<group>"; };
     
    34753491                7C89D2A21A678875003A5FDE /* WKUserScriptRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserScriptRef.h; sourceTree = "<group>"; };
    34763492                7C89D2A51A6789EA003A5FDE /* APIUserScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIUserScript.cpp; sourceTree = "<group>"; };
    3477                 7C89D2B11A6B068C003A5FDE /* APIUserContentExtension.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIUserContentExtension.cpp; sourceTree = "<group>"; };
    3478                 7C89D2B21A6B068C003A5FDE /* APIUserContentExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIUserContentExtension.h; sourceTree = "<group>"; };
     3493                7C89D2B11A6B068C003A5FDE /* APIContentExtension.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIContentExtension.cpp; sourceTree = "<group>"; };
     3494                7C89D2B21A6B068C003A5FDE /* APIContentExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIContentExtension.h; sourceTree = "<group>"; };
    34793495                7C89D2B51A6B0DD9003A5FDE /* WKUserContentControllerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserContentControllerPrivate.h; sourceTree = "<group>"; };
    34803496                7C89D2B71A6B0F2C003A5FDE /* _WKUserContentFilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKUserContentFilter.mm; sourceTree = "<group>"; };
     
    54265442                        isa = PBXGroup;
    54275443                        children = (
     5444                                5CD286491E722F440094FDC8 /* _WKUserContentFilterPrivate.h */,
     5445                                5CD2864A1E722F440094FDC8 /* WKContentExtension.h */,
     5446                                5CD2864B1E722F440094FDC8 /* WKContentExtension.mm */,
     5447                                5CD2864C1E722F440094FDC8 /* WKContentExtensionInternal.h */,
     5448                                5CD2864D1E722F440094FDC8 /* WKContentExtensionStore.h */,
     5449                                5CD2864E1E722F440094FDC8 /* WKContentExtensionStore.mm */,
     5450                                5CD2864F1E722F440094FDC8 /* WKContentExtensionStoreInternal.h */,
     5451                                5CD286501E722F440094FDC8 /* WKContentExtensionStorePrivate.h */,
    54285452                                1A43E826188F38E2009E4D30 /* Deprecated */,
    54295453                                37A5E01218BBF937000A081E /* _WKActivatedElementInfo.h */,
     
    67316755                                51D124381E6DFDB9002B2820 /* APIURLSchemeHandlerTask.cpp */,
    67326756                                51D124391E6DFDB9002B2820 /* APIURLSchemeHandlerTask.h */,
    6733                                 7C89D2B11A6B068C003A5FDE /* APIUserContentExtension.cpp */,
    6734                                 7C89D2B21A6B068C003A5FDE /* APIUserContentExtension.h */,
    6735                                 7C3A06A51AAB903E009D74BA /* APIUserContentExtensionStore.cpp */,
    6736                                 7C3A06A61AAB903E009D74BA /* APIUserContentExtensionStore.h */,
     6757                                7C89D2B11A6B068C003A5FDE /* APIContentExtension.cpp */,
     6758                                7C89D2B21A6B068C003A5FDE /* APIContentExtension.h */,
     6759                                7C3A06A51AAB903E009D74BA /* APIContentExtensionStore.cpp */,
     6760                                7C3A06A61AAB903E009D74BA /* APIContentExtensionStore.h */,
    67376761                                7C882DFB1C7E99A6006BF731 /* APIUserContentWorld.cpp */,
    67386762                                7C882DFC1C7E99A6006BF731 /* APIUserContentWorld.h */,
     
    80008024                                2D8786201BDB57F500D02ABB /* _WKUserStyleSheetInternal.h in Headers */,
    80018025                                1A81B38118BD66AD0007FDAC /* _WKVisitedLinkStore.h in Headers */,
     8026                                5CD286541E7235B10094FDC8 /* WKContentExtension.h in Headers */,
    80028027                                1A81B38518BD673A0007FDAC /* _WKVisitedLinkStoreInternal.h in Headers */,
    80038028                                1AE286781C7E76510069AC4F /* _WKWebsiteDataSize.h in Headers */,
     
    80088033                                5CB2378E1DF0E0D300117AA3 /* _WKWebsitePoliciesInternal.h in Headers */,
    80098034                                A115DC72191D82DA00DA8072 /* _WKWebViewPrintFormatter.h in Headers */,
     8035                                5CD286571E7235C90094FDC8 /* WKContentExtensionStoreInternal.h in Headers */,
    80108036                                A19DD3C01D07D16800AC823B /* _WKWebViewPrintFormatterInternal.h in Headers */,
    80118037                                A182D5B51BE6BD250087A7CC /* AccessibilityIOS.h in Headers */,
     
    80558081                                BCE2315D122C30CA00D5C35A /* APIURLRequest.h in Headers */,
    80568082                                BC90A1D2122DD55E00CC8C50 /* APIURLResponse.h in Headers */,
    8057                                 7C89D2B41A6B068C003A5FDE /* APIUserContentExtension.h in Headers */,
    8058                                 7C3A06A81AAB903E009D74BA /* APIUserContentExtensionStore.h in Headers */,
     8083                                7C89D2B41A6B068C003A5FDE /* APIContentExtension.h in Headers */,
     8084                                7C3A06A81AAB903E009D74BA /* APIContentExtensionStore.h in Headers */,
    80598085                                F6113E25126CE1820057D0A7 /* APIUserContentURLPattern.h in Headers */,
    80608086                                7C882DFD1C7E99A8006BF731 /* APIUserContentWorld.h in Headers */,
     
    82648290                                1AE4976811FF658E0048B464 /* NPJSObject.h in Headers */,
    82658291                                1A2D82A5127F4EAB001EB962 /* NPObjectMessageReceiver.h in Headers */,
     8292                                5CD286511E7235990094FDC8 /* WKContentExtensionStore.h in Headers */,
    82668293                                1A2D843A127F65D5001EB962 /* NPObjectMessageReceiverMessages.h in Headers */,
    82678294                                1A2D82A7127F4EAB001EB962 /* NPObjectProxy.h in Headers */,
     
    86208647                                1AE00D4D182D6EB000087DD7 /* WKBrowsingContextHandle.h in Headers */,
    86218648                                1AE00D4F182D6F5000087DD7 /* WKBrowsingContextHandleInternal.h in Headers */,
     8649                                5CD286581E7235D10094FDC8 /* WKContentExtensionStorePrivate.h in Headers */,
    86228650                                370F34A71829CFF3009027C8 /* WKBrowsingContextHistoryDelegate.h in Headers */,
    86238651                                BCBAAD0B14560A430053F82F /* WKBrowsingContextLoadDelegate.h in Headers */,
     
    87998827                                2D9EA30D1A96CB59002D2807 /* WKPageInjectedBundleClient.h in Headers */,
    88008828                                1AB8A1EC1840080900E9AE69 /* WKPageLoaderClient.h in Headers */,
     8829                                5CD286531E7235AA0094FDC8 /* _WKUserContentFilterPrivate.h in Headers */,
    88018830                                BC2D021912AC426C00E732A3 /* WKPageLoadTypes.h in Headers */,
    88028831                                93BDEB01171DD7AF00BFEE1B /* WKPageLoadTypesPrivate.h in Headers */,
     
    89218950                                75A8D2D6187D1C0E00C39C9E /* WKWebsiteDataStoreInternal.h in Headers */,
    89228951                                1AE2867A1C7F7BA60069AC4F /* WKWebsiteDataStorePrivate.h in Headers */,
     8952                                5CD286551E7235B80094FDC8 /* WKContentExtensionInternal.h in Headers */,
    89238953                                1A57109F1ABA0027002FABBE /* WKWebsiteDataStoreRef.h in Headers */,
    89248954                                5C9E56831DF7F1B300C9EE33 /* WKWebsitePolicies.h in Headers */,
     
    95809610                                BCE2315E122C30CA00D5C35A /* APIURLRequest.cpp in Sources */,
    95819611                                BC90A1D3122DD55E00CC8C50 /* APIURLResponse.cpp in Sources */,
    9582                                 7C89D2B31A6B068C003A5FDE /* APIUserContentExtension.cpp in Sources */,
    9583                                 7C3A06A71AAB903E009D74BA /* APIUserContentExtensionStore.cpp in Sources */,
     9612                                7C89D2B31A6B068C003A5FDE /* APIContentExtension.cpp in Sources */,
     9613                                7C3A06A71AAB903E009D74BA /* APIContentExtensionStore.cpp in Sources */,
    95849614                                7CEFA9621AC0999300B910FD /* APIUserContentExtensionStoreCocoa.mm in Sources */,
    95859615                                7C882DFE1C7E99AC006BF731 /* APIUserContentWorld.cpp in Sources */,
     
    998010010                                31A505F91680025500A930EB /* WebContextClient.cpp in Sources */,
    998110011                                BC09B8F8147460F7005F5625 /* WebContextConnectionClient.cpp in Sources */,
     10012                                5CD286561E7235C60094FDC8 /* WKContentExtensionStore.mm in Sources */,
    998210013                                BCDE059C11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.cpp in Sources */,
    998310014                                51871B5B127CB89D00F76232 /* WebContextMenu.cpp in Sources */,
     
    1039210423                                BC989D81161A7E5D000D46D3 /* WKWebProcessPlugIn.mm in Sources */,
    1039310424                                BC8F2F2A16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.mm in Sources */,
     10425                                5CD286521E7235A60094FDC8 /* WKContentExtension.mm in Sources */,
    1039410426                                1F7506AD1859161C00EC0FF7 /* WKWebProcessPlugInFrame.mm in Sources */,
    1039510427                                1F7506AE1859162200EC0FF7 /* WKWebProcessPlugInHitTestResult.mm in Sources */,
  • trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp

    r208342 r213696  
    340340
    341341#if ENABLE(CONTENT_EXTENSIONS)
    342 void WebUserContentController::addUserContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>& userContentExtensions)
    343 {
    344     for (const auto& userContentExtension : userContentExtensions) {
    345         WebCompiledContentExtensionData contentExtensionData = userContentExtension.second;
     342void WebUserContentController::addContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>& contentExtensions)
     343{
     344    for (const auto& contentExtension : contentExtensions) {
     345        WebCompiledContentExtensionData contentExtensionData = contentExtension.second;
    346346        RefPtr<WebCompiledContentExtension> compiledContentExtension = WebCompiledContentExtension::create(WTFMove(contentExtensionData));
    347347
    348         m_contentExtensionBackend.addContentExtension(userContentExtension.first, WTFMove(compiledContentExtension));
    349     }
    350 }
    351 
    352 void WebUserContentController::removeUserContentExtension(const String& name)
     348        m_contentExtensionBackend.addContentExtension(contentExtension.first, WTFMove(compiledContentExtension));
     349    }
     350}
     351
     352void WebUserContentController::removeContentExtension(const String& name)
    353353{
    354354    m_contentExtensionBackend.removeContentExtension(name);
    355355}
    356356
    357 void WebUserContentController::removeAllUserContentExtensions()
     357void WebUserContentController::removeAllContentExtensions()
    358358{
    359359    m_contentExtensionBackend.removeAllContentExtensions();
  • trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.h

    r204668 r213696  
    2424 */
    2525
    26 #ifndef WebUserContentController_h
    27 #define WebUserContentController_h
     26#pragma once
    2827
    2928#include "MessageReceiver.h"
     
    9695
    9796#if ENABLE(CONTENT_EXTENSIONS)
    98     void addUserContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>&);
    99     void removeUserContentExtension(const String& name);
    100     void removeAllUserContentExtensions();
     97    void addContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>&);
     98    void removeContentExtension(const String& name);
     99    void removeAllContentExtensions();
    101100#endif
    102101
     
    129128
    130129} // namespace WebKit
    131 
    132 #endif // WebUserContentController_h
  • trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.messages.in

    r199020 r213696  
    4141
    4242#if ENABLE(CONTENT_EXTENSIONS)
    43     AddUserContentExtensions(Vector<std::pair<String, WebKit::WebCompiledContentExtensionData>> userContentFilters);
    44     RemoveUserContentExtension(String name);
    45     RemoveAllUserContentExtensions();
     43    AddContentExtensions(Vector<std::pair<String, WebKit::WebCompiledContentExtensionData>> contentFilters);
     44    RemoveContentExtension(String name);
     45    RemoveAllContentExtensions();
    4646#endif
    4747}
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebErrorsMac.mm

    r204053 r213696  
    8686ResourceError blockedByContentFilterError(const ResourceRequest& request)
    8787{
    88     return ResourceError(API::Error::webKitErrorDomain(), kWKErrorCodeFrameLoadBlockedByContentFilter, request.url(), WEB_UI_STRING("The URL was blocked by a content filter", "WebKitErrorBlockedByContentFilter"));
     88    return ResourceError(API::Error::webKitErrorDomain(), kWKErrorCodeFrameLoadBlockedByContentFilter, request.url(), WEB_UI_STRING("The URL was blocked by a content filter", "WebKitErrorFrameLoadBlockedByContentFilter description"));
    8989}
    9090#endif
  • trunk/Tools/ChangeLog

    r213694 r213696  
     12017-03-09  Brian Nicholson  <bnicholson@mozilla.com> and Alex Christensen  <achristensen@webkit.org>
     2
     3        Expose public APIs for content filters
     4        https://bugs.webkit.org/show_bug.cgi?id=150479
     5
     6        Reviewed by Brady Eidson and Geoff Garen.
     7
     8        Keep the existing tests to verify that I made the wrapper classes for the old SPI work correctly.
     9        Add new identical tests for the new API are added with the new names.
     10        We should keep both until we migrate from and remove the old SPI.
     11        Enum error code values and strings have changed, but the API is source compatible.
     12
     13        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     14        * TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm.
     15        (WKUserContentExtensionStoreTest::SetUp):
     16        (TEST_F):
     17        (checkDomain):
     18        (_WKUserContentExtensionStoreTest::SetUp): Deleted.
     19        * TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm:
     20        (checkDomain):
     21
    1222017-03-09  Daniel Bates  <dabates@apple.com>
    223
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r213684 r213696  
    190190                5C9E59421D3EB5AC00E3C62E /* ApplicationCache.db-shm in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5C9E593F1D3EB1DE00E3C62E /* ApplicationCache.db-shm */; };
    191191                5C9E59431D3EB5AC00E3C62E /* ApplicationCache.db-wal in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5C9E59401D3EB1DE00E3C62E /* ApplicationCache.db-wal */; };
     192                5CE354D91E70DA5C00BEFE3B /* WKUserContentExtensionStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CE354D81E70D9C300BEFE3B /* WKUserContentExtensionStore.mm */; };
    192193                5E4B1D2E1D404C6100053621 /* WKScrollViewDelegateCrash.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E4B1D2C1D404C6100053621 /* WKScrollViewDelegateCrash.mm */; };
    193194                6BFD294C1D5E6C1D008EC968 /* HashCountedSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A38D7E51C752D5F004F157D /* HashCountedSet.cpp */; };
     
    10931094                5C9E593F1D3EB1DE00E3C62E /* ApplicationCache.db-shm */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ApplicationCache.db-shm"; sourceTree = "<group>"; };
    10941095                5C9E59401D3EB1DE00E3C62E /* ApplicationCache.db-wal */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ApplicationCache.db-wal"; sourceTree = "<group>"; };
     1096                5CE354D81E70D9C300BEFE3B /* WKUserContentExtensionStore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKUserContentExtensionStore.mm; sourceTree = "<group>"; };
    10951097                5E4B1D2C1D404C6100053621 /* WKScrollViewDelegateCrash.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKScrollViewDelegateCrash.mm; path = ../ios/WKScrollViewDelegateCrash.mm; sourceTree = "<group>"; };
    10961098                755A20AE1E6E38630093C69F /* DatabaseTrackerTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseTrackerTest.cpp; sourceTree = "<group>"; };
     
    16491651                                2D00065D1C1F58940088E6A7 /* WKPDFViewResizeCrash.mm */,
    16501652                                5E4B1D2C1D404C6100053621 /* WKScrollViewDelegateCrash.mm */,
     1653                                5CE354D81E70D9C300BEFE3B /* WKUserContentExtensionStore.mm */,
    16511654                                2EFF06D61D8AF34A0004BB30 /* WKWebViewCandidateTests.mm */,
    16521655                                7C417F311D19E14800B8EF53 /* WKWebViewDefaultNavigationDelegate.mm */,
     
    29192922                                A14FC5851B89739100D107EB /* WKWebViewConfigurationExtras.mm in Sources */,
    29202923                                7C417F331D19E14800B8EF53 /* WKWebViewDefaultNavigationDelegate.mm in Sources */,
     2924                                5CE354D91E70DA5C00BEFE3B /* WKUserContentExtensionStore.mm in Sources */,
    29212925                                0F3B94A71A77267400DE3272 /* WKWebViewEvaluateJavaScript.mm in Sources */,
    29222926                                9984FACC1CFFAF60008D198C /* WKWebViewTextInput.mm in Sources */,
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm

    r213687 r213696  
    11/*
    2  * Copyright (C) 2015 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3131#import "PlatformUtilities.h"
    3232#import "Test.h"
    33 #import <WebKit/_WKUserContentExtensionStorePrivate.h>
     33#import <WebKit/WKContentExtensionStorePrivate.h>
    3434#import <wtf/RetainPtr.h>
    3535
    36 class _WKUserContentExtensionStoreTest : public testing::Test {
     36class WKContentExtensionStoreTest : public testing::Test {
    3737public:
    3838    virtual void SetUp()
    3939    {
    40         [[_WKUserContentExtensionStore defaultStore] _removeAllContentExtensions];
     40        [[WKContentExtensionStore defaultStore] _removeAllContentExtensions];
    4141    }
    4242};
     
    4444static NSString *basicFilter = @"[{\"action\":{\"type\":\"block\"},\"trigger\":{\"url-filter\":\".*webkit.org\"}}]";
    4545
    46 TEST_F(_WKUserContentExtensionStoreTest, Compile)
     46TEST_F(WKContentExtensionStoreTest, Compile)
    4747{
    4848    __block bool doneCompiling = false;
    49     [[_WKUserContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(_WKUserContentFilter *filter, NSError *error) {
     49    [[WKContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(WKContentExtension *filter, NSError *error) {
    5050   
    5151        EXPECT_NOT_NULL(filter);
     
    6161static void checkDomain(NSError *error)
    6262{
    63     EXPECT_STREQ([[error domain] UTF8String], [_WKUserContentExtensionsDomain UTF8String]);
     63    EXPECT_STREQ([[error domain] UTF8String], [WKErrorDomain UTF8String]);
    6464}
    6565
    66 TEST_F(_WKUserContentExtensionStoreTest, InvalidExtension)
     66TEST_F(WKContentExtensionStoreTest, InvalidExtension)
    6767{
    6868    __block bool doneCompiling = false;
    69     [[_WKUserContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:invalidFilter completionHandler:^(_WKUserContentFilter *filter, NSError *error) {
     69    [[WKContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:invalidFilter completionHandler:^(WKContentExtension *filter, NSError *error) {
    7070   
    7171        EXPECT_NULL(filter);
    7272        EXPECT_NOT_NULL(error);
    7373        checkDomain(error);
    74         EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorCompileFailed);
     74        EXPECT_EQ(error.code, WKErrorContentExtensionStoreCompileFailed);
    7575        EXPECT_STREQ("Extension compilation failed: Failed to parse the JSON String.", [[error helpAnchor] UTF8String]);
    7676
     
    8080}
    8181
    82 TEST_F(_WKUserContentExtensionStoreTest, Lookup)
     82TEST_F(WKContentExtensionStoreTest, Lookup)
    8383{
    8484    __block bool doneCompiling = false;
    85     [[_WKUserContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(_WKUserContentFilter *filter, NSError *error) {
     85    [[WKContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(WKContentExtension *filter, NSError *error) {
    8686   
    8787        EXPECT_NOT_NULL(filter);
     
    9393
    9494    __block bool doneLookingUp = false;
    95     [[_WKUserContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(_WKUserContentFilter *filter, NSError *error) {
     95    [[WKContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(WKContentExtension *filter, NSError *error) {
    9696   
    9797        EXPECT_NOT_NULL(filter);
     
    103103}
    104104
    105 TEST_F(_WKUserContentExtensionStoreTest, NonExistingIdentifierLookup)
     105TEST_F(WKContentExtensionStoreTest, NonExistingIdentifierLookup)
    106106{
    107107    __block bool doneLookingUp = false;
    108     [[_WKUserContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(_WKUserContentFilter *filter, NSError *error) {
     108    [[WKContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(WKContentExtension *filter, NSError *error) {
    109109   
    110110        EXPECT_NULL(filter);
    111111        EXPECT_NOT_NULL(error);
    112112        checkDomain(error);
    113         EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorLookupFailed);
     113        EXPECT_EQ(error.code, WKErrorContentExtensionStoreLookupFailed);
    114114        EXPECT_STREQ("Extension lookup failed: Unspecified error during lookup.", [[error helpAnchor] UTF8String]);
    115115       
     
    119119}
    120120
    121 TEST_F(_WKUserContentExtensionStoreTest, VersionMismatch)
     121TEST_F(WKContentExtensionStoreTest, VersionMismatch)
    122122{
    123123    __block bool doneCompiling = false;
    124     [[_WKUserContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(_WKUserContentFilter *filter, NSError *error)
     124    [[WKContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(WKContentExtension *filter, NSError *error)
    125125    {
    126126       
     
    132132    TestWebKitAPI::Util::run(&doneCompiling);
    133133
    134     [[_WKUserContentExtensionStore defaultStore] _invalidateContentExtensionVersionForIdentifier:@"TestExtension"];
     134    [[WKContentExtensionStore defaultStore] _invalidateContentExtensionVersionForIdentifier:@"TestExtension"];
    135135   
    136136    __block bool doneLookingUp = false;
    137     [[_WKUserContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(_WKUserContentFilter *filter, NSError *error)
     137    [[WKContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(WKContentExtension *filter, NSError *error)
    138138    {
    139139       
     
    141141        EXPECT_NOT_NULL(error);
    142142        checkDomain(error);
    143         EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorVersionMismatch);
     143        EXPECT_EQ(error.code, WKErrorContentExtensionStoreVersionMismatch);
    144144        EXPECT_STREQ("Extension lookup failed: Version of file does not match version of interpreter.", [[error helpAnchor] UTF8String]);
    145145       
     
    149149}
    150150
    151 TEST_F(_WKUserContentExtensionStoreTest, Removal)
     151TEST_F(WKContentExtensionStoreTest, Removal)
    152152{
    153153    __block bool doneCompiling = false;
    154     [[_WKUserContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(_WKUserContentFilter *filter, NSError *error) {
     154    [[WKContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@"TestExtension" encodedContentExtension:basicFilter completionHandler:^(WKContentExtension *filter, NSError *error) {
    155155   
    156156        EXPECT_NOT_NULL(filter);
     
    162162
    163163    __block bool doneRemoving = false;
    164     [[_WKUserContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"TestExtension" completionHandler:^(NSError *error) {
     164    [[WKContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"TestExtension" completionHandler:^(NSError *error) {
    165165        EXPECT_NULL(error);
    166166
     
    170170}
    171171
    172 TEST_F(_WKUserContentExtensionStoreTest, NonExistingIdentifierRemove)
     172TEST_F(WKContentExtensionStoreTest, NonExistingIdentifierRemove)
    173173{
    174174    __block bool doneRemoving = false;
    175     [[_WKUserContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(NSError *error) {
     175    [[WKContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(NSError *error) {
    176176        EXPECT_NOT_NULL(error);
    177177        checkDomain(error);
    178         EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorRemoveFailed);
     178        EXPECT_EQ(error.code, WKErrorContentExtensionStoreRemoveFailed);
    179179        EXPECT_STREQ("Extension removal failed: Unspecified error during remove.", [[error helpAnchor] UTF8String]);
    180180
Note: See TracChangeset for help on using the changeset viewer.