WKErrorGetErrorCode should not return the API::Error enum values directly
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Jun 2017 05:38:50 +0000 (05:38 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Jun 2017 05:38:50 +0000 (05:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=173367

Reviewed by Alex Christensen.

Even if the values are the same, we should use a switch to ensure we return the C API values, and not all
API::Error enum values are exposed in the C API.

* Shared/API/c/WKErrorRef.cpp:
(WKErrorGetErrorCode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218315 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/Shared/API/c/WKErrorRef.cpp

index 46f1fc5..5f152dd 100644 (file)
@@ -1,3 +1,16 @@
+2017-06-14  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        WKErrorGetErrorCode should not return the API::Error enum values directly
+        https://bugs.webkit.org/show_bug.cgi?id=173367
+
+        Reviewed by Alex Christensen.
+
+        Even if the values are the same, we should use a switch to ensure we return the C API values, and not all
+        API::Error enum values are exposed in the C API.
+
+        * Shared/API/c/WKErrorRef.cpp:
+        (WKErrorGetErrorCode):
+
 2017-06-14  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r218285.
index c1e75eb..c941512 100644 (file)
@@ -48,7 +48,37 @@ WKStringRef WKErrorCopyDomain(WKErrorRef errorRef)
 
 int WKErrorGetErrorCode(WKErrorRef errorRef)
 {
-    return toImpl(errorRef)->errorCode();
+    auto errorCode = toImpl(errorRef)->errorCode();
+    switch (errorCode) {
+    case API::Error::Policy::CannotShowMIMEType:
+        return kWKErrorCodeCannotShowMIMEType;
+    case API::Error::Policy::CannotShowURL:
+        return kWKErrorCodeCannotShowURL;
+    case API::Error::Policy::FrameLoadInterruptedByPolicyChange:
+        return kWKErrorCodeFrameLoadInterruptedByPolicyChange;
+    case API::Error::Policy::CannotUseRestrictedPort:
+        return kWKErrorCodeCannotUseRestrictedPort;
+    case API::Error::Policy::FrameLoadBlockedByContentBlocker:
+        return kWKErrorCodeFrameLoadBlockedByContentBlocker;
+    case API::Error::Policy::FrameLoadBlockedByContentFilter:
+        return kWKErrorCodeFrameLoadBlockedByContentFilter;
+    case API::Error::Plugin::CannotFindPlugIn:
+        return kWKErrorCodeCannotFindPlugIn;
+    case API::Error::Plugin::CannotLoadPlugIn:
+        return kWKErrorCodeCannotLoadPlugIn;
+    case API::Error::Plugin::JavaUnavailable:
+        return kWKErrorCodeJavaUnavailable;
+    case API::Error::Plugin::PlugInCancelledConnection:
+        return kWKErrorCodePlugInCancelledConnection;
+    case API::Error::Plugin::PlugInWillHandleLoad:
+        return kWKErrorCodePlugInWillHandleLoad;
+    case API::Error::Plugin::InsecurePlugInVersion:
+        return kWKErrorCodeInsecurePlugInVersion;
+    case API::Error::General::Internal:
+        return kWKErrorInternal;
+    }
+
+    return errorCode;
 }
 
 WKURLRef WKErrorCopyFailingURL(WKErrorRef errorRef)