summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp')
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp1060
1 files changed, 1060 insertions, 0 deletions
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp
new file mode 100644
index 000000000..538de50da
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp
@@ -0,0 +1,1060 @@
+/*
+ * This file is part of the WebKit open source project.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "WebKitDOMDOMWindow.h"
+
+#include <WebCore/CSSImportRule.h>
+#include "DOMObjectCache.h"
+#include <WebCore/Document.h>
+#include <WebCore/ExceptionCode.h>
+#include <WebCore/ExceptionCodeDescription.h>
+#include "GObjectEventListener.h"
+#include <WebCore/JSMainThreadExecState.h>
+#include <WebCore/SerializedScriptValue.h>
+#include <WebCore/UserMessageHandlersNamespace.h>
+#include <WebCore/WebKitNamespace.h>
+#include "WebKitDOMCSSStyleDeclarationPrivate.h"
+#include "WebKitDOMDOMSelectionPrivate.h"
+#include "WebKitDOMDOMWindowPrivate.h"
+#include "WebKitDOMDocumentPrivate.h"
+#include "WebKitDOMElementPrivate.h"
+#include "WebKitDOMEventPrivate.h"
+#include "WebKitDOMEventTarget.h"
+#include "WebKitDOMNodePrivate.h"
+#include "WebKitDOMPrivate.h"
+#include "ConvertToUTF8String.h"
+#include <wtf/GetPtr.h>
+#include <wtf/RefPtr.h>
+
+#define WEBKIT_DOM_DOM_WINDOW_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_DOM_WINDOW, WebKitDOMDOMWindowPrivate)
+
+typedef struct _WebKitDOMDOMWindowPrivate {
+ RefPtr<WebCore::DOMWindow> coreObject;
+} WebKitDOMDOMWindowPrivate;
+
+namespace WebKit {
+
+WebKitDOMDOMWindow* kit(WebCore::DOMWindow* obj)
+{
+ if (!obj)
+ return 0;
+
+ if (gpointer ret = DOMObjectCache::get(obj))
+ return WEBKIT_DOM_DOM_WINDOW(ret);
+
+ return wrapDOMWindow(obj);
+}
+
+WebCore::DOMWindow* core(WebKitDOMDOMWindow* request)
+{
+ return request ? static_cast<WebCore::DOMWindow*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0;
+}
+
+WebKitDOMDOMWindow* wrapDOMWindow(WebCore::DOMWindow* coreObject)
+{
+ ASSERT(coreObject);
+ return WEBKIT_DOM_DOM_WINDOW(g_object_new(WEBKIT_DOM_TYPE_DOM_WINDOW, "core-object", coreObject, nullptr));
+}
+
+} // namespace WebKit
+
+static gboolean webkit_dom_dom_window_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error)
+{
+ WebCore::Event* coreEvent = WebKit::core(event);
+ if (!coreEvent)
+ return false;
+ WebCore::DOMWindow* coreTarget = static_cast<WebCore::DOMWindow*>(WEBKIT_DOM_OBJECT(target)->coreObject);
+
+ auto result = coreTarget->dispatchEventForBindings(*coreEvent);
+ if (result.hasException()) {
+ WebCore::ExceptionCodeDescription description(result.releaseException().code());
+ g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), description.code, description.name);
+ return false;
+ }
+ return result.releaseReturnValue();
+}
+
+static gboolean webkit_dom_dom_window_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture)
+{
+ WebCore::DOMWindow* coreTarget = static_cast<WebCore::DOMWindow*>(WEBKIT_DOM_OBJECT(target)->coreObject);
+ return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture);
+}
+
+static gboolean webkit_dom_dom_window_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture)
+{
+ WebCore::DOMWindow* coreTarget = static_cast<WebCore::DOMWindow*>(WEBKIT_DOM_OBJECT(target)->coreObject);
+ return WebKit::GObjectEventListener::removeEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture);
+}
+
+static void webkit_dom_event_target_init(WebKitDOMEventTargetIface* iface)
+{
+ iface->dispatch_event = webkit_dom_dom_window_dispatch_event;
+ iface->add_event_listener = webkit_dom_dom_window_add_event_listener;
+ iface->remove_event_listener = webkit_dom_dom_window_remove_event_listener;
+}
+
+G_DEFINE_TYPE_WITH_CODE(WebKitDOMDOMWindow, webkit_dom_dom_window, WEBKIT_DOM_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init))
+
+enum {
+ PROP_0,
+ PROP_FRAME_ELEMENT,
+ PROP_OFFSCREEN_BUFFERING,
+ PROP_OUTER_HEIGHT,
+ PROP_OUTER_WIDTH,
+ PROP_INNER_HEIGHT,
+ PROP_INNER_WIDTH,
+ PROP_SCREEN_X,
+ PROP_SCREEN_Y,
+ PROP_SCREEN_LEFT,
+ PROP_SCREEN_TOP,
+ PROP_SCROLL_X,
+ PROP_SCROLL_Y,
+ PROP_PAGE_X_OFFSET,
+ PROP_PAGE_Y_OFFSET,
+ PROP_CLOSED,
+ PROP_LENGTH,
+ PROP_NAME,
+ PROP_STATUS,
+ PROP_DEFAULT_STATUS,
+ PROP_SELF,
+ PROP_WINDOW,
+ PROP_FRAMES,
+ PROP_OPENER,
+ PROP_PARENT,
+ PROP_TOP,
+ PROP_DOCUMENT,
+ PROP_DEVICE_PIXEL_RATIO,
+ PROP_ORIENTATION,
+};
+
+static void webkit_dom_dom_window_finalize(GObject* object)
+{
+ WebKitDOMDOMWindowPrivate* priv = WEBKIT_DOM_DOM_WINDOW_GET_PRIVATE(object);
+
+ WebKit::DOMObjectCache::forget(priv->coreObject.get());
+
+ priv->~WebKitDOMDOMWindowPrivate();
+ G_OBJECT_CLASS(webkit_dom_dom_window_parent_class)->finalize(object);
+}
+
+static void webkit_dom_dom_window_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec)
+{
+ WebKitDOMDOMWindow* self = WEBKIT_DOM_DOM_WINDOW(object);
+
+ switch (propertyId) {
+ case PROP_NAME:
+ webkit_dom_dom_window_set_name(self, g_value_get_string(value));
+ break;
+ case PROP_STATUS:
+ webkit_dom_dom_window_set_status(self, g_value_get_string(value));
+ break;
+ case PROP_DEFAULT_STATUS:
+ webkit_dom_dom_window_set_default_status(self, g_value_get_string(value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
+ break;
+ }
+}
+
+static void webkit_dom_dom_window_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec)
+{
+ WebKitDOMDOMWindow* self = WEBKIT_DOM_DOM_WINDOW(object);
+
+ switch (propertyId) {
+ case PROP_FRAME_ELEMENT:
+ g_value_set_object(value, webkit_dom_dom_window_get_frame_element(self));
+ break;
+ case PROP_OFFSCREEN_BUFFERING:
+ g_value_set_boolean(value, webkit_dom_dom_window_get_offscreen_buffering(self));
+ break;
+ case PROP_OUTER_HEIGHT:
+ g_value_set_long(value, webkit_dom_dom_window_get_outer_height(self));
+ break;
+ case PROP_OUTER_WIDTH:
+ g_value_set_long(value, webkit_dom_dom_window_get_outer_width(self));
+ break;
+ case PROP_INNER_HEIGHT:
+ g_value_set_long(value, webkit_dom_dom_window_get_inner_height(self));
+ break;
+ case PROP_INNER_WIDTH:
+ g_value_set_long(value, webkit_dom_dom_window_get_inner_width(self));
+ break;
+ case PROP_SCREEN_X:
+ g_value_set_long(value, webkit_dom_dom_window_get_screen_x(self));
+ break;
+ case PROP_SCREEN_Y:
+ g_value_set_long(value, webkit_dom_dom_window_get_screen_y(self));
+ break;
+ case PROP_SCREEN_LEFT:
+ g_value_set_long(value, webkit_dom_dom_window_get_screen_left(self));
+ break;
+ case PROP_SCREEN_TOP:
+ g_value_set_long(value, webkit_dom_dom_window_get_screen_top(self));
+ break;
+ case PROP_SCROLL_X:
+ g_value_set_long(value, webkit_dom_dom_window_get_scroll_x(self));
+ break;
+ case PROP_SCROLL_Y:
+ g_value_set_long(value, webkit_dom_dom_window_get_scroll_y(self));
+ break;
+ case PROP_PAGE_X_OFFSET:
+ g_value_set_long(value, webkit_dom_dom_window_get_page_x_offset(self));
+ break;
+ case PROP_PAGE_Y_OFFSET:
+ g_value_set_long(value, webkit_dom_dom_window_get_page_y_offset(self));
+ break;
+ case PROP_CLOSED:
+ g_value_set_boolean(value, webkit_dom_dom_window_get_closed(self));
+ break;
+ case PROP_LENGTH:
+ g_value_set_ulong(value, webkit_dom_dom_window_get_length(self));
+ break;
+ case PROP_NAME:
+ g_value_take_string(value, webkit_dom_dom_window_get_name(self));
+ break;
+ case PROP_STATUS:
+ g_value_take_string(value, webkit_dom_dom_window_get_status(self));
+ break;
+ case PROP_DEFAULT_STATUS:
+ g_value_take_string(value, webkit_dom_dom_window_get_default_status(self));
+ break;
+ case PROP_SELF:
+ g_value_set_object(value, webkit_dom_dom_window_get_self(self));
+ break;
+ case PROP_WINDOW:
+ g_value_set_object(value, webkit_dom_dom_window_get_window(self));
+ break;
+ case PROP_FRAMES:
+ g_value_set_object(value, webkit_dom_dom_window_get_frames(self));
+ break;
+ case PROP_OPENER:
+ g_value_set_object(value, webkit_dom_dom_window_get_opener(self));
+ break;
+ case PROP_PARENT:
+ g_value_set_object(value, webkit_dom_dom_window_get_parent(self));
+ break;
+ case PROP_TOP:
+ g_value_set_object(value, webkit_dom_dom_window_get_top(self));
+ break;
+ case PROP_DOCUMENT:
+ g_value_set_object(value, webkit_dom_dom_window_get_document(self));
+ break;
+ case PROP_DEVICE_PIXEL_RATIO:
+ g_value_set_double(value, webkit_dom_dom_window_get_device_pixel_ratio(self));
+ break;
+ case PROP_ORIENTATION:
+ g_value_set_long(value, webkit_dom_dom_window_get_orientation(self));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec);
+ break;
+ }
+}
+
+static GObject* webkit_dom_dom_window_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties)
+{
+ GObject* object = G_OBJECT_CLASS(webkit_dom_dom_window_parent_class)->constructor(type, constructPropertiesCount, constructProperties);
+
+ WebKitDOMDOMWindowPrivate* priv = WEBKIT_DOM_DOM_WINDOW_GET_PRIVATE(object);
+ priv->coreObject = static_cast<WebCore::DOMWindow*>(WEBKIT_DOM_OBJECT(object)->coreObject);
+ WebKit::DOMObjectCache::put(priv->coreObject.get(), object);
+
+ return object;
+}
+
+static void webkit_dom_dom_window_class_init(WebKitDOMDOMWindowClass* requestClass)
+{
+ GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass);
+ g_type_class_add_private(gobjectClass, sizeof(WebKitDOMDOMWindowPrivate));
+ gobjectClass->constructor = webkit_dom_dom_window_constructor;
+ gobjectClass->finalize = webkit_dom_dom_window_finalize;
+ gobjectClass->set_property = webkit_dom_dom_window_set_property;
+ gobjectClass->get_property = webkit_dom_dom_window_get_property;
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_FRAME_ELEMENT,
+ g_param_spec_object(
+ "frame-element",
+ "DOMWindow:frame-element",
+ "read-only WebKitDOMElement* DOMWindow:frame-element",
+ WEBKIT_DOM_TYPE_ELEMENT,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_OFFSCREEN_BUFFERING,
+ g_param_spec_boolean(
+ "offscreen-buffering",
+ "DOMWindow:offscreen-buffering",
+ "read-only gboolean DOMWindow:offscreen-buffering",
+ FALSE,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_OUTER_HEIGHT,
+ g_param_spec_long(
+ "outer-height",
+ "DOMWindow:outer-height",
+ "read-only glong DOMWindow:outer-height",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_OUTER_WIDTH,
+ g_param_spec_long(
+ "outer-width",
+ "DOMWindow:outer-width",
+ "read-only glong DOMWindow:outer-width",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_INNER_HEIGHT,
+ g_param_spec_long(
+ "inner-height",
+ "DOMWindow:inner-height",
+ "read-only glong DOMWindow:inner-height",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_INNER_WIDTH,
+ g_param_spec_long(
+ "inner-width",
+ "DOMWindow:inner-width",
+ "read-only glong DOMWindow:inner-width",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_SCREEN_X,
+ g_param_spec_long(
+ "screen-x",
+ "DOMWindow:screen-x",
+ "read-only glong DOMWindow:screen-x",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_SCREEN_Y,
+ g_param_spec_long(
+ "screen-y",
+ "DOMWindow:screen-y",
+ "read-only glong DOMWindow:screen-y",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_SCREEN_LEFT,
+ g_param_spec_long(
+ "screen-left",
+ "DOMWindow:screen-left",
+ "read-only glong DOMWindow:screen-left",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_SCREEN_TOP,
+ g_param_spec_long(
+ "screen-top",
+ "DOMWindow:screen-top",
+ "read-only glong DOMWindow:screen-top",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_SCROLL_X,
+ g_param_spec_long(
+ "scroll-x",
+ "DOMWindow:scroll-x",
+ "read-only glong DOMWindow:scroll-x",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_SCROLL_Y,
+ g_param_spec_long(
+ "scroll-y",
+ "DOMWindow:scroll-y",
+ "read-only glong DOMWindow:scroll-y",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_PAGE_X_OFFSET,
+ g_param_spec_long(
+ "page-x-offset",
+ "DOMWindow:page-x-offset",
+ "read-only glong DOMWindow:page-x-offset",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_PAGE_Y_OFFSET,
+ g_param_spec_long(
+ "page-y-offset",
+ "DOMWindow:page-y-offset",
+ "read-only glong DOMWindow:page-y-offset",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_CLOSED,
+ g_param_spec_boolean(
+ "closed",
+ "DOMWindow:closed",
+ "read-only gboolean DOMWindow:closed",
+ FALSE,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_LENGTH,
+ g_param_spec_ulong(
+ "length",
+ "DOMWindow:length",
+ "read-only gulong DOMWindow:length",
+ 0, G_MAXULONG, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_NAME,
+ g_param_spec_string(
+ "name",
+ "DOMWindow:name",
+ "read-write gchar* DOMWindow:name",
+ "",
+ WEBKIT_PARAM_READWRITE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_STATUS,
+ g_param_spec_string(
+ "status",
+ "DOMWindow:status",
+ "read-write gchar* DOMWindow:status",
+ "",
+ WEBKIT_PARAM_READWRITE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_DEFAULT_STATUS,
+ g_param_spec_string(
+ "default-status",
+ "DOMWindow:default-status",
+ "read-write gchar* DOMWindow:default-status",
+ "",
+ WEBKIT_PARAM_READWRITE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_SELF,
+ g_param_spec_object(
+ "self",
+ "DOMWindow:self",
+ "read-only WebKitDOMDOMWindow* DOMWindow:self",
+ WEBKIT_DOM_TYPE_DOM_WINDOW,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_WINDOW,
+ g_param_spec_object(
+ "window",
+ "DOMWindow:window",
+ "read-only WebKitDOMDOMWindow* DOMWindow:window",
+ WEBKIT_DOM_TYPE_DOM_WINDOW,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_FRAMES,
+ g_param_spec_object(
+ "frames",
+ "DOMWindow:frames",
+ "read-only WebKitDOMDOMWindow* DOMWindow:frames",
+ WEBKIT_DOM_TYPE_DOM_WINDOW,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_OPENER,
+ g_param_spec_object(
+ "opener",
+ "DOMWindow:opener",
+ "read-only WebKitDOMDOMWindow* DOMWindow:opener",
+ WEBKIT_DOM_TYPE_DOM_WINDOW,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_PARENT,
+ g_param_spec_object(
+ "parent",
+ "DOMWindow:parent",
+ "read-only WebKitDOMDOMWindow* DOMWindow:parent",
+ WEBKIT_DOM_TYPE_DOM_WINDOW,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_TOP,
+ g_param_spec_object(
+ "top",
+ "DOMWindow:top",
+ "read-only WebKitDOMDOMWindow* DOMWindow:top",
+ WEBKIT_DOM_TYPE_DOM_WINDOW,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_DOCUMENT,
+ g_param_spec_object(
+ "document",
+ "DOMWindow:document",
+ "read-only WebKitDOMDocument* DOMWindow:document",
+ WEBKIT_DOM_TYPE_DOCUMENT,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_DEVICE_PIXEL_RATIO,
+ g_param_spec_double(
+ "device-pixel-ratio",
+ "DOMWindow:device-pixel-ratio",
+ "read-only gdouble DOMWindow:device-pixel-ratio",
+ -G_MAXDOUBLE, G_MAXDOUBLE, 0,
+ WEBKIT_PARAM_READABLE));
+
+ g_object_class_install_property(
+ gobjectClass,
+ PROP_ORIENTATION,
+ g_param_spec_long(
+ "orientation",
+ "DOMWindow:orientation",
+ "read-only glong DOMWindow:orientation",
+ G_MINLONG, G_MAXLONG, 0,
+ WEBKIT_PARAM_READABLE));
+}
+
+static void webkit_dom_dom_window_init(WebKitDOMDOMWindow* request)
+{
+ WebKitDOMDOMWindowPrivate* priv = WEBKIT_DOM_DOM_WINDOW_GET_PRIVATE(request);
+ new (priv) WebKitDOMDOMWindowPrivate();
+}
+
+WebKitDOMDOMSelection* webkit_dom_dom_window_get_selection(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::DOMSelection> gobjectResult = WTF::getPtr(item->getSelection());
+ return WebKit::kit(gobjectResult.get());
+}
+
+void webkit_dom_dom_window_focus(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->focus();
+}
+
+void webkit_dom_dom_window_blur(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->blur();
+}
+
+void webkit_dom_dom_window_close(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->close();
+}
+
+void webkit_dom_dom_window_print(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->print();
+}
+
+void webkit_dom_dom_window_stop(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->stop();
+}
+
+void webkit_dom_dom_window_alert(WebKitDOMDOMWindow* self, const gchar* message)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ g_return_if_fail(message);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WTF::String convertedMessage = WTF::String::fromUTF8(message);
+ item->alert(convertedMessage);
+}
+
+gboolean webkit_dom_dom_window_confirm(WebKitDOMDOMWindow* self, const gchar* message)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), FALSE);
+ g_return_val_if_fail(message, FALSE);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WTF::String convertedMessage = WTF::String::fromUTF8(message);
+ gboolean result = item->confirm(convertedMessage);
+ return result;
+}
+
+gchar* webkit_dom_dom_window_prompt(WebKitDOMDOMWindow* self, const gchar* message, const gchar* defaultValue)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ g_return_val_if_fail(message, 0);
+ g_return_val_if_fail(defaultValue, 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WTF::String convertedMessage = WTF::String::fromUTF8(message);
+ WTF::String convertedDefaultValue = WTF::String::fromUTF8(defaultValue);
+ gchar* result = convertToUTF8String(item->prompt(convertedMessage, convertedDefaultValue));
+ return result;
+}
+
+gboolean webkit_dom_dom_window_find(WebKitDOMDOMWindow* self, const gchar* string, gboolean caseSensitive, gboolean backwards, gboolean wrap, gboolean wholeWord, gboolean searchInFrames, gboolean showDialog)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), FALSE);
+ g_return_val_if_fail(string, FALSE);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WTF::String convertedString = WTF::String::fromUTF8(string);
+ gboolean result = item->find(convertedString, caseSensitive, backwards, wrap, wholeWord, searchInFrames, showDialog);
+ return result;
+}
+
+void webkit_dom_dom_window_scroll_by(WebKitDOMDOMWindow* self, gdouble x, gdouble y)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->scrollBy(x, y);
+}
+
+void webkit_dom_dom_window_scroll_to(WebKitDOMDOMWindow* self, gdouble x, gdouble y)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->scrollTo(x, y);
+}
+
+void webkit_dom_dom_window_move_by(WebKitDOMDOMWindow* self, gfloat x, gfloat y)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->moveBy(x, y);
+}
+
+void webkit_dom_dom_window_move_to(WebKitDOMDOMWindow* self, gfloat x, gfloat y)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->moveTo(x, y);
+}
+
+void webkit_dom_dom_window_resize_by(WebKitDOMDOMWindow* self, gfloat x, gfloat y)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->resizeBy(x, y);
+}
+
+void webkit_dom_dom_window_resize_to(WebKitDOMDOMWindow* self, gfloat width, gfloat height)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->resizeTo(width, height);
+}
+
+WebKitDOMCSSStyleDeclaration* webkit_dom_dom_window_get_computed_style(WebKitDOMDOMWindow* self, WebKitDOMElement* element, const gchar* pseudoElement)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(element), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WebCore::Element* convertedElement = WebKit::core(element);
+ WTF::String convertedPseudoElement = WTF::String::fromUTF8(pseudoElement);
+ RefPtr<WebCore::CSSStyleDeclaration> gobjectResult = WTF::getPtr(item->getComputedStyle(*convertedElement, convertedPseudoElement));
+ return WebKit::kit(gobjectResult.get());
+}
+
+void webkit_dom_dom_window_capture_events(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->captureEvents();
+}
+
+void webkit_dom_dom_window_release_events(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ WebCore::DOMWindow* item = WebKit::core(self);
+ item->releaseEvents();
+}
+
+WebKitDOMElement* webkit_dom_dom_window_get_frame_element(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->frameElement());
+ return WebKit::kit(gobjectResult.get());
+}
+
+gboolean webkit_dom_dom_window_get_offscreen_buffering(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), FALSE);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ gboolean result = item->offscreenBuffering();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_outer_height(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->outerHeight();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_outer_width(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->outerWidth();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_inner_height(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->innerHeight();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_inner_width(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->innerWidth();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_screen_x(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->screenX();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_screen_y(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->screenY();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_screen_left(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->screenLeft();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_screen_top(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->screenTop();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_scroll_x(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->scrollX();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_scroll_y(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->scrollY();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_page_x_offset(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->scrollX();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_page_y_offset(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->scrollY();
+ return result;
+}
+
+gboolean webkit_dom_dom_window_get_closed(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), FALSE);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ gboolean result = item->closed();
+ return result;
+}
+
+gulong webkit_dom_dom_window_get_length(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ gulong result = item->length();
+ return result;
+}
+
+gchar* webkit_dom_dom_window_get_name(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ gchar* result = convertToUTF8String(item->name());
+ return result;
+}
+
+void webkit_dom_dom_window_set_name(WebKitDOMDOMWindow* self, const gchar* value)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ g_return_if_fail(value);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WTF::String convertedValue = WTF::String::fromUTF8(value);
+ item->setName(convertedValue);
+}
+
+gchar* webkit_dom_dom_window_get_status(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ gchar* result = convertToUTF8String(item->status());
+ return result;
+}
+
+void webkit_dom_dom_window_set_status(WebKitDOMDOMWindow* self, const gchar* value)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ g_return_if_fail(value);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WTF::String convertedValue = WTF::String::fromUTF8(value);
+ item->setStatus(convertedValue);
+}
+
+gchar* webkit_dom_dom_window_get_default_status(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ gchar* result = convertToUTF8String(item->defaultStatus());
+ return result;
+}
+
+void webkit_dom_dom_window_set_default_status(WebKitDOMDOMWindow* self, const gchar* value)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self));
+ g_return_if_fail(value);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ WTF::String convertedValue = WTF::String::fromUTF8(value);
+ item->setDefaultStatus(convertedValue);
+}
+
+WebKitDOMDOMWindow* webkit_dom_dom_window_get_self(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->self());
+ return WebKit::kit(gobjectResult.get());
+}
+
+WebKitDOMDOMWindow* webkit_dom_dom_window_get_window(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->window());
+ return WebKit::kit(gobjectResult.get());
+}
+
+WebKitDOMDOMWindow* webkit_dom_dom_window_get_frames(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->frames());
+ return WebKit::kit(gobjectResult.get());
+}
+
+WebKitDOMDOMWindow* webkit_dom_dom_window_get_opener(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->opener());
+ return WebKit::kit(gobjectResult.get());
+}
+
+WebKitDOMDOMWindow* webkit_dom_dom_window_get_parent(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->parent());
+ return WebKit::kit(gobjectResult.get());
+}
+
+WebKitDOMDOMWindow* webkit_dom_dom_window_get_top(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->top());
+ return WebKit::kit(gobjectResult.get());
+}
+
+WebKitDOMDocument* webkit_dom_dom_window_get_document(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ RefPtr<WebCore::Document> gobjectResult = WTF::getPtr(item->document());
+ return WebKit::kit(gobjectResult.get());
+}
+
+gdouble webkit_dom_dom_window_get_device_pixel_ratio(WebKitDOMDOMWindow* self)
+{
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ gdouble result = item->devicePixelRatio();
+ return result;
+}
+
+glong webkit_dom_dom_window_get_orientation(WebKitDOMDOMWindow* self)
+{
+#if ENABLE(ORIENTATION_EVENTS)
+ WebCore::JSMainThreadNullState state;
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), 0);
+ WebCore::DOMWindow* item = WebKit::core(self);
+ glong result = item->orientation();
+ return result;
+#else
+ UNUSED_PARAM(self);
+ WEBKIT_WARN_FEATURE_NOT_PRESENT("Orientation Events")
+ return static_cast<glong>(0);
+#endif /* ENABLE(ORIENTATION_EVENTS) */
+}
+
+gboolean webkit_dom_dom_window_webkit_message_handlers_post_message(WebKitDOMDOMWindow* window, const gchar* handlerName, const gchar* message)
+{
+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(window), FALSE);
+ g_return_val_if_fail(handlerName, FALSE);
+ g_return_val_if_fail(message, FALSE);
+
+ WebCore::DOMWindow* domWindow = WebKit::core(window);
+ if (!domWindow->shouldHaveWebKitNamespaceForWorld(WebCore::mainThreadNormalWorld()))
+ return FALSE;
+
+ auto webkitNamespace = domWindow->webkitNamespace();
+ if (!webkitNamespace)
+ return FALSE;
+
+ auto handler = webkitNamespace->messageHandlers()->handler(String::fromUTF8(handlerName), WebCore::mainThreadNormalWorld());
+ if (!handler)
+ return FALSE;
+
+ auto result = handler->postMessage(WebCore::SerializedScriptValue::create(String::fromUTF8(message)));
+ if (result.hasException())
+ return FALSE;
+
+ return TRUE;
+}