Changeset 213696 in webkit
- Timestamp:
- Mar 9, 2017, 5:48:30 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 32 edited
- 8 copied
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r213691 r213696 1 2017-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 1 10 2017-03-09 Matt Baker <mattbaker@apple.com> 2 11 -
trunk/Source/WebCore/English.lproj/Localizable.strings
r212211 r213696 173 173 "Click to restart" = "Click to restart"; 174 174 175 /* WKErrorContentExtensionStoreCompileFailed description */ 176 "Compiling a WKContentExtension failed" = "Compiling a WKContentExtension failed"; 177 175 178 /* WebKitErrorCannotShowMIMEType description */ 176 179 "Content with specified MIME type can’t be shown" = "Content with specified MIME type can’t be shown"; … … 359 362 "Look Up “<selection>”" = "Look Up “<selection>”"; 360 363 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 361 370 /* Media Loop context menu item */ 362 371 "Loop" = "Loop"; … … 497 506 "Reload" = "Reload"; 498 507 508 /* WKErrorContentExtensionStoreRemoveFailed description */ 509 "Removing a WKContentExtension failed" = "Removing a WKContentExtension failed"; 510 499 511 /* default label for Reset buttons in forms on web pages */ 500 512 "Reset" = "Reset"; -
trunk/Source/WebCore/contentextensions/DFABytecode.h
r213533 r213696 34 34 typedef uint8_t DFABytecode; 35 35 36 // Increment UserContentExtensionStore::CurrentContentExtensionFileVersion36 // Increment ContentExtensionStore::CurrentContentExtensionFileVersion 37 37 // when making any non-backwards-compatible changes to the bytecode. 38 38 // FIXME: Changes here should not require changes in WebKit2. Move all versioning to WebCore. -
trunk/Source/WebKit2/ChangeLog
r213693 r213696 1 2017-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 1 162 2017-03-09 Brady Eidson <beidson@apple.com> 2 163 -
trunk/Source/WebKit2/Shared/API/APIObject.h
r213686 r213696 104 104 CacheManager, 105 105 ColorPickerResultListener, 106 ContentExtension, 107 ContentExtensionStore, 106 108 ContextMenuListener, 107 109 CookieManager, … … 147 149 URLSchemeHandlerTask, 148 150 UserContentController, 149 UserContentExtension,150 UserContentExtensionStore,151 151 UserContentWorld, 152 152 UserInitiatedAction, -
trunk/Source/WebKit2/Shared/API/c/WKDeprecatedFunctions.cpp
r213198 r213696 26 26 #include "config.h" 27 27 28 #include "APIContentExtension.h" 28 29 #include "APIDictionary.h" 29 #include "APIUserContentExtension.h"30 30 #include "WKArray.h" 31 31 #include "WKContextPrivate.h" … … 57 57 } 58 58 59 void WKPageGroupAddUserContentFilter(WKPageGroupRef pageGroupRef, WKUserContentFilterRef userContentFilterRef)59 void WKPageGroupAddUserContentFilter(WKPageGroupRef pageGroupRef, WKUserContentFilterRef contentFilterRef) 60 60 { 61 61 #if ENABLE(CONTENT_EXTENSIONS) 62 toImpl(pageGroupRef)->userContentController().add UserContentExtension(*toImpl(userContentFilterRef));62 toImpl(pageGroupRef)->userContentController().addContentExtension(*toImpl(contentFilterRef)); 63 63 #else 64 64 UNUSED_PARAM(pageGroupRef); 65 UNUSED_PARAM( userContentFilterRef);65 UNUSED_PARAM(contentFilterRef); 66 66 #endif 67 67 } 68 68 69 void WKPageGroupRemoveUserContentFilter(WKPageGroupRef pageGroupRef, WKStringRef userContentFilterNameRef)69 void WKPageGroupRemoveUserContentFilter(WKPageGroupRef pageGroupRef, WKStringRef contentFilterNameRef) 70 70 { 71 71 #if ENABLE(CONTENT_EXTENSIONS) 72 toImpl(pageGroupRef)->userContentController().remove UserContentExtension(toWTFString(userContentFilterNameRef));72 toImpl(pageGroupRef)->userContentController().removeContentExtension(toWTFString(contentFilterNameRef)); 73 73 #else 74 74 UNUSED_PARAM(pageGroupRef); 75 UNUSED_PARAM( userContentFilterNameRef);75 UNUSED_PARAM(contentFilterNameRef); 76 76 #endif 77 77 } -
trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm
r213686 r213696 34 34 #import "WKBrowsingContextGroupInternal.h" 35 35 #import "WKConnectionInternal.h" 36 #import "WKContentExtensionInternal.h" 37 #import "WKContentExtensionStoreInternal.h" 36 38 #import "WKFrameInfoInternal.h" 37 39 #import "WKNSArray.h" … … 72 74 #import "_WKHitTestResultInternal.h" 73 75 #import "_WKProcessPoolConfigurationInternal.h" 74 #import "_WKUserContentExtensionStoreInternal.h"75 #import "_WKUserContentFilterInternal.h"76 76 #import "_WKUserContentWorldInternal.h" 77 77 #import "_WKUserInitiatedActionInternal.h" … … 235 235 break; 236 236 237 case Type:: UserContentExtension:238 wrapper = [ _WKUserContentFilteralloc];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]; 243 243 break; 244 244 -
trunk/Source/WebKit2/UIProcess/API/APIContentExtension.cpp
r213687 r213696 25 25 26 26 #include "config.h" 27 #include "API UserContentExtension.h"27 #include "APIContentExtension.h" 28 28 29 29 #if ENABLE(CONTENT_EXTENSIONS) … … 33 33 namespace API { 34 34 35 UserContentExtension::UserContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&& contentExtension)35 ContentExtension::ContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&& contentExtension) 36 36 : m_name(name) 37 37 , m_compiledExtension(WTFMove(contentExtension)) … … 39 39 } 40 40 41 UserContentExtension::~UserContentExtension()41 ContentExtension::~ContentExtension() 42 42 { 43 43 } -
trunk/Source/WebKit2/UIProcess/API/APIContentExtension.h
r213687 r213696 24 24 */ 25 25 26 #ifndef APIUserContentExtension_h 27 #define APIUserContentExtension_h 26 #pragma once 28 27 29 28 #include "APIObject.h" … … 36 35 namespace API { 37 36 38 class UserContentExtension final : public ObjectImpl<Object::Type::UserContentExtension> {37 class ContentExtension final : public ObjectImpl<Object::Type::ContentExtension> { 39 38 public: 40 39 #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) 42 41 { 43 return adoptRef(*new UserContentExtension(name, WTFMove(contentExtension)));42 return adoptRef(*new ContentExtension(name, WTFMove(contentExtension))); 44 43 } 45 44 46 UserContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&&);47 virtual ~ UserContentExtension();45 ContentExtension(const WTF::String& name, Ref<WebKit::WebCompiledContentExtension>&&); 46 virtual ~ContentExtension(); 48 47 49 48 const WTF::String& name() const { return m_name; } … … 57 56 58 57 } // namespace API 59 60 #endif // APIUserContentExtension_h -
trunk/Source/WebKit2/UIProcess/API/APIContentExtensionStore.cpp
r213687 r213696 25 25 26 26 #include "config.h" 27 #include "API UserContentExtensionStore.h"27 #include "APIContentExtensionStore.h" 28 28 29 29 #if ENABLE(CONTENT_EXTENSIONS) 30 30 31 #include "API UserContentExtension.h"31 #include "APIContentExtension.h" 32 32 #include "NetworkCacheData.h" 33 33 #include "NetworkCacheFileSystem.h" … … 47 47 namespace API { 48 48 49 UserContentExtensionStore& UserContentExtensionStore::defaultStore()50 { 51 static UserContentExtensionStore* defaultStore = adoptRef(new UserContentExtensionStore).leakRef();49 ContentExtensionStore& ContentExtensionStore::defaultStore() 50 { 51 static ContentExtensionStore* defaultStore = adoptRef(new ContentExtensionStore).leakRef(); 52 52 return *defaultStore; 53 53 } 54 54 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)55 Ref<ContentExtensionStore> ContentExtensionStore::storeWithPath(const WTF::String& storePath) 56 { 57 return adoptRef(*new ContentExtensionStore(storePath)); 58 } 59 60 ContentExtensionStore::ContentExtensionStore() 61 : ContentExtensionStore(defaultStorePath()) 62 { 63 } 64 65 ContentExtensionStore::ContentExtensionStore(const WTF::String& storePath) 66 66 : 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 73 ContentExtensionStore::~ContentExtensionStore() 74 74 { 75 75 } … … 86 86 87 87 struct ContentExtensionMetaData { 88 uint32_t version { UserContentExtensionStore::CurrentContentExtensionFileVersion };88 uint32_t version { ContentExtensionStore::CurrentContentExtensionFileVersion }; 89 89 uint64_t actionsSize { 0 }; 90 90 uint64_t filtersWithoutConditionsBytecodeSize { 0 }; … … 261 261 String temporaryFilePath = WebCore::openTemporaryFile("ContentExtension", temporaryFileHandle); 262 262 if (temporaryFileHandle == WebCore::invalidPlatformFileHandle) 263 return UserContentExtensionStore::Error::CompileFailed;263 return ContentExtensionStore::Error::CompileFailed; 264 264 265 265 char invalidHeader[ContentExtensionFileHeaderSize]; … … 268 268 if (WebCore::writeToFile(temporaryFileHandle, invalidHeader, sizeof(invalidHeader)) == -1) { 269 269 WebCore::closeFile(temporaryFileHandle); 270 return UserContentExtensionStore::Error::CompileFailed;270 return ContentExtensionStore::Error::CompileFailed; 271 271 } 272 272 … … 279 279 if (compilationClient.hadErrorWhileWritingToFile()) { 280 280 WebCore::closeFile(temporaryFileHandle); 281 return UserContentExtensionStore::Error::CompileFailed;281 return ContentExtensionStore::Error::CompileFailed; 282 282 } 283 283 284 284 mappedData = adoptAndMapFile(temporaryFileHandle, 0, metaData.fileSize()); 285 285 if (mappedData.isNull()) 286 return UserContentExtensionStore::Error::CompileFailed;286 return ContentExtensionStore::Error::CompileFailed; 287 287 288 288 if (!WebCore::moveFile(temporaryFilePath, finalFilePath)) 289 return UserContentExtensionStore::Error::CompileFailed;289 return ContentExtensionStore::Error::CompileFailed; 290 290 291 291 return { }; 292 292 } 293 293 294 static RefPtr<API:: UserContentExtension> createExtension(const String& identifier, const ContentExtensionMetaData& metaData, const Data& fileData)294 static RefPtr<API::ContentExtension> createExtension(const String& identifier, const ContentExtensionMetaData& metaData, const Data& fileData) 295 295 { 296 296 auto sharedMemory = WebKit::SharedMemory::create(const_cast<uint8_t*>(fileData.data()), fileData.size(), WebKit::SharedMemory::Protection::ReadOnly); … … 315 315 ); 316 316 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 320 void ContentExtensionStore::lookupContentExtension(const WTF::String& identifier, Function<void(RefPtr<API::ContentExtension>, std::error_code)> completionHandler) 321 321 { 322 322 m_readQueue->dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable { … … 332 332 } 333 333 334 if (metaData.version != UserContentExtensionStore::CurrentContentExtensionFileVersion) {334 if (metaData.version != ContentExtensionStore::CurrentContentExtensionFileVersion) { 335 335 RunLoop::main().dispatch([protectedThis = WTFMove(protectedThis), completionHandler = WTFMove(completionHandler)] { 336 336 completionHandler(nullptr, Error::VersionMismatch); … … 340 340 341 341 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, { }); 344 344 }); 345 345 }); 346 346 } 347 347 348 void UserContentExtensionStore::compileContentExtension(const WTF::String& identifier, WTF::String&& json, Function<void(RefPtr<API::UserContentExtension>, std::error_code)> completionHandler)348 void ContentExtensionStore::compileContentExtension(const WTF::String& identifier, WTF::String&& json, Function<void(RefPtr<API::ContentExtension>, std::error_code)> completionHandler) 349 349 { 350 350 m_compileQueue->dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), json = json.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)] () mutable { … … 362 362 363 363 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, { }); 366 366 }); 367 367 }); 368 368 } 369 369 370 void UserContentExtensionStore::removeContentExtension(const WTF::String& identifier, Function<void(std::error_code)> completionHandler)370 void ContentExtensionStore::removeContentExtension(const WTF::String& identifier, Function<void(std::error_code)> completionHandler) 371 371 { 372 372 m_removeQueue->dispatch([protectedThis = makeRef(*this), identifier = identifier.isolatedCopy(), storePath = m_storePath.isolatedCopy(), completionHandler = WTFMove(completionHandler)]() mutable { … … 386 386 } 387 387 388 void UserContentExtensionStore::synchronousRemoveAllContentExtensions()388 void ContentExtensionStore::synchronousRemoveAllContentExtensions() 389 389 { 390 390 for (const auto& path : WebCore::listDirectory(m_storePath, "*")) … … 392 392 } 393 393 394 void UserContentExtensionStore::invalidateContentExtensionVersion(const WTF::String& identifier)394 void ContentExtensionStore::invalidateContentExtensionVersion(const WTF::String& identifier) 395 395 { 396 396 auto file = WebCore::openFile(constructedPath(m_storePath, identifier), WebCore::OpenForWrite); 397 397 if (file == WebCore::invalidPlatformFileHandle) 398 398 return; 399 ContentExtensionMetaData invalidHeader ;399 ContentExtensionMetaData invalidHeader = {0, 0, 0, 0, 0, 0}; 400 400 auto bytesWritten = WebCore::writeToFile(file, reinterpret_cast<const char*>(&invalidHeader), sizeof(invalidHeader)); 401 401 ASSERT_UNUSED(bytesWritten, bytesWritten == sizeof(invalidHeader)); … … 403 403 } 404 404 405 const std::error_category& userContentExtensionStoreErrorCategory()406 { 407 class UserContentExtensionStoreErrorCategory : public std::error_category {405 const std::error_category& contentExtensionStoreErrorCategory() 406 { 407 class ContentExtensionStoreErrorCategory : public std::error_category { 408 408 const char* name() const noexcept final 409 409 { 410 return " usercontent extension store";410 return "content extension store"; 411 411 } 412 412 413 413 std::string message(int errorCode) const final 414 414 { 415 switch (static_cast< UserContentExtensionStore::Error>(errorCode)) {416 case UserContentExtensionStore::Error::LookupFailed:415 switch (static_cast<ContentExtensionStore::Error>(errorCode)) { 416 case ContentExtensionStore::Error::LookupFailed: 417 417 return "Unspecified error during lookup."; 418 case UserContentExtensionStore::Error::VersionMismatch:418 case ContentExtensionStore::Error::VersionMismatch: 419 419 return "Version of file does not match version of interpreter."; 420 case UserContentExtensionStore::Error::CompileFailed:420 case ContentExtensionStore::Error::CompileFailed: 421 421 return "Unspecified error during compile."; 422 case UserContentExtensionStore::Error::RemoveFailed:422 case ContentExtensionStore::Error::RemoveFailed: 423 423 return "Unspecified error during remove."; 424 424 } … … 428 428 }; 429 429 430 static NeverDestroyed< UserContentExtensionStoreErrorCategory> contentExtensionErrorCategory;430 static NeverDestroyed<ContentExtensionStoreErrorCategory> contentExtensionErrorCategory; 431 431 return contentExtensionErrorCategory; 432 432 } -
trunk/Source/WebKit2/UIProcess/API/APIContentExtensionStore.h
r213687 r213696 38 38 namespace API { 39 39 40 class UserContentExtension;40 class ContentExtension; 41 41 42 class UserContentExtensionStore final : public ObjectImpl<Object::Type::UserContentExtensionStore> {42 class ContentExtensionStore final : public ObjectImpl<Object::Type::ContentExtensionStore> { 43 43 public: 44 44 enum class Error { 45 LookupFailed = 1,45 LookupFailed = 6, // Mirrors value of WKErrorContentExtensionStoreLookupFailed 46 46 VersionMismatch, 47 47 CompileFailed, … … 53 53 const static uint32_t CurrentContentExtensionFileVersion = 8; 54 54 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); 57 57 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(); 61 61 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)>); 64 64 void removeContentExtension(const WTF::String& identifier, Function<void(std::error_code)>); 65 65 … … 77 77 }; 78 78 79 const std::error_category& userContentExtensionStoreErrorCategory();79 const std::error_category& contentExtensionStoreErrorCategory(); 80 80 81 inline std::error_code make_error_code( UserContentExtensionStore::Error error)81 inline std::error_code make_error_code(ContentExtensionStore::Error error) 82 82 { 83 return { static_cast<int>(error), userContentExtensionStoreErrorCategory() };83 return { static_cast<int>(error), contentExtensionStoreErrorCategory() }; 84 84 } 85 85 … … 87 87 88 88 namespace std { 89 template<> struct is_error_code_enum<API::UserContentExtensionStore::Error> : public true_type { };89 template<> struct is_error_code_enum<API::ContentExtensionStore::Error> : public true_type { }; 90 90 } 91 91 -
trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h
r212557 r213696 52 52 53 53 namespace API { 54 class ContentExtension; 55 class ContentExtensionStore; 54 56 class ExperimentalFeature; 55 57 class FrameHandle; … … 64 66 class ProcessPoolConfiguration; 65 67 class SessionState; 66 class UserContentExtension;67 class UserContentExtensionStore;68 68 class UserScript; 69 69 class WebsiteDataStore; … … 162 162 WK_ADD_API_MAPPING(WKTextCheckerRef, WebTextChecker) 163 163 WK_ADD_API_MAPPING(WKUserContentControllerRef, WebUserContentControllerProxy) 164 WK_ADD_API_MAPPING(WKUserContentExtensionStoreRef, API:: UserContentExtensionStore)165 WK_ADD_API_MAPPING(WKUserContentFilterRef, API:: UserContentExtension)164 WK_ADD_API_MAPPING(WKUserContentExtensionStoreRef, API::ContentExtensionStore) 165 WK_ADD_API_MAPPING(WKUserContentFilterRef, API::ContentExtension) 166 166 WK_ADD_API_MAPPING(WKUserMediaPermissionCheckRef, UserMediaPermissionCheckProxy) 167 167 WK_ADD_API_MAPPING(WKUserMediaPermissionRequestRef, UserMediaPermissionRequestProxy) -
trunk/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp
r207168 r213696 27 27 #include "WKPageGroup.h" 28 28 29 #include "API UserContentExtension.h"29 #include "APIContentExtension.h" 30 30 #include "APIUserContentWorld.h" 31 31 #include "APIUserScript.h" -
trunk/Source/WebKit2/UIProcess/API/C/WKUserContentControllerRef.cpp
r181200 r213696 27 27 #include "WKUserContentControllerRef.h" 28 28 29 #include "API UserContentExtension.h"29 #include "APIContentExtension.h" 30 30 #include "APIUserScript.h" 31 31 #include "WKAPICast.h" … … 63 63 { 64 64 #if ENABLE(CONTENT_EXTENSIONS) 65 toImpl(userContentControllerRef)->add UserContentExtension(*toImpl(userContentFilterRef));65 toImpl(userContentControllerRef)->addContentExtension(*toImpl(userContentFilterRef)); 66 66 #endif 67 67 } … … 70 70 { 71 71 #if ENABLE(CONTENT_EXTENSIONS) 72 toImpl(userContentControllerRef)->removeAll UserContentExtensions();72 toImpl(userContentControllerRef)->removeAllContentExtensions(); 73 73 #endif 74 74 } -
trunk/Source/WebKit2/UIProcess/API/C/WKUserContentExtensionStoreRef.cpp
r182161 r213696 27 27 #include "WKUserContentExtensionStoreRef.h" 28 28 29 #include "API UserContentExtensionStore.h"29 #include "APIContentExtensionStore.h" 30 30 #include "WKAPICast.h" 31 31 … … 35 35 { 36 36 #if ENABLE(CONTENT_EXTENSIONS) 37 return toAPI(API:: UserContentExtensionStore::APIType);37 return toAPI(API::ContentExtensionStore::APIType); 38 38 #else 39 39 return 0; -
trunk/Source/WebKit2/UIProcess/API/Cocoa/APIUserContentExtensionStoreCocoa.mm
r182161 r213696 25 25 26 26 #include "config.h" 27 #include "API UserContentExtensionStore.h"27 #include "APIContentExtensionStore.h" 28 28 29 29 #if ENABLE(CONTENT_EXTENSIONS) … … 33 33 namespace API { 34 34 35 String UserContentExtensionStore::defaultStorePath()35 String ContentExtensionStore::defaultStorePath() 36 36 { 37 37 static dispatch_once_t onceToken; -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtension.h
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 28 28 #if WK_API_ENABLED 29 29 30 WK_CLASS_AVAILABLE(macosx( 10.11), ios(9.0))31 @interface _WKUserContentFilter: NSObject30 WK_CLASS_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)) 31 @interface WKContentExtension : NSObject 32 32 33 33 @end -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtension.mm
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 25 25 26 26 #import "config.h" 27 #import " _WKUserContentFilterInternal.h"27 #import "WKContentExtensionInternal.h" 28 28 29 29 #if WK_API_ENABLED 30 30 31 31 #include "WebCompiledContentExtension.h" 32 #include <WebCore/ContentExtensionCompiler.h>33 #include <WebCore/ContentExtensionError.h>34 #include <string>35 32 36 @implementation _WKUserContentFilter33 @implementation WKContentExtension 37 34 38 35 - (void)dealloc 39 36 { 40 _ userContentExtension->~UserContentExtension();37 _contentExtension->~ContentExtension(); 41 38 42 39 [super dealloc]; … … 47 44 - (API::Object&)_apiObject 48 45 { 49 return *_ userContentExtension;46 return *_contentExtension; 50 47 } 51 48 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionInternal.h
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #import " _WKUserContentFilter.h"26 #import "WKContentExtension.h" 27 27 28 28 #if WK_API_ENABLED 29 29 30 #import "API UserContentExtension.h"30 #import "APIContentExtension.h" 31 31 #import "WKObject.h" 32 32 33 33 namespace WebKit { 34 34 35 inline _WKUserContentFilter *wrapper(API::UserContentExtension& userContentExtension)35 inline WKContentExtension *wrapper(API::ContentExtension& contentExtension) 36 36 { 37 ASSERT([ userContentExtension.wrapper() isKindOfClass:[_WKUserContentFilterclass]]);38 return ( _WKUserContentFilter *)userContentExtension.wrapper();37 ASSERT([contentExtension.wrapper() isKindOfClass:[WKContentExtension class]]); 38 return (WKContentExtension *)contentExtension.wrapper(); 39 39 } 40 40 41 41 } 42 42 43 @interface _WKUserContentFilter() <WKObject> {43 @interface WKContentExtension () <WKObject> { 44 44 @package 45 API::ObjectStorage<API:: UserContentExtension> _userContentExtension;45 API::ObjectStorage<API::ContentExtension> _contentExtension; 46 46 } 47 47 @end -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStore.h
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 28 28 #if WK_API_ENABLED 29 29 30 @class _WKUserContentFilter;30 @class WKContentExtension; 31 31 32 WK_CLASS_AVAILABLE(macosx( 10.11), ios(9.0))33 @interface _WKUserContentExtensionStore : NSObject32 WK_CLASS_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)) 33 @interface WKContentExtensionStore : NSObject 34 34 35 35 + (instancetype)defaultStore; 36 36 + (instancetype)storeWithURL:(NSURL *)url; 37 37 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; 40 40 - (void)removeContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(NSError *))completionHandler; 41 41 42 42 @end 43 43 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 53 44 #endif // WK_API_ENABLED -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStore.mm
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 25 25 26 26 #import "config.h" 27 #import "_WKUserContentExtensionStoreInternal.h" 27 #import "WKContentExtensionInternal.h" 28 #import "WKContentExtensionStoreInternal.h" 28 29 29 30 #if WK_API_ENABLED 30 31 31 32 #import "WKErrorInternal.h" 32 #import "_WKUserContentFilterInternal.h"33 #import <string>34 33 35 NSString * const _WKUserContentExtensionsDomain = @"_WKUserContentExtensionsDomain"; 36 37 @implementation _WKUserContentExtensionStore 34 @implementation WKContentExtensionStore 38 35 39 36 - (void)dealloc 40 37 { 41 _ userContentExtensionStore->~UserContentExtensionStore();38 _contentExtensionStore->~ContentExtensionStore(); 42 39 43 40 [super dealloc]; … … 46 43 + (instancetype)defaultStore 47 44 { 48 return WebKit::wrapper(API:: UserContentExtensionStore::defaultStore());45 return WebKit::wrapper(API::ContentExtensionStore::defaultStore()); 49 46 } 50 47 51 48 + (instancetype)storeWithURL:(NSURL *)url 52 49 { 53 Ref<API:: UserContentExtensionStore> store = API::UserContentExtensionStore::storeWithPath(url.absoluteURL.fileSystemRepresentation);50 Ref<API::ContentExtensionStore> store = API::ContentExtensionStore::storeWithPath(url.absoluteURL.fileSystemRepresentation); 54 51 return WebKit::wrapper(store.leakRef()); 55 52 } 56 53 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 58 60 { 59 61 auto handler = adoptNS([completionHandler copy]); 60 62 61 63 String json(encodedContentExtension); 62 [encodedContentExtension release]; 63 encodedContentExtension = nil; 64 if (releasesArgument) { 65 [encodedContentExtension release]; 66 encodedContentExtension = nil; 67 } 64 68 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) { 66 70 if (error) { 67 auto rawHandler = (void (^)( _WKUserContentFilter*, NSError *))handler.get();71 auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get(); 68 72 69 73 auto userInfo = @{NSHelpAnchorErrorKey: [NSString stringWithFormat:@"Extension compilation failed: %s", error.message().c_str()]}; 70 74 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]); 74 78 return; 75 79 } 76 80 77 auto rawHandler = (void (^)( _WKUserContentFilter*, NSError *))handler.get();81 auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get(); 78 82 rawHandler(WebKit::wrapper(*contentExtension.get()), nil); 79 83 }); 80 84 } 81 85 82 - (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)( _WKUserContentFilter*, NSError *))completionHandler86 - (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(WKContentExtension *, NSError *))completionHandler 83 87 { 84 88 auto handler = adoptNS([completionHandler copy]); 85 89 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) { 87 91 if (error) { 88 auto rawHandler = (void (^)( _WKUserContentFilter*, NSError *))handler.get();92 auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get(); 89 93 90 94 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]); 93 97 return; 94 98 } 95 99 96 auto rawHandler = (void (^)( _WKUserContentFilter*, NSError *))handler.get();100 auto rawHandler = (void (^)(WKContentExtension *, NSError *))handler.get(); 97 101 rawHandler(WebKit::wrapper(*contentExtension.get()), nil); 98 102 }); … … 103 107 auto handler = adoptNS([completionHandler copy]); 104 108 105 _ userContentExtensionStore->removeContentExtension(identifier, [handler](std::error_code error) {109 _contentExtensionStore->removeContentExtension(identifier, [handler](std::error_code error) { 106 110 if (error) { 107 111 auto rawHandler = (void (^)(NSError *))handler.get(); 108 112 109 113 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]); 112 116 return; 113 117 } … … 122 126 - (API::Object&)_apiObject 123 127 { 124 return *_ userContentExtensionStore;128 return *_contentExtensionStore; 125 129 } 126 130 127 131 @end 128 132 129 @implementation _WKUserContentExtensionStore (WKPrivate)133 @implementation WKContentExtensionStore (WKPrivate) 130 134 131 135 // For testing only. … … 133 137 - (void)_removeAllContentExtensions 134 138 { 135 _ userContentExtensionStore->synchronousRemoveAllContentExtensions();139 _contentExtensionStore->synchronousRemoveAllContentExtensions(); 136 140 } 137 141 138 142 - (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier 139 143 { 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]; 141 152 } 142 153 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStoreInternal.h
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #import " _WKUserContentExtensionStorePrivate.h"26 #import "WKContentExtensionStorePrivate.h" 27 27 28 28 #if WK_API_ENABLED 29 29 30 #import "API UserContentExtensionStore.h"30 #import "APIContentExtensionStore.h" 31 31 #import "WKObject.h" 32 32 33 33 namespace WebKit { 34 34 35 inline _WKUserContentExtensionStore *wrapper(API::UserContentExtensionStore& store)35 inline WKContentExtensionStore *wrapper(API::ContentExtensionStore& store) 36 36 { 37 ASSERT([store.wrapper() isKindOfClass:[ _WKUserContentExtensionStore class]]);38 return ( _WKUserContentExtensionStore *)store.wrapper();37 ASSERT([store.wrapper() isKindOfClass:[WKContentExtensionStore class]]); 38 return (WKContentExtensionStore *)store.wrapper(); 39 39 } 40 40 41 41 } 42 42 43 @interface _WKUserContentExtensionStore () <WKObject> {43 @interface WKContentExtensionStore () <WKObject> { 44 44 @package 45 API::ObjectStorage<API:: UserContentExtensionStore> _userContentExtensionStore;45 API::ObjectStorage<API::ContentExtensionStore> _contentExtensionStore; 46 46 } 47 47 @end -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStorePrivate.h
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #import <WebKit/ _WKUserContentExtensionStore.h>26 #import <WebKit/WKContentExtensionStore.h> 27 27 28 28 #if WK_API_ENABLED 29 29 30 @interface _WKUserContentExtensionStore (WKPrivate)30 @interface WKContentExtensionStore (WKPrivate) 31 31 32 32 // For testing only. … … 34 34 - (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier; 35 35 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 36 39 @end 37 40 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKError.h
r202789 r213696 37 37 /*! @enum WKErrorCode 38 38 @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. 44 48 */ 45 49 typedef NS_ENUM(NSInteger, WKErrorCode) { … … 49 53 WKErrorJavaScriptExceptionOccurred, 50 54 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)), 51 59 } WK_API_AVAILABLE(macosx(10.10), ios(8.0)); 52 60 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKError.mm
r191543 r213696 58 58 case WKErrorJavaScriptResultTypeIsUnsupported: 59 59 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"); 60 72 } 61 73 } -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.h
r202789 r213696 32 32 NS_ASSUME_NONNULL_BEGIN 33 33 34 @class WKContentExtension; 34 35 @class WKUserScript; 35 36 @protocol WKScriptMessageHandler; … … 71 72 - (void)removeScriptMessageHandlerForName:(NSString *)name; 72 73 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 73 88 @end 74 89 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.mm
r205150 r213696 31 31 #import "APISerializedScriptValue.h" 32 32 #import "APIUserContentWorld.h" 33 #import "WKContentExtensionInternal.h" 33 34 #import "WKFrameInfoInternal.h" 34 35 #import "WKNSArray.h" … … 90 91 { 91 92 _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 92 114 } 93 115 … … 154 176 { 155 177 #if ENABLE(CONTENT_EXTENSIONS) 156 _userContentControllerProxy->add UserContentExtension(*userContentFilter->_userContentExtension);178 _userContentControllerProxy->addContentExtension(*userContentFilter->_contentExtension->_contentExtension); 157 179 #endif 158 180 } … … 161 183 { 162 184 #if ENABLE(CONTENT_EXTENSIONS) 163 _userContentControllerProxy->remove UserContentExtension(userContentFilterName);185 _userContentControllerProxy->removeContentExtension(userContentFilterName); 164 186 #endif 165 187 } … … 168 190 { 169 191 #if ENABLE(CONTENT_EXTENSIONS) 170 _userContentControllerProxy->removeAll UserContentExtensions();192 _userContentControllerProxy->removeAllContentExtensions(); 171 193 #endif 172 194 } -
trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.h
r205559 r213696 45 45 46 46 typedef NS_ENUM(NSInteger, _WKUserContentExtensionStoreErrorCode) { 47 _WKUserContentExtensionStoreErrorLookupFailed = 1,47 _WKUserContentExtensionStoreErrorLookupFailed = 6, // Mirrors value of WKErrorContentExtensionStoreLookupFailed 48 48 _WKUserContentExtensionStoreErrorVersionMismatch, 49 49 _WKUserContentExtensionStoreErrorCompileFailed, -
trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm
r201457 r213696 29 29 #if WK_API_ENABLED 30 30 31 #import "WKContentExtensionStoreInternal.h" 32 #import "WKContentExtensionStorePrivate.h" 31 33 #import "WKErrorInternal.h" 34 #import "_WKUserContentExtensionStorePrivate.h" 32 35 #import "_WKUserContentFilterInternal.h" 36 #import "_WKUserContentFilterPrivate.h" 33 37 #import <string> 34 38 35 NSString * const _WKUserContentExtensionsDomain = @" _WKUserContentExtensionsDomain";39 NSString * const _WKUserContentExtensionsDomain = @"WKErrorDomain"; 36 40 37 41 @implementation _WKUserContentExtensionStore 38 42 39 - (void)dealloc40 {41 _userContentExtensionStore->~UserContentExtensionStore();42 43 [super dealloc];44 }45 46 43 + (instancetype)defaultStore 47 44 { 48 return WebKit::wrapper(API::UserContentExtensionStore::defaultStore());45 return [[[_WKUserContentExtensionStore alloc] _initWithWKContentExtensionStore:[WKContentExtensionStore defaultStore]] autorelease]; 49 46 } 50 47 51 48 + (instancetype)storeWithURL:(NSURL *)url 52 49 { 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]; 55 51 } 56 52 57 53 - (void)compileContentExtensionForIdentifier:(NSString *)identifier encodedContentExtension:(NSString *)encodedContentExtension completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler 58 54 { 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 }]; 80 59 } 81 60 82 61 - (void)lookupContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(_WKUserContentFilter *, NSError *))completionHandler 83 62 { 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 }]; 99 67 } 100 68 101 69 - (void)removeContentExtensionForIdentifier:(NSString *)identifier completionHandler:(void (^)(NSError *))completionHandler 102 70 { 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]; 118 72 } 119 73 … … 122 76 - (API::Object&)_apiObject 123 77 { 124 return *_userContentExtensionStore;78 return [_contentExtensionStore _apiObject]; 125 79 } 126 80 … … 133 87 - (void)_removeAllContentExtensions 134 88 { 135 _userContentExtensionStore->synchronousRemoveAllContentExtensions();89 [_contentExtensionStore _removeAllContentExtensions]; 136 90 } 137 91 138 92 - (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier 139 93 { 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; 141 106 } 142 107 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h
r182161 r213696 28 28 #if WK_API_ENABLED 29 29 30 #import "API UserContentExtensionStore.h"30 #import "APIContentExtensionStore.h" 31 31 #import "WKObject.h" 32 32 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; 42 34 43 35 @interface _WKUserContentExtensionStore () <WKObject> { 44 36 @package 45 API::ObjectStorage<API::UserContentExtensionStore> _userContentExtensionStore;37 RetainPtr<WKContentExtensionStore> _contentExtensionStore; 46 38 } 47 39 @end -
trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h
r201457 r213696 28 28 #if WK_API_ENABLED 29 29 30 @class WKContentExtensionStore; 31 30 32 @interface _WKUserContentExtensionStore (WKPrivate) 31 33 … … 34 36 - (void)_invalidateContentExtensionVersionForIdentifier:(NSString *)identifier; 35 37 38 - (id)_initWithWKContentExtensionStore:(WKContentExtensionStore*)contentExtensionStore; 39 36 40 @end 37 41 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentFilter.mm
r182922 r213696 36 36 @implementation _WKUserContentFilter 37 37 38 - (void)dealloc39 {40 _userContentExtension->~UserContentExtension();41 42 [super dealloc];43 }44 45 38 #pragma mark WKObject protocol implementation 46 39 47 40 - (API::Object&)_apiObject 48 41 { 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; 50 58 } 51 59 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentFilterInternal.h
r181200 r213696 28 28 #if WK_API_ENABLED 29 29 30 #import "API UserContentExtension.h"30 #import "APIContentExtension.h" 31 31 #import "WKObject.h" 32 32 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; 42 34 43 35 @interface _WKUserContentFilter () <WKObject> { 44 36 @package 45 API::ObjectStorage<API::UserContentExtension> _userContentExtension;37 RetainPtr<WKContentExtension> _contentExtension; 46 38 } 47 39 @end -
trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.cpp
r205150 r213696 40 40 41 41 #if ENABLE(CONTENT_EXTENSIONS) 42 #include "API UserContentExtension.h"42 #include "APIContentExtension.h" 43 43 #include "WebCompiledContentExtension.h" 44 44 #endif … … 98 98 99 99 #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::Add UserContentExtensions(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); 104 104 #endif 105 105 } … … 339 339 340 340 #if ENABLE(CONTENT_EXTENSIONS) 341 void WebUserContentControllerProxy::add UserContentExtension(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::Add UserContentExtensions({ pair }), m_identifier);349 } 350 351 void WebUserContentControllerProxy::remove UserContentExtension(const String& name)352 { 353 m_ userContentExtensions.remove(name);354 355 for (WebProcessProxy* process : m_processes) 356 process->connection()->send(Messages::WebUserContentController::Remove UserContentExtension(name), m_identifier);357 } 358 359 void WebUserContentControllerProxy::removeAll UserContentExtensions()360 { 361 m_ userContentExtensions.clear();362 363 for (WebProcessProxy* process : m_processes) 364 process->connection()->send(Messages::WebUserContentController::RemoveAll UserContentExtensions(), m_identifier);341 void 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 351 void 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 359 void WebUserContentControllerProxy::removeAllContentExtensions() 360 { 361 m_contentExtensions.clear(); 362 363 for (WebProcessProxy* process : m_processes) 364 process->connection()->send(Messages::WebUserContentController::RemoveAllContentExtensions(), m_identifier); 365 365 } 366 366 #endif -
trunk/Source/WebKit2/UIProcess/UserContent/WebUserContentControllerProxy.h
r205150 r213696 24 24 */ 25 25 26 #ifndef WebUserContentControllerProxy_h 27 #define WebUserContentControllerProxy_h 26 #pragma once 28 27 29 28 #include "APIObject.h" … … 39 38 namespace API { 40 39 class Array; 40 class ContentExtension; 41 41 class UserContentWorld; 42 class UserContentExtension;43 42 class UserScript; 44 43 class UserStyleSheet; … … 93 92 94 93 #if ENABLE(CONTENT_EXTENSIONS) 95 void add UserContentExtension(API::UserContentExtension&);96 void remove UserContentExtension(const String&);97 void removeAll UserContentExtensions();94 void addContentExtension(API::ContentExtension&); 95 void removeContentExtension(const String&); 96 void removeAllContentExtensions(); 98 97 #endif 99 98 … … 117 116 118 117 #if ENABLE(CONTENT_EXTENSIONS) 119 HashMap<String, RefPtr<API:: UserContentExtension>> m_userContentExtensions;118 HashMap<String, RefPtr<API::ContentExtension>> m_contentExtensions; 120 119 #endif 121 120 }; 122 121 123 122 } // namespace WebKit 124 125 #endif // WebUserContentControllerProxy_h -
trunk/Source/WebKit2/UIProcess/WebPageGroup.cpp
r207168 r213696 28 28 29 29 #include "APIArray.h" 30 #include "API UserContentExtension.h"30 #include "APIContentExtension.h" 31 31 #include "APIUserScript.h" 32 32 #include "APIUserStyleSheet.h" -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r213686 r213696 1155 1155 5CBC9B8D1C65279C00A8FDCF /* NetworkDataTaskCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CBC9B8B1C65257300A8FDCF /* NetworkDataTaskCocoa.mm */; }; 1156 1156 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, ); }; }; 1157 1165 5CE85B201C88E64B0070BFCE /* PingLoad.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CE85B1F1C88E6430070BFCE /* PingLoad.h */; }; 1158 1166 5CFECB041E1ED1CC00F88504 /* LegacyCustomProtocolManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CFECB031E1ED1C800F88504 /* LegacyCustomProtocolManager.cpp */; }; … … 1205 1213 7C361D79192803BD0036A59D /* WebUserContentControllerProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C361D77192803BD0036A59D /* WebUserContentControllerProxyMessages.h */; }; 1206 1214 7C387434172F5615001BD88A /* PageBanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C387433172F5615001BD88A /* PageBanner.cpp */; }; 1207 7C3A06A71AAB903E009D74BA /* API UserContentExtensionStore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C3A06A51AAB903E009D74BA /* APIUserContentExtensionStore.cpp */; };1208 7C3A06A81AAB903E009D74BA /* API UserContentExtensionStore.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 */; }; 1209 1217 7C3F8C90173AF52D007B7F39 /* PluginInformation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C3F8C8E173AF52D007B7F39 /* PluginInformation.cpp */; }; 1210 1218 7C3F8C91173AF52D007B7F39 /* PluginInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C3F8C8F173AF52D007B7F39 /* PluginInformation.h */; }; … … 1239 1247 7C89D2A41A678875003A5FDE /* WKUserScriptRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2A21A678875003A5FDE /* WKUserScriptRef.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1240 1248 7C89D2A61A6789EA003A5FDE /* APIUserScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2A51A6789EA003A5FDE /* APIUserScript.cpp */; }; 1241 7C89D2B31A6B068C003A5FDE /* API UserContentExtension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2B11A6B068C003A5FDE /* APIUserContentExtension.cpp */; };1242 7C89D2B41A6B068C003A5FDE /* API UserContentExtension.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 */; }; 1243 1251 7C89D2B61A6B0DD9003A5FDE /* WKUserContentControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C89D2B51A6B0DD9003A5FDE /* WKUserContentControllerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1244 1252 7C89D2B91A6B0F2C003A5FDE /* _WKUserContentFilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C89D2B71A6B0F2C003A5FDE /* _WKUserContentFilter.mm */; }; … … 3378 3386 5CBC9B891C6524A500A8FDCF /* NetworkDataTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkDataTask.h; path = NetworkProcess/NetworkDataTask.h; sourceTree = "<group>"; }; 3379 3387 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>"; }; 3380 3396 5CE85B1F1C88E6430070BFCE /* PingLoad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PingLoad.h; path = NetworkProcess/PingLoad.h; sourceTree = "<group>"; }; 3381 3397 5CFECB031E1ED1C800F88504 /* LegacyCustomProtocolManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LegacyCustomProtocolManager.cpp; path = NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp; sourceTree = "<group>"; }; … … 3438 3454 7C361D77192803BD0036A59D /* WebUserContentControllerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebUserContentControllerProxyMessages.h; sourceTree = "<group>"; }; 3439 3455 7C387433172F5615001BD88A /* PageBanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageBanner.cpp; sourceTree = "<group>"; }; 3440 7C3A06A51AAB903E009D74BA /* API UserContentExtensionStore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIUserContentExtensionStore.cpp; sourceTree = "<group>"; };3441 7C3A06A61AAB903E009D74BA /* API UserContentExtensionStore.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>"; }; 3442 3458 7C3F8C8E173AF52D007B7F39 /* PluginInformation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginInformation.cpp; sourceTree = "<group>"; }; 3443 3459 7C3F8C8F173AF52D007B7F39 /* PluginInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginInformation.h; sourceTree = "<group>"; }; … … 3475 3491 7C89D2A21A678875003A5FDE /* WKUserScriptRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserScriptRef.h; sourceTree = "<group>"; }; 3476 3492 7C89D2A51A6789EA003A5FDE /* APIUserScript.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIUserScript.cpp; sourceTree = "<group>"; }; 3477 7C89D2B11A6B068C003A5FDE /* API UserContentExtension.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIUserContentExtension.cpp; sourceTree = "<group>"; };3478 7C89D2B21A6B068C003A5FDE /* API UserContentExtension.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>"; }; 3479 3495 7C89D2B51A6B0DD9003A5FDE /* WKUserContentControllerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUserContentControllerPrivate.h; sourceTree = "<group>"; }; 3480 3496 7C89D2B71A6B0F2C003A5FDE /* _WKUserContentFilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKUserContentFilter.mm; sourceTree = "<group>"; }; … … 5426 5442 isa = PBXGroup; 5427 5443 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 */, 5428 5452 1A43E826188F38E2009E4D30 /* Deprecated */, 5429 5453 37A5E01218BBF937000A081E /* _WKActivatedElementInfo.h */, … … 6731 6755 51D124381E6DFDB9002B2820 /* APIURLSchemeHandlerTask.cpp */, 6732 6756 51D124391E6DFDB9002B2820 /* APIURLSchemeHandlerTask.h */, 6733 7C89D2B11A6B068C003A5FDE /* API UserContentExtension.cpp */,6734 7C89D2B21A6B068C003A5FDE /* API UserContentExtension.h */,6735 7C3A06A51AAB903E009D74BA /* API UserContentExtensionStore.cpp */,6736 7C3A06A61AAB903E009D74BA /* API UserContentExtensionStore.h */,6757 7C89D2B11A6B068C003A5FDE /* APIContentExtension.cpp */, 6758 7C89D2B21A6B068C003A5FDE /* APIContentExtension.h */, 6759 7C3A06A51AAB903E009D74BA /* APIContentExtensionStore.cpp */, 6760 7C3A06A61AAB903E009D74BA /* APIContentExtensionStore.h */, 6737 6761 7C882DFB1C7E99A6006BF731 /* APIUserContentWorld.cpp */, 6738 6762 7C882DFC1C7E99A6006BF731 /* APIUserContentWorld.h */, … … 8000 8024 2D8786201BDB57F500D02ABB /* _WKUserStyleSheetInternal.h in Headers */, 8001 8025 1A81B38118BD66AD0007FDAC /* _WKVisitedLinkStore.h in Headers */, 8026 5CD286541E7235B10094FDC8 /* WKContentExtension.h in Headers */, 8002 8027 1A81B38518BD673A0007FDAC /* _WKVisitedLinkStoreInternal.h in Headers */, 8003 8028 1AE286781C7E76510069AC4F /* _WKWebsiteDataSize.h in Headers */, … … 8008 8033 5CB2378E1DF0E0D300117AA3 /* _WKWebsitePoliciesInternal.h in Headers */, 8009 8034 A115DC72191D82DA00DA8072 /* _WKWebViewPrintFormatter.h in Headers */, 8035 5CD286571E7235C90094FDC8 /* WKContentExtensionStoreInternal.h in Headers */, 8010 8036 A19DD3C01D07D16800AC823B /* _WKWebViewPrintFormatterInternal.h in Headers */, 8011 8037 A182D5B51BE6BD250087A7CC /* AccessibilityIOS.h in Headers */, … … 8055 8081 BCE2315D122C30CA00D5C35A /* APIURLRequest.h in Headers */, 8056 8082 BC90A1D2122DD55E00CC8C50 /* APIURLResponse.h in Headers */, 8057 7C89D2B41A6B068C003A5FDE /* API UserContentExtension.h in Headers */,8058 7C3A06A81AAB903E009D74BA /* API UserContentExtensionStore.h in Headers */,8083 7C89D2B41A6B068C003A5FDE /* APIContentExtension.h in Headers */, 8084 7C3A06A81AAB903E009D74BA /* APIContentExtensionStore.h in Headers */, 8059 8085 F6113E25126CE1820057D0A7 /* APIUserContentURLPattern.h in Headers */, 8060 8086 7C882DFD1C7E99A8006BF731 /* APIUserContentWorld.h in Headers */, … … 8264 8290 1AE4976811FF658E0048B464 /* NPJSObject.h in Headers */, 8265 8291 1A2D82A5127F4EAB001EB962 /* NPObjectMessageReceiver.h in Headers */, 8292 5CD286511E7235990094FDC8 /* WKContentExtensionStore.h in Headers */, 8266 8293 1A2D843A127F65D5001EB962 /* NPObjectMessageReceiverMessages.h in Headers */, 8267 8294 1A2D82A7127F4EAB001EB962 /* NPObjectProxy.h in Headers */, … … 8620 8647 1AE00D4D182D6EB000087DD7 /* WKBrowsingContextHandle.h in Headers */, 8621 8648 1AE00D4F182D6F5000087DD7 /* WKBrowsingContextHandleInternal.h in Headers */, 8649 5CD286581E7235D10094FDC8 /* WKContentExtensionStorePrivate.h in Headers */, 8622 8650 370F34A71829CFF3009027C8 /* WKBrowsingContextHistoryDelegate.h in Headers */, 8623 8651 BCBAAD0B14560A430053F82F /* WKBrowsingContextLoadDelegate.h in Headers */, … … 8799 8827 2D9EA30D1A96CB59002D2807 /* WKPageInjectedBundleClient.h in Headers */, 8800 8828 1AB8A1EC1840080900E9AE69 /* WKPageLoaderClient.h in Headers */, 8829 5CD286531E7235AA0094FDC8 /* _WKUserContentFilterPrivate.h in Headers */, 8801 8830 BC2D021912AC426C00E732A3 /* WKPageLoadTypes.h in Headers */, 8802 8831 93BDEB01171DD7AF00BFEE1B /* WKPageLoadTypesPrivate.h in Headers */, … … 8921 8950 75A8D2D6187D1C0E00C39C9E /* WKWebsiteDataStoreInternal.h in Headers */, 8922 8951 1AE2867A1C7F7BA60069AC4F /* WKWebsiteDataStorePrivate.h in Headers */, 8952 5CD286551E7235B80094FDC8 /* WKContentExtensionInternal.h in Headers */, 8923 8953 1A57109F1ABA0027002FABBE /* WKWebsiteDataStoreRef.h in Headers */, 8924 8954 5C9E56831DF7F1B300C9EE33 /* WKWebsitePolicies.h in Headers */, … … 9580 9610 BCE2315E122C30CA00D5C35A /* APIURLRequest.cpp in Sources */, 9581 9611 BC90A1D3122DD55E00CC8C50 /* APIURLResponse.cpp in Sources */, 9582 7C89D2B31A6B068C003A5FDE /* API UserContentExtension.cpp in Sources */,9583 7C3A06A71AAB903E009D74BA /* API UserContentExtensionStore.cpp in Sources */,9612 7C89D2B31A6B068C003A5FDE /* APIContentExtension.cpp in Sources */, 9613 7C3A06A71AAB903E009D74BA /* APIContentExtensionStore.cpp in Sources */, 9584 9614 7CEFA9621AC0999300B910FD /* APIUserContentExtensionStoreCocoa.mm in Sources */, 9585 9615 7C882DFE1C7E99AC006BF731 /* APIUserContentWorld.cpp in Sources */, … … 9980 10010 31A505F91680025500A930EB /* WebContextClient.cpp in Sources */, 9981 10011 BC09B8F8147460F7005F5625 /* WebContextConnectionClient.cpp in Sources */, 10012 5CD286561E7235C60094FDC8 /* WKContentExtensionStore.mm in Sources */, 9982 10013 BCDE059C11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.cpp in Sources */, 9983 10014 51871B5B127CB89D00F76232 /* WebContextMenu.cpp in Sources */, … … 10392 10423 BC989D81161A7E5D000D46D3 /* WKWebProcessPlugIn.mm in Sources */, 10393 10424 BC8F2F2A16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.mm in Sources */, 10425 5CD286521E7235A60094FDC8 /* WKContentExtension.mm in Sources */, 10394 10426 1F7506AD1859161C00EC0FF7 /* WKWebProcessPlugInFrame.mm in Sources */, 10395 10427 1F7506AE1859162200EC0FF7 /* WKWebProcessPlugInHitTestResult.mm in Sources */, -
trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.cpp
r208342 r213696 340 340 341 341 #if ENABLE(CONTENT_EXTENSIONS) 342 void WebUserContentController::add UserContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>& userContentExtensions)343 { 344 for (const auto& userContentExtension : userContentExtensions) {345 WebCompiledContentExtensionData contentExtensionData = userContentExtension.second;342 void WebUserContentController::addContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>& contentExtensions) 343 { 344 for (const auto& contentExtension : contentExtensions) { 345 WebCompiledContentExtensionData contentExtensionData = contentExtension.second; 346 346 RefPtr<WebCompiledContentExtension> compiledContentExtension = WebCompiledContentExtension::create(WTFMove(contentExtensionData)); 347 347 348 m_contentExtensionBackend.addContentExtension( userContentExtension.first, WTFMove(compiledContentExtension));349 } 350 } 351 352 void WebUserContentController::remove UserContentExtension(const String& name)348 m_contentExtensionBackend.addContentExtension(contentExtension.first, WTFMove(compiledContentExtension)); 349 } 350 } 351 352 void WebUserContentController::removeContentExtension(const String& name) 353 353 { 354 354 m_contentExtensionBackend.removeContentExtension(name); 355 355 } 356 356 357 void WebUserContentController::removeAll UserContentExtensions()357 void WebUserContentController::removeAllContentExtensions() 358 358 { 359 359 m_contentExtensionBackend.removeAllContentExtensions(); -
trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.h
r204668 r213696 24 24 */ 25 25 26 #ifndef WebUserContentController_h 27 #define WebUserContentController_h 26 #pragma once 28 27 29 28 #include "MessageReceiver.h" … … 96 95 97 96 #if ENABLE(CONTENT_EXTENSIONS) 98 void add UserContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>&);99 void remove UserContentExtension(const String& name);100 void removeAll UserContentExtensions();97 void addContentExtensions(const Vector<std::pair<String, WebCompiledContentExtensionData>>&); 98 void removeContentExtension(const String& name); 99 void removeAllContentExtensions(); 101 100 #endif 102 101 … … 129 128 130 129 } // namespace WebKit 131 132 #endif // WebUserContentController_h -
trunk/Source/WebKit2/WebProcess/UserContent/WebUserContentController.messages.in
r199020 r213696 41 41 42 42 #if ENABLE(CONTENT_EXTENSIONS) 43 Add UserContentExtensions(Vector<std::pair<String, WebKit::WebCompiledContentExtensionData>> userContentFilters);44 Remove UserContentExtension(String name);45 RemoveAll UserContentExtensions();43 AddContentExtensions(Vector<std::pair<String, WebKit::WebCompiledContentExtensionData>> contentFilters); 44 RemoveContentExtension(String name); 45 RemoveAllContentExtensions(); 46 46 #endif 47 47 } -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebErrorsMac.mm
r204053 r213696 86 86 ResourceError blockedByContentFilterError(const ResourceRequest& request) 87 87 { 88 return ResourceError(API::Error::webKitErrorDomain(), kWKErrorCodeFrameLoadBlockedByContentFilter, request.url(), WEB_UI_STRING("The URL was blocked by a content filter", "WebKitError BlockedByContentFilter"));88 return ResourceError(API::Error::webKitErrorDomain(), kWKErrorCodeFrameLoadBlockedByContentFilter, request.url(), WEB_UI_STRING("The URL was blocked by a content filter", "WebKitErrorFrameLoadBlockedByContentFilter description")); 89 89 } 90 90 #endif -
trunk/Tools/ChangeLog
r213694 r213696 1 2017-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 1 22 2017-03-09 Daniel Bates <dabates@apple.com> 2 23 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r213684 r213696 190 190 5C9E59421D3EB5AC00E3C62E /* ApplicationCache.db-shm in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5C9E593F1D3EB1DE00E3C62E /* ApplicationCache.db-shm */; }; 191 191 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 */; }; 192 193 5E4B1D2E1D404C6100053621 /* WKScrollViewDelegateCrash.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5E4B1D2C1D404C6100053621 /* WKScrollViewDelegateCrash.mm */; }; 193 194 6BFD294C1D5E6C1D008EC968 /* HashCountedSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A38D7E51C752D5F004F157D /* HashCountedSet.cpp */; }; … … 1093 1094 5C9E593F1D3EB1DE00E3C62E /* ApplicationCache.db-shm */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ApplicationCache.db-shm"; sourceTree = "<group>"; }; 1094 1095 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>"; }; 1095 1097 5E4B1D2C1D404C6100053621 /* WKScrollViewDelegateCrash.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKScrollViewDelegateCrash.mm; path = ../ios/WKScrollViewDelegateCrash.mm; sourceTree = "<group>"; }; 1096 1098 755A20AE1E6E38630093C69F /* DatabaseTrackerTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseTrackerTest.cpp; sourceTree = "<group>"; }; … … 1649 1651 2D00065D1C1F58940088E6A7 /* WKPDFViewResizeCrash.mm */, 1650 1652 5E4B1D2C1D404C6100053621 /* WKScrollViewDelegateCrash.mm */, 1653 5CE354D81E70D9C300BEFE3B /* WKUserContentExtensionStore.mm */, 1651 1654 2EFF06D61D8AF34A0004BB30 /* WKWebViewCandidateTests.mm */, 1652 1655 7C417F311D19E14800B8EF53 /* WKWebViewDefaultNavigationDelegate.mm */, … … 2919 2922 A14FC5851B89739100D107EB /* WKWebViewConfigurationExtras.mm in Sources */, 2920 2923 7C417F331D19E14800B8EF53 /* WKWebViewDefaultNavigationDelegate.mm in Sources */, 2924 5CE354D91E70DA5C00BEFE3B /* WKUserContentExtensionStore.mm in Sources */, 2921 2925 0F3B94A71A77267400DE3272 /* WKWebViewEvaluateJavaScript.mm in Sources */, 2922 2926 9984FACC1CFFAF60008D198C /* WKWebViewTextInput.mm in Sources */, -
trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm
r213687 r213696 1 1 /* 2 * Copyright (C) 201 5Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 #import "PlatformUtilities.h" 32 32 #import "Test.h" 33 #import <WebKit/ _WKUserContentExtensionStorePrivate.h>33 #import <WebKit/WKContentExtensionStorePrivate.h> 34 34 #import <wtf/RetainPtr.h> 35 35 36 class _WKUserContentExtensionStoreTest : public testing::Test {36 class WKContentExtensionStoreTest : public testing::Test { 37 37 public: 38 38 virtual void SetUp() 39 39 { 40 [[ _WKUserContentExtensionStore defaultStore] _removeAllContentExtensions];40 [[WKContentExtensionStore defaultStore] _removeAllContentExtensions]; 41 41 } 42 42 }; … … 44 44 static NSString *basicFilter = @"[{\"action\":{\"type\":\"block\"},\"trigger\":{\"url-filter\":\".*webkit.org\"}}]"; 45 45 46 TEST_F( _WKUserContentExtensionStoreTest, Compile)46 TEST_F(WKContentExtensionStoreTest, Compile) 47 47 { 48 48 __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) { 50 50 51 51 EXPECT_NOT_NULL(filter); … … 61 61 static void checkDomain(NSError *error) 62 62 { 63 EXPECT_STREQ([[error domain] UTF8String], [ _WKUserContentExtensionsDomain UTF8String]);63 EXPECT_STREQ([[error domain] UTF8String], [WKErrorDomain UTF8String]); 64 64 } 65 65 66 TEST_F( _WKUserContentExtensionStoreTest, InvalidExtension)66 TEST_F(WKContentExtensionStoreTest, InvalidExtension) 67 67 { 68 68 __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) { 70 70 71 71 EXPECT_NULL(filter); 72 72 EXPECT_NOT_NULL(error); 73 73 checkDomain(error); 74 EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorCompileFailed);74 EXPECT_EQ(error.code, WKErrorContentExtensionStoreCompileFailed); 75 75 EXPECT_STREQ("Extension compilation failed: Failed to parse the JSON String.", [[error helpAnchor] UTF8String]); 76 76 … … 80 80 } 81 81 82 TEST_F( _WKUserContentExtensionStoreTest, Lookup)82 TEST_F(WKContentExtensionStoreTest, Lookup) 83 83 { 84 84 __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) { 86 86 87 87 EXPECT_NOT_NULL(filter); … … 93 93 94 94 __block bool doneLookingUp = false; 95 [[ _WKUserContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(_WKUserContentFilter*filter, NSError *error) {95 [[WKContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(WKContentExtension *filter, NSError *error) { 96 96 97 97 EXPECT_NOT_NULL(filter); … … 103 103 } 104 104 105 TEST_F( _WKUserContentExtensionStoreTest, NonExistingIdentifierLookup)105 TEST_F(WKContentExtensionStoreTest, NonExistingIdentifierLookup) 106 106 { 107 107 __block bool doneLookingUp = false; 108 [[ _WKUserContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(_WKUserContentFilter*filter, NSError *error) {108 [[WKContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(WKContentExtension *filter, NSError *error) { 109 109 110 110 EXPECT_NULL(filter); 111 111 EXPECT_NOT_NULL(error); 112 112 checkDomain(error); 113 EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorLookupFailed);113 EXPECT_EQ(error.code, WKErrorContentExtensionStoreLookupFailed); 114 114 EXPECT_STREQ("Extension lookup failed: Unspecified error during lookup.", [[error helpAnchor] UTF8String]); 115 115 … … 119 119 } 120 120 121 TEST_F( _WKUserContentExtensionStoreTest, VersionMismatch)121 TEST_F(WKContentExtensionStoreTest, VersionMismatch) 122 122 { 123 123 __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) 125 125 { 126 126 … … 132 132 TestWebKitAPI::Util::run(&doneCompiling); 133 133 134 [[ _WKUserContentExtensionStore defaultStore] _invalidateContentExtensionVersionForIdentifier:@"TestExtension"];134 [[WKContentExtensionStore defaultStore] _invalidateContentExtensionVersionForIdentifier:@"TestExtension"]; 135 135 136 136 __block bool doneLookingUp = false; 137 [[ _WKUserContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(_WKUserContentFilter*filter, NSError *error)137 [[WKContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:@"TestExtension" completionHandler:^(WKContentExtension *filter, NSError *error) 138 138 { 139 139 … … 141 141 EXPECT_NOT_NULL(error); 142 142 checkDomain(error); 143 EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorVersionMismatch);143 EXPECT_EQ(error.code, WKErrorContentExtensionStoreVersionMismatch); 144 144 EXPECT_STREQ("Extension lookup failed: Version of file does not match version of interpreter.", [[error helpAnchor] UTF8String]); 145 145 … … 149 149 } 150 150 151 TEST_F( _WKUserContentExtensionStoreTest, Removal)151 TEST_F(WKContentExtensionStoreTest, Removal) 152 152 { 153 153 __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) { 155 155 156 156 EXPECT_NOT_NULL(filter); … … 162 162 163 163 __block bool doneRemoving = false; 164 [[ _WKUserContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"TestExtension" completionHandler:^(NSError *error) {164 [[WKContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"TestExtension" completionHandler:^(NSError *error) { 165 165 EXPECT_NULL(error); 166 166 … … 170 170 } 171 171 172 TEST_F( _WKUserContentExtensionStoreTest, NonExistingIdentifierRemove)172 TEST_F(WKContentExtensionStoreTest, NonExistingIdentifierRemove) 173 173 { 174 174 __block bool doneRemoving = false; 175 [[ _WKUserContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(NSError *error) {175 [[WKContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"DoesNotExist" completionHandler:^(NSError *error) { 176 176 EXPECT_NOT_NULL(error); 177 177 checkDomain(error); 178 EXPECT_EQ(error.code, _WKUserContentExtensionStoreErrorRemoveFailed);178 EXPECT_EQ(error.code, WKErrorContentExtensionStoreRemoveFailed); 179 179 EXPECT_STREQ("Extension removal failed: Unspecified error during remove.", [[error helpAnchor] UTF8String]); 180 180
Note:
See TracChangeset
for help on using the changeset viewer.