WebKit Bugzilla
Attachment 360393 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 v7
bug-193622-20190129010026.patch (text/plain), 45.19 KB, created by
Adrian Perez
on 2019-01-28 16:00:27 PST
(
hide
)
Description:
Patch v7
Filename:
MIME Type:
Creator:
Adrian Perez
Created:
2019-01-28 16:00:27 PST
Size:
45.19 KB
patch
obsolete
>Subversion Revision: 240547 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index f8099584ab8f69a4bf454e85977e532fb6556cfc..496032ad197f65fa3c4a33ce19ad723aca23f19a 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-01-26 Zalan Bujtas <zalan@apple.com> > > [LFC] The initial values for top/bottom in contentHeightForFormattingContextRoot should not be 0. >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 6aae160ba07f1b6ecb14a86ac29d0a3111717493..586e65f7835167a8b39454d1b972c0458369db0f 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-01-25 Tim Horton <timothy_horton@apple.com> > > REGRESSION (r238818): Snapshot is removed too late after swiping back on Twitter >diff --git a/Source/WebCore/Sources.txt b/Source/WebCore/Sources.txt >index e49d19cc0c33b2b5a6b25ff978fb49988e613cae..feef620263c8cf5cb84f765a8e75ab954c1f6d74 100644 >--- a/Source/WebCore/Sources.txt >+++ b/Source/WebCore/Sources.txt >@@ -1388,6 +1388,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 c24185f14ee7af6608d2a43ce06649ca1f0552da..28041bce9012f3d8501a2f9040ee154ae7b69034 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 4de0c6fefe8eaf3ca4a0fdf07d05a1117dabcb32..35fad36de5ac3721fa645e71805c7d86ba4910f8 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 66964cd51b129b2e4f117bedd8f042b5ed2e1b6b..b439822c17e0a65ab52574ab7b7a0bee422502f3 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 a7188051594fec735130c6ef68cf402688624336..38dd3c61ff7e3a372f91cad5d07ff198b57cdadc 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 16b899308ffea7ab01a169c697c6e777ae4350b0..37335fda0cc28bd21a091d9b2f06910c5988e7e9 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..417563b633e6b402f29e472470778f36f716196e 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,67 @@ WKTypeID WKUserContentExtensionStoreGetTypeID() > return 0; > #endif > } >+ >+WKUserContentExtensionStoreRef WKUserContentExtensionStoreCreate(WKStringRef path) >+{ >+#if ENABLE(CONTENT_EXTENSIONS) >+ RefPtr<API::ContentRuleListStore> store(API::ContentRuleListStore::storeWithPath(toWTFString(path), false)); >+ return toAPI(store.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..f2317e98ceeabca2382bf6092f555c21defc8545 100644 >--- a/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.h >+++ b/Source/WebKit/UIProcess/API/C/WKUserContentExtensionStoreRef.h >@@ -34,6 +34,23 @@ extern "C" { > > WK_EXPORT WKTypeID WKUserContentExtensionStoreGetTypeID(); > >+WK_EXPORT WKUserContentExtensionStoreRef WKUserContentExtensionStoreCreate(WKStringRef path); >+ >+enum { >+ kWKUserContentExtensionStoreSuccess = 0, >+ kWKUserContentExtensionStoreLookupFailed, >+ kWKUserContentExtensionStoreVersionMismatch, >+ kWKUserContentExtensionStoreCompileFailed, >+ kWKUserContentExtensionStoreRemoveFailed, >+}; >+typedef uint32_t WKUserContentExtensionStoreResult; >+ >+ >+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 7ea7540c240d26215c3578fd3eb77780fca26795..b0660911887194405ac5eb6535bc903b2bc68a90 100644 >--- a/Source/cmake/OptionsWPE.cmake >+++ b/Source/cmake/OptionsWPE.cmake >@@ -29,6 +29,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 bca4e9983f06cf662e8918b373dbd3d37b67e663..75f8b66395a235b49f6d0a26680c0d6e5b6e586f 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 1cf82ac60f9c7a94dcf54da0f91b4891a015d5ba..5c61ed54e05f816739ad7dbcdbedf1debfcdb2b6 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,36 @@ >+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!). >+ >+ * 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(). >+ * WebKitTestRunner/cocoa/TestControllerCocoa.mm: Remove port-specific support code for >+ running tests involving content extensions, in favor of the new generic support. >+ (WTR::TestController::cocoaResetStateToConsistentValues): >+ (WTR::TestController::userContentController): Add implementation for th Cocoa port. >+ * WebKitTestRunner/mac/TestControllerMac.mm: Ditto. >+ (WTR::TestController::platformConfigureViewForTest): >+ > 2019-01-26 Zalan Bujtas <zalan@apple.com> > > [LFC] The default values for top/bottom in contentHeightForFormattingContextRoot should not be 0. >diff --git a/Tools/Scripts/webkitperl/FeatureList.pm b/Tools/Scripts/webkitperl/FeatureList.pm >index c335033c29ec423acadded318c6c79f05d33c367..b86753828b7cc61369d05ff92f3d1c5ebb350850 100644 >--- a/Tools/Scripts/webkitperl/FeatureList.pm >+++ b/Tools/Scripts/webkitperl/FeatureList.pm >@@ -61,6 +61,7 @@ my ( > $bubblewrapSandboxSupport, > $cachePartitioningSupport, > $channelMessagingSupport, >+ $contentExtensionsSupport, > $cloopSupport, > $contentFilteringSupport, > $contextMenusSupport, >@@ -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 7b662aa6000c6048b37f4eaa8f4019d120096252..2ea890ddfc6c6ea9b78ca881cee86c3398ea9bf7 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> >@@ -824,6 +826,8 @@ void TestController::resetPreferencesToConsistentValues(const TestOptions& optio > > WKPreferencesSetWebSQLDisabled(preferences, false); > >+ resetContentExtensions(); >+ > platformResetPreferencesToConsistentValues(); > } > >@@ -1091,7 +1095,7 @@ 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()); >- return std::string(buffer.data(), length); >+ return std::string(buffer.data(), length - 1); > } > return std::string(); > } >@@ -1311,10 +1315,127 @@ void TestController::configureViewForTest(const TestInvocation& test) > ensureViewSupportsOptionsForTest(test); > updateWebViewSizeForTest(test); > updateWindowScaleForTest(mainWebView(), test); >- >+ configureContentExtensionForTest(test); > platformConfigureViewForTest(test); > } > >+#if ENABLE(CONTENT_EXTENSIONS) >+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"; >+} >+ >+#if !PLATFORM(COCOA) >+WKRetainPtr<WKUserContentControllerRef> TestController::userContentController() >+{ >+ auto pageConfiguration = adoptWK(WKPageCopyPageConfiguration(mainWebView()->page())); >+ return adoptWK(WKPageConfigurationGetUserContentController(pageConfiguration.get())); >+} >+#endif >+ >+#endif >+ >+void TestController::configureContentExtensionForTest(const TestInvocation& test) >+{ >+#if ENABLE(CONTENT_EXTENSIONS) >+ 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 userContentController = TestController::userContentController(); >+ ASSERT(userContentController); >+ >+ WKUserContentControllerAddUserContentFilter(userContentController.get(), context.filter.get()); >+#endif >+} >+ >+void TestController::resetContentExtensions() >+{ >+#if ENABLE(CONTENT_EXTENSIONS) >+ if (!mainWebView()) >+ return; >+ >+ WKPageSetUserContentExtensionsEnabled(mainWebView()->page(), false); >+ >+ const char* contentExtensionsPath = libraryPathForTesting(); >+ if (!contentExtensionsPath) >+ return; >+ >+ auto userContentController = TestController::userContentController(); >+ 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 2058c79ecfaa5dce314fa62850f7dcbd0ba3fa27..e271712692cc2868703496330fd6acdaf3513d52 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); > >@@ -263,6 +267,7 @@ public: > void resetMockMediaDevices(); > > void injectUserScript(WKStringRef); >+ WKRetainPtr<WKUserContentControllerRef> userContentController(); > > void sendDisplayConfigurationChangedMessageForTesting(); > >diff --git a/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm b/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm >index 363a2c6e114d57d8baf1781df61a1364c520c209..6b490d405b7c240ee4e32753f4ede9c008973a48 100644 >--- a/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm >+++ b/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm >@@ -39,7 +39,6 @@ > #import <WebKit/WKPreferencesRefPrivate.h> > #import <WebKit/WKProcessPoolPrivate.h> > #import <WebKit/WKStringCF.h> >-#import <WebKit/WKUserContentControllerPrivate.h> > #import <WebKit/WKWebView.h> > #import <WebKit/WKWebViewConfiguration.h> > #import <WebKit/WKWebViewConfigurationPrivate.h> >@@ -48,8 +47,6 @@ > #import <WebKit/WKWebsiteDataStorePrivate.h> > #import <WebKit/WKWebsiteDataStoreRef.h> > #import <WebKit/_WKApplicationManifest.h> >-#import <WebKit/_WKUserContentExtensionStore.h> >-#import <WebKit/_WKUserContentExtensionStorePrivate.h> > #import <wtf/MainThread.h> > > namespace WTR { >@@ -139,6 +136,15 @@ WKPreferencesRef TestController::platformPreferences() > #endif > } > >+WKRetainPtr<WKUserContentControllerRef> TestController::userContentController() >+{ >+#if WK_API_ENABLED >+ return adoptWK((__bridge WKUserContentControllerRef)globalWebViewConfiguration.userContentController); >+#else >+ return nullptr; >+#endif >+} >+ > void TestController::platformAddTestOptions(TestOptions& options) const > { > if ([[NSUserDefaults standardUserDefaults] boolForKey:@"EnableProcessSwapOnNavigation"]) >@@ -242,20 +248,11 @@ void TestController::setDefaultCalendarType(NSString *identifier) > void TestController::cocoaResetStateToConsistentValues(const TestOptions& options) > { > #if WK_API_ENABLED >- __block bool doneRemoving = false; >- [[_WKUserContentExtensionStore defaultStore] removeContentExtensionForIdentifier:@"TestContentExtensions" completionHandler:^(NSError *error) { >- doneRemoving = true; >- }]; >- platformRunUntil(doneRemoving, noTimeout); >- [[_WKUserContentExtensionStore defaultStore] _removeAllContentExtensions]; >- >- > m_calendarSwizzler = nullptr; > m_overriddenCalendarIdentifier = nil; > > if (auto* webView = mainWebView()) { > TestRunnerWKWebView *platformView = webView->platformView(); >- [platformView.configuration.userContentController _removeAllUserContentFilters]; > platformView._viewScale = 1; > platformView._minimumEffectiveDeviceWidth = 0; > >diff --git a/Tools/WebKitTestRunner/mac/TestControllerMac.mm b/Tools/WebKitTestRunner/mac/TestControllerMac.mm >index 583eed4f1968a7f58a003dff4d91b16e9691d6e5..3ff411e7345ca68df06f65ca5aa04e94de75cd83 100644 >--- a/Tools/WebKitTestRunner/mac/TestControllerMac.mm >+++ b/Tools/WebKitTestRunner/mac/TestControllerMac.mm >@@ -36,13 +36,10 @@ > #import <WebKit/WKProcessPoolPrivate.h> > #import <WebKit/WKStringCF.h> > #import <WebKit/WKURLCF.h> >-#import <WebKit/WKUserContentControllerPrivate.h> > #import <WebKit/WKWebView.h> > #import <WebKit/WKWebViewConfiguration.h> > #import <WebKit/WKWebViewConfigurationPrivate.h> > #import <WebKit/WKWebViewPrivate.h> >-#import <WebKit/_WKUserContentExtensionStore.h> >-#import <WebKit/_WKUserContentExtensionStorePrivate.h> > #import <mach-o/dyld.h> > #import <wtf/ObjCRuntimeExtras.h> > #import <wtf/mac/AppKitCompatibilityDeclarations.h> >@@ -120,37 +117,6 @@ void TestController::updatePlatformSpecificTestOptionsForTest(TestOptions& optio > > void TestController::platformConfigureViewForTest(const TestInvocation& test) > { >-#if WK_API_ENABLED >- if (!test.urlContains("contentextensions/")) >- return; >- >- RetainPtr<CFURLRef> testURL = adoptCF(WKURLCopyCFURL(kCFAllocatorDefault, test.url())); >- NSURL *filterURL = [(__bridge NSURL *)testURL.get() URLByAppendingPathExtension:@"json"]; >- >- NSStringEncoding encoding; >- NSString *contentExtensionString = [[NSString alloc] initWithContentsOfURL:filterURL usedEncoding:&encoding error:NULL]; >- if (!contentExtensionString) >- return; >- >- __block bool doneCompiling = false; >- >- NSURL *tempDir; >- if (const char* dumpRenderTreeTemp = libraryPathForTesting()) { >- String temporaryFolder = String::fromUTF8(dumpRenderTreeTemp); >- tempDir = [NSURL fileURLWithPath:[(NSString*)temporaryFolder stringByAppendingPathComponent:@"ContentExtensions"] isDirectory:YES]; >- } else >- tempDir = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"ContentExtensions"] isDirectory:YES]; >- >- [[_WKUserContentExtensionStore storeWithURL:tempDir] compileContentExtensionForIdentifier:@"TestContentExtensions" encodedContentExtension:contentExtensionString completionHandler:^(_WKUserContentFilter *filter, NSError *error) >- { >- if (!error) >- [mainWebView()->platformView().configuration.userContentController _addUserContentFilter:filter]; >- else >- NSLog(@"%@", [error helpAnchor]); >- doneCompiling = true; >- }]; >- platformRunUntil(doneCompiling, noTimeout); >-#endif > } > > static NSSet *allowedFontFamilySet() >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 9a9be587961add0807da8ef55d1fe2f958b9b9d8..f632d7d251a6e411a0e0367066106cdfce1a016f 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-01-26 Zalan Bujtas <zalan@apple.com> > > [LFC] The default values for top/bottom in contentHeightForFormattingContextRoot should not be 0. >diff --git a/LayoutTests/platform/gtk/TestExpectations b/LayoutTests/platform/gtk/TestExpectations >index af3749a2323a096e8055df94cf625620b9644b1b..6f28bd3709b8d1317b2083888fb2f5f2b695b885 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 ] > >@@ -3809,6 +3840,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 a11dd2f6ff3bf6d8759a110fe39f725f891108bd..71d062322a757306e4c0108b318a3842bd0105a2 100644 >--- a/LayoutTests/platform/wpe/TestExpectations >+++ b/LayoutTests/platform/wpe/TestExpectations >@@ -469,7 +469,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 ] >@@ -603,6 +602,8 @@ imported/w3c/web-platform-tests/css/selectors/selector-placeholder-shown-type-ch > imported/w3c/web-platform-tests/css/selectors/selector-read-write-type-change-002.html [ Pass ] > imported/w3c/web-platform-tests/css/selectors/selector-required-type-change-002.html [ Pass ] > >+http/tests/contentextensions [ Pass ] >+ > #//////////////////////////////////////////////////////////////////////////////////////// > # 5. TESTS CRASHING > #//////////////////////////////////////////////////////////////////////////////////////// >@@ -1258,6 +1259,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 a69b7ba021e0119cd6c2643739960404072c0f50..b6bf19d96bfb88f5d6e59ca3415c9f806827e2c7 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-01-24 Guillaume Emont <guijemont@igalia.com> > > [JSC] Reenable baseline JIT on mips
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