WebKit Bugzilla
Attachment 361047 Details for
Bug 193622
: [GTK][WPE] Add content extensions support in WKTR and unskip layout tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch v10
bug-193622-20190204113720.patch (text/plain), 39.88 KB, created by
Adrian Perez
on 2019-02-04 02:37:21 PST
(
hide
)
Description:
Patch v10
Filename:
MIME Type:
Creator:
Adrian Perez
Created:
2019-02-04 02:37:21 PST
Size:
39.88 KB
patch
obsolete
>Subversion Revision: 240902 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index e234e19b2a7043f5bbd66b09743ffd258e845241..1ded137b8808201a873d1843944d3ee4f1608f47 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,15 @@ >+2019-01-21 Adrian Perez de Castro <aperez@igalia.com> >+ >+ [GTK][WPE] Add content extensions support in WKTR and unskip layout tests >+ https://bugs.webkit.org/show_bug.cgi?id=193622 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ No new tests needed. >+ >+ * SourcesCocoa.txt: Remove loader/ResourceLoadInfo.cpp, it's not Cocoa-specific anymore. >+ * Sources.txt: Add loader/ResourceLoadInfo.cpp, all ports use it now. >+ > 2019-02-03 Megan Gardner <megan_gardner@apple.com> > > Turn on Smart Paste >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index b9678c2c237af05a5249f83ce17bd38313d84c0e..698ae4678ded5914fd8d97ad846d47dbea19b1c4 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,37 @@ >+2019-01-21 Adrian Perez de Castro <aperez@igalia.com> >+ >+ [GTK][WPE] Add content extensions support in WKTR and unskip layout tests >+ https://bugs.webkit.org/show_bug.cgi?id=193622 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * NetworkProcess/cache/NetworkCacheData.h: Define an adoptAndMapFile() implementation >+ for GFileIOStream objects. >+ * NetworkProcess/cache/NetworkCacheDataSoup.cpp: >+ (WebKit::NetworkCache::adoptAndMapFile): Added implementation, which extracts the file >+ descriptor from a GFileIOStream, as it inherits from GFileDescriptorBased, and then >+ reuses the version of adoptAndMapFile() which takes a file descritor for the actual work. >+ * NetworkProcess/NetworkLoadChecker.cpp: >+ (Webkit::NetworkLoadChecker::checkRequest): Use "this" when referring to >+ processContentExtensionRulesForLoad() in order to avoid ambiguity. >+ * Sources.txt: Add WKUserContentExtensionStoreRef.cpp, all ports use it now. >+ * SourcesCocoa.txt: Remove WKUserContentExtensionStoreRef.cpp, because it is not >+ Cocoa-specific anymore. >+ * SourcesGTK.txt: Add APIContentRuleListStoreGLib.cpp. >+ * SourcesWPE.txt: Ditto. >+ * UIProcess/API/C/WKUserContentExtensionStoreRef.cpp: >+ (WKUserContentExtensionStoreCreate): Added. >+ (toResult): Added. >+ (WKUserContentExtensionStoreCompile): Added. >+ (WKUserContentExtensionStoreLookup): Added. >+ (WKUserContentExtensionStoreRemove): Added. >+ * UIProcess/API/C/WKUserContentExtensionStoreRef.h: Add declarations for the new C API >+ functions and for the WKUserContentExtensionStoreResult status enum. >+ * UIProcess/API/glib/APIContentRuleListStoreGLib.cpp: Added. >+ (API::ContentRuleListStore::defaultStorePath): Add a dummy implementation. The public API >+ for the GLib based ports (GTK+ and WPE) will not allow using the default store and will >+ always indicating a path. >+ > 2019-02-03 Megan Gardner <megan_gardner@apple.com> > > Turn on Smart Paste >diff --git a/Source/WebCore/Sources.txt b/Source/WebCore/Sources.txt >index 3f4296d5242f423e590a386d02b2b929a8d8e6a1..0f2df36e6d418d03e3bcd8b7414fcb97ebb5a437 100644 >--- a/Source/WebCore/Sources.txt >+++ b/Source/WebCore/Sources.txt >@@ -1392,6 +1392,7 @@ loader/PingLoader.cpp > loader/PolicyChecker.cpp > loader/ProgressTracker.cpp > loader/ResourceCryptographicDigest.cpp >+loader/ResourceLoadInfo.cpp > loader/ResourceLoadNotifier.cpp > loader/ResourceLoadObserver.cpp > loader/ResourceLoadStatistics.cpp >diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt >index 5a00d12a58003ad55a83df13ffc85d8680a67bdc..bec54950641eedf45619557b1514e6d67d33bbb9 100644 >--- a/Source/WebCore/SourcesCocoa.txt >+++ b/Source/WebCore/SourcesCocoa.txt >@@ -109,8 +109,6 @@ html/shadow/mac/ImageControlsRootElementMac.cpp > > history/mac/HistoryItemMac.mm > >-loader/ResourceLoadInfo.cpp >- > loader/archive/cf/LegacyWebArchive.cpp > loader/archive/cf/LegacyWebArchiveMac.mm > >diff --git a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >index 0ec8ff17dc70d0e472e410a0a5c6428465ead6a0..7878fad9ab94cd63649e0493da3c941f1fe6759e 100644 >--- a/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp >@@ -238,7 +238,7 @@ void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurity > } > > #if ENABLE(CONTENT_EXTENSIONS) >- processContentExtensionRulesForLoad(WTFMove(request), [this, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto result) mutable { >+ this->processContentExtensionRulesForLoad(WTFMove(request), [this, handler = WTFMove(handler), originalRequest = WTFMove(originalRequest)](auto result) mutable { > if (!result.has_value()) { > ASSERT(result.error().isCancellation()); > handler(WTFMove(result.error())); >@@ -249,7 +249,7 @@ void NetworkLoadChecker::checkRequest(ResourceRequest&& request, ContentSecurity > return; > } > >- continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(result.value().request), WTFMove(handler)); >+ this->continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(result.value().request), WTFMove(handler)); > }); > #else > this->continueCheckingRequestOrDoSyntheticRedirect(WTFMove(originalRequest), WTFMove(request), WTFMove(handler)); >diff --git a/Source/WebKit/NetworkProcess/cache/NetworkCacheData.h b/Source/WebKit/NetworkProcess/cache/NetworkCacheData.h >index 5bedc0ded911dc93eacd567e6f598d08ccc8f409..5559c35ba7fcf6cf9e059bb93d4b9d21b5240883 100644 >--- a/Source/WebKit/NetworkProcess/cache/NetworkCacheData.h >+++ b/Source/WebKit/NetworkProcess/cache/NetworkCacheData.h >@@ -98,6 +98,9 @@ private: > Data concatenate(const Data&, const Data&); > bool bytesEqual(const Data&, const Data&); > Data adoptAndMapFile(int fd, size_t offset, size_t); >+#if USE(GLIB) && !PLATFORM(WIN) >+Data adoptAndMapFile(GFileIOStream*, size_t offset, size_t); >+#endif > Data mapFile(const char* path); > > using Salt = std::array<uint8_t, 8>; >diff --git a/Source/WebKit/NetworkProcess/cache/NetworkCacheDataSoup.cpp b/Source/WebKit/NetworkProcess/cache/NetworkCacheDataSoup.cpp >index 3ae8a6fa90c083601a614d429195928e9a3bb53f..515c09ebbfd3354fd9533cee1bd890173baa1c7c 100644 >--- a/Source/WebKit/NetworkProcess/cache/NetworkCacheDataSoup.cpp >+++ b/Source/WebKit/NetworkProcess/cache/NetworkCacheDataSoup.cpp >@@ -33,6 +33,10 @@ > #include <sys/types.h> > #include <unistd.h> > >+#if USE(GLIB) && !PLATFORM(WIN) >+#include <gio/gfiledescriptorbased.h> >+#endif >+ > namespace WebKit { > namespace NetworkCache { > >@@ -126,6 +130,15 @@ Data Data::adoptMap(void* map, size_t size, int fd) > return { WTFMove(buffer), fd }; > } > >+#if USE(GLIB) && !PLATFORM(WIN) >+Data adoptAndMapFile(GFileIOStream* stream, size_t offset, size_t size) >+{ >+ GInputStream* inputStream = g_io_stream_get_input_stream(G_IO_STREAM(stream)); >+ int fd = g_file_descriptor_based_get_fd(G_FILE_DESCRIPTOR_BASED(inputStream)); >+ return adoptAndMapFile(fd, offset, size); >+} >+#endif >+ > RefPtr<SharedMemory> Data::tryCreateSharedMemory() const > { > if (isNull() || !isMap()) >diff --git a/Source/WebKit/Sources.txt b/Source/WebKit/Sources.txt >index d2595d76b3e9d27400c570f1e81adac107311332..0a248a38c53a07e0ffa24ebf18cdfab222e04207 100644 >--- a/Source/WebKit/Sources.txt >+++ b/Source/WebKit/Sources.txt >@@ -347,6 +347,7 @@ UIProcess/API/C/WKResourceCacheManager.cpp > UIProcess/API/C/WKSessionStateRef.cpp > UIProcess/API/C/WKTextChecker.cpp > UIProcess/API/C/WKUserContentControllerRef.cpp >+UIProcess/API/C/WKUserContentExtensionStoreRef.cpp > UIProcess/API/C/WKUserMediaPermissionCheck.cpp > UIProcess/API/C/WKUserMediaPermissionRequest.cpp > UIProcess/API/C/WKWebsiteDataStoreRef.cpp >diff --git a/Source/WebKit/SourcesCocoa.txt b/Source/WebKit/SourcesCocoa.txt >index 7498badfda125af4d9ee82e1643d00c7147e1348..73b1040edca0e4d8bf2343ac934d73bcd0e18d74 100644 >--- a/Source/WebKit/SourcesCocoa.txt >+++ b/Source/WebKit/SourcesCocoa.txt >@@ -216,7 +216,6 @@ UIProcess/API/APIWebsiteDataRecord.cpp > UIProcess/API/C/WKContextMenuListener.cpp > UIProcess/API/C/WKMediaSessionFocusManager.cpp > UIProcess/API/C/WKTestingSupport.cpp >-UIProcess/API/C/WKUserContentExtensionStoreRef.cpp > UIProcess/API/C/WKUserScriptRef.cpp > > UIProcess/API/C/cg/WKIconDatabaseCG.cpp >diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt >index b832b7acf134f172950b243e253e1d512cdc007d..a23e6adb6f73c9ce53d6e33930a77d41bd1e5b2a 100644 >--- a/Source/WebKit/SourcesGTK.txt >+++ b/Source/WebKit/SourcesGTK.txt >@@ -123,6 +123,10 @@ UIProcess/API/C/WKViewportAttributes.cpp > UIProcess/API/C/gtk/WKTextCheckerGtk.cpp > UIProcess/API/C/gtk/WKView.cpp > >+#if ENABLE_CONTENT_EXTENSIONS >+UIProcess/API/glib/APIContentRuleListStoreGLib.cpp @no-unify >+#endif >+ > UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp @no-unify > UIProcess/API/glib/IconDatabase.cpp @no-unify > UIProcess/API/glib/WebKitApplicationInfo.cpp @no-unify >diff --git a/Source/WebKit/SourcesWPE.txt b/Source/WebKit/SourcesWPE.txt >index 05a9f92d0a49ead6b8f1affa696cd48b5befb3a2..091441ca10e7245b879008682008a8fc6df9646e 100644 >--- a/Source/WebKit/SourcesWPE.txt >+++ b/Source/WebKit/SourcesWPE.txt >@@ -109,6 +109,10 @@ UIProcess/API/C/WKViewportAttributes.cpp > > UIProcess/API/C/wpe/WKView.cpp > >+#if ENABLE_CONTENT_EXTENSIONS >+UIProcess/API/glib/APIContentRuleListStoreGLib.cpp @no-unify >+#endif >+ > UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp @no-unify > UIProcess/API/glib/IconDatabase.cpp @no-unify > UIProcess/API/glib/WebKitApplicationInfo.cpp @no-unify >diff --git a/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.cpp b/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.cpp >index 265c8dffdabfb01d3debb1ef2e52e374de079e12..68a409a3a17d0d7eeedb93643d70e68c8e0daf5d 100644 >--- a/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.cpp >+++ b/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.cpp >@@ -26,8 +26,11 @@ > #include "config.h" > #include "WKUserContentExtensionStoreRef.h" > >+#include "APIContentRuleList.h" > #include "APIContentRuleListStore.h" > #include "WKAPICast.h" >+#include "WKRetainPtr.h" >+#include <wtf/Function.h> > > using namespace WebKit; > >@@ -39,3 +42,66 @@ WKTypeID WKUserContentExtensionStoreGetTypeID() > return 0; > #endif > } >+ >+WKUserContentExtensionStoreRef WKUserContentExtensionStoreCreate(WKStringRef path) >+{ >+#if ENABLE(CONTENT_EXTENSIONS) >+ return toAPI(&API::ContentRuleListStore::storeWithPath(toWTFString(path), false).leakRef()); >+#else >+ UNUSED_PARAM(path); >+ return nullptr; >+#endif >+} >+ >+#if ENABLE(CONTENT_EXTENSIONS) >+static inline WKUserContentExtensionStoreResult toResult(const std::error_code& error) >+{ >+ if (!error) >+ return kWKUserContentExtensionStoreSuccess; >+ >+ switch (static_cast<API::ContentRuleListStore::Error>(error.value())) { >+ case API::ContentRuleListStore::Error::LookupFailed: >+ return kWKUserContentExtensionStoreLookupFailed; >+ case API::ContentRuleListStore::Error::VersionMismatch: >+ return kWKUserContentExtensionStoreVersionMismatch; >+ case API::ContentRuleListStore::Error::CompileFailed: >+ return kWKUserContentExtensionStoreCompileFailed; >+ case API::ContentRuleListStore::Error::RemoveFailed: >+ return kWKUserContentExtensionStoreRemoveFailed; >+ } >+} >+#endif >+ >+void WKUserContentExtensionStoreCompile(WKUserContentExtensionStoreRef store, WKStringRef identifier, WKStringRef jsonSource, void* context, WKUserContentExtensionStoreFunction callback) >+{ >+#if ENABLE(CONTENT_EXTENSIONS) >+ toImpl(store)->compileContentRuleList(toWTFString(identifier), toWTFString(jsonSource), [context, callback](RefPtr<API::ContentRuleList> contentRuleList, std::error_code error) { >+ callback(error ? nullptr : toAPI(contentRuleList.leakRef()), toResult(error), context); >+ }); >+#else >+ UNUSED_PARAM(jsonSource); >+ callback(nullptr, kWKUserContentExtensionStoreCompileFailed, context); >+#endif >+} >+ >+void WKUserContentExtensionStoreLookup(WKUserContentExtensionStoreRef store, WKStringRef identifier, void* context, WKUserContentExtensionStoreFunction callback) >+{ >+#if ENABLE(CONTENT_EXTENSIONS) >+ toImpl(store)->lookupContentRuleList(toWTFString(identifier), [context, callback](RefPtr<API::ContentRuleList> contentRuleList, std::error_code error) { >+ callback(error ? nullptr : toAPI(contentRuleList.leakRef()), toResult(error), context); >+ }); >+#else >+ callback(nullptr, kWKUserContentExtensionStoreLookupFailed, context); >+#endif >+} >+ >+void WKUserContentExtensionStoreRemove(WKUserContentExtensionStoreRef store, WKStringRef identifier, void* context, WKUserContentExtensionStoreFunction callback) >+{ >+#if ENABLE(CONTENT_EXTENSIONS) >+ toImpl(store)->removeContentRuleList(toWTFString(identifier), [context, callback](std::error_code error) { >+ callback(nullptr, toResult(error), context); >+ }); >+#else >+ callback(nullptr, kWKUserContentExtensionStoreRemoveFailed, context); >+#endif >+} >diff --git a/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.h b/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.h >index 53598ec809a72b7f63c93e82bd8ca28b4f9b5865..a2ca35cc7f0519d12e8b0231639a4fddc7a9b71a 100644 >--- a/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.h >+++ b/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.h >@@ -34,6 +34,22 @@ extern "C" { > > WK_EXPORT WKTypeID WKUserContentExtensionStoreGetTypeID(); > >+WK_EXPORT WKUserContentExtensionStoreRef WKUserContentExtensionStoreCreate(WKStringRef path); >+ >+typedef uint32_t WKUserContentExtensionStoreResult; >+enum { >+ kWKUserContentExtensionStoreSuccess = 0, >+ kWKUserContentExtensionStoreLookupFailed, >+ kWKUserContentExtensionStoreVersionMismatch, >+ kWKUserContentExtensionStoreCompileFailed, >+ kWKUserContentExtensionStoreRemoveFailed, >+}; >+ >+typedef void (*WKUserContentExtensionStoreFunction)(WKUserContentFilterRef, WKUserContentExtensionStoreResult, void*); >+WK_EXPORT void WKUserContentExtensionStoreCompile(WKUserContentExtensionStoreRef, WKStringRef identifier, WKStringRef jsonSource, void* context, WKUserContentExtensionStoreFunction callback); >+WK_EXPORT void WKUserContentExtensionStoreLookup(WKUserContentExtensionStoreRef, WKStringRef identifier, void* context, WKUserContentExtensionStoreFunction callback); >+WK_EXPORT void WKUserContentExtensionStoreRemove(WKUserContentExtensionStoreRef, WKStringRef identifier, void* context, WKUserContentExtensionStoreFunction callback); >+ > #ifdef __cplusplus > } > #endif >diff --git a/Source/WebKit/UIProcess/API/glib/APIContentRuleListStoreGLib.cpp b/Source/WebKit/UIProcess/API/glib/APIContentRuleListStoreGLib.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..cbfdcc6ce0bfc9ebd1b2ab3b222a8213d573d79c >--- /dev/null >+++ b/Source/WebKit/UIProcess/API/glib/APIContentRuleListStoreGLib.cpp >@@ -0,0 +1,37 @@ >+/* >+ * Copyright (C) 2019 Igalia S.L. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#include "config.h" >+#include "APIContentRuleListStore.h" >+ >+namespace API { >+ >+String ContentRuleListStore::defaultStorePath(bool) >+{ >+ ASSERT_NOT_REACHED(); >+ return String(); >+} >+ >+}; // namespace API >diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake >index 9f3d1a37fc336a9a010b5c7f496a0daffa6ec151..718ca0a9676f5b7a9fecaac5fcb476ae50042492 100644 >--- a/Source/cmake/OptionsGTK.cmake >+++ b/Source/cmake/OptionsGTK.cmake >@@ -150,12 +150,13 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBDRIVER PUBLIC ON) > # Private options shared with other WebKit ports. Add options here when > # we need a value different from the default defined in WebKitFeatures.cmake. > # Changing these options is completely unsupported. >+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CONTENT_EXTENSIONS PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PRIVATE ON) >-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) >+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES}) > >diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake >index 58ed3feb45e32bbe667e63aa0532c9ba5af283eb..56d6752dcda9b3248d7fc154a48d5f1040ff5e9a 100644 >--- a/Source/cmake/OptionsWPE.cmake >+++ b/Source/cmake/OptionsWPE.cmake >@@ -47,6 +47,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_XSLT PUBLIC ON) > # we need a value different from the default defined in WebKitFeatures.cmake. > # Changing these options is completely unsupported. > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ASYNC_SCROLLING PRIVATE ON) >+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CONTENT_EXTENSIONS PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PRIVATE OFF) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON) > WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF) >diff --git a/Source/cmake/WebKitFeatures.cmake b/Source/cmake/WebKitFeatures.cmake >index f70b817312244080a38b16c7a8acb8f1511df82b..a031de400146650ed192d72be2941b81fc839bd3 100644 >--- a/Source/cmake/WebKitFeatures.cmake >+++ b/Source/cmake/WebKitFeatures.cmake >@@ -102,6 +102,7 @@ macro(WEBKIT_OPTION_BEGIN) > WEBKIT_OPTION_DEFINE(ENABLE_BUBBLEWRAP_SANDBOX "Toggle Bubblewrap sandboxing support" PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_CACHE_PARTITIONING "Toggle cache partitioning support" PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_CHANNEL_MESSAGING "Toggle Channel Messaging support" PRIVATE ON) >+ WEBKIT_OPTION_DEFINE(ENABLE_CONTENT_EXTENSIONS "Toggle Content Extensions support" PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_CONTENT_FILTERING "Toggle content filtering support" PRIVATE OFF) > WEBKIT_OPTION_DEFINE(ENABLE_CONTEXT_MENUS "Toggle Context Menu support" PRIVATE ON) > WEBKIT_OPTION_DEFINE(ENABLE_CSS3_TEXT "Toggle CSS3 Text support" PRIVATE OFF) >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index c0ae8eb2d5fa6fb49c035aacc3af4e9f28577d4a..3e0fe70eb9d45931bdf1b6de4507f496ffbb341e 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,35 @@ >+2019-01-21 Adrian Perez de Castro <aperez@igalia.com> >+ >+ [GTK][WPE] Add content extensions support in WKTR and unskip layout tests >+ https://bugs.webkit.org/show_bug.cgi?id=193622 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This adds support for loading content extension rule sets from the JSON files which >+ accompany the corresponding layout test, using the C API. The Cocoa specific parts >+ of WKTR for this could be removed, but that is left for a follow-up patch with >+ cleanups. >+ >+ * Scripts/webkitperl/FeatureList.pm: Add an option to toggle CONTENT_EXTENSIONS. >+ * WebKitTestRunner/TestController.cpp: >+ (WTR::testPath): Subtract one from the length when constructing the result std::string to >+ avoid having the null-terminator copied into the result. >+ (WTR::TestController::configureViewForTest): Call configureContentExtensionForTest() as >+ part of the preparations to run a test. >+ (WTR::ContentExtensionStoreCallbackContext::ContentExtensionStoreCallbackContext): Added. >+ (WTR::contentExtensionStoreCallback): Added. >+ (WTR::contentExtensionJSONPath): Used to calculate the path to the JSON rule set to be >+ used for content extensions test. >+ (WTR::TestController::configureContentExtensionForTest): Added, handles enabling content >+ extensions and compiling the JSON rule set for tests involving content extensions. >+ (WTR::TestController::resetContentExtensions): Removes the content extension built for >+ testing and disables content extensions. >+ (WTR::TestController::resetPreferencesToConsistentValues): Add a call to >+ resetContentExtensions(). >+ (WTR::TestController::userContentController): Added implementation for ports other than Cocoa. >+ * WebKitTestRunner/TestController.h: Add declarations for resetContentExtensions(), >+ configureContentExtensionForTest(), and userContentController(). >+ > 2019-02-02 David Kilzer <ddkilzer@apple.com> > > Leak of NSArray (4.25 Kbytes) in com.apple.WebKit.WebContent running WebKit layout tests on iOS Simulator >diff --git a/Tools/Scripts/webkitperl/FeatureList.pm b/Tools/Scripts/webkitperl/FeatureList.pm >index c335033c29ec423acadded318c6c79f05d33c367..809718f60e5e12634770a8d115fc8961da9543e2 100644 >--- a/Tools/Scripts/webkitperl/FeatureList.pm >+++ b/Tools/Scripts/webkitperl/FeatureList.pm >@@ -62,6 +62,7 @@ my ( > $cachePartitioningSupport, > $channelMessagingSupport, > $cloopSupport, >+ $contentExtensionsSupport, > $contentFilteringSupport, > $contextMenusSupport, > $css3TextSupport, >@@ -227,6 +228,9 @@ my @features = ( > { option => "channel-messaging", desc => "Toggle Channel Messaging support", > define => "ENABLE_CHANNEL_MESSAGING", value => \$channelMessagingSupport }, > >+ { option => "content-extensions", desc => "Toggle Content Extensions support", >+ define => "ENABLE_CONTENT_EXTENSIONS", value => \$contentExtensionsSupport }, >+ > { option => "content-filtering", desc => "Toggle content filtering support", > define => "ENABLE_CONTENT_FILTERING", value => \$contentFilteringSupport }, > >diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp >index f0b636cf53192d7f0ae6512eeb2098598c436a58..df2f70a5de1c9d497eeb349d9339d2efb3c12428 100644 >--- a/Tools/WebKitTestRunner/TestController.cpp >+++ b/Tools/WebKitTestRunner/TestController.cpp >@@ -60,6 +60,8 @@ > #include <WebKit/WKRetainPtr.h> > #include <WebKit/WKSecurityOriginRef.h> > #include <WebKit/WKTextChecker.h> >+#include <WebKit/WKUserContentControllerRef.h> >+#include <WebKit/WKUserContentExtensionStoreRef.h> > #include <WebKit/WKUserMediaPermissionCheck.h> > #include <WebKit/WKWebsiteDataStoreRef.h> > #include <algorithm> >@@ -830,6 +832,9 @@ void TestController::resetPreferencesToConsistentValues(const TestOptions& optio > > WKPreferencesSetWebSQLDisabled(preferences, false); > >+ m_serverTrustEvaluationCallbackCallsCount = 0; >+ resetContentExtensions(); >+ > platformResetPreferencesToConsistentValues(); > } > >@@ -1099,12 +1104,13 @@ static std::string testPath(WKURLRef url) > auto path = adoptWK(WKURLCopyPath(url)); > auto buffer = std::vector<char>(WKStringGetMaximumUTF8CStringSize(path.get())); > auto length = WKStringGetUTF8CString(path.get(), buffer.data(), buffer.size()); >+ RELEASE_ASSERT(length > 0); > #if OS(WINDOWS) > // Remove the first '/' if it starts with something like "/C:/". > if (length >= 4 && buffer[0] == '/' && buffer[2] == ':' && buffer[3] == '/') > return std::string(buffer.data() + 1, length - 1); > #endif >- return std::string(buffer.data(), length); >+ return std::string(buffer.data(), length - 1); > } > return std::string(); > } >@@ -1326,10 +1332,120 @@ void TestController::configureViewForTest(const TestInvocation& test) > ensureViewSupportsOptionsForTest(test); > updateWebViewSizeForTest(test); > updateWindowScaleForTest(mainWebView(), test); >- >+ configureContentExtensionForTest(test); > platformConfigureViewForTest(test); > } > >+#if ENABLE(CONTENT_EXTENSIONS) && !PLATFORM(COCOA) >+struct ContentExtensionStoreCallbackContext { >+ explicit ContentExtensionStoreCallbackContext(TestController& controller) >+ : testController(controller) >+ { >+ } >+ >+ TestController& testController; >+ uint32_t status { kWKUserContentExtensionStoreSuccess }; >+ WKRetainPtr<WKUserContentFilterRef> filter; >+ bool done { false }; >+}; >+ >+static void contentExtensionStoreCallback(WKUserContentFilterRef filter, uint32_t status, void* userData) >+{ >+ auto* context = static_cast<ContentExtensionStoreCallbackContext*>(userData); >+ context->status = status; >+ context->filter = filter ? adoptWK(filter) : nullptr; >+ context->done = true; >+ context->testController.notifyDone(); >+} >+ >+static std::string contentExtensionJSONPath(WKURLRef url) >+{ >+ auto path = testPath(url); >+ if (path.length()) >+ return path + ".json"; >+ >+ auto p = adoptWK(WKURLCopyPath(url)); >+ auto buffer = std::vector<char>(WKStringGetMaximumUTF8CStringSize(p.get())); >+ const auto length = WKStringGetUTF8CString(p.get(), buffer.data(), buffer.size()); >+ return std::string("LayoutTests/http/tests") + std::string(buffer.data(), length - 1) + ".json"; >+} >+#endif >+ >+void TestController::configureContentExtensionForTest(const TestInvocation& test) >+{ >+#if ENABLE(CONTENT_EXTENSIONS) && !PLATFORM(COCOA) >+ const char* contentExtensionsPath = libraryPathForTesting(); >+ if (!contentExtensionsPath) >+ contentExtensionsPath = "/tmp/wktr-contentextensions"; >+ >+ if (!test.urlContains("contentextensions/")) { >+ WKPageSetUserContentExtensionsEnabled(m_mainWebView->page(), false); >+ return; >+ } >+ >+ std::string jsonFilePath(contentExtensionJSONPath(test.url())); >+ std::ifstream jsonFile(jsonFilePath); >+ if (!jsonFile.good()) { >+ WTFLogAlways("Could not open file '%s'", jsonFilePath.c_str()); >+ return; >+ } >+ >+ std::string jsonFileContents {std::istreambuf_iterator<char>(jsonFile), std::istreambuf_iterator<char>()}; >+ auto jsonSource = adoptWK(WKStringCreateWithUTF8CString(jsonFileContents.c_str())); >+ >+ auto storePath = adoptWK(WKStringCreateWithUTF8CString(contentExtensionsPath)); >+ auto extensionStore = adoptWK(WKUserContentExtensionStoreCreate(storePath.get())); >+ ASSERT(extensionStore); >+ >+ auto filterIdentifier = adoptWK(WKStringCreateWithUTF8CString("TestContentExtension")); >+ >+ ContentExtensionStoreCallbackContext context(*this); >+ WKUserContentExtensionStoreCompile(extensionStore.get(), filterIdentifier.get(), jsonSource.get(), &context, contentExtensionStoreCallback); >+ runUntil(context.done, noTimeout); >+ ASSERT(context.status == kWKUserContentExtensionStoreSuccess); >+ ASSERT(context.filter); >+ >+ WKPageSetUserContentExtensionsEnabled(mainWebView()->page(), true); >+ >+ auto pageConfiguration = adoptWK(WKPageCopyPageConfiguration(mainWebView()->page())); >+ auto userContentController = adoptWK(WKPageConfigurationGetUserContentController(pageConfiguration.get())); >+ ASSERT(userContentController); >+ >+ WKUserContentControllerAddUserContentFilter(userContentController.get(), context.filter.get()); >+#endif >+} >+ >+void TestController::resetContentExtensions() >+{ >+#if ENABLE(CONTENT_EXTENSIONS) && !PLATFORM(COCOA) >+ if (!mainWebView()) >+ return; >+ >+ WKPageSetUserContentExtensionsEnabled(mainWebView()->page(), false); >+ >+ const char* contentExtensionsPath = libraryPathForTesting(); >+ if (!contentExtensionsPath) >+ return; >+ >+ auto pageConfiguration = adoptWK(WKPageCopyPageConfiguration(mainWebView()->page())); >+ auto userContentController = adoptWK(WKPageConfigurationGetUserContentController(pageConfiguration.get())); >+ ASSERT(userContentController); >+ >+ WKUserContentControllerRemoveAllUserContentFilters(userContentController.get()); >+ >+ auto storePath = adoptWK(WKStringCreateWithUTF8CString(contentExtensionsPath)); >+ auto extensionStore = adoptWK(WKUserContentExtensionStoreCreate(storePath.get())); >+ ASSERT(extensionStore); >+ >+ auto filterIdentifier = adoptWK(WKStringCreateWithUTF8CString("TestContentExtension")); >+ >+ ContentExtensionStoreCallbackContext context(*this); >+ WKUserContentExtensionStoreRemove(extensionStore.get(), filterIdentifier.get(), &context, contentExtensionStoreCallback); >+ runUntil(context.done, noTimeout); >+ ASSERT(!context.filter); >+#endif >+} >+ > class CommandTokenizer { > public: > explicit CommandTokenizer(const std::string& input) >diff --git a/Tools/WebKitTestRunner/TestController.h b/Tools/WebKitTestRunner/TestController.h >index e93917125f2ed1e70ed9f535da09957f83ecb03a..31eab7af46a3c0e77e7d2f93a167553f725572af 100644 >--- a/Tools/WebKitTestRunner/TestController.h >+++ b/Tools/WebKitTestRunner/TestController.h >@@ -148,6 +148,10 @@ public: > unsigned userMediaPermissionRequestCountForOrigin(WKStringRef userMediaDocumentOriginString, WKStringRef topLevelDocumentOriginString); > void resetUserMediaPermissionRequestCountForOrigin(WKStringRef userMediaDocumentOriginString, WKStringRef topLevelDocumentOriginString); > >+ // Content Extensions. >+ void configureContentExtensionForTest(const TestInvocation&); >+ void resetContentExtensions(); >+ > // Policy delegate. > void setCustomPolicyDelegate(bool enabled, bool permissive); > >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index ebc74c46451a9dbb30fd5d21d1526a8efc082a50..3ff6feea726919e4c6f93f363d04e34a92728008 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,13 @@ >+2019-01-21 Adrian Perez de Castro <aperez@igalia.com> >+ >+ [GTK][WPE] Add content extensions support in WKTR and unskip layout tests >+ https://bugs.webkit.org/show_bug.cgi?id=193622 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/gtk/TestExpectations: Un-skip tests for content extensions and add expectations. >+ * platform/wpe/TestExpectations: Ditto. >+ > 2019-02-03 Megan Gardner <megan_gardner@apple.com> > > Turn on Smart Paste >diff --git a/LayoutTests/platform/gtk/TestExpectations b/LayoutTests/platform/gtk/TestExpectations >index eb9863b4f39ea081e9344be37f49ec168bf45051..bcd01188708321e3bb0c3bedc4ea6aeb13a27a7e 100644 >--- a/LayoutTests/platform/gtk/TestExpectations >+++ b/LayoutTests/platform/gtk/TestExpectations >@@ -123,6 +123,37 @@ fast/images/object-image.html [ WontFix Pass ] > # The 64 bits release bot has been made to use 8 bpp depth, so this won't pass there. > webkit.org/b/121951 fast/dom/Window/window-screen-properties.html [ Failure Pass ] > >+# Content extensions, the failures need up-to-date expectations. The crashing tests do so in a flaky way. >+http/tests/contentextensions/basic-filter.html [ Failure Crash ] >+http/tests/contentextensions/block-cookies-basic.html [ Pass Crash ] >+http/tests/contentextensions/block-cookies-in-csp-report.php [ Failure ] >+http/tests/contentextensions/block-cookies-in-image-load-in-onunload.html [ Failure Timeout ] >+http/tests/contentextensions/block-cookies-in-ping.html [ Failure ] >+http/tests/contentextensions/block-cookies-send.html [ Failure ] >+http/tests/contentextensions/block-csp-report.php [ Failure Crash ] >+http/tests/contentextensions/block-everything-unless-domain-redirect.php [ Failure Crash ] >+http/tests/contentextensions/block-everything-if-domain.html [ Pass Crash ] >+http/tests/contentextensions/block-image-load-in-onunload.html [ Failure Timeout ] >+http/tests/contentextensions/block-ping.html [ Failure ] >+http/tests/contentextensions/character-set-basic-support.html [ Failure ] >+http/tests/contentextensions/crash-xhr.html [ Pass Crash ] >+http/tests/contentextensions/css-display-none.html [ Failure ] >+http/tests/contentextensions/domain-rules.html [ Failure ] >+http/tests/contentextensions/fetch-redirect-blocked.html [ Failure ] >+http/tests/contentextensions/filters-with-quantifiers-combined.html [ Failure ] >+http/tests/contentextensions/hide-on-csp-report.php [ Failure ] >+http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html [ Failure ] >+http/tests/contentextensions/hide-on-ping.html [ Failure ] >+http/tests/contentextensions/injected-script-callback.html [ Failure ] >+http/tests/contentextensions/main-resource-redirect-blocked.php [ Failure ] >+http/tests/contentextensions/main-resource-redirect-error.html [ Failure ] >+http/tests/contentextensions/media-filtered.html [ Failure Timeout ] >+http/tests/contentextensions/reload-without-contentextensions.html [ Failure ] >+http/tests/contentextensions/subresource-redirect-blocked.html [ Failure ] >+http/tests/contentextensions/text-track-blocked.html [ Failure Timeout ] >+http/tests/contentextensions/top-url.html [ Failure ] >+http/tests/contentextensions/whitelist.html [ Failure ] >+ > # This test requires Mac ObjC bindings, although it currently passes > Bug(GTK) http/tests/security/dataTransfer-set-data-file-url.html [ WontFix Pass ] > >@@ -3808,6 +3839,8 @@ fast/text/emoji-gender-fe0f-7.html [ Pass ] > fast/text/emoji-gender-fe0f-8.html [ Pass ] > fast/text/emoji-gender-fe0f-9.html [ Pass ] > >+http/tests/contentextensions [ Pass ] >+ > imported/w3c/web-platform-tests/css/css-scoping/stylesheet-title-001.html [ Pass ] > imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-capitalize-026.html [ Pass ] > >diff --git a/LayoutTests/platform/wpe/TestExpectations b/LayoutTests/platform/wpe/TestExpectations >index 701903149e2697179bc4960ac24b21cc50ccae69..0b6e201434e97f633dac03544c087d627e15b670 100644 >--- a/LayoutTests/platform/wpe/TestExpectations >+++ b/LayoutTests/platform/wpe/TestExpectations >@@ -475,7 +475,6 @@ Bug(WPE) contentfiltering/ [ Skip ] > Bug(WPE) http/wpt/beacon/contentextensions/ [ Skip ] > > http/tests/contentdispositionattachmentsandbox [ Skip ] >-http/tests/contentextensions [ Skip ] > http/tests/contentfiltering [ Skip ] > http/tests/download [ Skip ] > http/tests/fileapi [ Skip ] >@@ -612,6 +611,9 @@ imported/w3c/web-platform-tests/css/selectors/selector-required-type-change-002. > # Font variations > fast/text/variations [ Pass ] > >+# Content extensions >+http/tests/contentextensions [ Pass ] >+ > #//////////////////////////////////////////////////////////////////////////////////////// > # 5. TESTS CRASHING > #//////////////////////////////////////////////////////////////////////////////////////// >@@ -1261,6 +1263,64 @@ webkit.org/b/175422 http/tests/blink/sendbeacon/beacon-same-origin.html [ Failur > > http/tests/cookies/double-quoted-value-with-semi-colon.html [ Failure ] > >+# Content extensions, the failures need up-to-date expectations. >+http/tests/contentextensions/async-xhr-onerror.html [ Crash ] >+http/tests/contentextensions/basic-filter.html [ Crash ] >+http/tests/contentextensions/block-cookies-basic.html [ Crash ] >+http/tests/contentextensions/block-cookies-in-csp-report.php [ Crash ] >+http/tests/contentextensions/block-cookies-in-image-load-in-onunload.html [ Crash ] >+http/tests/contentextensions/block-cookies-in-ping.html [ Crash ] >+http/tests/contentextensions/block-cookies-send.html [ Crash ] >+http/tests/contentextensions/block-csp-report.php [ Crash ] >+http/tests/contentextensions/block-everything-if-domain.html [ Crash ] >+http/tests/contentextensions/block-everything-unless-domain-iframe.html [ Crash ] >+http/tests/contentextensions/block-everything-unless-domain-redirect.php [ Crash ] >+http/tests/contentextensions/block-everything-unless-domain.html [ Crash ] >+http/tests/contentextensions/block-image-load-in-onunload.html [ Crash ] >+http/tests/contentextensions/block-ping.html [ Crash ] >+http/tests/contentextensions/character-set-basic-support.html [ Crash ] >+http/tests/contentextensions/crash-xhr.html [ Crash ] >+http/tests/contentextensions/css-display-none-after-ignore-previous-rules.html [ Crash ] >+http/tests/contentextensions/css-display-none-overflows-rule-data-1.html [ Crash ] >+http/tests/contentextensions/css-display-none-overflows-rule-data-2.html [ Crash ] >+http/tests/contentextensions/css-display-none-overflows-rule-data-3.html [ Crash ] >+http/tests/contentextensions/css-display-none-overflows-rule-data-4.html [ Crash ] >+http/tests/contentextensions/css-display-none-overflows-rule-data-5.html [ Crash ] >+http/tests/contentextensions/css-display-none-overflows-rule-data-6.html [ Crash ] >+http/tests/contentextensions/css-display-none-with-different-case-sensitivity-are-not-merged.html [ Crash ] >+http/tests/contentextensions/css-display-none-with-different-triggers-are-not-merged.html [ Crash ] >+http/tests/contentextensions/css-display-none.html [ Crash ] >+http/tests/contentextensions/domain-rules.html [ Crash ] >+http/tests/contentextensions/fetch-redirect-blocked.html [ Crash ] >+http/tests/contentextensions/filters-with-quantifiers-combined.html [ Crash ] >+http/tests/contentextensions/font-display-none-repeated-layout.html [ Crash ] >+http/tests/contentextensions/hide-on-csp-report.php [ Crash ] >+http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html [ Crash ] >+http/tests/contentextensions/hide-on-ping.html [ Crash ] >+http/tests/contentextensions/injected-script-callback.html [ Crash ] >+http/tests/contentextensions/invalid-selector.html [ Crash ] >+http/tests/contentextensions/main-resource-redirect-blocked.php [ Crash ] >+http/tests/contentextensions/main-resource-redirect-error.html [ Crash ] >+http/tests/contentextensions/main-resource.html [ Crash ] >+http/tests/contentextensions/make-https.html [ Crash ] >+http/tests/contentextensions/media-filtered.html [ Crash ] >+http/tests/contentextensions/plugin-doesnt-crash.html [ Crash ] >+http/tests/contentextensions/popups.html [ Crash ] >+http/tests/contentextensions/reload-without-contentextensions.html [ Crash ] >+http/tests/contentextensions/root-actions.html [ Crash ] >+http/tests/contentextensions/script-onerror.html [ Crash ] >+http/tests/contentextensions/single-css-display-none.html [ Crash ] >+http/tests/contentextensions/style-resolver-changed-reentrancy.html [ Crash ] >+http/tests/contentextensions/subresource-redirect-blocked.html [ Crash ] >+http/tests/contentextensions/sync-xhr-blocked.html [ Crash ] >+http/tests/contentextensions/sync-xhr-redirection-blocked.html [ Crash ] >+http/tests/contentextensions/test-jump-table-bytecode-generation.html [ Crash ] >+http/tests/contentextensions/text-track-blocked.html [ Crash ] >+http/tests/contentextensions/top-url.html [ Crash ] >+http/tests/contentextensions/two-distinguishable-css-display-none-rules-on-main-resource.html [ Crash ] >+http/tests/contentextensions/video-element-resource-type.html [ Crash ] >+http/tests/contentextensions/whitelist.html [ Crash ] >+ > Bug(WPE) svg/animations/animations-paused-in-background-page-iframe.html [ Skip ] > Bug(WPE) svg/animations/animations-paused-in-background-page.html [ Skip ] > Bug(WPE) svg/animations/animations-paused-page-non-visible.html [ Skip ] >diff --git a/ChangeLog b/ChangeLog >index b6696e137fa636617da1091602e3e6c0b669071e..e2ec22f11b45e4bae43a7a3b9bae2d23f104e1d5 100644 >--- a/ChangeLog >+++ b/ChangeLog >@@ -1,3 +1,14 @@ >+2019-01-21 Adrian Perez de Castro <aperez@igalia.com> >+ >+ [GTK][WPE] Add content extensions support in WKTR and unskip layout tests >+ https://bugs.webkit.org/show_bug.cgi?id=193622 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Source/cmake/OptionsGTK.cmake: Enable CONTENT_EXTENSIONS by default. >+ * Source/cmake/OptionsWPE.cmake: Ditto. >+ * Source/cmake/WebKitFeatures.cmake: Add a private CONTENT_EXTENSIONS option. >+ > 2019-02-01 Carlos Garcia Campos <cgarcia@igalia.com> > > [WPE] Enable font variations
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193622
:
359655
|
359674
|
359676
|
359685
|
359687
|
359689
|
359690
|
359691
|
360393
|
360405
|
360450
|
360861
|
361013
|
361047
|
361443
|
361449
|
361454
|
361612
|
361626
|
361643
|
361712