summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp164
1 files changed, 164 insertions, 0 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp
index d34b9c471..2c971c22d 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp
@@ -20,6 +20,9 @@
#include "config.h"
#include "WebKitPrivate.h"
+#include "ErrorsGtk.h"
+#include "WebEvent.h"
+#include "WebKitError.h"
#include <gdk/gdk.h>
unsigned wkEventModifiersToGdkModifiers(WKEventModifiers wkModifiers)
@@ -33,9 +36,64 @@ unsigned wkEventModifiersToGdkModifiers(WKEventModifiers wkModifiers)
modifiers |= GDK_MOD1_MASK;
if (wkModifiers & kWKEventModifiersMetaKey)
modifiers |= GDK_META_MASK;
+ if (wkModifiers & kWKEventModifiersCapsLockKey)
+ modifiers |= GDK_LOCK_MASK;
return modifiers;
}
+unsigned toGdkModifiers(WebKit::WebEvent::Modifiers wkModifiers)
+{
+ unsigned modifiers = 0;
+ if (wkModifiers & WebKit::WebEvent::Modifiers::ShiftKey)
+ modifiers |= GDK_SHIFT_MASK;
+ if (wkModifiers & WebKit::WebEvent::Modifiers::ControlKey)
+ modifiers |= GDK_CONTROL_MASK;
+ if (wkModifiers & WebKit::WebEvent::Modifiers::AltKey)
+ modifiers |= GDK_MOD1_MASK;
+ if (wkModifiers & WebKit::WebEvent::Modifiers::MetaKey)
+ modifiers |= GDK_META_MASK;
+ if (wkModifiers & WebKit::WebEvent::Modifiers::CapsLockKey)
+ modifiers |= GDK_LOCK_MASK;
+ return modifiers;
+}
+
+WebKitNavigationType toWebKitNavigationType(WebCore::NavigationType type)
+{
+ switch (type) {
+ case WebCore::NavigationType::LinkClicked:
+ return WEBKIT_NAVIGATION_TYPE_LINK_CLICKED;
+ case WebCore::NavigationType::FormSubmitted:
+ return WEBKIT_NAVIGATION_TYPE_FORM_SUBMITTED;
+ case WebCore::NavigationType::BackForward:
+ return WEBKIT_NAVIGATION_TYPE_BACK_FORWARD;
+ case WebCore::NavigationType::Reload:
+ return WEBKIT_NAVIGATION_TYPE_RELOAD;
+ case WebCore::NavigationType::FormResubmitted:
+ return WEBKIT_NAVIGATION_TYPE_FORM_RESUBMITTED;
+ case WebCore::NavigationType::Other:
+ return WEBKIT_NAVIGATION_TYPE_OTHER;
+ default:
+ ASSERT_NOT_REACHED();
+ return WEBKIT_NAVIGATION_TYPE_OTHER;
+ }
+}
+
+unsigned toWebKitMouseButton(WebKit::WebMouseEvent::Button button)
+{
+ switch (button) {
+ case WebKit::WebMouseEvent::Button::NoButton:
+ return 0;
+ case WebKit::WebMouseEvent::Button::LeftButton:
+ return 1;
+ case WebKit::WebMouseEvent::Button::MiddleButton:
+ return 2;
+ case WebKit::WebMouseEvent::Button::RightButton:
+ return 3;
+ }
+ ASSERT_NOT_REACHED();
+ return 0;
+}
+
unsigned wkEventMouseButtonToWebKitMouseButton(WKEventMouseButton wkButton)
{
switch (wkButton) {
@@ -51,3 +109,109 @@ unsigned wkEventMouseButtonToWebKitMouseButton(WKEventMouseButton wkButton)
ASSERT_NOT_REACHED();
return 0;
}
+
+unsigned toWebKitError(unsigned webCoreError)
+{
+ switch (webCoreError) {
+ case WebCore::NetworkErrorFailed:
+ return WEBKIT_NETWORK_ERROR_FAILED;
+ case WebCore::NetworkErrorTransport:
+ return WEBKIT_NETWORK_ERROR_TRANSPORT;
+ case WebCore::NetworkErrorUnknownProtocol:
+ return WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL;
+ case WebCore::NetworkErrorCancelled:
+ return WEBKIT_NETWORK_ERROR_CANCELLED;
+ case WebCore::NetworkErrorFileDoesNotExist:
+ return WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST;
+ case WebCore::PolicyErrorFailed:
+ return WEBKIT_POLICY_ERROR_FAILED;
+ case WebCore::PolicyErrorCannotShowMimeType:
+ return WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE;
+ case WebCore::PolicyErrorCannotShowURL:
+ return WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI;
+ case WebCore::PolicyErrorFrameLoadInterruptedByPolicyChange:
+ return WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE;
+ case WebCore::PolicyErrorCannotUseRestrictedPort:
+ return WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT;
+ case WebCore::PluginErrorFailed:
+ return WEBKIT_PLUGIN_ERROR_FAILED;
+ case WebCore::PluginErrorCannotFindPlugin:
+ return WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN;
+ case WebCore::PluginErrorCannotLoadPlugin:
+ return WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN;
+ case WebCore::PluginErrorJavaUnavailable:
+ return WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE;
+ case WebCore::PluginErrorConnectionCancelled:
+ return WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED;
+ case WebCore::PluginErrorWillHandleLoad:
+ return WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD;
+ case WebCore::DownloadErrorNetwork:
+ return WEBKIT_DOWNLOAD_ERROR_NETWORK;
+ case WebCore::DownloadErrorCancelledByUser:
+ return WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER;
+ case WebCore::DownloadErrorDestination:
+ return WEBKIT_DOWNLOAD_ERROR_DESTINATION;
+ case WebCore::PrintErrorGeneral:
+ return WEBKIT_PRINT_ERROR_GENERAL;
+ case WebCore::PrintErrorPrinterNotFound:
+ return WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND;
+ case WebCore::PrintErrorInvalidPageRange:
+ return WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE;
+ default:
+ // This may be a user app defined error, which needs to be passed as-is.
+ return webCoreError;
+ }
+}
+
+unsigned toWebCoreError(unsigned webKitError)
+{
+ switch (webKitError) {
+ case WEBKIT_NETWORK_ERROR_FAILED:
+ return WebCore::NetworkErrorFailed;
+ case WEBKIT_NETWORK_ERROR_TRANSPORT:
+ return WebCore::NetworkErrorTransport;
+ case WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL:
+ return WebCore::NetworkErrorUnknownProtocol;
+ case WEBKIT_NETWORK_ERROR_CANCELLED:
+ return WebCore::NetworkErrorCancelled;
+ case WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST:
+ return WebCore::NetworkErrorFileDoesNotExist;
+ case WEBKIT_POLICY_ERROR_FAILED:
+ return WebCore::PolicyErrorFailed;
+ case WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE:
+ return WebCore::PolicyErrorCannotShowMimeType;
+ case WEBKIT_POLICY_ERROR_CANNOT_SHOW_URI:
+ return WebCore::PolicyErrorCannotShowURL;
+ case WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE:
+ return WebCore::PolicyErrorFrameLoadInterruptedByPolicyChange;
+ case WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT:
+ return WebCore::PolicyErrorCannotUseRestrictedPort;
+ case WEBKIT_PLUGIN_ERROR_FAILED:
+ return WebCore::PluginErrorFailed;
+ case WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN:
+ return WebCore::PluginErrorCannotFindPlugin;
+ case WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN:
+ return WebCore::PluginErrorCannotLoadPlugin;
+ case WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE:
+ return WebCore::PluginErrorJavaUnavailable;
+ case WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED:
+ return WebCore::PluginErrorConnectionCancelled;
+ case WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD:
+ return WebCore::PluginErrorWillHandleLoad;
+ case WEBKIT_DOWNLOAD_ERROR_NETWORK:
+ return WebCore::DownloadErrorNetwork;
+ case WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER:
+ return WebCore::DownloadErrorCancelledByUser;
+ case WEBKIT_DOWNLOAD_ERROR_DESTINATION:
+ return WebCore::DownloadErrorDestination;
+ case WEBKIT_PRINT_ERROR_GENERAL:
+ return WebCore::PrintErrorGeneral;
+ case WEBKIT_PRINT_ERROR_PRINTER_NOT_FOUND:
+ return WebCore::PrintErrorPrinterNotFound;
+ case WEBKIT_PRINT_ERROR_INVALID_PAGE_RANGE:
+ return WebCore::PrintErrorInvalidPageRange;
+ default:
+ // This may be a user app defined error, which needs to be passed as-is.
+ return webKitError;
+ }
+}