Diff
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog (223348 => 223349)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 09:16:11 UTC (rev 223348)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 09:23:59 UTC (rev 223349)
@@ -1,3 +1,17 @@
+2017-09-07 Joseph Pecoraro <[email protected]>
+
+ WebKit should claim that it can show responses for a broader range of JSON MIMETypes
+ https://bugs.webkit.org/show_bug.cgi?id=176252
+ <rdar://problem/34212885>
+
+ Reviewed by Ryosuke Niwa.
+
+ * platform/MIMETypeRegistry.h:
+ * platform/MIMETypeRegistry.cpp:
+ (WebCore::MIMETypeRegistry::canShowMIMEType):
+ Extend this to support _javascript_ and JSON MIMETypes that WebKit
+ knows how to treat as text.
+
2017-09-06 Manuel Rego Casasnovas <[email protected]>
[css-grid] grid shorthand should not reset the gutter properties
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/MIMETypeRegistry.cpp (223348 => 223349)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/MIMETypeRegistry.cpp 2017-10-16 09:16:11 UTC (rev 223348)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/MIMETypeRegistry.cpp 2017-10-16 09:23:59 UTC (rev 223349)
@@ -102,7 +102,7 @@
// These were removed for <rdar://problem/6564538> Re-enable UTI code in WebCore now that MobileCoreServices exists
// But Mail relies on at least image/tif reported as being supported (should be image/tiff).
// This can be removed when Mail addresses:
- // <rdar://problem/7879510> Mail should use standard image mimetypes
+ // <rdar://problem/7879510> Mail should use standard image mimetypes
// and we fix sniffing so that it corrects items such as image/jpg -> image/jpeg.
static const char* const malformedMIMETypes[] = {
// JPEG (image/jpeg)
@@ -639,6 +639,9 @@
if (isSupportedImageMIMEType(mimeType) || isSupportedNonImageMIMEType(mimeType) || isSupportedMediaMIMEType(mimeType))
return true;
+ if (isSupportedJavaScriptMIMEType(mimeType) || isSupportedJSONMIMEType(mimeType))
+ return true;
+
if (mimeType.startsWith("text/", false))
return !isUnsupportedTextMIMEType(mimeType);
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/MIMETypeRegistry.h (223348 => 223349)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/MIMETypeRegistry.h 2017-10-16 09:16:11 UTC (rev 223348)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/MIMETypeRegistry.h 2017-10-16 09:23:59 UTC (rev 223349)
@@ -58,8 +58,8 @@
static bool isSupportedImageMIMETypeForEncoding(const String& mimeType);
// Check to see if a MIME type is suitable for being loaded as a _javascript_ or JSON resource.
- static bool isSupportedJavaScriptMIMEType(const String& mimeType);
- static bool isSupportedJSONMIMEType(const String& mimeType);
+ WEBCORE_EXPORT static bool isSupportedJavaScriptMIMEType(const String& mimeType);
+ WEBCORE_EXPORT static bool isSupportedJSONMIMEType(const String& mimeType);
// Check to see if a MIME type is suitable for being loaded as a style sheet.
static bool isSupportedStyleSheetMIMEType(const String& mimeType);
@@ -68,7 +68,7 @@
static bool isSupportedFontMIMEType(const String& mimeType);
// Check to see if a non-image MIME type is suitable for being loaded as a
- // document in a frame. Includes supported _javascript_ MIME types.
+ // document in a frame. Does not include supported _javascript_ and JSON MIME types.
WEBCORE_EXPORT static bool isSupportedNonImageMIMEType(const String& mimeType);
// Check to see if a MIME type is suitable for being loaded using <video> and <audio>.
@@ -88,9 +88,10 @@
static bool isPDFMIMEType(const String& mimeType);
// Check to see if a MIME type is suitable for being shown inside a page.
- // Returns true if any of isSupportedImageMIMEType(), isSupportedNonImageMIMEType(), or
- // isSupportedMediaMIMEType() returns true or if the given MIME type begins with
- // "text/" and isUnsupportedTextMIMEType() returns false.
+ // Returns true if any of isSupportedImageMIMEType(), isSupportedNonImageMIMEType(),
+ // isSupportedMediaMIMEType(), isSupportedJavaScriptMIMEType(), isSupportedJSONMIMEType(),
+ // returns true or if the given MIME type begins with "text/" and
+ // isUnsupportedTextMIMEType() returns false.
WEBCORE_EXPORT static bool canShowMIMEType(const String& mimeType);
// Check to see if a MIME type is one where an XML document should be created
Modified: releases/WebKitGTK/webkit-2.18/Tools/ChangeLog (223348 => 223349)
--- releases/WebKitGTK/webkit-2.18/Tools/ChangeLog 2017-10-16 09:16:11 UTC (rev 223348)
+++ releases/WebKitGTK/webkit-2.18/Tools/ChangeLog 2017-10-16 09:23:59 UTC (rev 223349)
@@ -1,3 +1,30 @@
+2017-09-07 Joseph Pecoraro <[email protected]>
+
+ WebKit should claim that it can show responses for a broader range of JSON MIMETypes
+ https://bugs.webkit.org/show_bug.cgi?id=176252
+ <rdar://problem/34212885>
+
+ Reviewed by Ryosuke Niwa.
+
+ * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+ * TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm: Added.
+ (-[WKNavigationResponseTestNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
+ (-[WKNavigationResponseTestNavigationDelegate webView:didCommitNavigation:]):
+ (-[WKNavigationResponseTestSchemeHandler webView:startURLSchemeTask:]):
+ (-[WKNavigationResponseTestSchemeHandler webView:stopURLSchemeTask:]):
+ (TEST):
+ Test for canShowMIMEType with multiple JSON mime types and a garbage mime type.
+ Previously canShowMIMEType would have been YES for "application/json" but
+ NO for "application/vnd.api+json". Now it shows YES for both.
+
+ * TestWebKitAPI/PlatformGTK.cmake:
+ * TestWebKitAPI/PlatformWPE.cmake:
+ * TestWebKitAPI/PlatformWin.cmake:
+ * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+ * TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp: Added.
+ (TestWebKitAPI::TEST):
+ Tests for MIMETypeRegistry's dynamic JSON mime type detection.
+
2017-09-07 Adrian Perez de Castro <[email protected]>
[WPE][CMake] Add "dist" and "distcheck" targets
Modified: releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformGTK.cmake (223348 => 223349)
--- releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformGTK.cmake 2017-10-16 09:16:11 UTC (rev 223348)
+++ releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformGTK.cmake 2017-10-16 09:23:59 UTC (rev 223349)
@@ -136,6 +136,7 @@
${TESTWEBKITAPI_DIR}/Tests/WebCore/GridPosition.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/HTMLParserIdioms.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/LayoutUnit.cpp
+ ${TESTWEBKITAPI_DIR}/Tests/WebCore/MIMETypeRegistry.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/PublicSuffix.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/SecurityOrigin.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/SharedBuffer.cpp
Modified: releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformWPE.cmake (223348 => 223349)
--- releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformWPE.cmake 2017-10-16 09:16:11 UTC (rev 223348)
+++ releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformWPE.cmake 2017-10-16 09:23:59 UTC (rev 223349)
@@ -45,6 +45,7 @@
${TESTWEBKITAPI_DIR}/TestsController.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/HTMLParserIdioms.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/LayoutUnit.cpp
+ ${TESTWEBKITAPI_DIR}/Tests/WebCore/MIMETypeRegistry.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/URL.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/SharedBuffer.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/SharedBufferTest.cpp
Modified: releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformWin.cmake (223348 => 223349)
--- releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformWin.cmake 2017-10-16 09:16:11 UTC (rev 223348)
+++ releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/PlatformWin.cmake 2017-10-16 09:23:59 UTC (rev 223349)
@@ -57,6 +57,7 @@
${TESTWEBKITAPI_DIR}/Tests/WebCore/IntPoint.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/IntSize.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/LayoutUnit.cpp
+ ${TESTWEBKITAPI_DIR}/Tests/WebCore/MIMETypeRegistry.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/ParsedContentRange.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/SecurityOrigin.cpp
${TESTWEBKITAPI_DIR}/Tests/WebCore/SharedBuffer.cpp
Added: releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp (0 => 223349)
--- releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp (rev 0)
+++ releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp 2017-10-16 09:23:59 UTC (rev 223349)
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * 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 <WebCore/MIMETypeRegistry.h>
+
+using namespace WebCore;
+
+namespace TestWebKitAPI {
+
+TEST(MIMETypeRegistry, JSONMIMETypes)
+{
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJSONMIMEType("application/json"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJSONMIMEType("APPLICATION/JSON"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJSONMIMEType("application/vnd.api+json"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJSONMIMEType("anything/something+json"));
+
+ ASSERT_FALSE(MIMETypeRegistry::isSupportedJSONMIMEType("text/plain"));
+ ASSERT_FALSE(MIMETypeRegistry::isSupportedJSONMIMEType("text/json"));
+ ASSERT_FALSE(MIMETypeRegistry::isSupportedJSONMIMEType("text/_javascript_"));
+}
+
+TEST(MIMETypeRegistry, _javascript_MIMETypes)
+{
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("text/_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("TEXT/_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("application/_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("application/ecmascript"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("application/x-_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("application/x-ecmascript"));
+
+ ASSERT_FALSE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("text/plain"));
+ ASSERT_FALSE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("application/json"));
+ ASSERT_FALSE(MIMETypeRegistry::isSupportedJavaScriptMIMEType("foo/_javascript_"));
+}
+
+TEST(MIMETypeRegistry, CanShowMIMEType)
+{
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("text/plain"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("text/html"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("text/xml"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("text/foo"));
+
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("application/json"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("APPLICATION/JSON"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("application/vnd.api+json"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("anything/something+json"));
+
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("text/_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("TEXT/_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("application/_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("application/ecmascript"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("application/x-_javascript_"));
+ ASSERT_TRUE(MIMETypeRegistry::canShowMIMEType("application/x-ecmascript"));
+
+ ASSERT_FALSE(MIMETypeRegistry::canShowMIMEType("foo/bar"));
+ ASSERT_FALSE(MIMETypeRegistry::canShowMIMEType("text/vcard"));
+}
+
+} // namespace TestWebKitAPI
Added: releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm (0 => 223349)
--- releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm (rev 0)
+++ releases/WebKitGTK/webkit-2.18/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm 2017-10-16 09:23:59 UTC (rev 223349)
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * 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.
+ */
+
+#import "config.h"
+
+#if WK_API_ENABLED
+
+#import "Utilities.h"
+#import <WebKit/WebKit.h>
+#import <wtf/RetainPtr.h>
+
+static bool isDone;
+
+@interface WKNavigationResponseTestNavigationDelegate : NSObject <WKNavigationDelegate>
+@property (nonatomic) BOOL expectation;
+@end
+
+@implementation WKNavigationResponseTestNavigationDelegate
+
+- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler
+{
+ EXPECT_EQ(navigationResponse.canShowMIMEType, self.expectation);
+ decisionHandler(WKNavigationResponsePolicyAllow);
+}
+
+- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation
+{
+ isDone = true;
+}
+
+@end
+
+@interface WKNavigationResponseTestSchemeHandler : NSObject <WKURLSchemeHandler>
+@property (nonatomic, copy) NSString *mimeType;
+@end
+
+@implementation WKNavigationResponseTestSchemeHandler
+
+- (void)webView:(WKWebView *)webView startURLSchemeTask:(id <WKURLSchemeTask>)task
+{
+ RetainPtr<NSURLResponse> response = adoptNS([[NSURLResponse alloc] initWithURL:[NSURL URLWithString:@"test:///json-response"] MIMEType:self.mimeType expectedContentLength:1 textEncodingName:nil]);
+ [task didReceiveResponse:response.get()];
+ [task didReceiveData:[@"{\"data\":1234}" dataUsingEncoding:NSUTF8StringEncoding]];
+ [task didFinish];
+}
+
+- (void)webView:(WKWebView *)webView stopURLSchemeTask:(id <WKURLSchemeTask>)urlSchemeTask { }
+
+@end
+
+TEST(WebKit, WKNavigationResponseJSONMIMEType)
+{
+ isDone = false;
+ auto schemeHandler = adoptNS([[WKNavigationResponseTestSchemeHandler alloc] init]);
+ auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+ [configuration setURLSchemeHandler:schemeHandler.get() forURLScheme:@"test"];
+ auto webView = adoptNS([[WKWebView alloc] initWithFrame:CGRectMake(0, 0, 800, 600) configuration:configuration.get()]);
+ auto navigationDelegate = adoptNS([[WKNavigationResponseTestNavigationDelegate alloc] init]);
+ webView.get().navigationDelegate = navigationDelegate.get();
+
+ schemeHandler.get().mimeType = @"application/json";
+ navigationDelegate.get().expectation = YES;
+
+ NSURL *testURL = [NSURL URLWithString:@"test:///json-response"];
+ [webView loadRequest:[NSURLRequest requestWithURL:testURL]];
+ TestWebKitAPI::Util::run(&isDone);
+}
+
+TEST(WebKit, WKNavigationResponseJSONMIMEType2)
+{
+ isDone = false;
+ auto schemeHandler = adoptNS([[WKNavigationResponseTestSchemeHandler alloc] init]);
+ auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+ [configuration setURLSchemeHandler:schemeHandler.get() forURLScheme:@"test"];
+ auto webView = adoptNS([[WKWebView alloc] initWithFrame:CGRectMake(0, 0, 800, 600) configuration:configuration.get()]);
+ auto navigationDelegate = adoptNS([[WKNavigationResponseTestNavigationDelegate alloc] init]);
+ webView.get().navigationDelegate = navigationDelegate.get();
+
+ schemeHandler.get().mimeType = @"application/vnd.api+json";
+ navigationDelegate.get().expectation = YES;
+
+ NSURL *testURL = [NSURL URLWithString:@"test:///json-response"];
+ [webView loadRequest:[NSURLRequest requestWithURL:testURL]];
+ TestWebKitAPI::Util::run(&isDone);
+}
+
+TEST(WebKit, WKNavigationResponseUnknownMIMEType)
+{
+ isDone = false;
+ auto schemeHandler = adoptNS([[WKNavigationResponseTestSchemeHandler alloc] init]);
+ auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+ [configuration setURLSchemeHandler:schemeHandler.get() forURLScheme:@"test"];
+ auto webView = adoptNS([[WKWebView alloc] initWithFrame:CGRectMake(0, 0, 800, 600) configuration:configuration.get()]);
+ auto navigationDelegate = adoptNS([[WKNavigationResponseTestNavigationDelegate alloc] init]);
+ webView.get().navigationDelegate = navigationDelegate.get();
+
+ schemeHandler.get().mimeType = @"garbage/json";
+ navigationDelegate.get().expectation = NO;
+
+ NSURL *testURL = [NSURL URLWithString:@"test:///json-response"];
+ [webView loadRequest:[NSURLRequest requestWithURL:testURL]];
+ TestWebKitAPI::Util::run(&isDone);
+}
+
+#endif // WK_API_ENABLED