diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/InjectedBundle/API/gtk')
343 files changed, 60740 insertions, 59 deletions
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.cpp new file mode 100644 index 000000000..b5e1657a0 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.cpp @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net> + * Copyright (C) 2010 Igalia S.L. + * + * 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 "ConvertToUTF8String.h" + +#include <WebCore/URL.h> +#include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> + +#include <glib.h> + +gchar* convertToUTF8String(WTF::String const& s) +{ + if (s.isNull()) + return nullptr; + + return g_strdup(s.utf8().data()); +} + +gchar* convertToUTF8String(WebCore::URL const& s) +{ + return convertToUTF8String(s.string()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.h new file mode 100644 index 000000000..e494113a3 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.h @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net> + * Copyright (C) 2010 Igalia S.L. + * + * 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. + */ + +#ifndef ConvertToUTF8String_h +#define ConvertToUTF8String_h + +#include <wtf/Forward.h> + +namespace WebCore { +class URL; +} + +typedef char gchar; + +gchar* convertToUTF8String(WTF::String const& s); +gchar* convertToUTF8String(WebCore::URL const& s); + +#endif /* ConvertToUTF8String_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.cpp new file mode 100644 index 000000000..0e790f9c8 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.cpp @@ -0,0 +1,233 @@ +/* + * Copyright (C) 2010, 2015 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "DOMObjectCache.h" + +#include <WebCore/DOMWindowProperty.h> +#include <WebCore/Document.h> +#include <WebCore/Frame.h> +#include <WebCore/FrameDestructionObserver.h> +#include <WebCore/Node.h> +#include <glib-object.h> +#include <wtf/HashMap.h> +#include <wtf/NeverDestroyed.h> +#include <wtf/RunLoop.h> +#include <wtf/Vector.h> +#include <wtf/glib/GRefPtr.h> + +namespace WebKit { + +struct DOMObjectCacheData { + DOMObjectCacheData(GObject* wrapper) + : object(wrapper) + , cacheReferences(1) + { + } + + void clearObject() + { + ASSERT(object); + ASSERT(cacheReferences >= 1); + ASSERT(object->ref_count >= 1); + + // Make sure we don't unref more than the references the object actually has. It can happen that user + // unreffed a reference owned by the cache. + cacheReferences = std::min(static_cast<unsigned>(object->ref_count), cacheReferences); + GRefPtr<GObject> protect(object); + do { + g_object_unref(object); + } while (--cacheReferences); + object = nullptr; + } + + void* refObject() + { + ASSERT(object); + + cacheReferences++; + return g_object_ref(object); + } + + GObject* object; + unsigned cacheReferences; +}; + +class DOMObjectCacheFrameObserver; +typedef HashMap<WebCore::Frame*, std::unique_ptr<DOMObjectCacheFrameObserver>> DOMObjectCacheFrameObserverMap; + +static DOMObjectCacheFrameObserverMap& domObjectCacheFrameObservers() +{ + static NeverDestroyed<DOMObjectCacheFrameObserverMap> map; + return map; +} + +static DOMObjectCacheFrameObserver& getOrCreateDOMObjectCacheFrameObserver(WebCore::Frame& frame) +{ + DOMObjectCacheFrameObserverMap::AddResult result = domObjectCacheFrameObservers().add(&frame, nullptr); + if (result.isNewEntry) + result.iterator->value = std::make_unique<DOMObjectCacheFrameObserver>(frame); + return *result.iterator->value; +} + +class DOMObjectCacheFrameObserver final: public WebCore::FrameDestructionObserver { +public: + DOMObjectCacheFrameObserver(WebCore::Frame& frame) + : FrameDestructionObserver(&frame) + { + } + + ~DOMObjectCacheFrameObserver() + { + ASSERT(m_objects.isEmpty()); + } + + void addObjectCacheData(DOMObjectCacheData& data) + { + ASSERT(!m_objects.contains(&data)); + + WebCore::DOMWindow* domWindow = m_frame->document()->domWindow(); + if (domWindow && (!m_domWindowObserver || m_domWindowObserver->domWindow() != domWindow)) { + // New DOMWindow, clear the cache and create a new DOMWindowObserver. + clear(); + m_domWindowObserver = std::make_unique<DOMWindowObserver>(*m_frame, *this, domWindow); + } + + m_objects.append(&data); + g_object_weak_ref(data.object, DOMObjectCacheFrameObserver::objectFinalizedCallback, this); + } + +private: + class DOMWindowObserver final: public WebCore::DOMWindowProperty { + WTF_MAKE_FAST_ALLOCATED; + public: + DOMWindowObserver(WebCore::Frame& frame, DOMObjectCacheFrameObserver& frameObserver, WebCore::DOMWindow* window) + : DOMWindowProperty(&frame) + , m_frameObserver(frameObserver) + , m_domWindow(window) + { + ASSERT(m_domWindow); + } + + virtual ~DOMWindowObserver() + { + } + + WebCore::DOMWindow* domWindow() const { return m_domWindow; } + + private: + void willDetachGlobalObjectFromFrame() override + { + // Clear the DOMWindowProperty first, and then notify the Frame observer. + DOMWindowProperty::willDetachGlobalObjectFromFrame(); + m_frameObserver.willDetachGlobalObjectFromFrame(); + } + + DOMObjectCacheFrameObserver& m_frameObserver; + WebCore::DOMWindow* m_domWindow; + }; + + static void objectFinalizedCallback(gpointer userData, GObject* finalizedObject) + { + DOMObjectCacheFrameObserver* observer = static_cast<DOMObjectCacheFrameObserver*>(userData); + observer->m_objects.removeFirstMatching([finalizedObject](DOMObjectCacheData* data) { + return data->object == finalizedObject; + }); + } + + void clear() + { + if (m_objects.isEmpty()) + return; + + auto objects = WTFMove(m_objects); + + // Deleting of DOM wrappers might end up deleting the wrapped core object which could cause some problems + // for example if a Document is deleted during the frame destruction, so we remove the weak references now + // and delete the objects on next run loop iteration. See https://bugs.webkit.org/show_bug.cgi?id=151700. + for (auto* data : objects) + g_object_weak_unref(data->object, DOMObjectCacheFrameObserver::objectFinalizedCallback, this); + + RunLoop::main().dispatch([objects] { + for (auto* data : objects) + data->clearObject(); + }); + } + + void willDetachPage() override + { + clear(); + } + + void frameDestroyed() override + { + clear(); + WebCore::Frame* frame = m_frame; + FrameDestructionObserver::frameDestroyed(); + domObjectCacheFrameObservers().remove(frame); + } + + void willDetachGlobalObjectFromFrame() + { + clear(); + m_domWindowObserver = nullptr; + } + + Vector<DOMObjectCacheData*, 8> m_objects; + std::unique_ptr<DOMWindowObserver> m_domWindowObserver; +}; + +typedef HashMap<void*, std::unique_ptr<DOMObjectCacheData>> DOMObjectMap; + +static DOMObjectMap& domObjects() +{ + static NeverDestroyed<DOMObjectMap> staticDOMObjects; + return staticDOMObjects; +} + +void DOMObjectCache::forget(void* objectHandle) +{ + ASSERT(domObjects().contains(objectHandle)); + domObjects().remove(objectHandle); +} + +void* DOMObjectCache::get(void* objectHandle) +{ + DOMObjectCacheData* data = domObjects().get(objectHandle); + return data ? data->refObject() : nullptr; +} + +void DOMObjectCache::put(void* objectHandle, void* wrapper) +{ + DOMObjectMap::AddResult result = domObjects().add(objectHandle, nullptr); + if (result.isNewEntry) + result.iterator->value = std::make_unique<DOMObjectCacheData>(G_OBJECT(wrapper)); +} + +void DOMObjectCache::put(WebCore::Node* objectHandle, void* wrapper) +{ + DOMObjectMap::AddResult result = domObjects().add(objectHandle, nullptr); + if (!result.isNewEntry) + return; + + result.iterator->value = std::make_unique<DOMObjectCacheData>(G_OBJECT(wrapper)); + if (WebCore::Frame* frame = objectHandle->document().frame()) + getOrCreateDOMObjectCacheFrameObserver(*frame).addObjectCacheData(*result.iterator->value); +} + +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h new file mode 100644 index 000000000..e3e9fc3ec --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef DOMObjectCache_h +#define DOMObjectCache_h + +namespace WebCore { +class Node; +}; + +namespace WebKit { +class DOMObjectCache { +public: + static void* get(void* objectHandle); + static void put(void* objectHandle, void* wrapper); + static void put(WebCore::Node* objectHandle, void* wrapper); + static void forget(void* objectHandle); +}; +} // namespace WebKit + +#endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp new file mode 100644 index 000000000..8814a5ab9 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2010, 2011 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "GObjectEventListener.h" + +#include "WebKitDOMEvent.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include <WebCore/Event.h> +#include <wtf/HashMap.h> + +using namespace WebCore; + +namespace WebKit { + +GObjectEventListener::GObjectEventListener(GObject* target, EventTarget* coreTarget, const char* domEventName, GClosure* handler, bool capture) + : EventListener(GObjectEventListenerType) + , m_target(target) + , m_coreTarget(coreTarget) + , m_domEventName(domEventName) + , m_handler(handler) + , m_capture(capture) +{ + ASSERT(m_coreTarget); + if (G_CLOSURE_NEEDS_MARSHAL(m_handler.get())) + g_closure_set_marshal(m_handler.get(), g_cclosure_marshal_generic); + g_object_weak_ref(m_target, reinterpret_cast<GWeakNotify>(GObjectEventListener::gobjectDestroyedCallback), this); +} + +GObjectEventListener::~GObjectEventListener() +{ + if (!m_coreTarget) + return; + g_object_weak_unref(m_target, reinterpret_cast<GWeakNotify>(GObjectEventListener::gobjectDestroyedCallback), this); +} + +void GObjectEventListener::gobjectDestroyed() +{ + ASSERT(m_coreTarget); + + // Protect 'this' class in case the 'm_coreTarget' holds the last reference, + // which may cause, inside removeEventListener(), free of this object + // and later use-after-free with the m_handler = 0; assignment. + RefPtr<GObjectEventListener> protectedThis(this); + + m_coreTarget->removeEventListener(m_domEventName.data(), *this, m_capture); + m_coreTarget = nullptr; + m_handler = nullptr; +} + +void GObjectEventListener::handleEvent(ScriptExecutionContext*, Event* event) +{ + GValue parameters[2] = { G_VALUE_INIT, G_VALUE_INIT }; + g_value_init(¶meters[0], WEBKIT_DOM_TYPE_EVENT_TARGET); + g_value_set_object(¶meters[0], m_target); + + GRefPtr<WebKitDOMEvent> domEvent = adoptGRef(WebKit::kit(event)); + g_value_init(¶meters[1], WEBKIT_DOM_TYPE_EVENT); + g_value_set_object(¶meters[1], domEvent.get()); + + g_closure_invoke(m_handler.get(), 0, 2, parameters, NULL); + g_value_unset(parameters + 0); + g_value_unset(parameters + 1); +} + +bool GObjectEventListener::operator==(const EventListener& listener) const +{ + if (const GObjectEventListener* gobjectEventListener = GObjectEventListener::cast(&listener)) + return m_target == gobjectEventListener->m_target + && reinterpret_cast<GCClosure*>(m_handler.get())->callback == reinterpret_cast<GCClosure*>(gobjectEventListener->m_handler.get())->callback; + + return false; +} + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.h new file mode 100644 index 000000000..02b3b99ba --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2010, 2011 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#pragma once + +#include <WebCore/EventListener.h> +#include <WebCore/EventTarget.h> +#include <wtf/RefPtr.h> +#include <wtf/glib/GRefPtr.h> +#include <wtf/text/CString.h> + +typedef struct _GObject GObject; +typedef struct _GClosure GClosure; + +namespace WebKit { + +class GObjectEventListener : public WebCore::EventListener { +public: + + static bool addEventListener(GObject* target, WebCore::EventTarget* coreTarget, const char* domEventName, GClosure* handler, bool useCapture) + { + Ref<GObjectEventListener> listener(adoptRef(*new GObjectEventListener(target, coreTarget, domEventName, handler, useCapture))); + return coreTarget->addEventListener(domEventName, WTFMove(listener), useCapture); + } + + static bool removeEventListener(GObject* target, WebCore::EventTarget* coreTarget, const char* domEventName, GClosure* handler, bool useCapture) + { + GObjectEventListener key(target, coreTarget, domEventName, handler, useCapture); + return coreTarget->removeEventListener(domEventName, key, useCapture); + } + + static void gobjectDestroyedCallback(GObjectEventListener* listener, GObject*) + { + listener->gobjectDestroyed(); + } + + static const GObjectEventListener* cast(const WebCore::EventListener* listener) + { + return listener->type() == GObjectEventListenerType + ? static_cast<const GObjectEventListener*>(listener) + : nullptr; + } + + bool operator==(const WebCore::EventListener& other) const override; + +private: + GObjectEventListener(GObject*, WebCore::EventTarget*, const char* domEventName, GClosure*, bool capture); + ~GObjectEventListener(); + void gobjectDestroyed(); + + void handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) override; + + GObject* m_target; + // We do not need to keep a reference to the m_coreTarget, because + // we only use it when the GObject and thus the m_coreTarget object is alive. + WebCore::EventTarget* m_coreTarget; + CString m_domEventName; + GRefPtr<GClosure> m_handler; + bool m_capture; +}; + +} // namespace WebKit + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp new file mode 100644 index 000000000..43ea1af77 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "GObjectNodeFilterCondition.h" + +#include "WebKitDOMNodePrivate.h" +#include <WebCore/NodeFilter.h> + +using namespace WebCore; + +namespace WebKit { + +GObjectNodeFilterCondition::~GObjectNodeFilterCondition() +{ + g_object_set_data(G_OBJECT(m_filter.get()), "webkit-core-node-filter", nullptr); +} + +short GObjectNodeFilterCondition::acceptNode(Node* node) const +{ + if (!node) + return NodeFilter::FILTER_REJECT; + return webkit_dom_node_filter_accept_node(m_filter.get(), WebKit::kit(node)); +} + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.h new file mode 100644 index 000000000..1ed1c7c39 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#pragma once + +#include "WebKitDOMNodeFilter.h" +#include <WebCore/NodeFilterCondition.h> +#include <wtf/glib/GRefPtr.h> + +namespace WebCore { +class Node; +} + +namespace WebKit { + +class GObjectNodeFilterCondition : public WebCore::NodeFilterCondition { +public: + + static Ref<GObjectNodeFilterCondition> create(WebKitDOMNodeFilter* filter) + { + return adoptRef(*new GObjectNodeFilterCondition(filter)); + } + + short acceptNode(WebCore::Node*) const override; + +private: + GObjectNodeFilterCondition(WebKitDOMNodeFilter* filter) + : m_filter(filter) + { + } + ~GObjectNodeFilterCondition(); + + GRefPtr<WebKitDOMNodeFilter> m_filter; +}; + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.cpp new file mode 100644 index 000000000..a4df82cbe --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "GObjectXPathNSResolver.h" + +#include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> + +namespace WebKit { + +GObjectXPathNSResolver::~GObjectXPathNSResolver() +{ +} + +String GObjectXPathNSResolver::lookupNamespaceURI(const String& prefix) +{ + return String::fromUTF8(webkit_dom_xpath_ns_resolver_lookup_namespace_uri(m_resolver.get(), prefix.utf8().data())); +} + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.h new file mode 100644 index 000000000..0dd5a5d79 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#pragma once + +#include "WebKitDOMXPathNSResolver.h" +#include <WebCore/XPathNSResolver.h> +#include <wtf/glib/GRefPtr.h> + +namespace WebKit { + +class GObjectXPathNSResolver : public WebCore::XPathNSResolver { +public: + + static Ref<GObjectXPathNSResolver> create(WebKitDOMXPathNSResolver* resolver) + { + return adoptRef(*new GObjectXPathNSResolver(resolver)); + } + + virtual ~GObjectXPathNSResolver(); + String lookupNamespaceURI(const String& prefix) override; + +private: + GObjectXPathNSResolver(WebKitDOMXPathNSResolver* resolver) + : m_resolver(resolver) + { + } + + GRefPtr<WebKitDOMXPathNSResolver> m_resolver; +}; + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp new file mode 100644 index 000000000..3bf8eba82 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp @@ -0,0 +1,310 @@ +/* + * 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 "WebKitDOMAttr.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 "WebKitDOMAttrPrivate.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> + +namespace WebKit { + +WebKitDOMAttr* kit(WebCore::Attr* obj) +{ + return WEBKIT_DOM_ATTR(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::Attr* core(WebKitDOMAttr* request) +{ + return request ? static_cast<WebCore::Attr*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMAttr* wrapAttr(WebCore::Attr* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_ATTR(g_object_new(WEBKIT_DOM_TYPE_ATTR, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_attr_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::Attr* coreTarget = static_cast<WebCore::Attr*>(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_attr_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Attr* coreTarget = static_cast<WebCore::Attr*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_attr_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Attr* coreTarget = static_cast<WebCore::Attr*>(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_attr_dispatch_event; + iface->add_event_listener = webkit_dom_attr_add_event_listener; + iface->remove_event_listener = webkit_dom_attr_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMAttr, webkit_dom_attr, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_NAME, + PROP_SPECIFIED, + PROP_VALUE, + PROP_OWNER_ELEMENT, + PROP_NAMESPACE_URI, + PROP_PREFIX, + PROP_LOCAL_NAME, +}; + +static void webkit_dom_attr_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMAttr* self = WEBKIT_DOM_ATTR(object); + + switch (propertyId) { + case PROP_VALUE: + webkit_dom_attr_set_value(self, g_value_get_string(value), nullptr); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_attr_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMAttr* self = WEBKIT_DOM_ATTR(object); + + switch (propertyId) { + case PROP_NAME: + g_value_take_string(value, webkit_dom_attr_get_name(self)); + break; + case PROP_SPECIFIED: + g_value_set_boolean(value, webkit_dom_attr_get_specified(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_attr_get_value(self)); + break; + case PROP_OWNER_ELEMENT: + g_value_set_object(value, webkit_dom_attr_get_owner_element(self)); + break; + case PROP_NAMESPACE_URI: + g_value_take_string(value, webkit_dom_attr_get_namespace_uri(self)); + break; + case PROP_PREFIX: + g_value_take_string(value, webkit_dom_attr_get_prefix(self)); + break; + case PROP_LOCAL_NAME: + g_value_take_string(value, webkit_dom_attr_get_local_name(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_attr_class_init(WebKitDOMAttrClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_attr_set_property; + gobjectClass->get_property = webkit_dom_attr_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "Attr:name", + "read-only gchar* Attr:name", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SPECIFIED, + g_param_spec_boolean( + "specified", + "Attr:specified", + "read-only gboolean Attr:specified", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "Attr:value", + "read-write gchar* Attr:value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_OWNER_ELEMENT, + g_param_spec_object( + "owner-element", + "Attr:owner-element", + "read-only WebKitDOMElement* Attr:owner-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAMESPACE_URI, + g_param_spec_string( + "namespace-uri", + "Attr:namespace-uri", + "read-only gchar* Attr:namespace-uri", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PREFIX, + g_param_spec_string( + "prefix", + "Attr:prefix", + "read-only gchar* Attr:prefix", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LOCAL_NAME, + g_param_spec_string( + "local-name", + "Attr:local-name", + "read-only gchar* Attr:local-name", + "", + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_attr_init(WebKitDOMAttr* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_attr_get_name(WebKitDOMAttr* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(self), 0); + WebCore::Attr* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->name()); + return result; +} + +gboolean webkit_dom_attr_get_specified(WebKitDOMAttr* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(self), FALSE); + WebCore::Attr* item = WebKit::core(self); + gboolean result = item->specified(); + return result; +} + +gchar* webkit_dom_attr_get_value(WebKitDOMAttr* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(self), 0); + WebCore::Attr* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->valueForBindings()); + return result; +} + +void webkit_dom_attr_set_value(WebKitDOMAttr* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ATTR(self)); + g_return_if_fail(value); + UNUSED_PARAM(error); + WebCore::Attr* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setValueForBindings(convertedValue); +} + +WebKitDOMElement* webkit_dom_attr_get_owner_element(WebKitDOMAttr* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(self), 0); + WebCore::Attr* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->ownerElement()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_attr_get_namespace_uri(WebKitDOMAttr* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(self), 0); + WebCore::Attr* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->namespaceURI()); + return result; +} + +gchar* webkit_dom_attr_get_prefix(WebKitDOMAttr* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(self), 0); + WebCore::Attr* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->prefix()); + return result; +} + +gchar* webkit_dom_attr_get_local_name(WebKitDOMAttr* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(self), 0); + WebCore::Attr* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->localName()); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.h new file mode 100644 index 000000000..98597fa69 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.h @@ -0,0 +1,132 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMAttr_h +#define WebKitDOMAttr_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_ATTR (webkit_dom_attr_get_type()) +#define WEBKIT_DOM_ATTR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_ATTR, WebKitDOMAttr)) +#define WEBKIT_DOM_ATTR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_ATTR, WebKitDOMAttrClass) +#define WEBKIT_DOM_IS_ATTR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_ATTR)) +#define WEBKIT_DOM_IS_ATTR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_ATTR)) +#define WEBKIT_DOM_ATTR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_ATTR, WebKitDOMAttrClass)) + +struct _WebKitDOMAttr { + WebKitDOMNode parent_instance; +}; + +struct _WebKitDOMAttrClass { + WebKitDOMNodeClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_attr_get_type(void); + +/** + * webkit_dom_attr_get_name: + * @self: A #WebKitDOMAttr + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_attr_get_name(WebKitDOMAttr* self); + +/** + * webkit_dom_attr_get_specified: + * @self: A #WebKitDOMAttr + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_attr_get_specified(WebKitDOMAttr* self); + +/** + * webkit_dom_attr_get_value: + * @self: A #WebKitDOMAttr + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_attr_get_value(WebKitDOMAttr* self); + +/** + * webkit_dom_attr_set_value: + * @self: A #WebKitDOMAttr + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_attr_set_value(WebKitDOMAttr* self, const gchar* value, GError** error); + +/** + * webkit_dom_attr_get_owner_element: + * @self: A #WebKitDOMAttr + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_attr_get_owner_element(WebKitDOMAttr* self); + +/** + * webkit_dom_attr_get_namespace_uri: + * @self: A #WebKitDOMAttr + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_attr_get_namespace_uri(WebKitDOMAttr* self); + +/** + * webkit_dom_attr_get_prefix: + * @self: A #WebKitDOMAttr + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_attr_get_prefix(WebKitDOMAttr* self); + +/** + * webkit_dom_attr_get_local_name: + * @self: A #WebKitDOMAttr + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_attr_get_local_name(WebKitDOMAttr* self); + +G_END_DECLS + +#endif /* WebKitDOMAttr_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttrPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttrPrivate.h new file mode 100644 index 000000000..9fbc83fc1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttrPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMAttrPrivate_h +#define WebKitDOMAttrPrivate_h + +#include <WebCore/Attr.h> +#include <webkitdom/WebKitDOMAttr.h> + +namespace WebKit { +WebKitDOMAttr* wrapAttr(WebCore::Attr*); +WebKitDOMAttr* kit(WebCore::Attr*); +WebCore::Attr* core(WebKitDOMAttr*); +} // namespace WebKit + +#endif /* WebKitDOMAttrPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp new file mode 100644 index 000000000..0af2f8984 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp @@ -0,0 +1,141 @@ +/* + * 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 "WebKitDOMBlob.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMBlobPrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_BLOB_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_BLOB, WebKitDOMBlobPrivate) + +typedef struct _WebKitDOMBlobPrivate { + RefPtr<WebCore::Blob> coreObject; +} WebKitDOMBlobPrivate; + +namespace WebKit { + +WebKitDOMBlob* kit(WebCore::Blob* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_BLOB(ret); + + return wrap(obj); +} + +WebCore::Blob* core(WebKitDOMBlob* request) +{ + return request ? static_cast<WebCore::Blob*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMBlob* wrapBlob(WebCore::Blob* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_BLOB(g_object_new(WEBKIT_DOM_TYPE_BLOB, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMBlob, webkit_dom_blob, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_SIZE, +}; + +static void webkit_dom_blob_finalize(GObject* object) +{ + WebKitDOMBlobPrivate* priv = WEBKIT_DOM_BLOB_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMBlobPrivate(); + G_OBJECT_CLASS(webkit_dom_blob_parent_class)->finalize(object); +} + +static void webkit_dom_blob_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMBlob* self = WEBKIT_DOM_BLOB(object); + + switch (propertyId) { + case PROP_SIZE: + g_value_set_uint64(value, webkit_dom_blob_get_size(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_blob_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_blob_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMBlobPrivate* priv = WEBKIT_DOM_BLOB_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::Blob*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_blob_class_init(WebKitDOMBlobClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMBlobPrivate)); + gobjectClass->constructor = webkit_dom_blob_constructor; + gobjectClass->finalize = webkit_dom_blob_finalize; + gobjectClass->get_property = webkit_dom_blob_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_SIZE, + g_param_spec_uint64( + "size", + "Blob:size", + "read-only guint64 Blob:size", + 0, G_MAXUINT64, 0, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_blob_init(WebKitDOMBlob* request) +{ + WebKitDOMBlobPrivate* priv = WEBKIT_DOM_BLOB_GET_PRIVATE(request); + new (priv) WebKitDOMBlobPrivate(); +} + +guint64 webkit_dom_blob_get_size(WebKitDOMBlob* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_BLOB(self), 0); + WebCore::Blob* item = WebKit::core(self); + guint64 result = item->size(); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.h new file mode 100644 index 000000000..ac508014e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.h @@ -0,0 +1,62 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMBlob_h +#define WebKitDOMBlob_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_BLOB (webkit_dom_blob_get_type()) +#define WEBKIT_DOM_BLOB(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_BLOB, WebKitDOMBlob)) +#define WEBKIT_DOM_BLOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_BLOB, WebKitDOMBlobClass) +#define WEBKIT_DOM_IS_BLOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_BLOB)) +#define WEBKIT_DOM_IS_BLOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_BLOB)) +#define WEBKIT_DOM_BLOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_BLOB, WebKitDOMBlobClass)) + +struct _WebKitDOMBlob { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMBlobClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_blob_get_type(void); + +/** + * webkit_dom_blob_get_size: + * @self: A #WebKitDOMBlob + * + * Returns: A #guint64 +**/ +WEBKIT_API guint64 +webkit_dom_blob_get_size(WebKitDOMBlob* self); + +G_END_DECLS + +#endif /* WebKitDOMBlob_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlobPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlobPrivate.h new file mode 100644 index 000000000..1ae3a7cb1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlobPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMBlobPrivate_h +#define WebKitDOMBlobPrivate_h + +#include <WebCore/Blob.h> +#include <webkitdom/WebKitDOMBlob.h> + +namespace WebKit { +WebKitDOMBlob* wrapBlob(WebCore::Blob*); +WebKitDOMBlob* kit(WebCore::Blob*); +WebCore::Blob* core(WebKitDOMBlob*); +} // namespace WebKit + +#endif /* WebKitDOMBlobPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp new file mode 100644 index 000000000..3c5887476 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp @@ -0,0 +1,105 @@ +/* + * 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 "WebKitDOMCDATASection.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 "WebKitDOMCDATASectionPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMCDATASection* kit(WebCore::CDATASection* obj) +{ + return WEBKIT_DOM_CDATA_SECTION(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::CDATASection* core(WebKitDOMCDATASection* request) +{ + return request ? static_cast<WebCore::CDATASection*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMCDATASection* wrapCDATASection(WebCore::CDATASection* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_CDATA_SECTION(g_object_new(WEBKIT_DOM_TYPE_CDATA_SECTION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_cdata_section_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::CDATASection* coreTarget = static_cast<WebCore::CDATASection*>(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_cdata_section_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::CDATASection* coreTarget = static_cast<WebCore::CDATASection*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_cdata_section_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::CDATASection* coreTarget = static_cast<WebCore::CDATASection*>(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_cdata_section_dispatch_event; + iface->add_event_listener = webkit_dom_cdata_section_add_event_listener; + iface->remove_event_listener = webkit_dom_cdata_section_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMCDATASection, webkit_dom_cdata_section, WEBKIT_DOM_TYPE_TEXT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +static void webkit_dom_cdata_section_class_init(WebKitDOMCDATASectionClass* requestClass) +{ + UNUSED_PARAM(requestClass); +} + +static void webkit_dom_cdata_section_init(WebKitDOMCDATASection* request) +{ + UNUSED_PARAM(request); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h new file mode 100644 index 000000000..6f4248927 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h @@ -0,0 +1,53 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCDATASection_h +#define WebKitDOMCDATASection_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMText.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_CDATA_SECTION (webkit_dom_cdata_section_get_type()) +#define WEBKIT_DOM_CDATA_SECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_CDATA_SECTION, WebKitDOMCDATASection)) +#define WEBKIT_DOM_CDATA_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_CDATA_SECTION, WebKitDOMCDATASectionClass) +#define WEBKIT_DOM_IS_CDATA_SECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_CDATA_SECTION)) +#define WEBKIT_DOM_IS_CDATA_SECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_CDATA_SECTION)) +#define WEBKIT_DOM_CDATA_SECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_CDATA_SECTION, WebKitDOMCDATASectionClass)) + +struct _WebKitDOMCDATASection { + WebKitDOMText parent_instance; +}; + +struct _WebKitDOMCDATASectionClass { + WebKitDOMTextClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_cdata_section_get_type(void); + +G_END_DECLS + +#endif /* WebKitDOMCDATASection_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASectionPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASectionPrivate.h new file mode 100644 index 000000000..d7b9672ca --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASectionPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCDATASectionPrivate_h +#define WebKitDOMCDATASectionPrivate_h + +#include <WebCore/CDATASection.h> +#include <webkitdom/WebKitDOMCDATASection.h> + +namespace WebKit { +WebKitDOMCDATASection* wrapCDATASection(WebCore::CDATASection*); +WebKitDOMCDATASection* kit(WebCore::CDATASection*); +WebCore::CDATASection* core(WebKitDOMCDATASection*); +} // namespace WebKit + +#endif /* WebKitDOMCDATASectionPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp new file mode 100644 index 000000000..e3318bd43 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp @@ -0,0 +1,243 @@ +/* + * 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 "WebKitDOMCSSRule.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMCSSRulePrivate.h" +#include "WebKitDOMCSSStyleSheetPrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_CSS_RULE_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_CSS_RULE, WebKitDOMCSSRulePrivate) + +typedef struct _WebKitDOMCSSRulePrivate { + RefPtr<WebCore::CSSRule> coreObject; +} WebKitDOMCSSRulePrivate; + +namespace WebKit { + +WebKitDOMCSSRule* kit(WebCore::CSSRule* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_CSS_RULE(ret); + + return wrapCSSRule(obj); +} + +WebCore::CSSRule* core(WebKitDOMCSSRule* request) +{ + return request ? static_cast<WebCore::CSSRule*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMCSSRule* wrapCSSRule(WebCore::CSSRule* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_CSS_RULE(g_object_new(WEBKIT_DOM_TYPE_CSS_RULE, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMCSSRule, webkit_dom_css_rule, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_TYPE, + PROP_CSS_TEXT, + PROP_PARENT_STYLE_SHEET, + PROP_PARENT_RULE, +}; + +static void webkit_dom_css_rule_finalize(GObject* object) +{ + WebKitDOMCSSRulePrivate* priv = WEBKIT_DOM_CSS_RULE_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMCSSRulePrivate(); + G_OBJECT_CLASS(webkit_dom_css_rule_parent_class)->finalize(object); +} + +static void webkit_dom_css_rule_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSRule* self = WEBKIT_DOM_CSS_RULE(object); + + switch (propertyId) { + case PROP_CSS_TEXT: + webkit_dom_css_rule_set_css_text(self, g_value_get_string(value), nullptr); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_css_rule_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSRule* self = WEBKIT_DOM_CSS_RULE(object); + + switch (propertyId) { + case PROP_TYPE: + g_value_set_uint(value, webkit_dom_css_rule_get_rule_type(self)); + break; + case PROP_CSS_TEXT: + g_value_take_string(value, webkit_dom_css_rule_get_css_text(self)); + break; + case PROP_PARENT_STYLE_SHEET: + g_value_set_object(value, webkit_dom_css_rule_get_parent_style_sheet(self)); + break; + case PROP_PARENT_RULE: + g_value_set_object(value, webkit_dom_css_rule_get_parent_rule(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_css_rule_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_css_rule_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMCSSRulePrivate* priv = WEBKIT_DOM_CSS_RULE_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::CSSRule*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_css_rule_class_init(WebKitDOMCSSRuleClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMCSSRulePrivate)); + gobjectClass->constructor = webkit_dom_css_rule_constructor; + gobjectClass->finalize = webkit_dom_css_rule_finalize; + gobjectClass->set_property = webkit_dom_css_rule_set_property; + gobjectClass->get_property = webkit_dom_css_rule_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_uint( + "type", + "CSSRule:type", + "read-only gushort CSSRule:type", + 0, G_MAXUINT, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CSS_TEXT, + g_param_spec_string( + "css-text", + "CSSRule:css-text", + "read-write gchar* CSSRule:css-text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PARENT_STYLE_SHEET, + g_param_spec_object( + "parent-style-sheet", + "CSSRule:parent-style-sheet", + "read-only WebKitDOMCSSStyleSheet* CSSRule:parent-style-sheet", + WEBKIT_DOM_TYPE_CSS_STYLE_SHEET, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PARENT_RULE, + g_param_spec_object( + "parent-rule", + "CSSRule:parent-rule", + "read-only WebKitDOMCSSRule* CSSRule:parent-rule", + WEBKIT_DOM_TYPE_CSS_RULE, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_css_rule_init(WebKitDOMCSSRule* request) +{ + WebKitDOMCSSRulePrivate* priv = WEBKIT_DOM_CSS_RULE_GET_PRIVATE(request); + new (priv) WebKitDOMCSSRulePrivate(); +} + +gushort webkit_dom_css_rule_get_rule_type(WebKitDOMCSSRule* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_RULE(self), 0); + WebCore::CSSRule* item = WebKit::core(self); + gushort result = item->type(); + return result; +} + +gchar* webkit_dom_css_rule_get_css_text(WebKitDOMCSSRule* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_RULE(self), 0); + WebCore::CSSRule* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->cssText()); + return result; +} + +void webkit_dom_css_rule_set_css_text(WebKitDOMCSSRule* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CSS_RULE(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::CSSRule* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setCssText(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMCSSStyleSheet* webkit_dom_css_rule_get_parent_style_sheet(WebKitDOMCSSRule* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_RULE(self), 0); + WebCore::CSSRule* item = WebKit::core(self); + RefPtr<WebCore::CSSStyleSheet> gobjectResult = WTF::getPtr(item->parentStyleSheet()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMCSSRule* webkit_dom_css_rule_get_parent_rule(WebKitDOMCSSRule* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_RULE(self), 0); + WebCore::CSSRule* item = WebKit::core(self); + RefPtr<WebCore::CSSRule> gobjectResult = WTF::getPtr(item->parentRule()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h new file mode 100644 index 000000000..430f6f674 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h @@ -0,0 +1,134 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCSSRule_h +#define WebKitDOMCSSRule_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_CSS_RULE (webkit_dom_css_rule_get_type()) +#define WEBKIT_DOM_CSS_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_CSS_RULE, WebKitDOMCSSRule)) +#define WEBKIT_DOM_CSS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_CSS_RULE, WebKitDOMCSSRuleClass) +#define WEBKIT_DOM_IS_CSS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_CSS_RULE)) +#define WEBKIT_DOM_IS_CSS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_CSS_RULE)) +#define WEBKIT_DOM_CSS_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_CSS_RULE, WebKitDOMCSSRuleClass)) + +/** + * WEBKIT_DOM_CSS_RULE_UNKNOWN_RULE: + */ +#define WEBKIT_DOM_CSS_RULE_UNKNOWN_RULE 0 + +/** + * WEBKIT_DOM_CSS_RULE_STYLE_RULE: + */ +#define WEBKIT_DOM_CSS_RULE_STYLE_RULE 1 + +/** + * WEBKIT_DOM_CSS_RULE_CHARSET_RULE: + */ +#define WEBKIT_DOM_CSS_RULE_CHARSET_RULE 2 + +/** + * WEBKIT_DOM_CSS_RULE_IMPORT_RULE: + */ +#define WEBKIT_DOM_CSS_RULE_IMPORT_RULE 3 + +/** + * WEBKIT_DOM_CSS_RULE_MEDIA_RULE: + */ +#define WEBKIT_DOM_CSS_RULE_MEDIA_RULE 4 + +/** + * WEBKIT_DOM_CSS_RULE_FONT_FACE_RULE: + */ +#define WEBKIT_DOM_CSS_RULE_FONT_FACE_RULE 5 + +/** + * WEBKIT_DOM_CSS_RULE_PAGE_RULE: + */ +#define WEBKIT_DOM_CSS_RULE_PAGE_RULE 6 + +struct _WebKitDOMCSSRule { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMCSSRuleClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_css_rule_get_type(void); + +/** + * webkit_dom_css_rule_get_rule_type: + * @self: A #WebKitDOMCSSRule + * + * Returns: A #gushort +**/ +WEBKIT_API gushort +webkit_dom_css_rule_get_rule_type(WebKitDOMCSSRule* self); + +/** + * webkit_dom_css_rule_get_css_text: + * @self: A #WebKitDOMCSSRule + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_rule_get_css_text(WebKitDOMCSSRule* self); + +/** + * webkit_dom_css_rule_set_css_text: + * @self: A #WebKitDOMCSSRule + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_css_rule_set_css_text(WebKitDOMCSSRule* self, const gchar* value, GError** error); + +/** + * webkit_dom_css_rule_get_parent_style_sheet: + * @self: A #WebKitDOMCSSRule + * + * Returns: (transfer full): A #WebKitDOMCSSStyleSheet +**/ +WEBKIT_API WebKitDOMCSSStyleSheet* +webkit_dom_css_rule_get_parent_style_sheet(WebKitDOMCSSRule* self); + +/** + * webkit_dom_css_rule_get_parent_rule: + * @self: A #WebKitDOMCSSRule + * + * Returns: (transfer full): A #WebKitDOMCSSRule +**/ +WEBKIT_API WebKitDOMCSSRule* +webkit_dom_css_rule_get_parent_rule(WebKitDOMCSSRule* self); + +G_END_DECLS + +#endif /* WebKitDOMCSSRule_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp new file mode 100644 index 000000000..ca0a0b6d3 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp @@ -0,0 +1,153 @@ +/* + * 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 "WebKitDOMCSSRuleList.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMCSSRuleListPrivate.h" +#include "WebKitDOMCSSRulePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_CSS_RULE_LIST_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_CSS_RULE_LIST, WebKitDOMCSSRuleListPrivate) + +typedef struct _WebKitDOMCSSRuleListPrivate { + RefPtr<WebCore::CSSRuleList> coreObject; +} WebKitDOMCSSRuleListPrivate; + +namespace WebKit { + +WebKitDOMCSSRuleList* kit(WebCore::CSSRuleList* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_CSS_RULE_LIST(ret); + + return wrapCSSRuleList(obj); +} + +WebCore::CSSRuleList* core(WebKitDOMCSSRuleList* request) +{ + return request ? static_cast<WebCore::CSSRuleList*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMCSSRuleList* wrapCSSRuleList(WebCore::CSSRuleList* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_CSS_RULE_LIST(g_object_new(WEBKIT_DOM_TYPE_CSS_RULE_LIST, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMCSSRuleList, webkit_dom_css_rule_list, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_LENGTH, +}; + +static void webkit_dom_css_rule_list_finalize(GObject* object) +{ + WebKitDOMCSSRuleListPrivate* priv = WEBKIT_DOM_CSS_RULE_LIST_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMCSSRuleListPrivate(); + G_OBJECT_CLASS(webkit_dom_css_rule_list_parent_class)->finalize(object); +} + +static void webkit_dom_css_rule_list_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSRuleList* self = WEBKIT_DOM_CSS_RULE_LIST(object); + + switch (propertyId) { + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_css_rule_list_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_css_rule_list_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_css_rule_list_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMCSSRuleListPrivate* priv = WEBKIT_DOM_CSS_RULE_LIST_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::CSSRuleList*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_css_rule_list_class_init(WebKitDOMCSSRuleListClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMCSSRuleListPrivate)); + gobjectClass->constructor = webkit_dom_css_rule_list_constructor; + gobjectClass->finalize = webkit_dom_css_rule_list_finalize; + gobjectClass->get_property = webkit_dom_css_rule_list_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "CSSRuleList:length", + "read-only gulong CSSRuleList:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_css_rule_list_init(WebKitDOMCSSRuleList* request) +{ + WebKitDOMCSSRuleListPrivate* priv = WEBKIT_DOM_CSS_RULE_LIST_GET_PRIVATE(request); + new (priv) WebKitDOMCSSRuleListPrivate(); +} + +WebKitDOMCSSRule* webkit_dom_css_rule_list_item(WebKitDOMCSSRuleList* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_RULE_LIST(self), 0); + WebCore::CSSRuleList* item = WebKit::core(self); + RefPtr<WebCore::CSSRule> gobjectResult = WTF::getPtr(item->item(index)); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_css_rule_list_get_length(WebKitDOMCSSRuleList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_RULE_LIST(self), 0); + WebCore::CSSRuleList* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.h new file mode 100644 index 000000000..04deb0538 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.h @@ -0,0 +1,72 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCSSRuleList_h +#define WebKitDOMCSSRuleList_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_CSS_RULE_LIST (webkit_dom_css_rule_list_get_type()) +#define WEBKIT_DOM_CSS_RULE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_CSS_RULE_LIST, WebKitDOMCSSRuleList)) +#define WEBKIT_DOM_CSS_RULE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_CSS_RULE_LIST, WebKitDOMCSSRuleListClass) +#define WEBKIT_DOM_IS_CSS_RULE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_CSS_RULE_LIST)) +#define WEBKIT_DOM_IS_CSS_RULE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_CSS_RULE_LIST)) +#define WEBKIT_DOM_CSS_RULE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_CSS_RULE_LIST, WebKitDOMCSSRuleListClass)) + +struct _WebKitDOMCSSRuleList { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMCSSRuleListClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_css_rule_list_get_type(void); + +/** + * webkit_dom_css_rule_list_item: + * @self: A #WebKitDOMCSSRuleList + * @index: A #gulong + * + * Returns: (transfer full): A #WebKitDOMCSSRule +**/ +WEBKIT_API WebKitDOMCSSRule* +webkit_dom_css_rule_list_item(WebKitDOMCSSRuleList* self, gulong index); + +/** + * webkit_dom_css_rule_list_get_length: + * @self: A #WebKitDOMCSSRuleList + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_css_rule_list_get_length(WebKitDOMCSSRuleList* self); + +G_END_DECLS + +#endif /* WebKitDOMCSSRuleList_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleListPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleListPrivate.h new file mode 100644 index 000000000..f02d3bad7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleListPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCSSRuleListPrivate_h +#define WebKitDOMCSSRuleListPrivate_h + +#include <WebCore/CSSRuleList.h> +#include <webkitdom/WebKitDOMCSSRuleList.h> + +namespace WebKit { +WebKitDOMCSSRuleList* wrapCSSRuleList(WebCore::CSSRuleList*); +WebKitDOMCSSRuleList* kit(WebCore::CSSRuleList*); +WebCore::CSSRuleList* core(WebKitDOMCSSRuleList*); +} // namespace WebKit + +#endif /* WebKitDOMCSSRuleListPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRulePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRulePrivate.h new file mode 100644 index 000000000..7c6d7fd3e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRulePrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCSSRulePrivate_h +#define WebKitDOMCSSRulePrivate_h + +#include <WebCore/CSSRule.h> +#include <webkitdom/WebKitDOMCSSRule.h> + +namespace WebKit { +WebKitDOMCSSRule* wrapCSSRule(WebCore::CSSRule*); +WebKitDOMCSSRule* kit(WebCore::CSSRule*); +WebCore::CSSRule* core(WebKitDOMCSSRule*); +} // namespace WebKit + +#endif /* WebKitDOMCSSRulePrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp new file mode 100644 index 000000000..d4844e659 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp @@ -0,0 +1,306 @@ +/* + * 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 "WebKitDOMCSSStyleDeclaration.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMCSSRulePrivate.h" +#include "WebKitDOMCSSStyleDeclarationPrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_CSS_STYLE_DECLARATION_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION, WebKitDOMCSSStyleDeclarationPrivate) + +typedef struct _WebKitDOMCSSStyleDeclarationPrivate { + RefPtr<WebCore::CSSStyleDeclaration> coreObject; +} WebKitDOMCSSStyleDeclarationPrivate; + +namespace WebKit { + +WebKitDOMCSSStyleDeclaration* kit(WebCore::CSSStyleDeclaration* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_CSS_STYLE_DECLARATION(ret); + + return wrapCSSStyleDeclaration(obj); +} + +WebCore::CSSStyleDeclaration* core(WebKitDOMCSSStyleDeclaration* request) +{ + return request ? static_cast<WebCore::CSSStyleDeclaration*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMCSSStyleDeclaration* wrapCSSStyleDeclaration(WebCore::CSSStyleDeclaration* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_CSS_STYLE_DECLARATION(g_object_new(WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMCSSStyleDeclaration, webkit_dom_css_style_declaration, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_CSS_TEXT, + PROP_LENGTH, + PROP_PARENT_RULE, +}; + +static void webkit_dom_css_style_declaration_finalize(GObject* object) +{ + WebKitDOMCSSStyleDeclarationPrivate* priv = WEBKIT_DOM_CSS_STYLE_DECLARATION_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMCSSStyleDeclarationPrivate(); + G_OBJECT_CLASS(webkit_dom_css_style_declaration_parent_class)->finalize(object); +} + +static void webkit_dom_css_style_declaration_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSStyleDeclaration* self = WEBKIT_DOM_CSS_STYLE_DECLARATION(object); + + switch (propertyId) { + case PROP_CSS_TEXT: + webkit_dom_css_style_declaration_set_css_text(self, g_value_get_string(value), nullptr); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_css_style_declaration_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSStyleDeclaration* self = WEBKIT_DOM_CSS_STYLE_DECLARATION(object); + + switch (propertyId) { + case PROP_CSS_TEXT: + g_value_take_string(value, webkit_dom_css_style_declaration_get_css_text(self)); + break; + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_css_style_declaration_get_length(self)); + break; + case PROP_PARENT_RULE: + g_value_set_object(value, webkit_dom_css_style_declaration_get_parent_rule(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_css_style_declaration_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_css_style_declaration_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMCSSStyleDeclarationPrivate* priv = WEBKIT_DOM_CSS_STYLE_DECLARATION_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::CSSStyleDeclaration*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_css_style_declaration_class_init(WebKitDOMCSSStyleDeclarationClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMCSSStyleDeclarationPrivate)); + gobjectClass->constructor = webkit_dom_css_style_declaration_constructor; + gobjectClass->finalize = webkit_dom_css_style_declaration_finalize; + gobjectClass->set_property = webkit_dom_css_style_declaration_set_property; + gobjectClass->get_property = webkit_dom_css_style_declaration_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CSS_TEXT, + g_param_spec_string( + "css-text", + "CSSStyleDeclaration:css-text", + "read-write gchar* CSSStyleDeclaration:css-text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "CSSStyleDeclaration:length", + "read-only gulong CSSStyleDeclaration:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PARENT_RULE, + g_param_spec_object( + "parent-rule", + "CSSStyleDeclaration:parent-rule", + "read-only WebKitDOMCSSRule* CSSStyleDeclaration:parent-rule", + WEBKIT_DOM_TYPE_CSS_RULE, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_css_style_declaration_init(WebKitDOMCSSStyleDeclaration* request) +{ + WebKitDOMCSSStyleDeclarationPrivate* priv = WEBKIT_DOM_CSS_STYLE_DECLARATION_GET_PRIVATE(request); + new (priv) WebKitDOMCSSStyleDeclarationPrivate(); +} + +gchar* webkit_dom_css_style_declaration_get_property_value(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + g_return_val_if_fail(propertyName, 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + WTF::String convertedPropertyName = WTF::String::fromUTF8(propertyName); + gchar* result = convertToUTF8String(item->getPropertyValue(convertedPropertyName)); + return result; +} + +gchar* webkit_dom_css_style_declaration_remove_property(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + g_return_val_if_fail(propertyName, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + WTF::String convertedPropertyName = WTF::String::fromUTF8(propertyName); + auto result = item->removeProperty(convertedPropertyName); + if (result.hasException()) + return nullptr; + return convertToUTF8String(result.releaseReturnValue()); +} + +gchar* webkit_dom_css_style_declaration_get_property_priority(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + g_return_val_if_fail(propertyName, 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + WTF::String convertedPropertyName = WTF::String::fromUTF8(propertyName); + gchar* result = convertToUTF8String(item->getPropertyPriority(convertedPropertyName)); + return result; +} + +void webkit_dom_css_style_declaration_set_property(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName, const gchar* value, const gchar* priority, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self)); + g_return_if_fail(propertyName); + g_return_if_fail(value); + g_return_if_fail(priority); + g_return_if_fail(!error || !*error); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + WTF::String convertedPropertyName = WTF::String::fromUTF8(propertyName); + WTF::String convertedValue = WTF::String::fromUTF8(value); + WTF::String convertedPriority = WTF::String::fromUTF8(priority); + auto result = item->setProperty(convertedPropertyName, convertedValue, convertedPriority); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_css_style_declaration_item(WebKitDOMCSSStyleDeclaration* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->item(index)); + return result; +} + +gchar* webkit_dom_css_style_declaration_get_property_shorthand(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + g_return_val_if_fail(propertyName, 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + WTF::String convertedPropertyName = WTF::String::fromUTF8(propertyName); + gchar* result = convertToUTF8String(item->getPropertyShorthand(convertedPropertyName)); + return result; +} + +gboolean webkit_dom_css_style_declaration_is_property_implicit(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), FALSE); + g_return_val_if_fail(propertyName, FALSE); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + WTF::String convertedPropertyName = WTF::String::fromUTF8(propertyName); + gboolean result = item->isPropertyImplicit(convertedPropertyName); + return result; +} + +gchar* webkit_dom_css_style_declaration_get_css_text(WebKitDOMCSSStyleDeclaration* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->cssText()); + return result; +} + +void webkit_dom_css_style_declaration_set_css_text(WebKitDOMCSSStyleDeclaration* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setCssText(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gulong webkit_dom_css_style_declaration_get_length(WebKitDOMCSSStyleDeclaration* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + +WebKitDOMCSSRule* webkit_dom_css_style_declaration_get_parent_rule(WebKitDOMCSSStyleDeclaration* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(self), 0); + WebCore::CSSStyleDeclaration* item = WebKit::core(self); + RefPtr<WebCore::CSSRule> gobjectResult = WTF::getPtr(item->parentRule()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.h new file mode 100644 index 000000000..88fe7b85f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.h @@ -0,0 +1,163 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCSSStyleDeclaration_h +#define WebKitDOMCSSStyleDeclaration_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION (webkit_dom_css_style_declaration_get_type()) +#define WEBKIT_DOM_CSS_STYLE_DECLARATION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION, WebKitDOMCSSStyleDeclaration)) +#define WEBKIT_DOM_CSS_STYLE_DECLARATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION, WebKitDOMCSSStyleDeclarationClass) +#define WEBKIT_DOM_IS_CSS_STYLE_DECLARATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION)) +#define WEBKIT_DOM_IS_CSS_STYLE_DECLARATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION)) +#define WEBKIT_DOM_CSS_STYLE_DECLARATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION, WebKitDOMCSSStyleDeclarationClass)) + +struct _WebKitDOMCSSStyleDeclaration { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMCSSStyleDeclarationClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_css_style_declaration_get_type(void); + +/** + * webkit_dom_css_style_declaration_get_property_value: + * @self: A #WebKitDOMCSSStyleDeclaration + * @propertyName: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_style_declaration_get_property_value(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName); + +/** + * webkit_dom_css_style_declaration_remove_property: + * @self: A #WebKitDOMCSSStyleDeclaration + * @propertyName: A #gchar + * @error: #GError + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_style_declaration_remove_property(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName, GError** error); + +/** + * webkit_dom_css_style_declaration_get_property_priority: + * @self: A #WebKitDOMCSSStyleDeclaration + * @propertyName: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_style_declaration_get_property_priority(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName); + +/** + * webkit_dom_css_style_declaration_set_property: + * @self: A #WebKitDOMCSSStyleDeclaration + * @propertyName: A #gchar + * @value: A #gchar + * @priority: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_css_style_declaration_set_property(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName, const gchar* value, const gchar* priority, GError** error); + +/** + * webkit_dom_css_style_declaration_item: + * @self: A #WebKitDOMCSSStyleDeclaration + * @index: A #gulong + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_style_declaration_item(WebKitDOMCSSStyleDeclaration* self, gulong index); + +/** + * webkit_dom_css_style_declaration_get_property_shorthand: + * @self: A #WebKitDOMCSSStyleDeclaration + * @propertyName: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_style_declaration_get_property_shorthand(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName); + +/** + * webkit_dom_css_style_declaration_is_property_implicit: + * @self: A #WebKitDOMCSSStyleDeclaration + * @propertyName: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_css_style_declaration_is_property_implicit(WebKitDOMCSSStyleDeclaration* self, const gchar* propertyName); + +/** + * webkit_dom_css_style_declaration_get_css_text: + * @self: A #WebKitDOMCSSStyleDeclaration + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_style_declaration_get_css_text(WebKitDOMCSSStyleDeclaration* self); + +/** + * webkit_dom_css_style_declaration_set_css_text: + * @self: A #WebKitDOMCSSStyleDeclaration + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_css_style_declaration_set_css_text(WebKitDOMCSSStyleDeclaration* self, const gchar* value, GError** error); + +/** + * webkit_dom_css_style_declaration_get_length: + * @self: A #WebKitDOMCSSStyleDeclaration + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_css_style_declaration_get_length(WebKitDOMCSSStyleDeclaration* self); + +/** + * webkit_dom_css_style_declaration_get_parent_rule: + * @self: A #WebKitDOMCSSStyleDeclaration + * + * Returns: (transfer full): A #WebKitDOMCSSRule +**/ +WEBKIT_API WebKitDOMCSSRule* +webkit_dom_css_style_declaration_get_parent_rule(WebKitDOMCSSStyleDeclaration* self); + +G_END_DECLS + +#endif /* WebKitDOMCSSStyleDeclaration_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclarationPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclarationPrivate.h new file mode 100644 index 000000000..e98646f77 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclarationPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCSSStyleDeclarationPrivate_h +#define WebKitDOMCSSStyleDeclarationPrivate_h + +#include <WebCore/CSSStyleDeclaration.h> +#include <webkitdom/WebKitDOMCSSStyleDeclaration.h> + +namespace WebKit { +WebKitDOMCSSStyleDeclaration* wrapCSSStyleDeclaration(WebCore::CSSStyleDeclaration*); +WebKitDOMCSSStyleDeclaration* kit(WebCore::CSSStyleDeclaration*); +WebCore::CSSStyleDeclaration* core(WebKitDOMCSSStyleDeclaration*); +} // namespace WebKit + +#endif /* WebKitDOMCSSStyleDeclarationPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp new file mode 100644 index 000000000..7cf57ce38 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp @@ -0,0 +1,217 @@ +/* + * 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 "WebKitDOMCSSStyleSheet.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMCSSRuleListPrivate.h" +#include "WebKitDOMCSSRulePrivate.h" +#include "WebKitDOMCSSStyleSheetPrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMStyleSheetPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMCSSStyleSheet* kit(WebCore::CSSStyleSheet* obj) +{ + return WEBKIT_DOM_CSS_STYLE_SHEET(kit(static_cast<WebCore::StyleSheet*>(obj))); +} + +WebCore::CSSStyleSheet* core(WebKitDOMCSSStyleSheet* request) +{ + return request ? static_cast<WebCore::CSSStyleSheet*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMCSSStyleSheet* wrapCSSStyleSheet(WebCore::CSSStyleSheet* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_CSS_STYLE_SHEET(g_object_new(WEBKIT_DOM_TYPE_CSS_STYLE_SHEET, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMCSSStyleSheet, webkit_dom_css_style_sheet, WEBKIT_DOM_TYPE_STYLE_SHEET) + +enum { + PROP_0, + PROP_OWNER_RULE, + PROP_CSS_RULES, + PROP_RULES, +}; + +static void webkit_dom_css_style_sheet_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSStyleSheet* self = WEBKIT_DOM_CSS_STYLE_SHEET(object); + + switch (propertyId) { + case PROP_OWNER_RULE: + g_value_set_object(value, webkit_dom_css_style_sheet_get_owner_rule(self)); + break; + case PROP_CSS_RULES: + g_value_set_object(value, webkit_dom_css_style_sheet_get_css_rules(self)); + break; + case PROP_RULES: + g_value_set_object(value, webkit_dom_css_style_sheet_get_rules(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_css_style_sheet_class_init(WebKitDOMCSSStyleSheetClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_css_style_sheet_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_OWNER_RULE, + g_param_spec_object( + "owner-rule", + "CSSStyleSheet:owner-rule", + "read-only WebKitDOMCSSRule* CSSStyleSheet:owner-rule", + WEBKIT_DOM_TYPE_CSS_RULE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CSS_RULES, + g_param_spec_object( + "css-rules", + "CSSStyleSheet:css-rules", + "read-only WebKitDOMCSSRuleList* CSSStyleSheet:css-rules", + WEBKIT_DOM_TYPE_CSS_RULE_LIST, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_RULES, + g_param_spec_object( + "rules", + "CSSStyleSheet:rules", + "read-only WebKitDOMCSSRuleList* CSSStyleSheet:rules", + WEBKIT_DOM_TYPE_CSS_RULE_LIST, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_css_style_sheet_init(WebKitDOMCSSStyleSheet* request) +{ + UNUSED_PARAM(request); +} + +gulong webkit_dom_css_style_sheet_insert_rule(WebKitDOMCSSStyleSheet* self, const gchar* rule, gulong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_SHEET(self), 0); + g_return_val_if_fail(rule, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::CSSStyleSheet* item = WebKit::core(self); + WTF::String convertedRule = WTF::String::fromUTF8(rule); + auto result = item->insertRule(convertedRule, index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return 0; + } + return result.releaseReturnValue(); +} + +void webkit_dom_css_style_sheet_delete_rule(WebKitDOMCSSStyleSheet* self, gulong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CSS_STYLE_SHEET(self)); + g_return_if_fail(!error || !*error); + WebCore::CSSStyleSheet* item = WebKit::core(self); + auto result = item->deleteRule(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +glong webkit_dom_css_style_sheet_add_rule(WebKitDOMCSSStyleSheet* self, const gchar* selector, const gchar* style, gulong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_SHEET(self), 0); + g_return_val_if_fail(selector, 0); + g_return_val_if_fail(style, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::CSSStyleSheet* item = WebKit::core(self); + WTF::String convertedSelector = WTF::String::fromUTF8(selector); + WTF::String convertedStyle = WTF::String::fromUTF8(style); + auto result = item->addRule(convertedSelector, convertedStyle, index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return -1; + } + return result.releaseReturnValue(); +} + +void webkit_dom_css_style_sheet_remove_rule(WebKitDOMCSSStyleSheet* self, gulong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CSS_STYLE_SHEET(self)); + g_return_if_fail(!error || !*error); + WebCore::CSSStyleSheet* item = WebKit::core(self); + auto result = item->removeRule(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMCSSRule* webkit_dom_css_style_sheet_get_owner_rule(WebKitDOMCSSStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_SHEET(self), 0); + WebCore::CSSStyleSheet* item = WebKit::core(self); + RefPtr<WebCore::CSSRule> gobjectResult = WTF::getPtr(item->ownerRule()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMCSSRuleList* webkit_dom_css_style_sheet_get_css_rules(WebKitDOMCSSStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_SHEET(self), 0); + WebCore::CSSStyleSheet* item = WebKit::core(self); + RefPtr<WebCore::CSSRuleList> gobjectResult = WTF::getPtr(item->cssRules()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMCSSRuleList* webkit_dom_css_style_sheet_get_rules(WebKitDOMCSSStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_STYLE_SHEET(self), 0); + WebCore::CSSStyleSheet* item = WebKit::core(self); + RefPtr<WebCore::CSSRuleList> gobjectResult = WTF::getPtr(item->rules()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.h new file mode 100644 index 000000000..9a85b6577 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.h @@ -0,0 +1,125 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCSSStyleSheet_h +#define WebKitDOMCSSStyleSheet_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMStyleSheet.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_CSS_STYLE_SHEET (webkit_dom_css_style_sheet_get_type()) +#define WEBKIT_DOM_CSS_STYLE_SHEET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_CSS_STYLE_SHEET, WebKitDOMCSSStyleSheet)) +#define WEBKIT_DOM_CSS_STYLE_SHEET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_CSS_STYLE_SHEET, WebKitDOMCSSStyleSheetClass) +#define WEBKIT_DOM_IS_CSS_STYLE_SHEET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_CSS_STYLE_SHEET)) +#define WEBKIT_DOM_IS_CSS_STYLE_SHEET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_CSS_STYLE_SHEET)) +#define WEBKIT_DOM_CSS_STYLE_SHEET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_CSS_STYLE_SHEET, WebKitDOMCSSStyleSheetClass)) + +struct _WebKitDOMCSSStyleSheet { + WebKitDOMStyleSheet parent_instance; +}; + +struct _WebKitDOMCSSStyleSheetClass { + WebKitDOMStyleSheetClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_css_style_sheet_get_type(void); + +/** + * webkit_dom_css_style_sheet_insert_rule: + * @self: A #WebKitDOMCSSStyleSheet + * @rule: A #gchar + * @index: A #gulong + * @error: #GError + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_css_style_sheet_insert_rule(WebKitDOMCSSStyleSheet* self, const gchar* rule, gulong index, GError** error); + +/** + * webkit_dom_css_style_sheet_delete_rule: + * @self: A #WebKitDOMCSSStyleSheet + * @index: A #gulong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_css_style_sheet_delete_rule(WebKitDOMCSSStyleSheet* self, gulong index, GError** error); + +/** + * webkit_dom_css_style_sheet_add_rule: + * @self: A #WebKitDOMCSSStyleSheet + * @selector: A #gchar + * @style: A #gchar + * @index: A #gulong + * @error: #GError + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_css_style_sheet_add_rule(WebKitDOMCSSStyleSheet* self, const gchar* selector, const gchar* style, gulong index, GError** error); + +/** + * webkit_dom_css_style_sheet_remove_rule: + * @self: A #WebKitDOMCSSStyleSheet + * @index: A #gulong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_css_style_sheet_remove_rule(WebKitDOMCSSStyleSheet* self, gulong index, GError** error); + +/** + * webkit_dom_css_style_sheet_get_owner_rule: + * @self: A #WebKitDOMCSSStyleSheet + * + * Returns: (transfer full): A #WebKitDOMCSSRule +**/ +WEBKIT_API WebKitDOMCSSRule* +webkit_dom_css_style_sheet_get_owner_rule(WebKitDOMCSSStyleSheet* self); + +/** + * webkit_dom_css_style_sheet_get_css_rules: + * @self: A #WebKitDOMCSSStyleSheet + * + * Returns: (transfer full): A #WebKitDOMCSSRuleList +**/ +WEBKIT_API WebKitDOMCSSRuleList* +webkit_dom_css_style_sheet_get_css_rules(WebKitDOMCSSStyleSheet* self); + +/** + * webkit_dom_css_style_sheet_get_rules: + * @self: A #WebKitDOMCSSStyleSheet + * + * Returns: (transfer full): A #WebKitDOMCSSRuleList +**/ +WEBKIT_API WebKitDOMCSSRuleList* +webkit_dom_css_style_sheet_get_rules(WebKitDOMCSSStyleSheet* self); + +G_END_DECLS + +#endif /* WebKitDOMCSSStyleSheet_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheetPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheetPrivate.h new file mode 100644 index 000000000..de64d0b28 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheetPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCSSStyleSheetPrivate_h +#define WebKitDOMCSSStyleSheetPrivate_h + +#include <WebCore/CSSStyleSheet.h> +#include <webkitdom/WebKitDOMCSSStyleSheet.h> + +namespace WebKit { +WebKitDOMCSSStyleSheet* wrapCSSStyleSheet(WebCore::CSSStyleSheet*); +WebKitDOMCSSStyleSheet* kit(WebCore::CSSStyleSheet*); +WebCore::CSSStyleSheet* core(WebKitDOMCSSStyleSheet*); +} // namespace WebKit + +#endif /* WebKitDOMCSSStyleSheetPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp new file mode 100644 index 000000000..dc92e1470 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp @@ -0,0 +1,196 @@ +/* + * 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 "WebKitDOMCSSValue.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMCSSValuePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_CSS_VALUE_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_CSS_VALUE, WebKitDOMCSSValuePrivate) + +typedef struct _WebKitDOMCSSValuePrivate { + RefPtr<WebCore::DeprecatedCSSOMValue> coreObject; +} WebKitDOMCSSValuePrivate; + +namespace WebKit { + +WebKitDOMCSSValue* kit(WebCore::DeprecatedCSSOMValue* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_CSS_VALUE(ret); + + return wrapCSSValue(obj); +} + +WebCore::DeprecatedCSSOMValue* core(WebKitDOMCSSValue* request) +{ + return request ? static_cast<WebCore::DeprecatedCSSOMValue*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMCSSValue* wrapCSSValue(WebCore::DeprecatedCSSOMValue* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_CSS_VALUE(g_object_new(WEBKIT_DOM_TYPE_CSS_VALUE, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMCSSValue, webkit_dom_css_value, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_CSS_TEXT, + PROP_CSS_VALUE_TYPE, +}; + +static void webkit_dom_css_value_finalize(GObject* object) +{ + WebKitDOMCSSValuePrivate* priv = WEBKIT_DOM_CSS_VALUE_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMCSSValuePrivate(); + G_OBJECT_CLASS(webkit_dom_css_value_parent_class)->finalize(object); +} + +static void webkit_dom_css_value_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSValue* self = WEBKIT_DOM_CSS_VALUE(object); + + switch (propertyId) { + case PROP_CSS_TEXT: + webkit_dom_css_value_set_css_text(self, g_value_get_string(value), nullptr); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_css_value_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMCSSValue* self = WEBKIT_DOM_CSS_VALUE(object); + + switch (propertyId) { + case PROP_CSS_TEXT: + g_value_take_string(value, webkit_dom_css_value_get_css_text(self)); + break; + case PROP_CSS_VALUE_TYPE: + g_value_set_uint(value, webkit_dom_css_value_get_css_value_type(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_css_value_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_css_value_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMCSSValuePrivate* priv = WEBKIT_DOM_CSS_VALUE_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::DeprecatedCSSOMValue*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_css_value_class_init(WebKitDOMCSSValueClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMCSSValuePrivate)); + gobjectClass->constructor = webkit_dom_css_value_constructor; + gobjectClass->finalize = webkit_dom_css_value_finalize; + gobjectClass->set_property = webkit_dom_css_value_set_property; + gobjectClass->get_property = webkit_dom_css_value_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CSS_TEXT, + g_param_spec_string( + "css-text", + "CSSValue:css-text", + "read-write gchar* CSSValue:css-text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CSS_VALUE_TYPE, + g_param_spec_uint( + "css-value-type", + "CSSValue:css-value-type", + "read-only gushort CSSValue:css-value-type", + 0, G_MAXUINT, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_css_value_init(WebKitDOMCSSValue* request) +{ + WebKitDOMCSSValuePrivate* priv = WEBKIT_DOM_CSS_VALUE_GET_PRIVATE(request); + new (priv) WebKitDOMCSSValuePrivate(); +} + +gchar* webkit_dom_css_value_get_css_text(WebKitDOMCSSValue* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_VALUE(self), 0); + WebCore::DeprecatedCSSOMValue* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->cssText()); + return result; +} + +void webkit_dom_css_value_set_css_text(WebKitDOMCSSValue* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CSS_VALUE(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::DeprecatedCSSOMValue* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setCssText(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gushort webkit_dom_css_value_get_css_value_type(WebKitDOMCSSValue* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CSS_VALUE(self), 0); + WebCore::DeprecatedCSSOMValue* item = WebKit::core(self); + gushort result = item->cssValueType(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.h new file mode 100644 index 000000000..d243bbf2d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.h @@ -0,0 +1,101 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCSSValue_h +#define WebKitDOMCSSValue_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_CSS_VALUE (webkit_dom_css_value_get_type()) +#define WEBKIT_DOM_CSS_VALUE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_CSS_VALUE, WebKitDOMCSSValue)) +#define WEBKIT_DOM_CSS_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_CSS_VALUE, WebKitDOMCSSValueClass) +#define WEBKIT_DOM_IS_CSS_VALUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_CSS_VALUE)) +#define WEBKIT_DOM_IS_CSS_VALUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_CSS_VALUE)) +#define WEBKIT_DOM_CSS_VALUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_CSS_VALUE, WebKitDOMCSSValueClass)) + +/** + * WEBKIT_DOM_CSS_VALUE_CSS_INHERIT: + */ +#define WEBKIT_DOM_CSS_VALUE_CSS_INHERIT 0 + +/** + * WEBKIT_DOM_CSS_VALUE_CSS_PRIMITIVE_VALUE: + */ +#define WEBKIT_DOM_CSS_VALUE_CSS_PRIMITIVE_VALUE 1 + +/** + * WEBKIT_DOM_CSS_VALUE_CSS_VALUE_LIST: + */ +#define WEBKIT_DOM_CSS_VALUE_CSS_VALUE_LIST 2 + +/** + * WEBKIT_DOM_CSS_VALUE_CSS_CUSTOM: + */ +#define WEBKIT_DOM_CSS_VALUE_CSS_CUSTOM 3 + +struct _WebKitDOMCSSValue { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMCSSValueClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_css_value_get_type(void); + +/** + * webkit_dom_css_value_get_css_text: + * @self: A #WebKitDOMCSSValue + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_css_value_get_css_text(WebKitDOMCSSValue* self); + +/** + * webkit_dom_css_value_set_css_text: + * @self: A #WebKitDOMCSSValue + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_css_value_set_css_text(WebKitDOMCSSValue* self, const gchar* value, GError** error); + +/** + * webkit_dom_css_value_get_css_value_type: + * @self: A #WebKitDOMCSSValue + * + * Returns: A #gushort +**/ +WEBKIT_API gushort +webkit_dom_css_value_get_css_value_type(WebKitDOMCSSValue* self); + +G_END_DECLS + +#endif /* WebKitDOMCSSValue_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValuePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValuePrivate.h new file mode 100644 index 000000000..fb2eefbc3 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValuePrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCSSValuePrivate_h +#define WebKitDOMCSSValuePrivate_h + +#include <WebCore/DeprecatedCSSOMValue.h> +#include <webkitdom/WebKitDOMCSSValue.h> + +namespace WebKit { +WebKitDOMCSSValue* wrapCSSValue(WebCore::DeprecatedCSSOMValue*); +WebKitDOMCSSValue* kit(WebCore::DeprecatedCSSOMValue*); +WebCore::DeprecatedCSSOMValue* core(WebKitDOMCSSValue*); +} // namespace WebKit + +#endif /* WebKitDOMCSSValuePrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp new file mode 100644 index 000000000..b09bb7de7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp @@ -0,0 +1,259 @@ +/* + * 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 "WebKitDOMCharacterData.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 "WebKitDOMCharacterDataPrivate.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> + +namespace WebKit { + +WebKitDOMCharacterData* kit(WebCore::CharacterData* obj) +{ + return WEBKIT_DOM_CHARACTER_DATA(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::CharacterData* core(WebKitDOMCharacterData* request) +{ + return request ? static_cast<WebCore::CharacterData*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMCharacterData* wrapCharacterData(WebCore::CharacterData* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_CHARACTER_DATA(g_object_new(WEBKIT_DOM_TYPE_CHARACTER_DATA, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_character_data_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::CharacterData* coreTarget = static_cast<WebCore::CharacterData*>(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_character_data_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::CharacterData* coreTarget = static_cast<WebCore::CharacterData*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_character_data_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::CharacterData* coreTarget = static_cast<WebCore::CharacterData*>(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_character_data_dispatch_event; + iface->add_event_listener = webkit_dom_character_data_add_event_listener; + iface->remove_event_listener = webkit_dom_character_data_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMCharacterData, webkit_dom_character_data, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_DATA, + PROP_LENGTH, +}; + +static void webkit_dom_character_data_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMCharacterData* self = WEBKIT_DOM_CHARACTER_DATA(object); + + switch (propertyId) { + case PROP_DATA: + webkit_dom_character_data_set_data(self, g_value_get_string(value), nullptr); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_character_data_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMCharacterData* self = WEBKIT_DOM_CHARACTER_DATA(object); + + switch (propertyId) { + case PROP_DATA: + g_value_take_string(value, webkit_dom_character_data_get_data(self)); + break; + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_character_data_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_character_data_class_init(WebKitDOMCharacterDataClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_character_data_set_property; + gobjectClass->get_property = webkit_dom_character_data_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_DATA, + g_param_spec_string( + "data", + "CharacterData:data", + "read-write gchar* CharacterData:data", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "CharacterData:length", + "read-only gulong CharacterData:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_character_data_init(WebKitDOMCharacterData* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_character_data_substring_data(WebKitDOMCharacterData* self, gulong offset, gulong length, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::CharacterData* item = WebKit::core(self); + auto result = item->substringData(offset, length); + if (result.hasException()) + return nullptr; + return convertToUTF8String(result.releaseReturnValue()); +} + +void webkit_dom_character_data_append_data(WebKitDOMCharacterData* self, const gchar* data, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self)); + g_return_if_fail(data); + UNUSED_PARAM(error); + WebCore::CharacterData* item = WebKit::core(self); + WTF::String convertedData = WTF::String::fromUTF8(data); + item->appendData(convertedData); +} + +void webkit_dom_character_data_insert_data(WebKitDOMCharacterData* self, gulong offset, const gchar* data, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self)); + g_return_if_fail(data); + g_return_if_fail(!error || !*error); + WebCore::CharacterData* item = WebKit::core(self); + WTF::String convertedData = WTF::String::fromUTF8(data); + auto result = item->insertData(offset, convertedData); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_character_data_delete_data(WebKitDOMCharacterData* self, gulong offset, gulong length, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self)); + g_return_if_fail(!error || !*error); + WebCore::CharacterData* item = WebKit::core(self); + auto result = item->deleteData(offset, length); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_character_data_replace_data(WebKitDOMCharacterData* self, gulong offset, gulong length, const gchar* data, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self)); + g_return_if_fail(data); + g_return_if_fail(!error || !*error); + WebCore::CharacterData* item = WebKit::core(self); + WTF::String convertedData = WTF::String::fromUTF8(data); + auto result = item->replaceData(offset, length, convertedData); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_character_data_get_data(WebKitDOMCharacterData* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self), 0); + WebCore::CharacterData* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->data()); + return result; +} + +void webkit_dom_character_data_set_data(WebKitDOMCharacterData* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self)); + g_return_if_fail(value); + UNUSED_PARAM(error); + WebCore::CharacterData* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setData(convertedValue); +} + +gulong webkit_dom_character_data_get_length(WebKitDOMCharacterData* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_CHARACTER_DATA(self), 0); + WebCore::CharacterData* item = WebKit::core(self); + gulong result = item->length(); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h new file mode 100644 index 000000000..275a5b9e7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h @@ -0,0 +1,137 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCharacterData_h +#define WebKitDOMCharacterData_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_CHARACTER_DATA (webkit_dom_character_data_get_type()) +#define WEBKIT_DOM_CHARACTER_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_CHARACTER_DATA, WebKitDOMCharacterData)) +#define WEBKIT_DOM_CHARACTER_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_CHARACTER_DATA, WebKitDOMCharacterDataClass) +#define WEBKIT_DOM_IS_CHARACTER_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_CHARACTER_DATA)) +#define WEBKIT_DOM_IS_CHARACTER_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_CHARACTER_DATA)) +#define WEBKIT_DOM_CHARACTER_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_CHARACTER_DATA, WebKitDOMCharacterDataClass)) + +struct _WebKitDOMCharacterData { + WebKitDOMNode parent_instance; +}; + +struct _WebKitDOMCharacterDataClass { + WebKitDOMNodeClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_character_data_get_type(void); + +/** + * webkit_dom_character_data_substring_data: + * @self: A #WebKitDOMCharacterData + * @offset: A #gulong + * @length: A #gulong + * @error: #GError + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_character_data_substring_data(WebKitDOMCharacterData* self, gulong offset, gulong length, GError** error); + +/** + * webkit_dom_character_data_append_data: + * @self: A #WebKitDOMCharacterData + * @data: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_character_data_append_data(WebKitDOMCharacterData* self, const gchar* data, GError** error); + +/** + * webkit_dom_character_data_insert_data: + * @self: A #WebKitDOMCharacterData + * @offset: A #gulong + * @data: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_character_data_insert_data(WebKitDOMCharacterData* self, gulong offset, const gchar* data, GError** error); + +/** + * webkit_dom_character_data_delete_data: + * @self: A #WebKitDOMCharacterData + * @offset: A #gulong + * @length: A #gulong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_character_data_delete_data(WebKitDOMCharacterData* self, gulong offset, gulong length, GError** error); + +/** + * webkit_dom_character_data_replace_data: + * @self: A #WebKitDOMCharacterData + * @offset: A #gulong + * @length: A #gulong + * @data: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_character_data_replace_data(WebKitDOMCharacterData* self, gulong offset, gulong length, const gchar* data, GError** error); + +/** + * webkit_dom_character_data_get_data: + * @self: A #WebKitDOMCharacterData + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_character_data_get_data(WebKitDOMCharacterData* self); + +/** + * webkit_dom_character_data_set_data: + * @self: A #WebKitDOMCharacterData + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_character_data_set_data(WebKitDOMCharacterData* self, const gchar* value, GError** error); + +/** + * webkit_dom_character_data_get_length: + * @self: A #WebKitDOMCharacterData + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_character_data_get_length(WebKitDOMCharacterData* self); + +G_END_DECLS + +#endif /* WebKitDOMCharacterData_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterDataPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterDataPrivate.h new file mode 100644 index 000000000..cd39a7776 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterDataPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCharacterDataPrivate_h +#define WebKitDOMCharacterDataPrivate_h + +#include <WebCore/CharacterData.h> +#include <webkitdom/WebKitDOMCharacterData.h> + +namespace WebKit { +WebKitDOMCharacterData* wrapCharacterData(WebCore::CharacterData*); +WebKitDOMCharacterData* kit(WebCore::CharacterData*); +WebCore::CharacterData* core(WebKitDOMCharacterData*); +} // namespace WebKit + +#endif /* WebKitDOMCharacterDataPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp new file mode 100644 index 000000000..3e84c41b4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp @@ -0,0 +1,105 @@ +/* + * 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 "WebKitDOMComment.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 "WebKitDOMCommentPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMComment* kit(WebCore::Comment* obj) +{ + return WEBKIT_DOM_COMMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::Comment* core(WebKitDOMComment* request) +{ + return request ? static_cast<WebCore::Comment*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMComment* wrapComment(WebCore::Comment* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_COMMENT(g_object_new(WEBKIT_DOM_TYPE_COMMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_comment_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::Comment* coreTarget = static_cast<WebCore::Comment*>(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_comment_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Comment* coreTarget = static_cast<WebCore::Comment*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_comment_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Comment* coreTarget = static_cast<WebCore::Comment*>(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_comment_dispatch_event; + iface->add_event_listener = webkit_dom_comment_add_event_listener; + iface->remove_event_listener = webkit_dom_comment_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMComment, webkit_dom_comment, WEBKIT_DOM_TYPE_CHARACTER_DATA, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +static void webkit_dom_comment_class_init(WebKitDOMCommentClass* requestClass) +{ + UNUSED_PARAM(requestClass); +} + +static void webkit_dom_comment_init(WebKitDOMComment* request) +{ + UNUSED_PARAM(request); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h new file mode 100644 index 000000000..66bfb63a4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h @@ -0,0 +1,53 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMComment_h +#define WebKitDOMComment_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMCharacterData.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_COMMENT (webkit_dom_comment_get_type()) +#define WEBKIT_DOM_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_COMMENT, WebKitDOMComment)) +#define WEBKIT_DOM_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_COMMENT, WebKitDOMCommentClass) +#define WEBKIT_DOM_IS_COMMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_COMMENT)) +#define WEBKIT_DOM_IS_COMMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_COMMENT)) +#define WEBKIT_DOM_COMMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_COMMENT, WebKitDOMCommentClass)) + +struct _WebKitDOMComment { + WebKitDOMCharacterData parent_instance; +}; + +struct _WebKitDOMCommentClass { + WebKitDOMCharacterDataClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_comment_get_type(void); + +G_END_DECLS + +#endif /* WebKitDOMComment_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCommentPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCommentPrivate.h new file mode 100644 index 000000000..5e7a31ebd --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCommentPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMCommentPrivate_h +#define WebKitDOMCommentPrivate_h + +#include <WebCore/Comment.h> +#include <webkitdom/WebKitDOMComment.h> + +namespace WebKit { +WebKitDOMComment* wrapComment(WebCore::Comment*); +WebKitDOMComment* kit(WebCore::Comment*); +WebCore::Comment* core(WebKitDOMComment*); +} // namespace WebKit + +#endif /* WebKitDOMCommentPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustom.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustom.h new file mode 100644 index 000000000..d0fad62f6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustom.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2011 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMCustom_h +#define WebKitDOMCustom_h + +#endif /* WebKitDOMCustom_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustomUnstable.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustomUnstable.h new file mode 100644 index 000000000..69ff206d5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCustomUnstable.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WebKitDOMCustomUnstable_h +#define WebKitDOMCustomUnstable_h + +#ifdef WEBKIT_DOM_USE_UNSTABLE_API +#define __WEBKITDOM_H_INSIDE__ +#include <webkitdom/WebKitDOMDOMWindow.h> +#undef __WEBKITDOM_H_INSIDE__ +#endif /* WEBKIT_DOM_USE_UNSTABLE_API */ + +#endif /* WebKitDOMCustomUnstable_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp new file mode 100644 index 000000000..ed4d5b07c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp @@ -0,0 +1,184 @@ +/* + * 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 "WebKitDOMDOMImplementation.h" + +#include "ConvertToUTF8String.h" +#include "DOMObjectCache.h" +#include "WebKitDOMCSSStyleSheetPrivate.h" +#include "WebKitDOMDOMImplementationPrivate.h" +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMDocumentTypePrivate.h" +#include "WebKitDOMHTMLDocumentPrivate.h" +#include "WebKitDOMPrivate.h" +#include <WebCore/CSSImportRule.h> +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include <WebCore/SVGTests.h> +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_DOM_IMPLEMENTATION_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION, WebKitDOMDOMImplementationPrivate) + +typedef struct _WebKitDOMDOMImplementationPrivate { + RefPtr<WebCore::DOMImplementation> coreObject; +} WebKitDOMDOMImplementationPrivate; + +namespace WebKit { + +WebKitDOMDOMImplementation* kit(WebCore::DOMImplementation* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_DOM_IMPLEMENTATION(ret); + + return wrapDOMImplementation(obj); +} + +WebCore::DOMImplementation* core(WebKitDOMDOMImplementation* request) +{ + return request ? static_cast<WebCore::DOMImplementation*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMDOMImplementation* wrapDOMImplementation(WebCore::DOMImplementation* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_DOM_IMPLEMENTATION(g_object_new(WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMDOMImplementation, webkit_dom_dom_implementation, WEBKIT_DOM_TYPE_OBJECT) + +static void webkit_dom_dom_implementation_finalize(GObject* object) +{ + WebKitDOMDOMImplementationPrivate* priv = WEBKIT_DOM_DOM_IMPLEMENTATION_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMDOMImplementationPrivate(); + G_OBJECT_CLASS(webkit_dom_dom_implementation_parent_class)->finalize(object); +} + +static GObject* webkit_dom_dom_implementation_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_dom_implementation_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMDOMImplementationPrivate* priv = WEBKIT_DOM_DOM_IMPLEMENTATION_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::DOMImplementation*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_dom_implementation_class_init(WebKitDOMDOMImplementationClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMDOMImplementationPrivate)); + gobjectClass->constructor = webkit_dom_dom_implementation_constructor; + gobjectClass->finalize = webkit_dom_dom_implementation_finalize; +} + +static void webkit_dom_dom_implementation_init(WebKitDOMDOMImplementation* request) +{ + WebKitDOMDOMImplementationPrivate* priv = WEBKIT_DOM_DOM_IMPLEMENTATION_GET_PRIVATE(request); + new (priv) WebKitDOMDOMImplementationPrivate(); +} + +gboolean webkit_dom_dom_implementation_has_feature(WebKitDOMDOMImplementation* self, const gchar* feature, const gchar* version) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_IMPLEMENTATION(self), FALSE); + g_return_val_if_fail(feature, FALSE); + g_return_val_if_fail(version, FALSE); + WTF::String convertedFeature = WTF::String::fromUTF8(feature); + WTF::String convertedVersion = WTF::String::fromUTF8(version); + return WebCore::SVGTests::hasFeatureForLegacyBindings(convertedFeature, convertedVersion); +} + +WebKitDOMDocumentType* webkit_dom_dom_implementation_create_document_type(WebKitDOMDOMImplementation* self, const gchar* qualifiedName, const gchar* publicId, const gchar* systemId, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_IMPLEMENTATION(self), 0); + g_return_val_if_fail(qualifiedName, 0); + g_return_val_if_fail(publicId, 0); + g_return_val_if_fail(systemId, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::DOMImplementation* item = WebKit::core(self); + WTF::String convertedQualifiedName = WTF::String::fromUTF8(qualifiedName); + WTF::String convertedPublicId = WTF::String::fromUTF8(publicId); + WTF::String convertedSystemId = WTF::String::fromUTF8(systemId); + auto result = item->createDocumentType(convertedQualifiedName, convertedPublicId, convertedSystemId); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMDocument* webkit_dom_dom_implementation_create_document(WebKitDOMDOMImplementation* self, const gchar* namespaceURI, const gchar* qualifiedName, WebKitDOMDocumentType* doctype, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_IMPLEMENTATION(self), 0); + g_return_val_if_fail(qualifiedName, 0); + g_return_val_if_fail(!doctype || WEBKIT_DOM_IS_DOCUMENT_TYPE(doctype), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::DOMImplementation* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedQualifiedName = WTF::String::fromUTF8(qualifiedName); + WebCore::DocumentType* convertedDoctype = WebKit::core(doctype); + auto result = item->createDocument(convertedNamespaceURI, convertedQualifiedName, convertedDoctype); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMCSSStyleSheet* webkit_dom_dom_implementation_create_css_style_sheet(WebKitDOMDOMImplementation* self, const gchar* title, const gchar* media, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_IMPLEMENTATION(self), 0); + g_return_val_if_fail(title, 0); + g_return_val_if_fail(media, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::DOMImplementation* item = WebKit::core(self); + WTF::String convertedTitle = WTF::String::fromUTF8(title); + WTF::String convertedMedia = WTF::String::fromUTF8(media); + RefPtr<WebCore::CSSStyleSheet> gobjectResult = WTF::getPtr(item->createCSSStyleSheet(convertedTitle, convertedMedia)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLDocument* webkit_dom_dom_implementation_create_html_document(WebKitDOMDOMImplementation* self, const gchar* title) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_IMPLEMENTATION(self), 0); + g_return_val_if_fail(title, 0); + WebCore::DOMImplementation* item = WebKit::core(self); + WTF::String convertedTitle = WTF::String::fromUTF8(title); + RefPtr<WebCore::HTMLDocument> gobjectResult = WTF::getPtr(item->createHTMLDocument(convertedTitle)); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.h new file mode 100644 index 000000000..0e92e81d5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.h @@ -0,0 +1,112 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMDOMImplementation_h +#define WebKitDOMDOMImplementation_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION (webkit_dom_dom_implementation_get_type()) +#define WEBKIT_DOM_DOM_IMPLEMENTATION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION, WebKitDOMDOMImplementation)) +#define WEBKIT_DOM_DOM_IMPLEMENTATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION, WebKitDOMDOMImplementationClass) +#define WEBKIT_DOM_IS_DOM_IMPLEMENTATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION)) +#define WEBKIT_DOM_IS_DOM_IMPLEMENTATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION)) +#define WEBKIT_DOM_DOM_IMPLEMENTATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION, WebKitDOMDOMImplementationClass)) + +struct _WebKitDOMDOMImplementation { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMDOMImplementationClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_dom_implementation_get_type(void); + +/** + * webkit_dom_dom_implementation_has_feature: + * @self: A #WebKitDOMDOMImplementation + * @feature: A #gchar + * @version: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_dom_implementation_has_feature(WebKitDOMDOMImplementation* self, const gchar* feature, const gchar* version); + +/** + * webkit_dom_dom_implementation_create_document_type: + * @self: A #WebKitDOMDOMImplementation + * @qualifiedName: A #gchar + * @publicId: A #gchar + * @systemId: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMDocumentType +**/ +WEBKIT_API WebKitDOMDocumentType* +webkit_dom_dom_implementation_create_document_type(WebKitDOMDOMImplementation* self, const gchar* qualifiedName, const gchar* publicId, const gchar* systemId, GError** error); + +/** + * webkit_dom_dom_implementation_create_document: + * @self: A #WebKitDOMDOMImplementation + * @namespaceURI: (allow-none): A #gchar + * @qualifiedName: A #gchar + * @doctype: (allow-none): A #WebKitDOMDocumentType + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMDocument +**/ +WEBKIT_API WebKitDOMDocument* +webkit_dom_dom_implementation_create_document(WebKitDOMDOMImplementation* self, const gchar* namespaceURI, const gchar* qualifiedName, WebKitDOMDocumentType* doctype, GError** error); + +/** + * webkit_dom_dom_implementation_create_css_style_sheet: + * @self: A #WebKitDOMDOMImplementation + * @title: A #gchar + * @media: A #gchar + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMCSSStyleSheet +**/ +WEBKIT_API WebKitDOMCSSStyleSheet* +webkit_dom_dom_implementation_create_css_style_sheet(WebKitDOMDOMImplementation* self, const gchar* title, const gchar* media, GError** error); + +/** + * webkit_dom_dom_implementation_create_html_document: + * @self: A #WebKitDOMDOMImplementation + * @title: A #gchar + * + * Returns: (transfer none): A #WebKitDOMHTMLDocument +**/ +WEBKIT_API WebKitDOMHTMLDocument* +webkit_dom_dom_implementation_create_html_document(WebKitDOMDOMImplementation* self, const gchar* title); + +G_END_DECLS + +#endif /* WebKitDOMDOMImplementation_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementationPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementationPrivate.h new file mode 100644 index 000000000..a4195a5d4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementationPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDOMImplementationPrivate_h +#define WebKitDOMDOMImplementationPrivate_h + +#include <WebCore/DOMImplementation.h> +#include <webkitdom/WebKitDOMDOMImplementation.h> + +namespace WebKit { +WebKitDOMDOMImplementation* wrapDOMImplementation(WebCore::DOMImplementation*); +WebKitDOMDOMImplementation* kit(WebCore::DOMImplementation*); +WebCore::DOMImplementation* core(WebKitDOMDOMImplementation*); +} // namespace WebKit + +#endif /* WebKitDOMDOMImplementationPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp new file mode 100644 index 000000000..9fc903a82 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp @@ -0,0 +1,532 @@ +/* + * 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 "WebKitDOMDOMSelection.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMSelectionPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMRangePrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_DOM_SELECTION_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_DOM_SELECTION, WebKitDOMDOMSelectionPrivate) + +typedef struct _WebKitDOMDOMSelectionPrivate { + RefPtr<WebCore::DOMSelection> coreObject; +} WebKitDOMDOMSelectionPrivate; + +namespace WebKit { + +WebKitDOMDOMSelection* kit(WebCore::DOMSelection* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_DOM_SELECTION(ret); + + return wrapDOMSelection(obj); +} + +WebCore::DOMSelection* core(WebKitDOMDOMSelection* request) +{ + return request ? static_cast<WebCore::DOMSelection*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMDOMSelection* wrapDOMSelection(WebCore::DOMSelection* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_DOM_SELECTION(g_object_new(WEBKIT_DOM_TYPE_DOM_SELECTION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMDOMSelection, webkit_dom_dom_selection, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_ANCHOR_NODE, + PROP_ANCHOR_OFFSET, + PROP_FOCUS_NODE, + PROP_FOCUS_OFFSET, + PROP_IS_COLLAPSED, + PROP_RANGE_COUNT, + PROP_TYPE, + PROP_BASE_NODE, + PROP_BASE_OFFSET, + PROP_EXTENT_NODE, + PROP_EXTENT_OFFSET, +}; + +static void webkit_dom_dom_selection_finalize(GObject* object) +{ + WebKitDOMDOMSelectionPrivate* priv = WEBKIT_DOM_DOM_SELECTION_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMDOMSelectionPrivate(); + G_OBJECT_CLASS(webkit_dom_dom_selection_parent_class)->finalize(object); +} + +static void webkit_dom_dom_selection_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMDOMSelection* self = WEBKIT_DOM_DOM_SELECTION(object); + + switch (propertyId) { + case PROP_ANCHOR_NODE: + g_value_set_object(value, webkit_dom_dom_selection_get_anchor_node(self)); + break; + case PROP_ANCHOR_OFFSET: + g_value_set_ulong(value, webkit_dom_dom_selection_get_anchor_offset(self)); + break; + case PROP_FOCUS_NODE: + g_value_set_object(value, webkit_dom_dom_selection_get_focus_node(self)); + break; + case PROP_FOCUS_OFFSET: + g_value_set_ulong(value, webkit_dom_dom_selection_get_focus_offset(self)); + break; + case PROP_IS_COLLAPSED: + g_value_set_boolean(value, webkit_dom_dom_selection_get_is_collapsed(self)); + break; + case PROP_RANGE_COUNT: + g_value_set_ulong(value, webkit_dom_dom_selection_get_range_count(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_dom_selection_get_selection_type(self)); + break; + case PROP_BASE_NODE: + g_value_set_object(value, webkit_dom_dom_selection_get_base_node(self)); + break; + case PROP_BASE_OFFSET: + g_value_set_ulong(value, webkit_dom_dom_selection_get_base_offset(self)); + break; + case PROP_EXTENT_NODE: + g_value_set_object(value, webkit_dom_dom_selection_get_extent_node(self)); + break; + case PROP_EXTENT_OFFSET: + g_value_set_ulong(value, webkit_dom_dom_selection_get_extent_offset(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_dom_selection_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_dom_selection_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMDOMSelectionPrivate* priv = WEBKIT_DOM_DOM_SELECTION_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::DOMSelection*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_dom_selection_class_init(WebKitDOMDOMSelectionClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMDOMSelectionPrivate)); + gobjectClass->constructor = webkit_dom_dom_selection_constructor; + gobjectClass->finalize = webkit_dom_dom_selection_finalize; + gobjectClass->get_property = webkit_dom_dom_selection_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ANCHOR_NODE, + g_param_spec_object( + "anchor-node", + "DOMSelection:anchor-node", + "read-only WebKitDOMNode* DOMSelection:anchor-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ANCHOR_OFFSET, + g_param_spec_ulong( + "anchor-offset", + "DOMSelection:anchor-offset", + "read-only gulong DOMSelection:anchor-offset", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FOCUS_NODE, + g_param_spec_object( + "focus-node", + "DOMSelection:focus-node", + "read-only WebKitDOMNode* DOMSelection:focus-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FOCUS_OFFSET, + g_param_spec_ulong( + "focus-offset", + "DOMSelection:focus-offset", + "read-only gulong DOMSelection:focus-offset", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_IS_COLLAPSED, + g_param_spec_boolean( + "is-collapsed", + "DOMSelection:is-collapsed", + "read-only gboolean DOMSelection:is-collapsed", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_RANGE_COUNT, + g_param_spec_ulong( + "range-count", + "DOMSelection:range-count", + "read-only gulong DOMSelection:range-count", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "DOMSelection:type", + "read-only gchar* DOMSelection:type", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_BASE_NODE, + g_param_spec_object( + "base-node", + "DOMSelection:base-node", + "read-only WebKitDOMNode* DOMSelection:base-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_BASE_OFFSET, + g_param_spec_ulong( + "base-offset", + "DOMSelection:base-offset", + "read-only gulong DOMSelection:base-offset", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_EXTENT_NODE, + g_param_spec_object( + "extent-node", + "DOMSelection:extent-node", + "read-only WebKitDOMNode* DOMSelection:extent-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_EXTENT_OFFSET, + g_param_spec_ulong( + "extent-offset", + "DOMSelection:extent-offset", + "read-only gulong DOMSelection:extent-offset", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_dom_selection_init(WebKitDOMDOMSelection* request) +{ + WebKitDOMDOMSelectionPrivate* priv = WEBKIT_DOM_DOM_SELECTION_GET_PRIVATE(request); + new (priv) WebKitDOMDOMSelectionPrivate(); +} + +void webkit_dom_dom_selection_collapse(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(node)); + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Node* convertedNode = WebKit::core(node); + item->collapse(convertedNode, offset); +} + +void webkit_dom_dom_selection_collapse_to_end(WebKitDOMDOMSelection* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(!error || !*error); + WebCore::DOMSelection* item = WebKit::core(self); + auto result = item->collapseToEnd(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_dom_selection_collapse_to_start(WebKitDOMDOMSelection* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(!error || !*error); + WebCore::DOMSelection* item = WebKit::core(self); + auto result = item->collapseToStart(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_dom_selection_delete_from_document(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + WebCore::DOMSelection* item = WebKit::core(self); + item->deleteFromDocument(); +} + +gboolean webkit_dom_dom_selection_contains_node(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gboolean allowPartial) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), FALSE); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(node), FALSE); + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Node* convertedNode = WebKit::core(node); + gboolean result = item->containsNode(*convertedNode, allowPartial); + return result; +} + +void webkit_dom_dom_selection_select_all_children(WebKitDOMDOMSelection* self, WebKitDOMNode* node) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(node)); + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Node* convertedNode = WebKit::core(node); + item->selectAllChildren(*convertedNode); +} + +void webkit_dom_dom_selection_extend(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(node)); + g_return_if_fail(!error || !*error); + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Node* convertedNode = WebKit::core(node); + auto result = item->extend(*convertedNode, offset); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMRange* webkit_dom_dom_selection_get_range_at(WebKitDOMDOMSelection* self, gulong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::DOMSelection* item = WebKit::core(self); + auto result = item->getRangeAt(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +void webkit_dom_dom_selection_remove_all_ranges(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + WebCore::DOMSelection* item = WebKit::core(self); + item->removeAllRanges(); +} + +void webkit_dom_dom_selection_add_range(WebKitDOMDOMSelection* self, WebKitDOMRange* range) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(WEBKIT_DOM_IS_RANGE(range)); + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Range* convertedRange = WebKit::core(range); + item->addRange(*convertedRange); +} + +void webkit_dom_dom_selection_set_base_and_extent(WebKitDOMDOMSelection* self, WebKitDOMNode* baseNode, gulong baseOffset, WebKitDOMNode* extentNode, gulong extentOffset) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(baseNode)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(extentNode)); + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Node* convertedBaseNode = WebKit::core(baseNode); + WebCore::Node* convertedExtentNode = WebKit::core(extentNode); + item->setBaseAndExtent(convertedBaseNode, baseOffset, convertedExtentNode, extentOffset); +} + +void webkit_dom_dom_selection_set_position(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(node)); + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Node* convertedNode = WebKit::core(node); + item->setPosition(convertedNode, offset); +} + +void webkit_dom_dom_selection_empty(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + WebCore::DOMSelection* item = WebKit::core(self); + item->empty(); +} + +void webkit_dom_dom_selection_modify(WebKitDOMDOMSelection* self, const gchar* alter, const gchar* direction, const gchar* granularity) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self)); + g_return_if_fail(alter); + g_return_if_fail(direction); + g_return_if_fail(granularity); + WebCore::DOMSelection* item = WebKit::core(self); + WTF::String convertedAlter = WTF::String::fromUTF8(alter); + WTF::String convertedDirection = WTF::String::fromUTF8(direction); + WTF::String convertedGranularity = WTF::String::fromUTF8(granularity); + item->modify(convertedAlter, convertedDirection, convertedGranularity); +} + +WebKitDOMNode* webkit_dom_dom_selection_get_anchor_node(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->anchorNode()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_dom_selection_get_anchor_offset(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + gulong result = item->anchorOffset(); + return result; +} + +WebKitDOMNode* webkit_dom_dom_selection_get_focus_node(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->focusNode()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_dom_selection_get_focus_offset(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + gulong result = item->focusOffset(); + return result; +} + +gboolean webkit_dom_dom_selection_get_is_collapsed(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), FALSE); + WebCore::DOMSelection* item = WebKit::core(self); + gboolean result = item->isCollapsed(); + return result; +} + +gulong webkit_dom_dom_selection_get_range_count(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + gulong result = item->rangeCount(); + return result; +} + +gchar* webkit_dom_dom_selection_get_selection_type(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->type()); + return result; +} + +WebKitDOMNode* webkit_dom_dom_selection_get_base_node(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->baseNode()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_dom_selection_get_base_offset(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + gulong result = item->baseOffset(); + return result; +} + +WebKitDOMNode* webkit_dom_dom_selection_get_extent_node(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->extentNode()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_dom_selection_get_extent_offset(WebKitDOMDOMSelection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); + gulong result = item->extentOffset(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h new file mode 100644 index 000000000..ae558b944 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h @@ -0,0 +1,326 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) && !defined(WEBKIT_DOM_USE_UNSTABLE_API) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMDOMSelection_h +#define WebKitDOMDOMSelection_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_DOM_SELECTION (webkit_dom_dom_selection_get_type()) +#define WEBKIT_DOM_DOM_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_DOM_SELECTION, WebKitDOMDOMSelection)) +#define WEBKIT_DOM_DOM_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_DOM_SELECTION, WebKitDOMDOMSelectionClass) +#define WEBKIT_DOM_IS_DOM_SELECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_DOM_SELECTION)) +#define WEBKIT_DOM_IS_DOM_SELECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_DOM_SELECTION)) +#define WEBKIT_DOM_DOM_SELECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_DOM_SELECTION, WebKitDOMDOMSelectionClass)) + +struct _WebKitDOMDOMSelection { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMDOMSelectionClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_dom_selection_get_type(void); + +/** + * webkit_dom_dom_selection_collapse: + * @self: A #WebKitDOMDOMSelection + * @node: A #WebKitDOMNode + * @offset: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_collapse(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset); + +/** + * webkit_dom_dom_selection_collapse_to_end: + * @self: A #WebKitDOMDOMSelection + * @error: #GError + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_collapse_to_end(WebKitDOMDOMSelection* self, GError** error); + +/** + * webkit_dom_dom_selection_collapse_to_start: + * @self: A #WebKitDOMDOMSelection + * @error: #GError + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_collapse_to_start(WebKitDOMDOMSelection* self, GError** error); + +/** + * webkit_dom_dom_selection_delete_from_document: + * @self: A #WebKitDOMDOMSelection + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_delete_from_document(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_contains_node: + * @self: A #WebKitDOMDOMSelection + * @node: A #WebKitDOMNode + * @allowPartial: A #gboolean + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_selection_contains_node(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gboolean allowPartial); + +/** + * webkit_dom_dom_selection_select_all_children: + * @self: A #WebKitDOMDOMSelection + * @node: A #WebKitDOMNode + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_select_all_children(WebKitDOMDOMSelection* self, WebKitDOMNode* node); + +/** + * webkit_dom_dom_selection_extend: + * @self: A #WebKitDOMDOMSelection + * @node: A #WebKitDOMNode + * @offset: A #gulong + * @error: #GError + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_extend(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset, GError** error); + +/** + * webkit_dom_dom_selection_get_range_at: + * @self: A #WebKitDOMDOMSelection + * @index: A #gulong + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMRange + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMRange* +webkit_dom_dom_selection_get_range_at(WebKitDOMDOMSelection* self, gulong index, GError** error); + +/** + * webkit_dom_dom_selection_remove_all_ranges: + * @self: A #WebKitDOMDOMSelection + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_remove_all_ranges(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_add_range: + * @self: A #WebKitDOMDOMSelection + * @range: A #WebKitDOMRange + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_add_range(WebKitDOMDOMSelection* self, WebKitDOMRange* range); + +/** + * webkit_dom_dom_selection_set_base_and_extent: + * @self: A #WebKitDOMDOMSelection + * @baseNode: A #WebKitDOMNode + * @baseOffset: A #gulong + * @extentNode: A #WebKitDOMNode + * @extentOffset: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_set_base_and_extent(WebKitDOMDOMSelection* self, WebKitDOMNode* baseNode, gulong baseOffset, WebKitDOMNode* extentNode, gulong extentOffset); + +/** + * webkit_dom_dom_selection_set_position: + * @self: A #WebKitDOMDOMSelection + * @node: A #WebKitDOMNode + * @offset: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_set_position(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset); + +/** + * webkit_dom_dom_selection_empty: + * @self: A #WebKitDOMDOMSelection + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_empty(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_modify: + * @self: A #WebKitDOMDOMSelection + * @alter: A #gchar + * @direction: A #gchar + * @granularity: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_selection_modify(WebKitDOMDOMSelection* self, const gchar* alter, const gchar* direction, const gchar* granularity); + +/** + * webkit_dom_dom_selection_get_anchor_node: + * @self: A #WebKitDOMDOMSelection + * + * Returns: (transfer none): A #WebKitDOMNode + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMNode* +webkit_dom_dom_selection_get_anchor_node(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_anchor_offset: + * @self: A #WebKitDOMDOMSelection + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_dom_selection_get_anchor_offset(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_focus_node: + * @self: A #WebKitDOMDOMSelection + * + * Returns: (transfer none): A #WebKitDOMNode + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMNode* +webkit_dom_dom_selection_get_focus_node(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_focus_offset: + * @self: A #WebKitDOMDOMSelection + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_dom_selection_get_focus_offset(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_is_collapsed: + * @self: A #WebKitDOMDOMSelection + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_selection_get_is_collapsed(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_range_count: + * @self: A #WebKitDOMDOMSelection + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_dom_selection_get_range_count(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_selection_type: + * @self: A #WebKitDOMDOMSelection + * + * Returns: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API gchar* +webkit_dom_dom_selection_get_selection_type(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_base_node: + * @self: A #WebKitDOMDOMSelection + * + * Returns: (transfer none): A #WebKitDOMNode + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMNode* +webkit_dom_dom_selection_get_base_node(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_base_offset: + * @self: A #WebKitDOMDOMSelection + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_dom_selection_get_base_offset(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_extent_node: + * @self: A #WebKitDOMDOMSelection + * + * Returns: (transfer none): A #WebKitDOMNode + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMNode* +webkit_dom_dom_selection_get_extent_node(WebKitDOMDOMSelection* self); + +/** + * webkit_dom_dom_selection_get_extent_offset: + * @self: A #WebKitDOMDOMSelection + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_dom_selection_get_extent_offset(WebKitDOMDOMSelection* self); + +G_END_DECLS + +#endif /* WebKitDOMDOMSelection_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelectionPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelectionPrivate.h new file mode 100644 index 000000000..415e27eb4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelectionPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDOMSelectionPrivate_h +#define WebKitDOMDOMSelectionPrivate_h + +#include <WebCore/DOMSelection.h> +#include <webkitdom/WebKitDOMDOMSelection.h> + +namespace WebKit { +WebKitDOMDOMSelection* wrapDOMSelection(WebCore::DOMSelection*); +WebKitDOMDOMSelection* kit(WebCore::DOMSelection*); +WebCore::DOMSelection* core(WebKitDOMDOMSelection*); +} // namespace WebKit + +#endif /* WebKitDOMDOMSelectionPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp new file mode 100644 index 000000000..0b1b4ba4b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp @@ -0,0 +1,283 @@ +/* + * 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 "WebKitDOMDOMTokenList.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMTokenListPrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_DOM_TOKEN_LIST_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_DOM_TOKEN_LIST, WebKitDOMDOMTokenListPrivate) + +typedef struct _WebKitDOMDOMTokenListPrivate { + RefPtr<WebCore::DOMTokenList> coreObject; +} WebKitDOMDOMTokenListPrivate; + +namespace WebKit { + +WebKitDOMDOMTokenList* kit(WebCore::DOMTokenList* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_DOM_TOKEN_LIST(ret); + + return wrapDOMTokenList(obj); +} + +WebCore::DOMTokenList* core(WebKitDOMDOMTokenList* request) +{ + return request ? static_cast<WebCore::DOMTokenList*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMDOMTokenList* wrapDOMTokenList(WebCore::DOMTokenList* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_DOM_TOKEN_LIST(g_object_new(WEBKIT_DOM_TYPE_DOM_TOKEN_LIST, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMDOMTokenList, webkit_dom_dom_token_list, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_LENGTH, + PROP_VALUE, +}; + +static void webkit_dom_dom_token_list_finalize(GObject* object) +{ + WebKitDOMDOMTokenListPrivate* priv = WEBKIT_DOM_DOM_TOKEN_LIST_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMDOMTokenListPrivate(); + G_OBJECT_CLASS(webkit_dom_dom_token_list_parent_class)->finalize(object); +} + +static void webkit_dom_dom_token_list_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMDOMTokenList* self = WEBKIT_DOM_DOM_TOKEN_LIST(object); + + switch (propertyId) { + case PROP_VALUE: + webkit_dom_dom_token_list_set_value(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_dom_token_list_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMDOMTokenList* self = WEBKIT_DOM_DOM_TOKEN_LIST(object); + + switch (propertyId) { + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_dom_token_list_get_length(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_dom_token_list_get_value(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_dom_token_list_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_dom_token_list_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMDOMTokenListPrivate* priv = WEBKIT_DOM_DOM_TOKEN_LIST_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::DOMTokenList*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_dom_token_list_class_init(WebKitDOMDOMTokenListClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMDOMTokenListPrivate)); + gobjectClass->constructor = webkit_dom_dom_token_list_constructor; + gobjectClass->finalize = webkit_dom_dom_token_list_finalize; + gobjectClass->set_property = webkit_dom_dom_token_list_set_property; + gobjectClass->get_property = webkit_dom_dom_token_list_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "DOMTokenList:length", + "read-only gulong DOMTokenList:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "DOMTokenList:value", + "read-write gchar* DOMTokenList:value", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_dom_token_list_init(WebKitDOMDOMTokenList* request) +{ + WebKitDOMDOMTokenListPrivate* priv = WEBKIT_DOM_DOM_TOKEN_LIST_GET_PRIVATE(request); + new (priv) WebKitDOMDOMTokenListPrivate(); +} + +gchar* webkit_dom_dom_token_list_item(WebKitDOMDOMTokenList* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self), 0); + WebCore::DOMTokenList* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->item(index)); + return result; +} + +gboolean webkit_dom_dom_token_list_contains(WebKitDOMDOMTokenList* self, const gchar* token) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self), FALSE); + g_return_val_if_fail(token, FALSE); + WebCore::DOMTokenList* item = WebKit::core(self); + WTF::String convertedToken = WTF::String::fromUTF8(token); + gboolean result = item->contains(convertedToken); + return result; +} + +void webkit_dom_dom_token_list_add(WebKitDOMDOMTokenList* self, GError** error, ...) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self)); + g_return_if_fail(!error || !*error); + WebCore::DOMTokenList* item = WebKit::core(self); + va_list variadicParameterList; + Vector<WTF::String> convertedTokens; + va_start(variadicParameterList, error); + while (gchar* variadicParameter = va_arg(variadicParameterList, gchar*)) + convertedTokens.append(WTF::String::fromUTF8(variadicParameter)); + va_end(variadicParameterList); + auto result = item->add(WTFMove(convertedTokens)); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_dom_token_list_remove(WebKitDOMDOMTokenList* self, GError** error, ...) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self)); + g_return_if_fail(!error || !*error); + WebCore::DOMTokenList* item = WebKit::core(self); + va_list variadicParameterList; + Vector<WTF::String> convertedTokens; + va_start(variadicParameterList, error); + while (gchar* variadicParameter = va_arg(variadicParameterList, gchar*)) + convertedTokens.append(WTF::String::fromUTF8(variadicParameter)); + va_end(variadicParameterList); + auto result = item->remove(WTFMove(convertedTokens)); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gboolean webkit_dom_dom_token_list_toggle(WebKitDOMDOMTokenList* self, const gchar* token, gboolean force, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self), FALSE); + g_return_val_if_fail(token, FALSE); + g_return_val_if_fail(!error || !*error, FALSE); + WebCore::DOMTokenList* item = WebKit::core(self); + WTF::String convertedToken = WTF::String::fromUTF8(token); + auto result = item->toggle(convertedToken, force); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return false; + } + return result.releaseReturnValue(); +} + +void webkit_dom_dom_token_list_replace(WebKitDOMDOMTokenList* self, const gchar* token, const gchar* newToken, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self)); + g_return_if_fail(token); + g_return_if_fail(newToken); + g_return_if_fail(!error || !*error); + WebCore::DOMTokenList* item = WebKit::core(self); + WTF::String convertedToken = WTF::String::fromUTF8(token); + WTF::String convertedNewToken = WTF::String::fromUTF8(newToken); + auto result = item->replace(convertedToken, convertedNewToken); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gulong webkit_dom_dom_token_list_get_length(WebKitDOMDOMTokenList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self), 0); + WebCore::DOMTokenList* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + +gchar* webkit_dom_dom_token_list_get_value(WebKitDOMDOMTokenList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self), 0); + WebCore::DOMTokenList* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->value()); + return result; +} + +void webkit_dom_dom_token_list_set_value(WebKitDOMDOMTokenList* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOM_TOKEN_LIST(self)); + g_return_if_fail(value); + WebCore::DOMTokenList* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setValue(convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h new file mode 100644 index 000000000..223f0e263 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h @@ -0,0 +1,157 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) && !defined(WEBKIT_DOM_USE_UNSTABLE_API) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMDOMTokenList_h +#define WebKitDOMDOMTokenList_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_DOM_TOKEN_LIST (webkit_dom_dom_token_list_get_type()) +#define WEBKIT_DOM_DOM_TOKEN_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_DOM_TOKEN_LIST, WebKitDOMDOMTokenList)) +#define WEBKIT_DOM_DOM_TOKEN_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_DOM_TOKEN_LIST, WebKitDOMDOMTokenListClass) +#define WEBKIT_DOM_IS_DOM_TOKEN_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_DOM_TOKEN_LIST)) +#define WEBKIT_DOM_IS_DOM_TOKEN_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_DOM_TOKEN_LIST)) +#define WEBKIT_DOM_DOM_TOKEN_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_DOM_TOKEN_LIST, WebKitDOMDOMTokenListClass)) + +struct _WebKitDOMDOMTokenList { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMDOMTokenListClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_dom_token_list_get_type(void); + +/** + * webkit_dom_dom_token_list_item: + * @self: A #WebKitDOMDOMTokenList + * @index: A #gulong + * + * Returns: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API gchar* +webkit_dom_dom_token_list_item(WebKitDOMDOMTokenList* self, gulong index); + +/** + * webkit_dom_dom_token_list_contains: + * @self: A #WebKitDOMDOMTokenList + * @token: A #gchar + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_token_list_contains(WebKitDOMDOMTokenList* self, const gchar* token); + +/** + * webkit_dom_dom_token_list_add: + * @self: A #WebKitDOMDOMTokenList + * @error: #GError + * @...: list of #gchar ended by %NULL. + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_token_list_add(WebKitDOMDOMTokenList* self, GError** error, ...); + +/** + * webkit_dom_dom_token_list_remove: + * @self: A #WebKitDOMDOMTokenList + * @error: #GError + * @...: list of #gchar ended by %NULL. + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_token_list_remove(WebKitDOMDOMTokenList* self, GError** error, ...); + +/** + * webkit_dom_dom_token_list_toggle: + * @self: A #WebKitDOMDOMTokenList + * @token: A #gchar + * @force: A #gboolean + * @error: #GError + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_token_list_toggle(WebKitDOMDOMTokenList* self, const gchar* token, gboolean force, GError** error); + +/** + * webkit_dom_dom_token_list_replace: + * @self: A #WebKitDOMDOMTokenList + * @token: A #gchar + * @newToken: A #gchar + * @error: #GError + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_token_list_replace(WebKitDOMDOMTokenList* self, const gchar* token, const gchar* newToken, GError** error); + +/** + * webkit_dom_dom_token_list_get_length: + * @self: A #WebKitDOMDOMTokenList + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_dom_token_list_get_length(WebKitDOMDOMTokenList* self); + +/** + * webkit_dom_dom_token_list_get_value: + * @self: A #WebKitDOMDOMTokenList + * + * Returns: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API gchar* +webkit_dom_dom_token_list_get_value(WebKitDOMDOMTokenList* self); + +/** + * webkit_dom_dom_token_list_set_value: + * @self: A #WebKitDOMDOMTokenList + * @value: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_token_list_set_value(WebKitDOMDOMTokenList* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMDOMTokenList_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenListPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenListPrivate.h new file mode 100644 index 000000000..7ebe821c2 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenListPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDOMTokenListPrivate_h +#define WebKitDOMDOMTokenListPrivate_h + +#include <WebCore/DOMTokenList.h> +#include <webkitdom/WebKitDOMDOMTokenList.h> + +namespace WebKit { +WebKitDOMDOMTokenList* wrapDOMTokenList(WebCore::DOMTokenList*); +WebKitDOMDOMTokenList* kit(WebCore::DOMTokenList*); +WebCore::DOMTokenList* core(WebKitDOMDOMTokenList*); +} // namespace WebKit + +#endif /* WebKitDOMDOMTokenListPrivate_h */ 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; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h new file mode 100644 index 000000000..f5ca85077 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h @@ -0,0 +1,609 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMDOMWindow_h +#define WebKitDOMDOMWindow_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_DOM_WINDOW (webkit_dom_dom_window_get_type()) +#define WEBKIT_DOM_DOM_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_DOM_WINDOW, WebKitDOMDOMWindow)) +#define WEBKIT_DOM_DOM_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_DOM_WINDOW, WebKitDOMDOMWindowClass) +#define WEBKIT_DOM_IS_DOM_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_DOM_WINDOW)) +#define WEBKIT_DOM_IS_DOM_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_DOM_WINDOW)) +#define WEBKIT_DOM_DOM_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_DOM_WINDOW, WebKitDOMDOMWindowClass)) + +struct _WebKitDOMDOMWindow { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMDOMWindowClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_dom_window_get_type(void); + +/** + * webkit_dom_dom_window_get_selection: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer full): A #WebKitDOMDOMSelection + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDOMSelection* +webkit_dom_dom_window_get_selection(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_focus: + * @self: A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_focus(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_blur: + * @self: A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_blur(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_close: + * @self: A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_close(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_print: + * @self: A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_print(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_stop: + * @self: A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_stop(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_alert: + * @self: A #WebKitDOMDOMWindow + * @message: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_alert(WebKitDOMDOMWindow* self, const gchar* message); + +/** + * webkit_dom_dom_window_confirm: + * @self: A #WebKitDOMDOMWindow + * @message: A #gchar + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_window_confirm(WebKitDOMDOMWindow* self, const gchar* message); + +/** + * webkit_dom_dom_window_prompt: + * @self: A #WebKitDOMDOMWindow + * @message: A #gchar + * @defaultValue: A #gchar + * + * Returns: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API gchar* +webkit_dom_dom_window_prompt(WebKitDOMDOMWindow* self, const gchar* message, const gchar* defaultValue); + +/** + * webkit_dom_dom_window_find: + * @self: A #WebKitDOMDOMWindow + * @string: A #gchar + * @caseSensitive: A #gboolean + * @backwards: A #gboolean + * @wrap: A #gboolean + * @wholeWord: A #gboolean + * @searchInFrames: A #gboolean + * @showDialog: A #gboolean + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_window_find(WebKitDOMDOMWindow* self, const gchar* string, gboolean caseSensitive, gboolean backwards, gboolean wrap, gboolean wholeWord, gboolean searchInFrames, gboolean showDialog); + +/** + * webkit_dom_dom_window_scroll_by: + * @self: A #WebKitDOMDOMWindow + * @x: A #gdouble + * @y: A #gdouble + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_scroll_by(WebKitDOMDOMWindow* self, gdouble x, gdouble y); + +/** + * webkit_dom_dom_window_scroll_to: + * @self: A #WebKitDOMDOMWindow + * @x: A #gdouble + * @y: A #gdouble + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_scroll_to(WebKitDOMDOMWindow* self, gdouble x, gdouble y); + +/** + * webkit_dom_dom_window_move_by: + * @self: A #WebKitDOMDOMWindow + * @x: A #gfloat + * @y: A #gfloat + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_move_by(WebKitDOMDOMWindow* self, gfloat x, gfloat y); + +/** + * webkit_dom_dom_window_move_to: + * @self: A #WebKitDOMDOMWindow + * @x: A #gfloat + * @y: A #gfloat + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_move_to(WebKitDOMDOMWindow* self, gfloat x, gfloat y); + +/** + * webkit_dom_dom_window_resize_by: + * @self: A #WebKitDOMDOMWindow + * @x: A #gfloat + * @y: A #gfloat + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_resize_by(WebKitDOMDOMWindow* self, gfloat x, gfloat y); + +/** + * webkit_dom_dom_window_resize_to: + * @self: A #WebKitDOMDOMWindow + * @width: A #gfloat + * @height: A #gfloat + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_resize_to(WebKitDOMDOMWindow* self, gfloat width, gfloat height); + +/** + * webkit_dom_dom_window_get_computed_style: + * @self: A #WebKitDOMDOMWindow + * @element: A #WebKitDOMElement + * @pseudoElement: (allow-none): A #gchar + * + * Returns: (transfer full): A #WebKitDOMCSSStyleDeclaration + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMCSSStyleDeclaration* +webkit_dom_dom_window_get_computed_style(WebKitDOMDOMWindow* self, WebKitDOMElement* element, const gchar* pseudoElement); + +/** + * webkit_dom_dom_window_capture_events: + * @self: A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_capture_events(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_release_events: + * @self: A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_release_events(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_frame_element: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMElement* +webkit_dom_dom_window_get_frame_element(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_offscreen_buffering: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_window_get_offscreen_buffering(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_outer_height: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_outer_height(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_outer_width: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_outer_width(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_inner_height: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_inner_height(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_inner_width: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_inner_width(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_screen_x: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_screen_x(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_screen_y: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_screen_y(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_screen_left: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_screen_left(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_screen_top: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_screen_top(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_scroll_x: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_scroll_x(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_scroll_y: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_scroll_y(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_page_x_offset: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_page_x_offset(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_page_y_offset: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_page_y_offset(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_closed: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_dom_window_get_closed(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_length: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_dom_window_get_length(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_name: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API gchar* +webkit_dom_dom_window_get_name(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_set_name: + * @self: A #WebKitDOMDOMWindow + * @value: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_set_name(WebKitDOMDOMWindow* self, const gchar* value); + +/** + * webkit_dom_dom_window_get_status: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API gchar* +webkit_dom_dom_window_get_status(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_set_status: + * @self: A #WebKitDOMDOMWindow + * @value: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_set_status(WebKitDOMDOMWindow* self, const gchar* value); + +/** + * webkit_dom_dom_window_get_default_status: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API gchar* +webkit_dom_dom_window_get_default_status(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_set_default_status: + * @self: A #WebKitDOMDOMWindow + * @value: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_dom_window_set_default_status(WebKitDOMDOMWindow* self, const gchar* value); + +/** + * webkit_dom_dom_window_get_self: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer full): A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_dom_window_get_self(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_window: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer full): A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_dom_window_get_window(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_frames: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer full): A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_dom_window_get_frames(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_opener: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer full): A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_dom_window_get_opener(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_parent: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer full): A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_dom_window_get_parent(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_top: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer full): A #WebKitDOMDOMWindow + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_dom_window_get_top(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_document: + * @self: A #WebKitDOMDOMWindow + * + * Returns: (transfer none): A #WebKitDOMDocument + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMDocument* +webkit_dom_dom_window_get_document(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_device_pixel_ratio: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #gdouble + * + * Since: 2.16 + */ +WEBKIT_API gdouble +webkit_dom_dom_window_get_device_pixel_ratio(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_get_orientation: + * @self: A #WebKitDOMDOMWindow + * + * Returns: A #glong + * + * Since: 2.16 + */ +WEBKIT_API glong +webkit_dom_dom_window_get_orientation(WebKitDOMDOMWindow* self); + +/** + * webkit_dom_dom_window_post_user_message: + * @window: A #WebKitDOMDOMWindow + * @handler: Name of the user message handler. + * @message: JavaScript value to be sent. + * + * Returns: Whether the message was successfully sent. + * + * Since: 2.8 + */ +gboolean webkit_dom_dom_window_webkit_message_handlers_post_message(WebKitDOMDOMWindow* window, const gchar* handler, const gchar* message); + +G_END_DECLS + +#endif /* WebKitDOMDOMWindow_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowPrivate.h new file mode 100644 index 000000000..e31d2275b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDOMWindowPrivate_h +#define WebKitDOMDOMWindowPrivate_h + +#include <WebCore/DOMWindow.h> +#include <webkitdom/WebKitDOMDOMWindow.h> + +namespace WebKit { +WebKitDOMDOMWindow* wrapDOMWindow(WebCore::DOMWindow*); +WebKitDOMDOMWindow* kit(WebCore::DOMWindow*); +WebCore::DOMWindow* core(WebKitDOMDOMWindow*); +} // namespace WebKit + +#endif /* WebKitDOMDOMWindowPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowUnstable.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowUnstable.h new file mode 100644 index 000000000..35cb62e6b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowUnstable.h @@ -0,0 +1,29 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDOMWindowUnstable_h +#define WebKitDOMDOMWindowUnstable_h + +#ifdef WEBKIT_DOM_USE_UNSTABLE_API +#define __WEBKITDOM_H_INSIDE__ +#include <webkitdom/WebKitDOMDOMWindow.h> +#undef __WEBKITDOM_H_INSIDE__ +#endif /* WEBKIT_DOM_USE_UNSTABLE_API */ + +#endif /* WebKitDOMDOMWindowUnstable_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp new file mode 100644 index 000000000..3c8f6150b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp @@ -0,0 +1,322 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "WebKitDOMDeprecated.h" + +#include "ConvertToUTF8String.h" +#include <WebCore/Document.h> +#include <WebCore/Element.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include <WebCore/HTMLCollection.h> +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMElementPrivate.h" +#include "WebKitDOMHTMLDocumentPrivate.h" +#include "WebKitDOMHTMLInputElementPrivate.h" +#include "WebKitDOMHTMLTitleElement.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMTextPrivate.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> +#include <wtf/text/WTFString.h> + +gchar* webkit_dom_html_element_get_inner_html(WebKitDOMHTMLElement* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), nullptr); + return webkit_dom_element_get_inner_html(WEBKIT_DOM_ELEMENT(self)); +} + +void webkit_dom_html_element_set_inner_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error) +{ + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + webkit_dom_element_set_inner_html(WEBKIT_DOM_ELEMENT(self), contents, error); +} + +gchar* webkit_dom_html_element_get_outer_html(WebKitDOMHTMLElement* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), nullptr); + return webkit_dom_element_get_outer_html(WEBKIT_DOM_ELEMENT(self)); +} + +void webkit_dom_html_element_set_outer_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error) +{ + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + webkit_dom_element_set_outer_html(WEBKIT_DOM_ELEMENT(self), contents, error); +} + +WebKitDOMHTMLCollection* webkit_dom_html_element_get_children(WebKitDOMHTMLElement* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), nullptr); + return webkit_dom_element_get_children(WEBKIT_DOM_ELEMENT(self)); +} + +WebKitDOMNodeList* webkit_dom_document_get_elements_by_tag_name(WebKitDOMDocument* self, const gchar* tagName) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), nullptr); + g_return_val_if_fail(tagName, nullptr); + + WebCore::JSMainThreadNullState state; + WebCore::Document* document = WebKit::core(self); + RefPtr<WebCore::NodeList> nodeList = WTF::getPtr(document->getElementsByTagName(String::fromUTF8(tagName))); + return WebKit::kit(nodeList.get()); +} + +WebKitDOMNodeList* webkit_dom_document_get_elements_by_tag_name_ns(WebKitDOMDocument* self, const gchar* namespaceURI, const gchar* tagName) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), nullptr); + g_return_val_if_fail(namespaceURI, nullptr); + g_return_val_if_fail(tagName, nullptr); + + WebCore::JSMainThreadNullState state; + WebCore::Document* document = WebKit::core(self); + RefPtr<WebCore::NodeList> nodeList = WTF::getPtr(document->getElementsByTagNameNS(String::fromUTF8(namespaceURI), String::fromUTF8(tagName))); + return WebKit::kit(nodeList.get()); +} + +WebKitDOMNodeList* webkit_dom_document_get_elements_by_class_name(WebKitDOMDocument* self, const gchar* className) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), nullptr); + g_return_val_if_fail(className, nullptr); + + WebCore::JSMainThreadNullState state; + WebCore::Document* document = WebKit::core(self); + RefPtr<WebCore::NodeList> nodeList = WTF::getPtr(document->getElementsByClassName(String::fromUTF8(className))); + return WebKit::kit(nodeList.get()); +} + +WebKitDOMNodeList* webkit_dom_element_get_elements_by_tag_name(WebKitDOMElement* self, const gchar* tagName) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), nullptr); + g_return_val_if_fail(tagName, nullptr); + + WebCore::JSMainThreadNullState state; + WebCore::Element* element = WebKit::core(self); + RefPtr<WebCore::NodeList> nodeList = WTF::getPtr(element->getElementsByTagName(String::fromUTF8(tagName))); + return WebKit::kit(nodeList.get()); +} + +WebKitDOMNodeList* webkit_dom_element_get_elements_by_tag_name_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* tagName) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), nullptr); + g_return_val_if_fail(namespaceURI, nullptr); + g_return_val_if_fail(tagName, nullptr); + + WebCore::JSMainThreadNullState state; + WebCore::Element* element = WebKit::core(self); + RefPtr<WebCore::NodeList> nodeList = WTF::getPtr(element->getElementsByTagNameNS(String::fromUTF8(namespaceURI), String::fromUTF8(tagName))); + return WebKit::kit(nodeList.get()); +} + +WebKitDOMNodeList* webkit_dom_element_get_elements_by_class_name(WebKitDOMElement* self, const gchar* className) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), nullptr); + g_return_val_if_fail(className, nullptr); + + WebCore::JSMainThreadNullState state; + WebCore::Element* element = WebKit::core(self); + RefPtr<WebCore::NodeList> nodeList = WTF::getPtr(element->getElementsByClassName(String::fromUTF8(className))); + return WebKit::kit(nodeList.get()); +} + +WebKitDOMNode* webkit_dom_node_clone_node(WebKitDOMNode* self, gboolean deep) +{ + return webkit_dom_node_clone_node_with_error(self, deep, nullptr); +} + +gchar* webkit_dom_document_get_default_charset(WebKitDOMDocument* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), nullptr); + return convertToUTF8String(WebKit::core(self)->defaultCharsetForLegacyBindings()); +} + +WebKitDOMText* webkit_dom_text_replace_whole_text(WebKitDOMText* self, const gchar* content, GError** error) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_TEXT(self), nullptr); + g_return_val_if_fail(content, nullptr); + g_return_val_if_fail(!error || !*error, nullptr); + + WebCore::JSMainThreadNullState state; + return WebKit::kit(WebKit::core(self)->replaceWholeText(WTF::String::fromUTF8(content)).get()); +} + +gboolean webkit_dom_html_input_element_get_capture(WebKitDOMHTMLInputElement* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + +#if ENABLE(MEDIA_CAPTURE) + WebCore::JSMainThreadNullState state; + WebCore::HTMLInputElement* item = WebKit::core(self); + return item->mediaCaptureType() != WebCore::MediaCaptureTypeNone; +#else + UNUSED_PARAM(self); + WEBKIT_WARN_FEATURE_NOT_PRESENT("Media Capture") + return FALSE; +#endif /* ENABLE(MEDIA_CAPTURE) */ +} + +gchar* webkit_dom_html_document_get_design_mode(WebKitDOMHTMLDocument* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), nullptr); + return webkit_dom_document_get_design_mode(WEBKIT_DOM_DOCUMENT(self)); +} + + +void webkit_dom_html_document_set_design_mode(WebKitDOMHTMLDocument* self, const gchar* value) +{ + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + webkit_dom_document_set_design_mode(WEBKIT_DOM_DOCUMENT(self), value); +} + +gchar* webkit_dom_html_document_get_compat_mode(WebKitDOMHTMLDocument* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), nullptr); + return webkit_dom_document_get_compat_mode(WEBKIT_DOM_DOCUMENT(self)); +} + +WebKitDOMHTMLCollection* webkit_dom_html_document_get_embeds(WebKitDOMHTMLDocument* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), nullptr); + return webkit_dom_document_get_embeds(WEBKIT_DOM_DOCUMENT(self)); +} + +WebKitDOMHTMLCollection* webkit_dom_html_document_get_plugins(WebKitDOMHTMLDocument* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), nullptr); + return webkit_dom_document_get_plugins(WEBKIT_DOM_DOCUMENT(self)); +} + +WebKitDOMHTMLCollection* webkit_dom_html_document_get_scripts(WebKitDOMHTMLDocument* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), nullptr); + return webkit_dom_document_get_scripts(WEBKIT_DOM_DOCUMENT(self)); +} + +gchar* webkit_dom_node_get_namespace_uri(WebKitDOMNode* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), nullptr); + + WebCore::JSMainThreadNullState state; + return convertToUTF8String(WebKit::core(self)->namespaceURI()); +} + +gchar* webkit_dom_node_get_prefix(WebKitDOMNode* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), nullptr); + WebCore::JSMainThreadNullState state; + return convertToUTF8String(WebKit::core(self)->prefix()); +} + +void webkit_dom_node_set_prefix(WebKitDOMNode* self, const gchar* value, GError** error) +{ + g_return_if_fail(WEBKIT_DOM_IS_NODE(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + + g_warning("%s: prefix is now a readonly property according to the DOM spec.", __func__); + + WebCore::JSMainThreadNullState state; + WebCore::Node* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setPrefix(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_node_get_local_name(WebKitDOMNode* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), nullptr); + WebCore::JSMainThreadNullState state; + return convertToUTF8String(WebKit::core(self)->localName()); +} + +G_DEFINE_TYPE(WebKitDOMEntityReference, webkit_dom_entity_reference, WEBKIT_DOM_TYPE_NODE) + +static void webkit_dom_entity_reference_init(WebKitDOMEntityReference*) +{ +} + +static void webkit_dom_entity_reference_class_init(WebKitDOMEntityReferenceClass*) +{ +} + +gboolean webkit_dom_node_iterator_get_expand_entity_references(WebKitDOMNodeIterator*) +{ + g_warning("%s: EntityReference has been removed from DOM spec, this function does nothing.", __func__); + return FALSE; +} + +gboolean webkit_dom_tree_walker_get_expand_entity_references(WebKitDOMTreeWalker*) +{ + g_warning("%s: EntityReference has been removed from DOM spec, this function does nothing.", __func__); + return FALSE; +} + +WebKitDOMEntityReference* webkit_dom_document_create_entity_reference(WebKitDOMDocument*, const gchar*, GError**) +{ + g_warning("%s: EntityReference has been removed from DOM spec, this function does nothing.", __func__); + return nullptr; +} + +G_DEFINE_TYPE(WebKitDOMHTMLBaseFontElement, webkit_dom_html_base_font_element, WEBKIT_DOM_TYPE_HTML_ELEMENT) + +static void webkit_dom_html_base_font_element_init(WebKitDOMHTMLBaseFontElement*) +{ +} + +static void webkit_dom_html_base_font_element_class_init(WebKitDOMHTMLBaseFontElementClass*) +{ +} + +gchar* webkit_dom_html_base_font_element_get_color(WebKitDOMHTMLBaseFontElement*) +{ + g_warning("%s: HTMLBaseFont has been removed from DOM spec, this function does nothing.", __func__); + return nullptr; +} + +void webkit_dom_html_base_font_element_set_color(WebKitDOMHTMLBaseFontElement*, const gchar*) +{ + g_warning("%s: HTMLBaseFont has been removed from DOM spec, this function does nothing.", __func__); +} + +gchar* webkit_dom_html_base_font_element_get_face(WebKitDOMHTMLBaseFontElement*) +{ + g_warning("%s: HTMLBaseFont has been removed from DOM spec, this function does nothing.", __func__); + return nullptr; +} + +void webkit_dom_html_base_font_element_set_face(WebKitDOMHTMLBaseFontElement*, const gchar*) +{ + g_warning("%s: HTMLBaseFont has been removed from DOM spec, this function does nothing.", __func__); +} + +glong webkit_dom_html_base_font_element_get_size(WebKitDOMHTMLBaseFontElement*) +{ + g_warning("%s: HTMLBaseFont has been removed from DOM spec, this function does nothing.", __func__); + return 0; +} + +void webkit_dom_html_base_font_element_set_size(WebKitDOMHTMLBaseFontElement*, glong) +{ + g_warning("%s: HTMLBaseFont has been removed from DOM spec, this function does nothing.", __func__); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.h new file mode 100644 index 000000000..1b9341bcd --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.h @@ -0,0 +1,477 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WebKitDOMDeprecated_h +#define WebKitDOMDeprecated_h + +#if !defined(WEBKIT_DISABLE_DEPRECATED) + +#include <glib.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +/** + * webkit_dom_html_element_get_inner_html: + * @self: a #WebKitDOMHTMLElement + * + * Returns: a #gchar + * + * Deprecated: 2.8: Use webkit_dom_element_get_inner_html() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_inner_html) gchar* +webkit_dom_html_element_get_inner_html(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_inner_html: + * @self: a #WebKitDOMHTMLElement + * @contents: a #gchar with contents to set + * @error: a #GError or %NULL + * + * Deprecated: 2.8: Use webkit_dom_element_set_inner_html() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_set_inner_html) void +webkit_dom_html_element_set_inner_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error); + +/** + * webkit_dom_html_element_get_outer_html: + * @self: a #WebKitDOMHTMLElement + * + * Returns: a #gchar + * + * Deprecated: 2.8: Use webkit_dom_element_get_outer_html() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_outer_html) gchar* +webkit_dom_html_element_get_outer_html(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_outer_html: + * @self: a #WebKitDOMHTMLElement + * @contents: a #gchar with contents to set + * @error: a #GError or %NULL + * + * Deprecated: 2.8: Use webkit_dom_element_set_outer_html() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_set_outer_html) void +webkit_dom_html_element_set_outer_html(WebKitDOMHTMLElement* self, const gchar* contents, GError** error); + +/** + * webkit_dom_html_element_get_children: + * @self: A #WebKitDOMHTMLElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Deprecated: 2.10: Use webkit_dom_element_get_children() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_children) WebKitDOMHTMLCollection* +webkit_dom_html_element_get_children(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_document_get_elements_by_tag_name: + * @self: A #WebKitDOMDocument + * @tag_name: a #gchar with the tag name + * + * Returns: (transfer full): a #WebKitDOMNodeList + * + * Deprecated: 2.12: Use webkit_dom_document_get_elements_by_tag_name_as_html_collection() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_elements_by_tag_name_as_html_collection) WebKitDOMNodeList* +webkit_dom_document_get_elements_by_tag_name(WebKitDOMDocument* self, const gchar* tag_name); + +/** + * webkit_dom_document_get_elements_by_tag_name_ns: + * @self: A #WebKitDOMDocument + * @namespace_uri: a #gchar with the namespace URI + * @tag_name: a #gchar with the tag name + * + * Returns: (transfer full): a #WebKitDOMNodeList + * + * Deprecated: 2.12: Use webkit_dom_document_get_elements_by_tag_name_ns_as_html_collection() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_elements_by_tag_name_as_html_collection) WebKitDOMNodeList* +webkit_dom_document_get_elements_by_tag_name_ns(WebKitDOMDocument* self, const gchar* namespace_uri, const gchar* tag_name); + + +/** + * webkit_dom_document_get_elements_by_class_name: + * @self: A #WebKitDOMDocument + * @class_name: a #gchar with the tag name + * + * Returns: (transfer full): a #WebKitDOMNodeList + * + * Deprecated: 2.12: Use webkit_dom_document_get_elements_by_class_name_as_html_collection() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_elements_by_class_name_as_html_collection) WebKitDOMNodeList* +webkit_dom_document_get_elements_by_class_name(WebKitDOMDocument* self, const gchar* class_name); + +/** + * webkit_dom_element_get_elements_by_tag_name: + * @self: A #WebKitDOMElement + * @tag_name: a #gchar with the tag name + * + * Returns: (transfer full): a #WebKitDOMNodeList + * + * Deprecated: 2.12: Use webkit_dom_element_get_elements_by_tag_name_as_html_collection() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_elements_by_tag_name_as_html_collection) WebKitDOMNodeList* +webkit_dom_element_get_elements_by_tag_name(WebKitDOMElement* self, const gchar* tag_name); + +/** + * webkit_dom_element_get_elements_by_tag_name_ns: + * @self: A #WebKitDOMElement + * @namespace_uri: a #gchar with the namespace URI + * @tag_name: a #gchar with the tag name + * + * Returns: (transfer full): a #WebKitDOMNodeList + * + * Deprecated: 2.12: Use webkit_dom_element_get_elements_by_tag_name_ns_as_html_collection() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_elements_by_tag_name_as_html_collection) WebKitDOMNodeList* +webkit_dom_element_get_elements_by_tag_name_ns(WebKitDOMElement* self, const gchar* namespace_uri, const gchar* tag_name); + + +/** + * webkit_dom_element_get_elements_by_class_name: + * @self: A #WebKitDOMElement + * @class_name: a #gchar with the tag name + * + * Returns: (transfer full): a #WebKitDOMNodeList + * + * Deprecated: 2.12: Use webkit_dom_element_get_elements_by_class_name_as_html_collection() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_element_get_elements_by_class_name_as_html_collection) WebKitDOMNodeList* +webkit_dom_element_get_elements_by_class_name(WebKitDOMElement* self, const gchar* class_name); + +/** + * webkit_dom_node_clone_node: + * @self: A #WebKitDOMNode + * @deep: A #gboolean + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode + * + * Deprecated: 2.14: Use webkit_dom_node_clone_node_with_error() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_node_clone_node_with_error) WebKitDOMNode* +webkit_dom_node_clone_node(WebKitDOMNode* self, gboolean deep, GError** error); + + +/** + * webkit_dom_document_get_default_charset: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar + * + * Deprecated: 2.14 + */ +WEBKIT_DEPRECATED gchar* +webkit_dom_document_get_default_charset(WebKitDOMDocument* self); + +/** + * webkit_dom_text_replace_whole_text: + * @self: A #WebKitDOMText + * @content: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMText + * + * Deprecated: 2.14 + */ +WEBKIT_DEPRECATED WebKitDOMText* +webkit_dom_text_replace_whole_text(WebKitDOMText* self, const gchar* content, GError** error); + +/** + * webkit_dom_html_input_element_get_capture: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean + * + * Deprecated: 2.14: Use webkit_dom_html_input_element_get_capture_type() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_html_input_element_get_capture_type) gboolean +webkit_dom_html_input_element_get_capture(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_document_get_design_mode: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar + * + * Deprecated: 2.14: Use webkit_dom_document_get_design_mode() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_design_mode) gchar* +webkit_dom_html_document_get_design_mode(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_set_design_mode: + * @self: A #WebKitDOMHTMLDocument + * @value: A #gchar + * + * Deprecated: 2.14: Use webkit_dom_document_set_design_mode() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_set_design_mode) void +webkit_dom_html_document_set_design_mode(WebKitDOMHTMLDocument* self, const gchar* value); + +/** + * webkit_dom_html_document_get_compat_mode: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar + * + * Deprecated: 2.14: Use webkit_dom_document_get_compat_mode() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_compat_mode) gchar* +webkit_dom_html_document_get_compat_mode(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_get_embeds: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Deprecated: 2.14: Use webkit_dom_document_get_embeds() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_embeds) WebKitDOMHTMLCollection* +webkit_dom_html_document_get_embeds(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_get_plugins: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Deprecated: 2.14: Use webkit_dom_document_get_plugins() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_plugins) WebKitDOMHTMLCollection* +webkit_dom_html_document_get_plugins(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_get_scripts: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Deprecated: 2.14: Use webkit_dom_document_get_scripts() instead. + */ +WEBKIT_DEPRECATED_FOR(webkit_dom_document_get_scripts) WebKitDOMHTMLCollection* +webkit_dom_html_document_get_scripts(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_node_get_namespace_uri: + * @self: A #WebKitDOMNode + * + * Returns: A #gchar + * + * Deprecated: 2.14: Use webkit_dom_attr_get_namespace_uri() or webkit_dom_element_get_namespace_uri() instead. + */ +WEBKIT_DEPRECATED gchar* +webkit_dom_node_get_namespace_uri(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_prefix: + * @self: A #WebKitDOMNode + * + * Returns: A #gchar + * + * Deprecated: 2.14: Use webkit_dom_attr_get_prefix() or webkit_dom_element_get_prefix() instead. + */ +WEBKIT_DEPRECATED gchar* +webkit_dom_node_get_prefix(WebKitDOMNode* self); + +/** + * webkit_dom_node_set_prefix: + * @self: A #WebKitDOMNode + * @value: A #gchar + * @error: #GError + * + * Deprecated: 2.14 + */ +WEBKIT_DEPRECATED void +webkit_dom_node_set_prefix(WebKitDOMNode* self, const gchar* value, GError** error); + +/** + * webkit_dom_node_get_local_name: + * @self: A #WebKitDOMNode + * + * Returns: A #gchar + * + * Deprecated: 2.14: Use webkit_dom_attr_get_local_name() or webkit_dom_element_get_local_name() instead. + */ +WEBKIT_DEPRECATED gchar* +webkit_dom_node_get_local_name(WebKitDOMNode* self); + +#define WEBKIT_DOM_TYPE_ENTITY_REFERENCE (webkit_dom_entity_reference_get_type()) +#define WEBKIT_DOM_ENTITY_REFERENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_ENTITY_REFERENCE, WebKitDOMEntityReference)) +#define WEBKIT_DOM_ENTITY_REFERENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_ENTITY_REFERENCE, WebKitDOMEntityReferenceClass) +#define WEBKIT_DOM_IS_ENTITY_REFERENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_ENTITY_REFERENCE)) +#define WEBKIT_DOM_IS_ENTITY_REFERENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_ENTITY_REFERENCE)) +#define WEBKIT_DOM_ENTITY_REFERENCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_ENTITY_REFERENCE, WebKitDOMEntityReferenceClass)) + +typedef struct _WebKitDOMEntityReference WebKitDOMEntityReference; +typedef struct _WebKitDOMEntityReferenceClass WebKitDOMEntityReferenceClass; + +struct _WebKitDOMEntityReference { + WebKitDOMNode parent_instance; +}; + +struct _WebKitDOMEntityReferenceClass { + WebKitDOMNodeClass parent_class; +}; + +WEBKIT_DEPRECATED GType webkit_dom_entity_reference_get_type(void); + +/** + * webkit_dom_node_iterator_get_expand_entity_references: + * @self: A #WebKitDOMNodeIterator + * + * This function has been removed from the DOM spec and it just returns %FALSE. + * + * Returns: A #gboolean * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED gboolean webkit_dom_node_iterator_get_expand_entity_references(WebKitDOMNodeIterator* self); + +/** + * webkit_dom_tree_walker_get_expand_entity_references: + * @self: A #WebKitDOMTreeWalker + * + * This function has been removed from the DOM spec and it just returns %FALSE. + * + * Returns: A #gboolean + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED gboolean webkit_dom_tree_walker_get_expand_entity_references(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_document_create_entity_reference: + * @self: A #WebKitDOMDocument + * @name: (allow-none): A #gchar + * @error: #GError + * + * This function has been removed from the DOM spec and it just returns %NULL. + * + * Returns: (transfer none): A #WebKitDOMEntityReference + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED WebKitDOMEntityReference* webkit_dom_document_create_entity_reference(WebKitDOMDocument* self, const gchar* name, GError** error); + +#define WEBKIT_DOM_TYPE_HTML_BASE_FONT_ELEMENT (webkit_dom_html_base_font_element_get_type()) +#define WEBKIT_DOM_HTML_BASE_FONT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_BASE_FONT_ELEMENT, WebKitDOMHTMLBaseFontElement)) +#define WEBKIT_DOM_HTML_BASE_FONT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_BASE_FONT_ELEMENT, WebKitDOMHTMLBaseFontElementClass) +#define WEBKIT_DOM_IS_HTML_BASE_FONT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_BASE_FONT_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_BASE_FONT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_BASE_FONT_ELEMENT)) +#define WEBKIT_DOM_HTML_BASE_FONT_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_BASE_FONT_ELEMENT, WebKitDOMHTMLBaseFontElementClass)) + +typedef struct _WebKitDOMHTMLBaseFontElement WebKitDOMHTMLBaseFontElement; +typedef struct _WebKitDOMHTMLBaseFontElementClass WebKitDOMHTMLBaseFontElementClass; + +struct _WebKitDOMHTMLBaseFontElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLBaseFontElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_DEPRECATED GType +webkit_dom_html_base_font_element_get_type(void); + +/** + * webkit_dom_html_base_font_element_get_color: + * @self: A #WebKitDOMHTMLBaseFontElement + * + * This function has been removed from the DOM spec and it just returns %NULL. + * + * Returns: A #gchar + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED gchar* +webkit_dom_html_base_font_element_get_color(WebKitDOMHTMLBaseFontElement* self); + +/** + * webkit_dom_html_base_font_element_set_color: + * @self: A #WebKitDOMHTMLBaseFontElement + * @value: A #gchar + * + * This function has been removed from the DOM spec and it does nothing. + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED void +webkit_dom_html_base_font_element_set_color(WebKitDOMHTMLBaseFontElement* self, const gchar* value); + +/** + * webkit_dom_html_base_font_element_get_face: + * @self: A #WebKitDOMHTMLBaseFontElement + * + * This function has been removed from the DOM spec and it just returns %NULL. + * + * Returns: A #gchar + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED gchar* +webkit_dom_html_base_font_element_get_face(WebKitDOMHTMLBaseFontElement* self); + +/** + * webkit_dom_html_base_font_element_set_face: + * @self: A #WebKitDOMHTMLBaseFontElement + * @value: A #gchar + * + * This function has been removed from the DOM spec and it does nothing. + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED void +webkit_dom_html_base_font_element_set_face(WebKitDOMHTMLBaseFontElement* self, const gchar* value); + +/** + * webkit_dom_html_base_font_element_get_size: + * @self: A #WebKitDOMHTMLBaseFontElement + * + * This function has been removed from the DOM spec and it just returns 0. + * + * Returns: A #glong + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED glong +webkit_dom_html_base_font_element_get_size(WebKitDOMHTMLBaseFontElement* self); + +/** + * webkit_dom_html_base_font_element_set_size: + * @self: A #WebKitDOMHTMLBaseFontElement + * @value: A #glong + * + * This function has been removed from the DOM spec and it does nothing. + * + * Deprecated: 2.12 + */ +WEBKIT_DEPRECATED void +webkit_dom_html_base_font_element_set_size(WebKitDOMHTMLBaseFontElement* self, glong value); + +G_END_DECLS + +#endif /* WEBKIT_DISABLE_DEPRECATED */ + +#endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp new file mode 100644 index 000000000..2d4c72386 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp @@ -0,0 +1,2003 @@ +/* + * 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 "WebKitDOMDocument.h" + +#include "ConvertToUTF8String.h" +#include "DOMObjectCache.h" +#include "GObjectEventListener.h" +#include "WebKitDOMAttrPrivate.h" +#include "WebKitDOMCDATASectionPrivate.h" +#include "WebKitDOMCSSStyleDeclarationPrivate.h" +#include "WebKitDOMCommentPrivate.h" +#include "WebKitDOMDOMImplementationPrivate.h" +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMDocumentFragmentPrivate.h" +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMDocumentTypePrivate.h" +#include "WebKitDOMDocumentUnstable.h" +#include "WebKitDOMElementPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLHeadElementPrivate.h" +#include "WebKitDOMHTMLScriptElementPrivate.h" +#include "WebKitDOMNodeFilterPrivate.h" +#include "WebKitDOMNodeIteratorPrivate.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMProcessingInstructionPrivate.h" +#include "WebKitDOMRangePrivate.h" +#include "WebKitDOMStyleSheetListPrivate.h" +#include "WebKitDOMTextPrivate.h" +#include "WebKitDOMTreeWalkerPrivate.h" +#include "WebKitDOMXPathExpressionPrivate.h" +#include "WebKitDOMXPathNSResolverPrivate.h" +#include "WebKitDOMXPathResultPrivate.h" +#include <WebCore/CSSImportRule.h> +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMDocument* kit(WebCore::Document* obj) +{ + return WEBKIT_DOM_DOCUMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::Document* core(WebKitDOMDocument* request) +{ + return request ? static_cast<WebCore::Document*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMDocument* wrapDocument(WebCore::Document* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_DOCUMENT(g_object_new(WEBKIT_DOM_TYPE_DOCUMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_document_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::Document* coreTarget = static_cast<WebCore::Document*>(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_document_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Document* coreTarget = static_cast<WebCore::Document*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_document_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Document* coreTarget = static_cast<WebCore::Document*>(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_document_dispatch_event; + iface->add_event_listener = webkit_dom_document_add_event_listener; + iface->remove_event_listener = webkit_dom_document_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMDocument, webkit_dom_document, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_DOCTYPE, + PROP_IMPLEMENTATION, + PROP_DOCUMENT_ELEMENT, + PROP_INPUT_ENCODING, + PROP_XML_ENCODING, + PROP_XML_VERSION, + PROP_XML_STANDALONE, + PROP_DOCUMENT_URI, + PROP_DEFAULT_VIEW, + PROP_STYLE_SHEETS, + PROP_CONTENT_TYPE, + PROP_TITLE, + PROP_DIR, + PROP_DESIGN_MODE, + PROP_REFERRER, + PROP_DOMAIN, + PROP_URL, + PROP_COOKIE, + PROP_BODY, + PROP_HEAD, + PROP_IMAGES, + PROP_APPLETS, + PROP_LINKS, + PROP_FORMS, + PROP_ANCHORS, + PROP_EMBEDS, + PROP_PLUGINS, + PROP_SCRIPTS, + PROP_LAST_MODIFIED, + PROP_CHARSET, + PROP_READY_STATE, + PROP_CHARACTER_SET, + PROP_PREFERRED_STYLESHEET_SET, + PROP_SELECTED_STYLESHEET_SET, + PROP_ACTIVE_ELEMENT, + PROP_COMPAT_MODE, + PROP_WEBKIT_IS_FULL_SCREEN, + PROP_WEBKIT_FULL_SCREEN_KEYBOARD_INPUT_ALLOWED, + PROP_WEBKIT_CURRENT_FULL_SCREEN_ELEMENT, + PROP_WEBKIT_FULLSCREEN_ENABLED, + PROP_WEBKIT_FULLSCREEN_ELEMENT, + PROP_POINTER_LOCK_ELEMENT, + PROP_VISIBILITY_STATE, + PROP_HIDDEN, + PROP_CURRENT_SCRIPT, + PROP_ORIGIN, + PROP_SCROLLING_ELEMENT, + PROP_CHILDREN, + PROP_FIRST_ELEMENT_CHILD, + PROP_LAST_ELEMENT_CHILD, + PROP_CHILD_ELEMENT_COUNT, +}; + +static void webkit_dom_document_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMDocument* self = WEBKIT_DOM_DOCUMENT(object); + + switch (propertyId) { + case PROP_XML_VERSION: + webkit_dom_document_set_xml_version(self, g_value_get_string(value), nullptr); + break; + case PROP_XML_STANDALONE: + webkit_dom_document_set_xml_standalone(self, g_value_get_boolean(value), nullptr); + break; + case PROP_DOCUMENT_URI: + webkit_dom_document_set_document_uri(self, g_value_get_string(value)); + break; + case PROP_TITLE: + webkit_dom_document_set_title(self, g_value_get_string(value)); + break; + case PROP_DIR: + webkit_dom_document_set_dir(self, g_value_get_string(value)); + break; + case PROP_DESIGN_MODE: + webkit_dom_document_set_design_mode(self, g_value_get_string(value)); + break; + case PROP_COOKIE: + webkit_dom_document_set_cookie(self, g_value_get_string(value), nullptr); + break; + case PROP_CHARSET: + webkit_dom_document_set_charset(self, g_value_get_string(value)); + break; + case PROP_SELECTED_STYLESHEET_SET: + webkit_dom_document_set_selected_stylesheet_set(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_document_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMDocument* self = WEBKIT_DOM_DOCUMENT(object); + + switch (propertyId) { + case PROP_DOCTYPE: + g_value_set_object(value, webkit_dom_document_get_doctype(self)); + break; + case PROP_IMPLEMENTATION: + g_value_set_object(value, webkit_dom_document_get_implementation(self)); + break; + case PROP_DOCUMENT_ELEMENT: + g_value_set_object(value, webkit_dom_document_get_document_element(self)); + break; + case PROP_INPUT_ENCODING: + g_value_take_string(value, webkit_dom_document_get_input_encoding(self)); + break; + case PROP_XML_ENCODING: + g_value_take_string(value, webkit_dom_document_get_xml_encoding(self)); + break; + case PROP_XML_VERSION: + g_value_take_string(value, webkit_dom_document_get_xml_version(self)); + break; + case PROP_XML_STANDALONE: + g_value_set_boolean(value, webkit_dom_document_get_xml_standalone(self)); + break; + case PROP_DOCUMENT_URI: + g_value_take_string(value, webkit_dom_document_get_document_uri(self)); + break; + case PROP_DEFAULT_VIEW: + g_value_set_object(value, webkit_dom_document_get_default_view(self)); + break; + case PROP_STYLE_SHEETS: + g_value_set_object(value, webkit_dom_document_get_style_sheets(self)); + break; + case PROP_CONTENT_TYPE: + g_value_take_string(value, webkit_dom_document_get_content_type(self)); + break; + case PROP_TITLE: + g_value_take_string(value, webkit_dom_document_get_title(self)); + break; + case PROP_DIR: + g_value_take_string(value, webkit_dom_document_get_dir(self)); + break; + case PROP_DESIGN_MODE: + g_value_take_string(value, webkit_dom_document_get_design_mode(self)); + break; + case PROP_REFERRER: + g_value_take_string(value, webkit_dom_document_get_referrer(self)); + break; + case PROP_DOMAIN: + g_value_take_string(value, webkit_dom_document_get_domain(self)); + break; + case PROP_URL: + g_value_take_string(value, webkit_dom_document_get_url(self)); + break; + case PROP_COOKIE: + g_value_take_string(value, webkit_dom_document_get_cookie(self, nullptr)); + break; + case PROP_BODY: + g_value_set_object(value, webkit_dom_document_get_body(self)); + break; + case PROP_HEAD: + g_value_set_object(value, webkit_dom_document_get_head(self)); + break; + case PROP_IMAGES: + g_value_set_object(value, webkit_dom_document_get_images(self)); + break; + case PROP_APPLETS: + g_value_set_object(value, webkit_dom_document_get_applets(self)); + break; + case PROP_LINKS: + g_value_set_object(value, webkit_dom_document_get_links(self)); + break; + case PROP_FORMS: + g_value_set_object(value, webkit_dom_document_get_forms(self)); + break; + case PROP_ANCHORS: + g_value_set_object(value, webkit_dom_document_get_anchors(self)); + break; + case PROP_EMBEDS: + g_value_set_object(value, webkit_dom_document_get_embeds(self)); + break; + case PROP_PLUGINS: + g_value_set_object(value, webkit_dom_document_get_plugins(self)); + break; + case PROP_SCRIPTS: + g_value_set_object(value, webkit_dom_document_get_scripts(self)); + break; + case PROP_LAST_MODIFIED: + g_value_take_string(value, webkit_dom_document_get_last_modified(self)); + break; + case PROP_CHARSET: + g_value_take_string(value, webkit_dom_document_get_charset(self)); + break; + case PROP_READY_STATE: + g_value_take_string(value, webkit_dom_document_get_ready_state(self)); + break; + case PROP_CHARACTER_SET: + g_value_take_string(value, webkit_dom_document_get_character_set(self)); + break; + case PROP_PREFERRED_STYLESHEET_SET: + g_value_take_string(value, webkit_dom_document_get_preferred_stylesheet_set(self)); + break; + case PROP_SELECTED_STYLESHEET_SET: + g_value_take_string(value, webkit_dom_document_get_selected_stylesheet_set(self)); + break; + case PROP_ACTIVE_ELEMENT: + g_value_set_object(value, webkit_dom_document_get_active_element(self)); + break; + case PROP_COMPAT_MODE: + g_value_take_string(value, webkit_dom_document_get_compat_mode(self)); + break; + case PROP_WEBKIT_IS_FULL_SCREEN: + g_value_set_boolean(value, webkit_dom_document_get_webkit_is_fullscreen(self)); + break; + case PROP_WEBKIT_FULL_SCREEN_KEYBOARD_INPUT_ALLOWED: + g_value_set_boolean(value, webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed(self)); + break; + case PROP_WEBKIT_CURRENT_FULL_SCREEN_ELEMENT: + g_value_set_object(value, webkit_dom_document_get_webkit_current_fullscreen_element(self)); + break; + case PROP_WEBKIT_FULLSCREEN_ENABLED: + g_value_set_boolean(value, webkit_dom_document_get_webkit_fullscreen_enabled(self)); + break; + case PROP_WEBKIT_FULLSCREEN_ELEMENT: + g_value_set_object(value, webkit_dom_document_get_webkit_fullscreen_element(self)); + break; + case PROP_POINTER_LOCK_ELEMENT: + g_value_set_object(value, webkit_dom_document_get_pointer_lock_element(self)); + break; + case PROP_VISIBILITY_STATE: + g_value_take_string(value, webkit_dom_document_get_visibility_state(self)); + break; + case PROP_HIDDEN: + g_value_set_boolean(value, webkit_dom_document_get_hidden(self)); + break; + case PROP_CURRENT_SCRIPT: + g_value_set_object(value, webkit_dom_document_get_current_script(self)); + break; + case PROP_ORIGIN: + g_value_take_string(value, webkit_dom_document_get_origin(self)); + break; + case PROP_SCROLLING_ELEMENT: + g_value_set_object(value, webkit_dom_document_get_scrolling_element(self)); + break; + case PROP_CHILDREN: + g_value_set_object(value, webkit_dom_document_get_children(self)); + break; + case PROP_FIRST_ELEMENT_CHILD: + g_value_set_object(value, webkit_dom_document_get_first_element_child(self)); + break; + case PROP_LAST_ELEMENT_CHILD: + g_value_set_object(value, webkit_dom_document_get_last_element_child(self)); + break; + case PROP_CHILD_ELEMENT_COUNT: + g_value_set_ulong(value, webkit_dom_document_get_child_element_count(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_document_class_init(WebKitDOMDocumentClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_document_set_property; + gobjectClass->get_property = webkit_dom_document_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_DOCTYPE, + g_param_spec_object( + "doctype", + "Document:doctype", + "read-only WebKitDOMDocumentType* Document:doctype", + WEBKIT_DOM_TYPE_DOCUMENT_TYPE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_IMPLEMENTATION, + g_param_spec_object( + "implementation", + "Document:implementation", + "read-only WebKitDOMDOMImplementation* Document:implementation", + WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_DOCUMENT_ELEMENT, + g_param_spec_object( + "document-element", + "Document:document-element", + "read-only WebKitDOMElement* Document:document-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_INPUT_ENCODING, + g_param_spec_string( + "input-encoding", + "Document:input-encoding", + "read-only gchar* Document:input-encoding", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_XML_ENCODING, + g_param_spec_string( + "xml-encoding", + "Document:xml-encoding", + "read-only gchar* Document:xml-encoding", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_XML_VERSION, + g_param_spec_string( + "xml-version", + "Document:xml-version", + "read-write gchar* Document:xml-version", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_XML_STANDALONE, + g_param_spec_boolean( + "xml-standalone", + "Document:xml-standalone", + "read-write gboolean Document:xml-standalone", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DOCUMENT_URI, + g_param_spec_string( + "document-uri", + "Document:document-uri", + "read-write gchar* Document:document-uri", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DEFAULT_VIEW, + g_param_spec_object( + "default-view", + "Document:default-view", + "read-only WebKitDOMDOMWindow* Document:default-view", + WEBKIT_DOM_TYPE_DOM_WINDOW, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_STYLE_SHEETS, + g_param_spec_object( + "style-sheets", + "Document:style-sheets", + "read-only WebKitDOMStyleSheetList* Document:style-sheets", + WEBKIT_DOM_TYPE_STYLE_SHEET_LIST, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT_TYPE, + g_param_spec_string( + "content-type", + "Document:content-type", + "read-only gchar* Document:content-type", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TITLE, + g_param_spec_string( + "title", + "Document:title", + "read-write gchar* Document:title", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DIR, + g_param_spec_string( + "dir", + "Document:dir", + "read-write gchar* Document:dir", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DESIGN_MODE, + g_param_spec_string( + "design-mode", + "Document:design-mode", + "read-write gchar* Document:design-mode", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_REFERRER, + g_param_spec_string( + "referrer", + "Document:referrer", + "read-only gchar* Document:referrer", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_DOMAIN, + g_param_spec_string( + "domain", + "Document:domain", + "read-only gchar* Document:domain", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_URL, + g_param_spec_string( + "url", + "Document:url", + "read-only gchar* Document:url", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_COOKIE, + g_param_spec_string( + "cookie", + "Document:cookie", + "read-write gchar* Document:cookie", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BODY, + g_param_spec_object( + "body", + "Document:body", + "read-only WebKitDOMHTMLElement* Document:body", + WEBKIT_DOM_TYPE_HTML_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEAD, + g_param_spec_object( + "head", + "Document:head", + "read-only WebKitDOMHTMLHeadElement* Document:head", + WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_IMAGES, + g_param_spec_object( + "images", + "Document:images", + "read-only WebKitDOMHTMLCollection* Document:images", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_APPLETS, + g_param_spec_object( + "applets", + "Document:applets", + "read-only WebKitDOMHTMLCollection* Document:applets", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LINKS, + g_param_spec_object( + "links", + "Document:links", + "read-only WebKitDOMHTMLCollection* Document:links", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FORMS, + g_param_spec_object( + "forms", + "Document:forms", + "read-only WebKitDOMHTMLCollection* Document:forms", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ANCHORS, + g_param_spec_object( + "anchors", + "Document:anchors", + "read-only WebKitDOMHTMLCollection* Document:anchors", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_EMBEDS, + g_param_spec_object( + "embeds", + "Document:embeds", + "read-only WebKitDOMHTMLCollection* Document:embeds", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PLUGINS, + g_param_spec_object( + "plugins", + "Document:plugins", + "read-only WebKitDOMHTMLCollection* Document:plugins", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCRIPTS, + g_param_spec_object( + "scripts", + "Document:scripts", + "read-only WebKitDOMHTMLCollection* Document:scripts", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LAST_MODIFIED, + g_param_spec_string( + "last-modified", + "Document:last-modified", + "read-only gchar* Document:last-modified", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHARSET, + g_param_spec_string( + "charset", + "Document:charset", + "read-write gchar* Document:charset", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_READY_STATE, + g_param_spec_string( + "ready-state", + "Document:ready-state", + "read-only gchar* Document:ready-state", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHARACTER_SET, + g_param_spec_string( + "character-set", + "Document:character-set", + "read-only gchar* Document:character-set", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PREFERRED_STYLESHEET_SET, + g_param_spec_string( + "preferred-stylesheet-set", + "Document:preferred-stylesheet-set", + "read-only gchar* Document:preferred-stylesheet-set", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SELECTED_STYLESHEET_SET, + g_param_spec_string( + "selected-stylesheet-set", + "Document:selected-stylesheet-set", + "read-write gchar* Document:selected-stylesheet-set", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ACTIVE_ELEMENT, + g_param_spec_object( + "active-element", + "Document:active-element", + "read-only WebKitDOMElement* Document:active-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_COMPAT_MODE, + g_param_spec_string( + "compat-mode", + "Document:compat-mode", + "read-only gchar* Document:compat-mode", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WEBKIT_IS_FULL_SCREEN, + g_param_spec_boolean( + "webkit-is-full-screen", + "Document:webkit-is-full-screen", + "read-only gboolean Document:webkit-is-full-screen", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WEBKIT_FULL_SCREEN_KEYBOARD_INPUT_ALLOWED, + g_param_spec_boolean( + "webkit-full-screen-keyboard-input-allowed", + "Document:webkit-full-screen-keyboard-input-allowed", + "read-only gboolean Document:webkit-full-screen-keyboard-input-allowed", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WEBKIT_CURRENT_FULL_SCREEN_ELEMENT, + g_param_spec_object( + "webkit-current-full-screen-element", + "Document:webkit-current-full-screen-element", + "read-only WebKitDOMElement* Document:webkit-current-full-screen-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WEBKIT_FULLSCREEN_ENABLED, + g_param_spec_boolean( + "webkit-fullscreen-enabled", + "Document:webkit-fullscreen-enabled", + "read-only gboolean Document:webkit-fullscreen-enabled", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WEBKIT_FULLSCREEN_ELEMENT, + g_param_spec_object( + "webkit-fullscreen-element", + "Document:webkit-fullscreen-element", + "read-only WebKitDOMElement* Document:webkit-fullscreen-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_POINTER_LOCK_ELEMENT, + g_param_spec_object( + "pointer-lock-element", + "Document:pointer-lock-element", + "read-only WebKitDOMElement* Document:pointer-lock-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_VISIBILITY_STATE, + g_param_spec_string( + "visibility-state", + "Document:visibility-state", + "read-only gchar* Document:visibility-state", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_HIDDEN, + g_param_spec_boolean( + "hidden", + "Document:hidden", + "read-only gboolean Document:hidden", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CURRENT_SCRIPT, + g_param_spec_object( + "current-script", + "Document:current-script", + "read-only WebKitDOMHTMLScriptElement* Document:current-script", + WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ORIGIN, + g_param_spec_string( + "origin", + "Document:origin", + "read-only gchar* Document:origin", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCROLLING_ELEMENT, + g_param_spec_object( + "scrolling-element", + "Document:scrolling-element", + "read-only WebKitDOMElement* Document:scrolling-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHILDREN, + g_param_spec_object( + "children", + "Document:children", + "read-only WebKitDOMHTMLCollection* Document:children", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FIRST_ELEMENT_CHILD, + g_param_spec_object( + "first-element-child", + "Document:first-element-child", + "read-only WebKitDOMElement* Document:first-element-child", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LAST_ELEMENT_CHILD, + g_param_spec_object( + "last-element-child", + "Document:last-element-child", + "read-only WebKitDOMElement* Document:last-element-child", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHILD_ELEMENT_COUNT, + g_param_spec_ulong( + "child-element-count", + "Document:child-element-count", + "read-only gulong Document:child-element-count", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_document_init(WebKitDOMDocument* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMElement* webkit_dom_document_create_element(WebKitDOMDocument* self, const gchar* tagName, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(tagName, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedTagName = WTF::String::fromUTF8(tagName); + auto result = item->createElementForBindings(convertedTagName); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMDocumentFragment* webkit_dom_document_create_document_fragment(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::DocumentFragment> gobjectResult = WTF::getPtr(item->createDocumentFragment()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMText* webkit_dom_document_create_text_node(WebKitDOMDocument* self, const gchar* data) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(data, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedData = WTF::String::fromUTF8(data); + RefPtr<WebCore::Text> gobjectResult = WTF::getPtr(item->createTextNode(convertedData)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMComment* webkit_dom_document_create_comment(WebKitDOMDocument* self, const gchar* data) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(data, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedData = WTF::String::fromUTF8(data); + RefPtr<WebCore::Comment> gobjectResult = WTF::getPtr(item->createComment(convertedData)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMCDATASection* webkit_dom_document_create_cdata_section(WebKitDOMDocument* self, const gchar* data, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(data, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedData = WTF::String::fromUTF8(data); + auto result = item->createCDATASection(convertedData); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMProcessingInstruction* webkit_dom_document_create_processing_instruction(WebKitDOMDocument* self, const gchar* target, const gchar* data, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(target, 0); + g_return_val_if_fail(data, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedTarget = WTF::String::fromUTF8(target); + WTF::String convertedData = WTF::String::fromUTF8(data); + auto result = item->createProcessingInstruction(convertedTarget, convertedData); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMAttr* webkit_dom_document_create_attribute(WebKitDOMDocument* self, const gchar* name, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(name, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + auto result = item->createAttribute(convertedName); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_elements_by_tag_name_as_html_collection(WebKitDOMDocument* self, const gchar* tagname) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(tagname, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedTagname = WTF::String::fromUTF8(tagname); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->getElementsByTagName(convertedTagname)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_document_import_node(WebKitDOMDocument* self, WebKitDOMNode* importedNode, gboolean deep, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(importedNode), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WebCore::Node* convertedImportedNode = WebKit::core(importedNode); + auto result = item->importNode(*convertedImportedNode, deep); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMElement* webkit_dom_document_create_element_ns(WebKitDOMDocument* self, const gchar* namespaceURI, const gchar* qualifiedName, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(qualifiedName, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedQualifiedName = WTF::String::fromUTF8(qualifiedName); + auto result = item->createElementNS(convertedNamespaceURI, convertedQualifiedName); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMAttr* webkit_dom_document_create_attribute_ns(WebKitDOMDocument* self, const gchar* namespaceURI, const gchar* qualifiedName, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(qualifiedName, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedQualifiedName = WTF::String::fromUTF8(qualifiedName); + auto result = item->createAttributeNS(convertedNamespaceURI, convertedQualifiedName); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_elements_by_tag_name_ns_as_html_collection(WebKitDOMDocument* self, const gchar* namespaceURI, const gchar* localName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(namespaceURI, 0); + g_return_val_if_fail(localName, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->getElementsByTagNameNS(convertedNamespaceURI, convertedLocalName)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_document_adopt_node(WebKitDOMDocument* self, WebKitDOMNode* source, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(source), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WebCore::Node* convertedSource = WebKit::core(source); + auto result = item->adoptNode(*convertedSource); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMEvent* webkit_dom_document_create_event(WebKitDOMDocument* self, const gchar* eventType, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(eventType, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedEventType = WTF::String::fromUTF8(eventType); + auto result = item->createEvent(convertedEventType); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMRange* webkit_dom_document_create_range(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Range> gobjectResult = WTF::getPtr(item->createRange()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNodeIterator* webkit_dom_document_create_node_iterator(WebKitDOMDocument* self, WebKitDOMNode* root, gulong whatToShow, WebKitDOMNodeFilter* filter, gboolean expandEntityReferences, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(root), 0); + g_return_val_if_fail(!filter || WEBKIT_DOM_IS_NODE_FILTER(filter), 0); + UNUSED_PARAM(error); + WebCore::Document* item = WebKit::core(self); + WebCore::Node* convertedRoot = WebKit::core(root); + RefPtr<WebCore::NodeFilter> convertedFilter = WebKit::core(filter); + RefPtr<WebCore::NodeIterator> gobjectResult = WTF::getPtr(item->createNodeIterator(*convertedRoot, whatToShow, WTF::getPtr(convertedFilter), expandEntityReferences)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMTreeWalker* webkit_dom_document_create_tree_walker(WebKitDOMDocument* self, WebKitDOMNode* root, gulong whatToShow, WebKitDOMNodeFilter* filter, gboolean expandEntityReferences, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(root), 0); + g_return_val_if_fail(!filter || WEBKIT_DOM_IS_NODE_FILTER(filter), 0); + UNUSED_PARAM(error); + WebCore::Document* item = WebKit::core(self); + WebCore::Node* convertedRoot = WebKit::core(root); + RefPtr<WebCore::NodeFilter> convertedFilter = WebKit::core(filter); + RefPtr<WebCore::TreeWalker> gobjectResult = WTF::getPtr(item->createTreeWalker(*convertedRoot, whatToShow, WTF::getPtr(convertedFilter), expandEntityReferences)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMCSSStyleDeclaration* webkit_dom_document_get_override_style(WebKitDOMDocument* self, WebKitDOMElement* element, const gchar* pseudoElement) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(element), 0); + WebCore::Document* item = WebKit::core(self); + WebCore::Element* convertedElement = WebKit::core(element); + WTF::String convertedPseudoElement = WTF::String::fromUTF8(pseudoElement); + RefPtr<WebCore::CSSStyleDeclaration> gobjectResult = WTF::getPtr(item->getOverrideStyle(convertedElement, convertedPseudoElement)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMXPathExpression* webkit_dom_document_create_expression(WebKitDOMDocument* self, const gchar* expression, WebKitDOMXPathNSResolver* resolver, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(expression, 0); + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_NS_RESOLVER(resolver), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedExpression = WTF::String::fromUTF8(expression); + RefPtr<WebCore::XPathNSResolver> convertedResolver = WebKit::core(resolver); + auto result = item->createExpression(convertedExpression, WTFMove(convertedResolver)); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMXPathNSResolver* webkit_dom_document_create_ns_resolver(WebKitDOMDocument* self, WebKitDOMNode* nodeResolver) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(nodeResolver), 0); + WebCore::Document* item = WebKit::core(self); + WebCore::Node* convertedNodeResolver = WebKit::core(nodeResolver); + RefPtr<WebCore::XPathNSResolver> gobjectResult = WTF::getPtr(item->createNSResolver(convertedNodeResolver)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMXPathResult* webkit_dom_document_evaluate(WebKitDOMDocument* self, const gchar* expression, WebKitDOMNode* contextNode, WebKitDOMXPathNSResolver* resolver, gushort type, WebKitDOMXPathResult* inResult, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(expression, 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(contextNode), 0); + g_return_val_if_fail(!resolver || WEBKIT_DOM_IS_XPATH_NS_RESOLVER(resolver), 0); + g_return_val_if_fail(!inResult || WEBKIT_DOM_IS_XPATH_RESULT(inResult), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedExpression = WTF::String::fromUTF8(expression); + WebCore::Node* convertedContextNode = WebKit::core(contextNode); + RefPtr<WebCore::XPathNSResolver> convertedResolver = WebKit::core(resolver); + WebCore::XPathResult* convertedInResult = WebKit::core(inResult); + auto result = item->evaluate(convertedExpression, convertedContextNode, WTFMove(convertedResolver), type, convertedInResult); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +gboolean webkit_dom_document_exec_command(WebKitDOMDocument* self, const gchar* command, gboolean userInterface, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + g_return_val_if_fail(command, FALSE); + g_return_val_if_fail(value, FALSE); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedCommand = WTF::String::fromUTF8(command); + WTF::String convertedValue = WTF::String::fromUTF8(value); + gboolean result = item->execCommand(convertedCommand, userInterface, convertedValue); + return result; +} + +gboolean webkit_dom_document_query_command_enabled(WebKitDOMDocument* self, const gchar* command) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + g_return_val_if_fail(command, FALSE); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedCommand = WTF::String::fromUTF8(command); + gboolean result = item->queryCommandEnabled(convertedCommand); + return result; +} + +gboolean webkit_dom_document_query_command_indeterm(WebKitDOMDocument* self, const gchar* command) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + g_return_val_if_fail(command, FALSE); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedCommand = WTF::String::fromUTF8(command); + gboolean result = item->queryCommandIndeterm(convertedCommand); + return result; +} + +gboolean webkit_dom_document_query_command_state(WebKitDOMDocument* self, const gchar* command) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + g_return_val_if_fail(command, FALSE); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedCommand = WTF::String::fromUTF8(command); + gboolean result = item->queryCommandState(convertedCommand); + return result; +} + +gboolean webkit_dom_document_query_command_supported(WebKitDOMDocument* self, const gchar* command) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + g_return_val_if_fail(command, FALSE); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedCommand = WTF::String::fromUTF8(command); + gboolean result = item->queryCommandSupported(convertedCommand); + return result; +} + +gchar* webkit_dom_document_query_command_value(WebKitDOMDocument* self, const gchar* command) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(command, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedCommand = WTF::String::fromUTF8(command); + gchar* result = convertToUTF8String(item->queryCommandValue(convertedCommand)); + return result; +} + +WebKitDOMNodeList* webkit_dom_document_get_elements_by_name(WebKitDOMDocument* self, const gchar* elementName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(elementName, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedElementName = WTF::String::fromUTF8(elementName); + RefPtr<WebCore::NodeList> gobjectResult = WTF::getPtr(item->getElementsByName(convertedElementName)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_element_from_point(WebKitDOMDocument* self, glong x, glong y) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->elementFromPoint(x, y)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMRange* webkit_dom_document_caret_range_from_point(WebKitDOMDocument* self, glong x, glong y) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Range> gobjectResult = WTF::getPtr(item->caretRangeFromPoint(x, y)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMCSSStyleDeclaration* webkit_dom_document_create_css_style_declaration(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::CSSStyleDeclaration> gobjectResult = WTF::getPtr(item->createCSSStyleDeclaration()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_elements_by_class_name_as_html_collection(WebKitDOMDocument* self, const gchar* classNames) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(classNames, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedClassNames = WTF::String::fromUTF8(classNames); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->getElementsByClassName(convertedClassNames)); + return WebKit::kit(gobjectResult.get()); +} + +gboolean webkit_dom_document_has_focus(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + WebCore::Document* item = WebKit::core(self); + gboolean result = item->hasFocus(); + return result; +} + +void webkit_dom_document_webkit_cancel_fullscreen(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + WebCore::Document* item = WebKit::core(self); + item->webkitCancelFullScreen(); +} + +void webkit_dom_document_webkit_exit_fullscreen(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + WebCore::Document* item = WebKit::core(self); + item->webkitExitFullscreen(); +} + +void webkit_dom_document_exit_pointer_lock(WebKitDOMDocument* self) +{ +#if ENABLE(POINTER_LOCK) + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + WebCore::Document* item = WebKit::core(self); + item->exitPointerLock(); +#else + UNUSED_PARAM(self); + WEBKIT_WARN_FEATURE_NOT_PRESENT("Pointer Lock") +#endif /* ENABLE(POINTER_LOCK) */ +} + +WebKitDOMElement* webkit_dom_document_get_element_by_id(WebKitDOMDocument* self, const gchar* elementId) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(elementId, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedElementId = WTF::String::fromUTF8(elementId); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->getElementById(convertedElementId)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_query_selector(WebKitDOMDocument* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(selectors, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->querySelector(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +WebKitDOMNodeList* webkit_dom_document_query_selector_all(WebKitDOMDocument* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(selectors, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->querySelectorAll(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMDocumentType* webkit_dom_document_get_doctype(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::DocumentType> gobjectResult = WTF::getPtr(item->doctype()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMDOMImplementation* webkit_dom_document_get_implementation(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::DOMImplementation> gobjectResult = WTF::getPtr(item->implementation()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_get_document_element(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->documentElement()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_document_get_input_encoding(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->characterSetWithUTF8Fallback()); + return result; +} + +gchar* webkit_dom_document_get_xml_encoding(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->xmlEncoding()); + return result; +} + +gchar* webkit_dom_document_get_xml_version(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->xmlVersion()); + return result; +} + +void webkit_dom_document_set_xml_version(WebKitDOMDocument* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setXMLVersion(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gboolean webkit_dom_document_get_xml_standalone(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + WebCore::Document* item = WebKit::core(self); + gboolean result = item->xmlStandalone(); + return result; +} + +void webkit_dom_document_set_xml_standalone(WebKitDOMDocument* self, gboolean value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(!error || !*error); + WebKit::core(self)->setXMLStandalone(value); +} + +gchar* webkit_dom_document_get_document_uri(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->documentURI()); + return result; +} + +void webkit_dom_document_set_document_uri(WebKitDOMDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setDocumentURI(convertedValue); +} + +WebKitDOMDOMWindow* webkit_dom_document_get_default_view(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->defaultView()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMStyleSheetList* webkit_dom_document_get_style_sheets(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::StyleSheetList> gobjectResult = WTF::getPtr(item->styleSheets()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_document_get_content_type(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->contentType()); + return result; +} + +gchar* webkit_dom_document_get_title(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->title()); + return result; +} + +void webkit_dom_document_set_title(WebKitDOMDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setTitle(convertedValue); +} + +gchar* webkit_dom_document_get_dir(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->dir()); + return result; +} + +void webkit_dom_document_set_dir(WebKitDOMDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setDir(convertedValue); +} + +gchar* webkit_dom_document_get_design_mode(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->designMode()); + return result; +} + +void webkit_dom_document_set_design_mode(WebKitDOMDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setDesignMode(convertedValue); +} + +gchar* webkit_dom_document_get_referrer(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->referrer()); + return result; +} + +gchar* webkit_dom_document_get_domain(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->domain()); + return result; +} + +gchar* webkit_dom_document_get_url(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->urlForBindings()); + return result; +} + +gchar* webkit_dom_document_get_cookie(WebKitDOMDocument* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Document* item = WebKit::core(self); + auto result = item->cookie(); + if (result.hasException()) + return nullptr; + return convertToUTF8String(result.releaseReturnValue()); +} + +void webkit_dom_document_set_cookie(WebKitDOMDocument* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setCookie(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMHTMLElement* webkit_dom_document_get_body(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLElement> gobjectResult = WTF::getPtr(item->bodyOrFrameset()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_document_set_body(WebKitDOMDocument* self, WebKitDOMHTMLElement* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(value)); + g_return_if_fail(!error || !*error); + WebCore::Document* item = WebKit::core(self); + WebCore::HTMLElement* convertedValue = WebKit::core(value); + auto result = item->setBodyOrFrameset(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMHTMLHeadElement* webkit_dom_document_get_head(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLHeadElement> gobjectResult = WTF::getPtr(item->head()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_images(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->images()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_applets(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->applets()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_links(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->links()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_forms(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->forms()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_anchors(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->anchors()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_embeds(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->embeds()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_plugins(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->plugins()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_scripts(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->scripts()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_document_get_last_modified(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->lastModified()); + return result; +} + +gchar* webkit_dom_document_get_charset(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->charset()); + return result; +} + +void webkit_dom_document_set_charset(WebKitDOMDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setCharset(convertedValue); +} + +gchar* webkit_dom_document_get_ready_state(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->readyState()); + return result; +} + +gchar* webkit_dom_document_get_character_set(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->characterSetWithUTF8Fallback()); + return result; +} + +gchar* webkit_dom_document_get_preferred_stylesheet_set(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->preferredStylesheetSet()); + return result; +} + +gchar* webkit_dom_document_get_selected_stylesheet_set(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->selectedStylesheetSet()); + return result; +} + +void webkit_dom_document_set_selected_stylesheet_set(WebKitDOMDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::Document* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setSelectedStylesheetSet(convertedValue); +} + +WebKitDOMElement* webkit_dom_document_get_active_element(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->activeElement()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_document_get_compat_mode(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->compatMode()); + return result; +} + +gboolean webkit_dom_document_get_webkit_is_fullscreen(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + WebCore::Document* item = WebKit::core(self); + gboolean result = item->webkitIsFullScreen(); + return result; +} + +gboolean webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + WebCore::Document* item = WebKit::core(self); + gboolean result = item->webkitFullScreenKeyboardInputAllowed(); + return result; +} + +WebKitDOMElement* webkit_dom_document_get_webkit_current_fullscreen_element(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->webkitCurrentFullScreenElement()); + return WebKit::kit(gobjectResult.get()); +} + +gboolean webkit_dom_document_get_webkit_fullscreen_enabled(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + WebCore::Document* item = WebKit::core(self); + gboolean result = item->webkitFullscreenEnabled(); + return result; +} + +WebKitDOMElement* webkit_dom_document_get_webkit_fullscreen_element(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->webkitFullscreenElement()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_get_pointer_lock_element(WebKitDOMDocument* self) +{ +#if ENABLE(POINTER_LOCK) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->pointerLockElement()); + return WebKit::kit(gobjectResult.get()); +#else + UNUSED_PARAM(self); + WEBKIT_WARN_FEATURE_NOT_PRESENT("Pointer Lock") + return 0; +#endif /* ENABLE(POINTER_LOCK) */ +} + +gchar* webkit_dom_document_get_visibility_state(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + switch (item->visibilityState()) { + case WebCore::Document::VisibilityState::Hidden: + return convertToUTF8String("hidden"); + case WebCore::Document::VisibilityState::Visible: + return convertToUTF8String("visible"); + case WebCore::Document::VisibilityState::Prerender: + return convertToUTF8String("prerender"); + } + ASSERT_NOT_REACHED(); + return nullptr; +} + +gboolean webkit_dom_document_get_hidden(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), FALSE); + WebCore::Document* item = WebKit::core(self); + gboolean result = item->hidden(); + return result; +} + +WebKitDOMHTMLScriptElement* webkit_dom_document_get_current_script(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLScriptElement> gobjectResult = WTF::getPtr(item->currentScript()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_document_get_origin(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->origin()); + return result; +} + +WebKitDOMElement* webkit_dom_document_get_scrolling_element(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->scrollingElement()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_get_children(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->children()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_get_first_element_child(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->firstElementChild()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_get_last_element_child(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->lastElementChild()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_document_get_child_element_count(WebKitDOMDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT(self), 0); + WebCore::Document* item = WebKit::core(self); + gulong result = item->childElementCount(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h new file mode 100644 index 000000000..4a83e035b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h @@ -0,0 +1,1080 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMDocument_h +#define WebKitDOMDocument_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_DOCUMENT (webkit_dom_document_get_type()) +#define WEBKIT_DOM_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_DOCUMENT, WebKitDOMDocument)) +#define WEBKIT_DOM_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_DOCUMENT, WebKitDOMDocumentClass) +#define WEBKIT_DOM_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_DOCUMENT)) +#define WEBKIT_DOM_IS_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_DOCUMENT)) +#define WEBKIT_DOM_DOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_DOCUMENT, WebKitDOMDocumentClass)) + +struct _WebKitDOMDocument { + WebKitDOMNode parent_instance; +}; + +struct _WebKitDOMDocumentClass { + WebKitDOMNodeClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_document_get_type(void); + +/** + * webkit_dom_document_create_element: + * @self: A #WebKitDOMDocument + * @tagName: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_create_element(WebKitDOMDocument* self, const gchar* tagName, GError** error); + +/** + * webkit_dom_document_create_document_fragment: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMDocumentFragment +**/ +WEBKIT_API WebKitDOMDocumentFragment* +webkit_dom_document_create_document_fragment(WebKitDOMDocument* self); + +/** + * webkit_dom_document_create_text_node: + * @self: A #WebKitDOMDocument + * @data: A #gchar + * + * Returns: (transfer none): A #WebKitDOMText +**/ +WEBKIT_API WebKitDOMText* +webkit_dom_document_create_text_node(WebKitDOMDocument* self, const gchar* data); + +/** + * webkit_dom_document_create_comment: + * @self: A #WebKitDOMDocument + * @data: A #gchar + * + * Returns: (transfer none): A #WebKitDOMComment +**/ +WEBKIT_API WebKitDOMComment* +webkit_dom_document_create_comment(WebKitDOMDocument* self, const gchar* data); + +/** + * webkit_dom_document_create_cdata_section: + * @self: A #WebKitDOMDocument + * @data: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMCDATASection +**/ +WEBKIT_API WebKitDOMCDATASection* +webkit_dom_document_create_cdata_section(WebKitDOMDocument* self, const gchar* data, GError** error); + +/** + * webkit_dom_document_create_processing_instruction: + * @self: A #WebKitDOMDocument + * @target: A #gchar + * @data: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMProcessingInstruction +**/ +WEBKIT_API WebKitDOMProcessingInstruction* +webkit_dom_document_create_processing_instruction(WebKitDOMDocument* self, const gchar* target, const gchar* data, GError** error); + +/** + * webkit_dom_document_create_attribute: + * @self: A #WebKitDOMDocument + * @name: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMAttr +**/ +WEBKIT_API WebKitDOMAttr* +webkit_dom_document_create_attribute(WebKitDOMDocument* self, const gchar* name, GError** error); + +/** + * webkit_dom_document_get_elements_by_tag_name_as_html_collection: + * @self: A #WebKitDOMDocument + * @tagname: A #gchar + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.12 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_elements_by_tag_name_as_html_collection(WebKitDOMDocument* self, const gchar* tagname); + +/** + * webkit_dom_document_import_node: + * @self: A #WebKitDOMDocument + * @importedNode: A #WebKitDOMNode + * @deep: A #gboolean + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_document_import_node(WebKitDOMDocument* self, WebKitDOMNode* importedNode, gboolean deep, GError** error); + +/** + * webkit_dom_document_create_element_ns: + * @self: A #WebKitDOMDocument + * @namespaceURI: (allow-none): A #gchar + * @qualifiedName: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_create_element_ns(WebKitDOMDocument* self, const gchar* namespaceURI, const gchar* qualifiedName, GError** error); + +/** + * webkit_dom_document_create_attribute_ns: + * @self: A #WebKitDOMDocument + * @namespaceURI: (allow-none): A #gchar + * @qualifiedName: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMAttr +**/ +WEBKIT_API WebKitDOMAttr* +webkit_dom_document_create_attribute_ns(WebKitDOMDocument* self, const gchar* namespaceURI, const gchar* qualifiedName, GError** error); + +/** + * webkit_dom_document_get_elements_by_tag_name_ns_as_html_collection: + * @self: A #WebKitDOMDocument + * @namespaceURI: A #gchar + * @localName: A #gchar + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.12 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_elements_by_tag_name_ns_as_html_collection(WebKitDOMDocument* self, const gchar* namespaceURI, const gchar* localName); + +/** + * webkit_dom_document_adopt_node: + * @self: A #WebKitDOMDocument + * @source: A #WebKitDOMNode + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_document_adopt_node(WebKitDOMDocument* self, WebKitDOMNode* source, GError** error); + +/** + * webkit_dom_document_create_event: + * @self: A #WebKitDOMDocument + * @eventType: A #gchar + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMEvent +**/ +WEBKIT_API WebKitDOMEvent* +webkit_dom_document_create_event(WebKitDOMDocument* self, const gchar* eventType, GError** error); + +/** + * webkit_dom_document_create_range: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMRange +**/ +WEBKIT_API WebKitDOMRange* +webkit_dom_document_create_range(WebKitDOMDocument* self); + +/** + * webkit_dom_document_create_node_iterator: + * @self: A #WebKitDOMDocument + * @root: A #WebKitDOMNode + * @whatToShow: A #gulong + * @filter: (allow-none): A #WebKitDOMNodeFilter + * @expandEntityReferences: A #gboolean + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMNodeIterator +**/ +WEBKIT_API WebKitDOMNodeIterator* +webkit_dom_document_create_node_iterator(WebKitDOMDocument* self, WebKitDOMNode* root, gulong whatToShow, WebKitDOMNodeFilter* filter, gboolean expandEntityReferences, GError** error); + +/** + * webkit_dom_document_create_tree_walker: + * @self: A #WebKitDOMDocument + * @root: A #WebKitDOMNode + * @whatToShow: A #gulong + * @filter: (allow-none): A #WebKitDOMNodeFilter + * @expandEntityReferences: A #gboolean + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMTreeWalker +**/ +WEBKIT_API WebKitDOMTreeWalker* +webkit_dom_document_create_tree_walker(WebKitDOMDocument* self, WebKitDOMNode* root, gulong whatToShow, WebKitDOMNodeFilter* filter, gboolean expandEntityReferences, GError** error); + +/** + * webkit_dom_document_get_override_style: + * @self: A #WebKitDOMDocument + * @element: A #WebKitDOMElement + * @pseudoElement: (allow-none): A #gchar + * + * Returns: (transfer full): A #WebKitDOMCSSStyleDeclaration +**/ +WEBKIT_API WebKitDOMCSSStyleDeclaration* +webkit_dom_document_get_override_style(WebKitDOMDocument* self, WebKitDOMElement* element, const gchar* pseudoElement); + +/** + * webkit_dom_document_create_expression: + * @self: A #WebKitDOMDocument + * @expression: A #gchar + * @resolver: A #WebKitDOMXPathNSResolver + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMXPathExpression +**/ +WEBKIT_API WebKitDOMXPathExpression* +webkit_dom_document_create_expression(WebKitDOMDocument* self, const gchar* expression, WebKitDOMXPathNSResolver* resolver, GError** error); + +/** + * webkit_dom_document_create_ns_resolver: + * @self: A #WebKitDOMDocument + * @nodeResolver: A #WebKitDOMNode + * + * Returns: (transfer full): A #WebKitDOMXPathNSResolver +**/ +WEBKIT_API WebKitDOMXPathNSResolver* +webkit_dom_document_create_ns_resolver(WebKitDOMDocument* self, WebKitDOMNode* nodeResolver); + +/** + * webkit_dom_document_evaluate: + * @self: A #WebKitDOMDocument + * @expression: A #gchar + * @contextNode: A #WebKitDOMNode + * @resolver: (allow-none): A #WebKitDOMXPathNSResolver + * @type: A #gushort + * @inResult: (allow-none): A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMXPathResult +**/ +WEBKIT_API WebKitDOMXPathResult* +webkit_dom_document_evaluate(WebKitDOMDocument* self, const gchar* expression, WebKitDOMNode* contextNode, WebKitDOMXPathNSResolver* resolver, gushort type, WebKitDOMXPathResult* inResult, GError** error); + +/** + * webkit_dom_document_exec_command: + * @self: A #WebKitDOMDocument + * @command: A #gchar + * @userInterface: A #gboolean + * @value: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_document_exec_command(WebKitDOMDocument* self, const gchar* command, gboolean userInterface, const gchar* value); + +/** + * webkit_dom_document_query_command_enabled: + * @self: A #WebKitDOMDocument + * @command: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_document_query_command_enabled(WebKitDOMDocument* self, const gchar* command); + +/** + * webkit_dom_document_query_command_indeterm: + * @self: A #WebKitDOMDocument + * @command: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_document_query_command_indeterm(WebKitDOMDocument* self, const gchar* command); + +/** + * webkit_dom_document_query_command_state: + * @self: A #WebKitDOMDocument + * @command: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_document_query_command_state(WebKitDOMDocument* self, const gchar* command); + +/** + * webkit_dom_document_query_command_supported: + * @self: A #WebKitDOMDocument + * @command: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_document_query_command_supported(WebKitDOMDocument* self, const gchar* command); + +/** + * webkit_dom_document_query_command_value: + * @self: A #WebKitDOMDocument + * @command: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_query_command_value(WebKitDOMDocument* self, const gchar* command); + +/** + * webkit_dom_document_get_elements_by_name: + * @self: A #WebKitDOMDocument + * @elementName: A #gchar + * + * Returns: (transfer full): A #WebKitDOMNodeList +**/ +WEBKIT_API WebKitDOMNodeList* +webkit_dom_document_get_elements_by_name(WebKitDOMDocument* self, const gchar* elementName); + +/** + * webkit_dom_document_element_from_point: + * @self: A #WebKitDOMDocument + * @x: A #glong + * @y: A #glong + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_element_from_point(WebKitDOMDocument* self, glong x, glong y); + +/** + * webkit_dom_document_create_css_style_declaration: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMCSSStyleDeclaration +**/ +WEBKIT_API WebKitDOMCSSStyleDeclaration* +webkit_dom_document_create_css_style_declaration(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_elements_by_class_name_as_html_collection: + * @self: A #WebKitDOMDocument + * @classNames: A #gchar + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.12 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_elements_by_class_name_as_html_collection(WebKitDOMDocument* self, const gchar* classNames); + +/** + * webkit_dom_document_has_focus: + * @self: A #WebKitDOMDocument + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_document_has_focus(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_element_by_id: + * @self: A #WebKitDOMDocument + * @elementId: A #gchar + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_element_by_id(WebKitDOMDocument* self, const gchar* elementId); + +/** + * webkit_dom_document_query_selector: + * @self: A #WebKitDOMDocument + * @selectors: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_query_selector(WebKitDOMDocument* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_document_query_selector_all: + * @self: A #WebKitDOMDocument + * @selectors: A #gchar + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMNodeList +**/ +WEBKIT_API WebKitDOMNodeList* +webkit_dom_document_query_selector_all(WebKitDOMDocument* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_document_get_doctype: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMDocumentType +**/ +WEBKIT_API WebKitDOMDocumentType* +webkit_dom_document_get_doctype(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_implementation: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMDOMImplementation +**/ +WEBKIT_API WebKitDOMDOMImplementation* +webkit_dom_document_get_implementation(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_document_element: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_document_element(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_input_encoding: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_input_encoding(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_xml_encoding: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_xml_encoding(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_xml_version: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_xml_version(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_xml_version: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_document_set_xml_version(WebKitDOMDocument* self, const gchar* value, GError** error); + +/** + * webkit_dom_document_get_xml_standalone: + * @self: A #WebKitDOMDocument + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_document_get_xml_standalone(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_xml_standalone: + * @self: A #WebKitDOMDocument + * @value: A #gboolean + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_document_set_xml_standalone(WebKitDOMDocument* self, gboolean value, GError** error); + +/** + * webkit_dom_document_get_document_uri: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_document_uri(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_document_uri: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_document_set_document_uri(WebKitDOMDocument* self, const gchar* value); + +/** + * webkit_dom_document_get_default_view: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMDOMWindow +**/ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_document_get_default_view(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_style_sheets: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMStyleSheetList +**/ +WEBKIT_API WebKitDOMStyleSheetList* +webkit_dom_document_get_style_sheets(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_title: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_title(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_title: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_document_set_title(WebKitDOMDocument* self, const gchar* value); + +/** + * webkit_dom_document_get_design_mode: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_document_get_design_mode(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_design_mode: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API void +webkit_dom_document_set_design_mode(WebKitDOMDocument* self, const gchar* value); + +/** + * webkit_dom_document_get_referrer: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_referrer(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_domain: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_domain(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_url: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_url(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_cookie: + * @self: A #WebKitDOMDocument + * @error: #GError + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_cookie(WebKitDOMDocument* self, GError** error); + +/** + * webkit_dom_document_set_cookie: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_document_set_cookie(WebKitDOMDocument* self, const gchar* value, GError** error); + +/** + * webkit_dom_document_get_body: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMHTMLElement +**/ +WEBKIT_API WebKitDOMHTMLElement* +webkit_dom_document_get_body(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_body: + * @self: A #WebKitDOMDocument + * @value: A #WebKitDOMHTMLElement + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_document_set_body(WebKitDOMDocument* self, WebKitDOMHTMLElement* value, GError** error); + +/** + * webkit_dom_document_get_head: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMHTMLHeadElement +**/ +WEBKIT_API WebKitDOMHTMLHeadElement* +webkit_dom_document_get_head(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_images: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_images(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_applets: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_applets(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_links: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_links(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_forms: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_forms(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_anchors: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_anchors(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_embeds: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.14 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_embeds(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_plugins: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.14 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_plugins(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_scripts: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.14 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_scripts(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_last_modified: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_last_modified(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_charset: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_charset(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_charset: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_document_set_charset(WebKitDOMDocument* self, const gchar* value); + +/** + * webkit_dom_document_get_ready_state: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_ready_state(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_character_set: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_character_set(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_preferred_stylesheet_set: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_preferred_stylesheet_set(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_selected_stylesheet_set: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_get_selected_stylesheet_set(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_selected_stylesheet_set: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_document_set_selected_stylesheet_set(WebKitDOMDocument* self, const gchar* value); + +/** + * webkit_dom_document_get_active_element: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_active_element(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_compat_mode: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_document_get_compat_mode(WebKitDOMDocument* self); + +/** + * webkit_dom_document_caret_range_from_point: + * @self: A #WebKitDOMDocument + * @x: A #glong + * @y: A #glong + * + * Returns: (transfer full): A #WebKitDOMRange + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMRange* +webkit_dom_document_caret_range_from_point(WebKitDOMDocument* self, glong x, glong y); + +/** + * webkit_dom_document_webkit_cancel_fullscreen: + * @self: A #WebKitDOMDocument + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_document_webkit_cancel_fullscreen(WebKitDOMDocument* self); + +/** + * webkit_dom_document_webkit_exit_fullscreen: + * @self: A #WebKitDOMDocument + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_document_webkit_exit_fullscreen(WebKitDOMDocument* self); + +/** + * webkit_dom_document_exit_pointer_lock: + * @self: A #WebKitDOMDocument + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_document_exit_pointer_lock(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_content_type: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API gchar* +webkit_dom_document_get_content_type(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_dir: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API gchar* +webkit_dom_document_get_dir(WebKitDOMDocument* self); + +/** + * webkit_dom_document_set_dir: + * @self: A #WebKitDOMDocument + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_document_set_dir(WebKitDOMDocument* self, const gchar* value); + +/** + * webkit_dom_document_get_webkit_is_fullscreen: + * @self: A #WebKitDOMDocument + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_document_get_webkit_is_fullscreen(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed: + * @self: A #WebKitDOMDocument + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_webkit_current_fullscreen_element: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_webkit_current_fullscreen_element(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_webkit_fullscreen_enabled: + * @self: A #WebKitDOMDocument + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_document_get_webkit_fullscreen_enabled(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_webkit_fullscreen_element: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_webkit_fullscreen_element(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_pointer_lock_element: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_pointer_lock_element(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_visibility_state: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API gchar* +webkit_dom_document_get_visibility_state(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_hidden: + * @self: A #WebKitDOMDocument + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_document_get_hidden(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_current_script: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMHTMLScriptElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMHTMLScriptElement* +webkit_dom_document_get_current_script(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_origin: + * @self: A #WebKitDOMDocument + * + * Returns: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API gchar* +webkit_dom_document_get_origin(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_scrolling_element: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_scrolling_element(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_children: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_get_children(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_first_element_child: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_first_element_child(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_last_element_child: + * @self: A #WebKitDOMDocument + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_get_last_element_child(WebKitDOMDocument* self); + +/** + * webkit_dom_document_get_child_element_count: + * @self: A #WebKitDOMDocument + * + * Returns: A #gulong + * + * Since: 2.16 +**/ +WEBKIT_API gulong +webkit_dom_document_get_child_element_count(WebKitDOMDocument* self); + +G_END_DECLS + +#endif /* WebKitDOMDocument_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp new file mode 100644 index 000000000..f801303e5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp @@ -0,0 +1,263 @@ +/* + * 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 "WebKitDOMDocumentFragment.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 "WebKitDOMDocumentFragmentPrivate.h" +#include "WebKitDOMElementPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include "WebKitDOMDocumentFragmentUnstable.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMDocumentFragment* kit(WebCore::DocumentFragment* obj) +{ + return WEBKIT_DOM_DOCUMENT_FRAGMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::DocumentFragment* core(WebKitDOMDocumentFragment* request) +{ + return request ? static_cast<WebCore::DocumentFragment*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMDocumentFragment* wrapDocumentFragment(WebCore::DocumentFragment* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_DOCUMENT_FRAGMENT(g_object_new(WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_document_fragment_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::DocumentFragment* coreTarget = static_cast<WebCore::DocumentFragment*>(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_document_fragment_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::DocumentFragment* coreTarget = static_cast<WebCore::DocumentFragment*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_document_fragment_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::DocumentFragment* coreTarget = static_cast<WebCore::DocumentFragment*>(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_document_fragment_dispatch_event; + iface->add_event_listener = webkit_dom_document_fragment_add_event_listener; + iface->remove_event_listener = webkit_dom_document_fragment_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMDocumentFragment, webkit_dom_document_fragment, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CHILDREN, + PROP_FIRST_ELEMENT_CHILD, + PROP_LAST_ELEMENT_CHILD, + PROP_CHILD_ELEMENT_COUNT, +}; + +static void webkit_dom_document_fragment_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMDocumentFragment* self = WEBKIT_DOM_DOCUMENT_FRAGMENT(object); + + switch (propertyId) { + case PROP_CHILDREN: + g_value_set_object(value, webkit_dom_document_fragment_get_children(self)); + break; + case PROP_FIRST_ELEMENT_CHILD: + g_value_set_object(value, webkit_dom_document_fragment_get_first_element_child(self)); + break; + case PROP_LAST_ELEMENT_CHILD: + g_value_set_object(value, webkit_dom_document_fragment_get_last_element_child(self)); + break; + case PROP_CHILD_ELEMENT_COUNT: + g_value_set_ulong(value, webkit_dom_document_fragment_get_child_element_count(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_document_fragment_class_init(WebKitDOMDocumentFragmentClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_document_fragment_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CHILDREN, + g_param_spec_object( + "children", + "DocumentFragment:children", + "read-only WebKitDOMHTMLCollection* DocumentFragment:children", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FIRST_ELEMENT_CHILD, + g_param_spec_object( + "first-element-child", + "DocumentFragment:first-element-child", + "read-only WebKitDOMElement* DocumentFragment:first-element-child", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LAST_ELEMENT_CHILD, + g_param_spec_object( + "last-element-child", + "DocumentFragment:last-element-child", + "read-only WebKitDOMElement* DocumentFragment:last-element-child", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHILD_ELEMENT_COUNT, + g_param_spec_ulong( + "child-element-count", + "DocumentFragment:child-element-count", + "read-only gulong DocumentFragment:child-element-count", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_document_fragment_init(WebKitDOMDocumentFragment* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMElement* webkit_dom_document_fragment_get_element_by_id(WebKitDOMDocumentFragment* self, const gchar* elementId) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(self), 0); + g_return_val_if_fail(elementId, 0); + WebCore::DocumentFragment* item = WebKit::core(self); + WTF::String convertedElementId = WTF::String::fromUTF8(elementId); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->getElementById(convertedElementId)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_fragment_query_selector(WebKitDOMDocumentFragment* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(self), 0); + g_return_val_if_fail(selectors, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::DocumentFragment* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->querySelector(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +WebKitDOMNodeList* webkit_dom_document_fragment_query_selector_all(WebKitDOMDocumentFragment* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(self), 0); + g_return_val_if_fail(selectors, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::DocumentFragment* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->querySelectorAll(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMHTMLCollection* webkit_dom_document_fragment_get_children(WebKitDOMDocumentFragment* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(self), 0); + WebCore::DocumentFragment* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->children()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_fragment_get_first_element_child(WebKitDOMDocumentFragment* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(self), 0); + WebCore::DocumentFragment* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->firstElementChild()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_document_fragment_get_last_element_child(WebKitDOMDocumentFragment* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(self), 0); + WebCore::DocumentFragment* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->lastElementChild()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_document_fragment_get_child_element_count(WebKitDOMDocumentFragment* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(self), 0); + WebCore::DocumentFragment* item = WebKit::core(self); + gulong result = item->childElementCount(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h new file mode 100644 index 000000000..f1ab7b204 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h @@ -0,0 +1,135 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMDocumentFragment_h +#define WebKitDOMDocumentFragment_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT (webkit_dom_document_fragment_get_type()) +#define WEBKIT_DOM_DOCUMENT_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT, WebKitDOMDocumentFragment)) +#define WEBKIT_DOM_DOCUMENT_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT, WebKitDOMDocumentFragmentClass) +#define WEBKIT_DOM_IS_DOCUMENT_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT)) +#define WEBKIT_DOM_IS_DOCUMENT_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT)) +#define WEBKIT_DOM_DOCUMENT_FRAGMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT, WebKitDOMDocumentFragmentClass)) + +struct _WebKitDOMDocumentFragment { + WebKitDOMNode parent_instance; +}; + +struct _WebKitDOMDocumentFragmentClass { + WebKitDOMNodeClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_document_fragment_get_type(void); + +/** + * webkit_dom_document_fragment_get_element_by_id: + * @self: A #WebKitDOMDocumentFragment + * @elementId: A #gchar + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_fragment_get_element_by_id(WebKitDOMDocumentFragment* self, const gchar* elementId); + +/** + * webkit_dom_document_fragment_query_selector: + * @self: A #WebKitDOMDocumentFragment + * @selectors: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_fragment_query_selector(WebKitDOMDocumentFragment* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_document_fragment_query_selector_all: + * @self: A #WebKitDOMDocumentFragment + * @selectors: A #gchar + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMNodeList + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMNodeList* +webkit_dom_document_fragment_query_selector_all(WebKitDOMDocumentFragment* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_document_fragment_get_children: + * @self: A #WebKitDOMDocumentFragment + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_document_fragment_get_children(WebKitDOMDocumentFragment* self); + +/** + * webkit_dom_document_fragment_get_first_element_child: + * @self: A #WebKitDOMDocumentFragment + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_fragment_get_first_element_child(WebKitDOMDocumentFragment* self); + +/** + * webkit_dom_document_fragment_get_last_element_child: + * @self: A #WebKitDOMDocumentFragment + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 + */ +WEBKIT_API WebKitDOMElement* +webkit_dom_document_fragment_get_last_element_child(WebKitDOMDocumentFragment* self); + +/** + * webkit_dom_document_fragment_get_child_element_count: + * @self: A #WebKitDOMDocumentFragment + * + * Returns: A #gulong + * + * Since: 2.16 + */ +WEBKIT_API gulong +webkit_dom_document_fragment_get_child_element_count(WebKitDOMDocumentFragment* self); + +G_END_DECLS + +#endif /* WebKitDOMDocumentFragment_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentPrivate.h new file mode 100644 index 000000000..097be7e8f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDocumentFragmentPrivate_h +#define WebKitDOMDocumentFragmentPrivate_h + +#include <WebCore/DocumentFragment.h> +#include <webkitdom/WebKitDOMDocumentFragment.h> + +namespace WebKit { +WebKitDOMDocumentFragment* wrapDocumentFragment(WebCore::DocumentFragment*); +WebKitDOMDocumentFragment* kit(WebCore::DocumentFragment*); +WebCore::DocumentFragment* core(WebKitDOMDocumentFragment*); +} // namespace WebKit + +#endif /* WebKitDOMDocumentFragmentPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentUnstable.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentUnstable.h new file mode 100644 index 000000000..3c3e740f6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentUnstable.h @@ -0,0 +1,29 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDocumentFragmentUnstable_h +#define WebKitDOMDocumentFragmentUnstable_h + +#ifdef WEBKIT_DOM_USE_UNSTABLE_API +#define __WEBKITDOM_H_INSIDE__ +#include <webkitdom/WebKitDOMDocumentFragment.h> +#undef __WEBKITDOM_H_INSIDE__ +#endif /* WEBKIT_DOM_USE_UNSTABLE_API */ + +#endif /* WebKitDOMDocumentFragmentUnstable_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h new file mode 100644 index 000000000..633ced50e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDocumentPrivate_h +#define WebKitDOMDocumentPrivate_h + +#include <WebCore/Document.h> +#include <webkitdom/WebKitDOMDocument.h> + +namespace WebKit { +WebKitDOMDocument* wrapDocument(WebCore::Document*); +WebKitDOMDocument* kit(WebCore::Document*); +WebCore::Document* core(WebKitDOMDocument*); +} // namespace WebKit + +#endif /* WebKitDOMDocumentPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp new file mode 100644 index 000000000..0be678aa0 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp @@ -0,0 +1,252 @@ +/* + * 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 "WebKitDOMDocumentType.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 "WebKitDOMDocumentTypePrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMNamedNodeMapPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMDocumentType* kit(WebCore::DocumentType* obj) +{ + return WEBKIT_DOM_DOCUMENT_TYPE(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::DocumentType* core(WebKitDOMDocumentType* request) +{ + return request ? static_cast<WebCore::DocumentType*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMDocumentType* wrapDocumentType(WebCore::DocumentType* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_DOCUMENT_TYPE(g_object_new(WEBKIT_DOM_TYPE_DOCUMENT_TYPE, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_document_type_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::DocumentType* coreTarget = static_cast<WebCore::DocumentType*>(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_document_type_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::DocumentType* coreTarget = static_cast<WebCore::DocumentType*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_document_type_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::DocumentType* coreTarget = static_cast<WebCore::DocumentType*>(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_document_type_dispatch_event; + iface->add_event_listener = webkit_dom_document_type_add_event_listener; + iface->remove_event_listener = webkit_dom_document_type_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMDocumentType, webkit_dom_document_type, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_NAME, + PROP_ENTITIES, + PROP_NOTATIONS, + PROP_INTERNAL_SUBSET, + PROP_PUBLIC_ID, + PROP_SYSTEM_ID, +}; + +static void webkit_dom_document_type_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMDocumentType* self = WEBKIT_DOM_DOCUMENT_TYPE(object); + + switch (propertyId) { + case PROP_NAME: + g_value_take_string(value, webkit_dom_document_type_get_name(self)); + break; + case PROP_ENTITIES: + g_value_set_object(value, webkit_dom_document_type_get_entities(self)); + break; + case PROP_NOTATIONS: + g_value_set_object(value, webkit_dom_document_type_get_notations(self)); + break; + case PROP_INTERNAL_SUBSET: + g_value_take_string(value, webkit_dom_document_type_get_internal_subset(self)); + break; + case PROP_PUBLIC_ID: + g_value_take_string(value, webkit_dom_document_type_get_public_id(self)); + break; + case PROP_SYSTEM_ID: + g_value_take_string(value, webkit_dom_document_type_get_system_id(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_document_type_class_init(WebKitDOMDocumentTypeClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_document_type_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "DocumentType:name", + "read-only gchar* DocumentType:name", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ENTITIES, + g_param_spec_object( + "entities", + "DocumentType:entities", + "read-only WebKitDOMNamedNodeMap* DocumentType:entities", + WEBKIT_DOM_TYPE_NAMED_NODE_MAP, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NOTATIONS, + g_param_spec_object( + "notations", + "DocumentType:notations", + "read-only WebKitDOMNamedNodeMap* DocumentType:notations", + WEBKIT_DOM_TYPE_NAMED_NODE_MAP, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_INTERNAL_SUBSET, + g_param_spec_string( + "internal-subset", + "DocumentType:internal-subset", + "read-only gchar* DocumentType:internal-subset", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PUBLIC_ID, + g_param_spec_string( + "public-id", + "DocumentType:public-id", + "read-only gchar* DocumentType:public-id", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SYSTEM_ID, + g_param_spec_string( + "system-id", + "DocumentType:system-id", + "read-only gchar* DocumentType:system-id", + "", + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_document_type_init(WebKitDOMDocumentType* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_document_type_get_name(WebKitDOMDocumentType* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_TYPE(self), 0); + WebCore::DocumentType* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->name()); + return result; +} + +WebKitDOMNamedNodeMap* webkit_dom_document_type_get_entities(WebKitDOMDocumentType* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_TYPE(self), nullptr); + return nullptr; +} + +WebKitDOMNamedNodeMap* webkit_dom_document_type_get_notations(WebKitDOMDocumentType* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_TYPE(self), nullptr); + return nullptr; +} + +gchar* webkit_dom_document_type_get_internal_subset(WebKitDOMDocumentType* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_TYPE(self), nullptr); + return nullptr; +} + +gchar* webkit_dom_document_type_get_public_id(WebKitDOMDocumentType* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_TYPE(self), 0); + WebCore::DocumentType* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->publicId()); + return result; +} + +gchar* webkit_dom_document_type_get_system_id(WebKitDOMDocumentType* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOCUMENT_TYPE(self), 0); + WebCore::DocumentType* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->systemId()); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.h new file mode 100644 index 000000000..8b899a116 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.h @@ -0,0 +1,107 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMDocumentType_h +#define WebKitDOMDocumentType_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_DOCUMENT_TYPE (webkit_dom_document_type_get_type()) +#define WEBKIT_DOM_DOCUMENT_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_DOCUMENT_TYPE, WebKitDOMDocumentType)) +#define WEBKIT_DOM_DOCUMENT_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_DOCUMENT_TYPE, WebKitDOMDocumentTypeClass) +#define WEBKIT_DOM_IS_DOCUMENT_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_DOCUMENT_TYPE)) +#define WEBKIT_DOM_IS_DOCUMENT_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_DOCUMENT_TYPE)) +#define WEBKIT_DOM_DOCUMENT_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_DOCUMENT_TYPE, WebKitDOMDocumentTypeClass)) + +struct _WebKitDOMDocumentType { + WebKitDOMNode parent_instance; +}; + +struct _WebKitDOMDocumentTypeClass { + WebKitDOMNodeClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_document_type_get_type(void); + +/** + * webkit_dom_document_type_get_name: + * @self: A #WebKitDOMDocumentType + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_type_get_name(WebKitDOMDocumentType* self); + +/** + * webkit_dom_document_type_get_entities: + * @self: A #WebKitDOMDocumentType + * + * Returns: (transfer full): A #WebKitDOMNamedNodeMap +**/ +WEBKIT_API WebKitDOMNamedNodeMap* +webkit_dom_document_type_get_entities(WebKitDOMDocumentType* self); + +/** + * webkit_dom_document_type_get_notations: + * @self: A #WebKitDOMDocumentType + * + * Returns: (transfer full): A #WebKitDOMNamedNodeMap +**/ +WEBKIT_API WebKitDOMNamedNodeMap* +webkit_dom_document_type_get_notations(WebKitDOMDocumentType* self); + +/** + * webkit_dom_document_type_get_internal_subset: + * @self: A #WebKitDOMDocumentType + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_type_get_internal_subset(WebKitDOMDocumentType* self); + +/** + * webkit_dom_document_type_get_public_id: + * @self: A #WebKitDOMDocumentType + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_type_get_public_id(WebKitDOMDocumentType* self); + +/** + * webkit_dom_document_type_get_system_id: + * @self: A #WebKitDOMDocumentType + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_document_type_get_system_id(WebKitDOMDocumentType* self); + +G_END_DECLS + +#endif /* WebKitDOMDocumentType_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTypePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTypePrivate.h new file mode 100644 index 000000000..a86cec552 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTypePrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDocumentTypePrivate_h +#define WebKitDOMDocumentTypePrivate_h + +#include <WebCore/DocumentType.h> +#include <webkitdom/WebKitDOMDocumentType.h> + +namespace WebKit { +WebKitDOMDocumentType* wrapDocumentType(WebCore::DocumentType*); +WebKitDOMDocumentType* kit(WebCore::DocumentType*); +WebCore::DocumentType* core(WebKitDOMDocumentType*); +} // namespace WebKit + +#endif /* WebKitDOMDocumentTypePrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentUnstable.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentUnstable.h new file mode 100644 index 000000000..f771a12f8 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentUnstable.h @@ -0,0 +1,29 @@ +/* + * 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. + */ + +#ifndef WebKitDOMDocumentUnstable_h +#define WebKitDOMDocumentUnstable_h + +#ifdef WEBKIT_DOM_USE_UNSTABLE_API +#define __WEBKITDOM_H_INSIDE__ +#include <webkitdom/WebKitDOMDocument.h> +#undef __WEBKITDOM_H_INSIDE__ +#endif /* WEBKIT_DOM_USE_UNSTABLE_API */ + +#endif /* WebKitDOMDocumentUnstable_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp new file mode 100644 index 000000000..e8b7d7969 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp @@ -0,0 +1,1377 @@ +/* + * 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 "WebKitDOMElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMAttrPrivate.h" +#include "WebKitDOMCSSStyleDeclarationPrivate.h" +#include "WebKitDOMDOMTokenListPrivate.h" +#include "WebKitDOMElementPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMNamedNodeMapPrivate.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include "WebKitDOMElementUnstable.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMElement* kit(WebCore::Element* obj) +{ + return WEBKIT_DOM_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::Element* core(WebKitDOMElement* request) +{ + return request ? static_cast<WebCore::Element*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMElement* wrapElement(WebCore::Element* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::Element* coreTarget = static_cast<WebCore::Element*>(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_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Element* coreTarget = static_cast<WebCore::Element*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Element* coreTarget = static_cast<WebCore::Element*>(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_element_dispatch_event; + iface->add_event_listener = webkit_dom_element_add_event_listener; + iface->remove_event_listener = webkit_dom_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMElement, webkit_dom_element, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_TAG_NAME, + PROP_ATTRIBUTES, + PROP_STYLE, + PROP_ID, + PROP_NAMESPACE_URI, + PROP_PREFIX, + PROP_LOCAL_NAME, + PROP_OFFSET_LEFT, + PROP_OFFSET_TOP, + PROP_OFFSET_WIDTH, + PROP_OFFSET_HEIGHT, + PROP_CLIENT_LEFT, + PROP_CLIENT_TOP, + PROP_CLIENT_WIDTH, + PROP_CLIENT_HEIGHT, + PROP_SCROLL_LEFT, + PROP_SCROLL_TOP, + PROP_SCROLL_WIDTH, + PROP_SCROLL_HEIGHT, + PROP_OFFSET_PARENT, + PROP_INNER_HTML, + PROP_OUTER_HTML, + PROP_CLASS_NAME, + PROP_CLASS_LIST, + PROP_WEBKIT_REGION_OVERSET, + PROP_PREVIOUS_ELEMENT_SIBLING, + PROP_NEXT_ELEMENT_SIBLING, + PROP_CHILDREN, + PROP_FIRST_ELEMENT_CHILD, + PROP_LAST_ELEMENT_CHILD, + PROP_CHILD_ELEMENT_COUNT, +}; + +static void webkit_dom_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMElement* self = WEBKIT_DOM_ELEMENT(object); + + switch (propertyId) { + case PROP_ID: + webkit_dom_element_set_id(self, g_value_get_string(value)); + break; + case PROP_SCROLL_LEFT: + webkit_dom_element_set_scroll_left(self, g_value_get_long(value)); + break; + case PROP_SCROLL_TOP: + webkit_dom_element_set_scroll_top(self, g_value_get_long(value)); + break; + case PROP_INNER_HTML: + webkit_dom_element_set_inner_html(self, g_value_get_string(value), nullptr); + break; + case PROP_OUTER_HTML: + webkit_dom_element_set_outer_html(self, g_value_get_string(value), nullptr); + break; + case PROP_CLASS_NAME: + webkit_dom_element_set_class_name(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMElement* self = WEBKIT_DOM_ELEMENT(object); + + switch (propertyId) { + case PROP_TAG_NAME: + g_value_take_string(value, webkit_dom_element_get_tag_name(self)); + break; + case PROP_ATTRIBUTES: + g_value_set_object(value, webkit_dom_element_get_attributes(self)); + break; + case PROP_STYLE: + g_value_set_object(value, webkit_dom_element_get_style(self)); + break; + case PROP_ID: + g_value_take_string(value, webkit_dom_element_get_id(self)); + break; + case PROP_NAMESPACE_URI: + g_value_take_string(value, webkit_dom_element_get_namespace_uri(self)); + break; + case PROP_PREFIX: + g_value_take_string(value, webkit_dom_element_get_prefix(self)); + break; + case PROP_LOCAL_NAME: + g_value_take_string(value, webkit_dom_element_get_local_name(self)); + break; + case PROP_OFFSET_LEFT: + g_value_set_double(value, webkit_dom_element_get_offset_left(self)); + break; + case PROP_OFFSET_TOP: + g_value_set_double(value, webkit_dom_element_get_offset_top(self)); + break; + case PROP_OFFSET_WIDTH: + g_value_set_double(value, webkit_dom_element_get_offset_width(self)); + break; + case PROP_OFFSET_HEIGHT: + g_value_set_double(value, webkit_dom_element_get_offset_height(self)); + break; + case PROP_CLIENT_LEFT: + g_value_set_double(value, webkit_dom_element_get_client_left(self)); + break; + case PROP_CLIENT_TOP: + g_value_set_double(value, webkit_dom_element_get_client_top(self)); + break; + case PROP_CLIENT_WIDTH: + g_value_set_double(value, webkit_dom_element_get_client_width(self)); + break; + case PROP_CLIENT_HEIGHT: + g_value_set_double(value, webkit_dom_element_get_client_height(self)); + break; + case PROP_SCROLL_LEFT: + g_value_set_long(value, webkit_dom_element_get_scroll_left(self)); + break; + case PROP_SCROLL_TOP: + g_value_set_long(value, webkit_dom_element_get_scroll_top(self)); + break; + case PROP_SCROLL_WIDTH: + g_value_set_long(value, webkit_dom_element_get_scroll_width(self)); + break; + case PROP_SCROLL_HEIGHT: + g_value_set_long(value, webkit_dom_element_get_scroll_height(self)); + break; + case PROP_OFFSET_PARENT: + g_value_set_object(value, webkit_dom_element_get_offset_parent(self)); + break; + case PROP_INNER_HTML: + g_value_take_string(value, webkit_dom_element_get_inner_html(self)); + break; + case PROP_OUTER_HTML: + g_value_take_string(value, webkit_dom_element_get_outer_html(self)); + break; + case PROP_CLASS_NAME: + g_value_take_string(value, webkit_dom_element_get_class_name(self)); + break; + case PROP_CLASS_LIST: + g_value_set_object(value, webkit_dom_element_get_class_list(self)); + break; + case PROP_WEBKIT_REGION_OVERSET: + g_value_take_string(value, webkit_dom_element_get_webkit_region_overset(self)); + break; + case PROP_PREVIOUS_ELEMENT_SIBLING: + g_value_set_object(value, webkit_dom_element_get_previous_element_sibling(self)); + break; + case PROP_NEXT_ELEMENT_SIBLING: + g_value_set_object(value, webkit_dom_element_get_next_element_sibling(self)); + break; + case PROP_CHILDREN: + g_value_set_object(value, webkit_dom_element_get_children(self)); + break; + case PROP_FIRST_ELEMENT_CHILD: + g_value_set_object(value, webkit_dom_element_get_first_element_child(self)); + break; + case PROP_LAST_ELEMENT_CHILD: + g_value_set_object(value, webkit_dom_element_get_last_element_child(self)); + break; + case PROP_CHILD_ELEMENT_COUNT: + g_value_set_ulong(value, webkit_dom_element_get_child_element_count(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_element_class_init(WebKitDOMElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_element_set_property; + gobjectClass->get_property = webkit_dom_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TAG_NAME, + g_param_spec_string( + "tag-name", + "Element:tag-name", + "read-only gchar* Element:tag-name", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ATTRIBUTES, + g_param_spec_object( + "attributes", + "Element:attributes", + "read-only WebKitDOMNamedNodeMap* Element:attributes", + WEBKIT_DOM_TYPE_NAMED_NODE_MAP, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_STYLE, + g_param_spec_object( + "style", + "Element:style", + "read-only WebKitDOMCSSStyleDeclaration* Element:style", + WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ID, + g_param_spec_string( + "id", + "Element:id", + "read-write gchar* Element:id", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAMESPACE_URI, + g_param_spec_string( + "namespace-uri", + "Element:namespace-uri", + "read-only gchar* Element:namespace-uri", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PREFIX, + g_param_spec_string( + "prefix", + "Element:prefix", + "read-only gchar* Element:prefix", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LOCAL_NAME, + g_param_spec_string( + "local-name", + "Element:local-name", + "read-only gchar* Element:local-name", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OFFSET_LEFT, + g_param_spec_double( + "offset-left", + "Element:offset-left", + "read-only gdouble Element:offset-left", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OFFSET_TOP, + g_param_spec_double( + "offset-top", + "Element:offset-top", + "read-only gdouble Element:offset-top", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OFFSET_WIDTH, + g_param_spec_double( + "offset-width", + "Element:offset-width", + "read-only gdouble Element:offset-width", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OFFSET_HEIGHT, + g_param_spec_double( + "offset-height", + "Element:offset-height", + "read-only gdouble Element:offset-height", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLIENT_LEFT, + g_param_spec_double( + "client-left", + "Element:client-left", + "read-only gdouble Element:client-left", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLIENT_TOP, + g_param_spec_double( + "client-top", + "Element:client-top", + "read-only gdouble Element:client-top", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLIENT_WIDTH, + g_param_spec_double( + "client-width", + "Element:client-width", + "read-only gdouble Element:client-width", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLIENT_HEIGHT, + g_param_spec_double( + "client-height", + "Element:client-height", + "read-only gdouble Element:client-height", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCROLL_LEFT, + g_param_spec_long( + "scroll-left", + "Element:scroll-left", + "read-write glong Element:scroll-left", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCROLL_TOP, + g_param_spec_long( + "scroll-top", + "Element:scroll-top", + "read-write glong Element:scroll-top", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCROLL_WIDTH, + g_param_spec_long( + "scroll-width", + "Element:scroll-width", + "read-only glong Element:scroll-width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCROLL_HEIGHT, + g_param_spec_long( + "scroll-height", + "Element:scroll-height", + "read-only glong Element:scroll-height", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OFFSET_PARENT, + g_param_spec_object( + "offset-parent", + "Element:offset-parent", + "read-only WebKitDOMElement* Element:offset-parent", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_INNER_HTML, + g_param_spec_string( + "inner-html", + "Element:inner-html", + "read-write gchar* Element:inner-html", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_OUTER_HTML, + g_param_spec_string( + "outer-html", + "Element:outer-html", + "read-write gchar* Element:outer-html", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLASS_NAME, + g_param_spec_string( + "class-name", + "Element:class-name", + "read-write gchar* Element:class-name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLASS_LIST, + g_param_spec_object( + "class-list", + "Element:class-list", + "read-only WebKitDOMDOMTokenList* Element:class-list", + WEBKIT_DOM_TYPE_DOM_TOKEN_LIST, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WEBKIT_REGION_OVERSET, + g_param_spec_string( + "webkit-region-overset", + "Element:webkit-region-overset", + "read-only gchar* Element:webkit-region-overset", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PREVIOUS_ELEMENT_SIBLING, + g_param_spec_object( + "previous-element-sibling", + "Element:previous-element-sibling", + "read-only WebKitDOMElement* Element:previous-element-sibling", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NEXT_ELEMENT_SIBLING, + g_param_spec_object( + "next-element-sibling", + "Element:next-element-sibling", + "read-only WebKitDOMElement* Element:next-element-sibling", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHILDREN, + g_param_spec_object( + "children", + "Element:children", + "read-only WebKitDOMHTMLCollection* Element:children", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FIRST_ELEMENT_CHILD, + g_param_spec_object( + "first-element-child", + "Element:first-element-child", + "read-only WebKitDOMElement* Element:first-element-child", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LAST_ELEMENT_CHILD, + g_param_spec_object( + "last-element-child", + "Element:last-element-child", + "read-only WebKitDOMElement* Element:last-element-child", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHILD_ELEMENT_COUNT, + g_param_spec_ulong( + "child-element-count", + "Element:child-element-count", + "read-only gulong Element:child-element-count", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_element_init(WebKitDOMElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_element_get_attribute(WebKitDOMElement* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(name, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + gchar* result = convertToUTF8String(item->getAttribute(convertedName)); + return result; +} + +void webkit_dom_element_set_attribute(WebKitDOMElement* self, const gchar* name, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(name); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setAttribute(convertedName, convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_element_remove_attribute(WebKitDOMElement* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(name); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + item->removeAttribute(convertedName); +} + +WebKitDOMAttr* webkit_dom_element_get_attribute_node(WebKitDOMElement* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(name, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + RefPtr<WebCore::Attr> gobjectResult = WTF::getPtr(item->getAttributeNode(convertedName)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMAttr* webkit_dom_element_set_attribute_node(WebKitDOMElement* self, WebKitDOMAttr* newAttr, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(newAttr), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Element* item = WebKit::core(self); + WebCore::Attr* convertedNewAttr = WebKit::core(newAttr); + auto result = item->setAttributeNode(*convertedNewAttr); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().get()); +} + +WebKitDOMAttr* webkit_dom_element_remove_attribute_node(WebKitDOMElement* self, WebKitDOMAttr* oldAttr, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(oldAttr), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Element* item = WebKit::core(self); + WebCore::Attr* convertedOldAttr = WebKit::core(oldAttr); + auto result = item->removeAttributeNode(*convertedOldAttr); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMHTMLCollection* webkit_dom_element_get_elements_by_tag_name_as_html_collection(WebKitDOMElement* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(name, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->getElementsByTagName(convertedName)); + return WebKit::kit(gobjectResult.get()); +} + +gboolean webkit_dom_element_has_attributes(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), FALSE); + WebCore::Element* item = WebKit::core(self); + gboolean result = item->hasAttributes(); + return result; +} + +gchar* webkit_dom_element_get_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(namespaceURI, 0); + g_return_val_if_fail(localName, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + gchar* result = convertToUTF8String(item->getAttributeNS(convertedNamespaceURI, convertedLocalName)); + return result; +} + +void webkit_dom_element_set_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* qualifiedName, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(qualifiedName); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedQualifiedName = WTF::String::fromUTF8(qualifiedName); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setAttributeNS(convertedNamespaceURI, convertedQualifiedName, convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_element_remove_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(namespaceURI); + g_return_if_fail(localName); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + item->removeAttributeNS(convertedNamespaceURI, convertedLocalName); +} + +WebKitDOMHTMLCollection* webkit_dom_element_get_elements_by_tag_name_ns_as_html_collection(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(namespaceURI, 0); + g_return_val_if_fail(localName, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->getElementsByTagNameNS(convertedNamespaceURI, convertedLocalName)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMAttr* webkit_dom_element_get_attribute_node_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(namespaceURI, 0); + g_return_val_if_fail(localName, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + RefPtr<WebCore::Attr> gobjectResult = WTF::getPtr(item->getAttributeNodeNS(convertedNamespaceURI, convertedLocalName)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMAttr* webkit_dom_element_set_attribute_node_ns(WebKitDOMElement* self, WebKitDOMAttr* newAttr, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_ATTR(newAttr), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Element* item = WebKit::core(self); + WebCore::Attr* convertedNewAttr = WebKit::core(newAttr); + auto result = item->setAttributeNodeNS(*convertedNewAttr); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().get()); +} + +gboolean webkit_dom_element_has_attribute(WebKitDOMElement* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), FALSE); + g_return_val_if_fail(name, FALSE); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + gboolean result = item->hasAttribute(convertedName); + return result; +} + +gboolean webkit_dom_element_has_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), FALSE); + g_return_val_if_fail(namespaceURI, FALSE); + g_return_val_if_fail(localName, FALSE); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + gboolean result = item->hasAttributeNS(convertedNamespaceURI, convertedLocalName); + return result; +} + +void webkit_dom_element_focus(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->focus(); +} + +void webkit_dom_element_blur(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->blur(); +} + +void webkit_dom_element_scroll_into_view(WebKitDOMElement* self, gboolean alignWithTop) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->scrollIntoView(alignWithTop); +} + +void webkit_dom_element_scroll_into_view_if_needed(WebKitDOMElement* self, gboolean centerIfNeeded) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->scrollIntoViewIfNeeded(centerIfNeeded); +} + +void webkit_dom_element_scroll_by_lines(WebKitDOMElement* self, glong lines) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->scrollByLines(lines); +} + +void webkit_dom_element_scroll_by_pages(WebKitDOMElement* self, glong pages) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->scrollByPages(pages); +} + +WebKitDOMHTMLCollection* webkit_dom_element_get_elements_by_class_name_as_html_collection(WebKitDOMElement* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(name, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->getElementsByClassName(convertedName)); + return WebKit::kit(gobjectResult.get()); +} + +gboolean webkit_dom_element_matches(WebKitDOMElement* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), FALSE); + g_return_val_if_fail(selectors, FALSE); + g_return_val_if_fail(!error || !*error, FALSE); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->matches(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return false; + } + return result.releaseReturnValue(); +} + +WebKitDOMElement* webkit_dom_element_closest(WebKitDOMElement* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(selectors, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->closest(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +gboolean webkit_dom_element_webkit_matches_selector(WebKitDOMElement* self, const gchar* selectors, GError** error) +{ + return webkit_dom_element_matches(self, selectors, error); +} + +void webkit_dom_element_webkit_request_fullscreen(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->webkitRequestFullscreen(); +} + +WebKitDOMElement* webkit_dom_element_insert_adjacent_element(WebKitDOMElement* self, const gchar* where, WebKitDOMElement* element, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(where, 0); + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(element), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedWhere = WTF::String::fromUTF8(where); + WebCore::Element* convertedElement = WebKit::core(element); + auto result = item->insertAdjacentElement(convertedWhere, *convertedElement); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +void webkit_dom_element_insert_adjacent_html(WebKitDOMElement* self, const gchar* where, const gchar* html, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(where); + g_return_if_fail(html); + g_return_if_fail(!error || !*error); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedWhere = WTF::String::fromUTF8(where); + WTF::String convertedHtml = WTF::String::fromUTF8(html); + auto result = item->insertAdjacentHTML(convertedWhere, convertedHtml); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_element_insert_adjacent_text(WebKitDOMElement* self, const gchar* where, const gchar* text, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(where); + g_return_if_fail(text); + g_return_if_fail(!error || !*error); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedWhere = WTF::String::fromUTF8(where); + WTF::String convertedText = WTF::String::fromUTF8(text); + auto result = item->insertAdjacentText(convertedWhere, convertedText); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_element_request_pointer_lock(WebKitDOMElement* self) +{ +#if ENABLE(POINTER_LOCK) + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->requestPointerLock(); +#else + UNUSED_PARAM(self); + WEBKIT_WARN_FEATURE_NOT_PRESENT("Pointer Lock") +#endif /* ENABLE(POINTER_LOCK) */ +} + +void webkit_dom_element_remove(WebKitDOMElement* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(!error || !*error); + WebCore::Element* item = WebKit::core(self); + auto result = item->remove(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMElement* webkit_dom_element_query_selector(WebKitDOMElement* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(selectors, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->querySelector(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +WebKitDOMNodeList* webkit_dom_element_query_selector_all(WebKitDOMElement* self, const gchar* selectors, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + g_return_val_if_fail(selectors, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedSelectors = WTF::String::fromUTF8(selectors); + auto result = item->querySelectorAll(convertedSelectors); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +gchar* webkit_dom_element_get_tag_name(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->tagName()); + return result; +} + +WebKitDOMNamedNodeMap* webkit_dom_element_get_attributes(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::NamedNodeMap> gobjectResult = WTF::getPtr(item->attributes()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMCSSStyleDeclaration* webkit_dom_element_get_style(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::CSSStyleDeclaration> gobjectResult = WTF::getPtr(item->cssomStyle()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_element_get_id(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getIdAttribute()); + return result; +} + +void webkit_dom_element_set_id(WebKitDOMElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(value); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::idAttr, convertedValue); +} + +gchar* webkit_dom_element_get_namespace_uri(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->namespaceURI()); + return result; +} + +gchar* webkit_dom_element_get_prefix(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->prefix()); + return result; +} + +gchar* webkit_dom_element_get_local_name(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->localName()); + return result; +} + +gdouble webkit_dom_element_get_offset_left(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->offsetLeft(); + return result; +} + +gdouble webkit_dom_element_get_offset_top(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->offsetTop(); + return result; +} + +gdouble webkit_dom_element_get_offset_width(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->offsetWidth(); + return result; +} + +gdouble webkit_dom_element_get_offset_height(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->offsetHeight(); + return result; +} + +gdouble webkit_dom_element_get_client_left(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->clientLeft(); + return result; +} + +gdouble webkit_dom_element_get_client_top(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->clientTop(); + return result; +} + +gdouble webkit_dom_element_get_client_width(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->clientWidth(); + return result; +} + +gdouble webkit_dom_element_get_client_height(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gdouble result = item->clientHeight(); + return result; +} + +glong webkit_dom_element_get_scroll_left(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + glong result = item->scrollLeft(); + return result; +} + +void webkit_dom_element_set_scroll_left(WebKitDOMElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->setScrollLeft(value); +} + +glong webkit_dom_element_get_scroll_top(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + glong result = item->scrollTop(); + return result; +} + +void webkit_dom_element_set_scroll_top(WebKitDOMElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + WebCore::Element* item = WebKit::core(self); + item->setScrollTop(value); +} + +glong webkit_dom_element_get_scroll_width(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + glong result = item->scrollWidth(); + return result; +} + +glong webkit_dom_element_get_scroll_height(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + glong result = item->scrollHeight(); + return result; +} + +WebKitDOMElement* webkit_dom_element_get_offset_parent(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->bindingsOffsetParent()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_element_get_inner_html(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->innerHTML()); + return result; +} + +void webkit_dom_element_set_inner_html(WebKitDOMElement* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setInnerHTML(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_element_get_outer_html(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->outerHTML()); + return result; +} + +void webkit_dom_element_set_outer_html(WebKitDOMElement* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setOuterHTML(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_element_get_class_name(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::classAttr)); + return result; +} + +void webkit_dom_element_set_class_name(WebKitDOMElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_ELEMENT(self)); + g_return_if_fail(value); + WebCore::Element* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::classAttr, convertedValue); +} + +WebKitDOMDOMTokenList* webkit_dom_element_get_class_list(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::DOMTokenList> gobjectResult = WTF::getPtr(item->classList()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_element_get_webkit_region_overset(WebKitDOMElement* self) +{ +#if ENABLE(CSS_REGIONS) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->webkitRegionOverset()); + return result; +#else + UNUSED_PARAM(self); + WEBKIT_WARN_FEATURE_NOT_PRESENT("Css Regions") + return 0; +#endif /* ENABLE(CSS_REGIONS) */ +} + +WebKitDOMElement* webkit_dom_element_get_previous_element_sibling(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->previousElementSibling()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_element_get_next_element_sibling(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->nextElementSibling()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_element_get_children(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->children()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_element_get_first_element_child(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->firstElementChild()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMElement* webkit_dom_element_get_last_element_child(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->lastElementChild()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_element_get_child_element_count(WebKitDOMElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), 0); + WebCore::Element* item = WebKit::core(self); + gulong result = item->childElementCount(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h new file mode 100644 index 000000000..d0d7afeea --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h @@ -0,0 +1,774 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMElement_h +#define WebKitDOMElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_ELEMENT (webkit_dom_element_get_type()) +#define WEBKIT_DOM_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_ELEMENT, WebKitDOMElement)) +#define WEBKIT_DOM_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_ELEMENT, WebKitDOMElementClass) +#define WEBKIT_DOM_IS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_ELEMENT)) +#define WEBKIT_DOM_IS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_ELEMENT)) +#define WEBKIT_DOM_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_ELEMENT, WebKitDOMElementClass)) + +struct _WebKitDOMElement { + WebKitDOMNode parent_instance; +}; + +struct _WebKitDOMElementClass { + WebKitDOMNodeClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_element_get_type(void); + +/** + * WEBKIT_DOM_ELEMENT_ALLOW_KEYBOARD_INPUT: + */ +#define WEBKIT_DOM_ELEMENT_ALLOW_KEYBOARD_INPUT 1 + +/** + * webkit_dom_element_get_attribute: + * @self: A #WebKitDOMElement + * @name: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_element_get_attribute(WebKitDOMElement* self, const gchar* name); + +/** + * webkit_dom_element_set_attribute: + * @self: A #WebKitDOMElement + * @name: A #gchar + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_element_set_attribute(WebKitDOMElement* self, const gchar* name, const gchar* value, GError** error); + +/** + * webkit_dom_element_remove_attribute: + * @self: A #WebKitDOMElement + * @name: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_element_remove_attribute(WebKitDOMElement* self, const gchar* name); + +/** + * webkit_dom_element_get_attribute_node: + * @self: A #WebKitDOMElement + * @name: A #gchar + * + * Returns: (transfer none): A #WebKitDOMAttr +**/ +WEBKIT_API WebKitDOMAttr* +webkit_dom_element_get_attribute_node(WebKitDOMElement* self, const gchar* name); + +/** + * webkit_dom_element_set_attribute_node: + * @self: A #WebKitDOMElement + * @newAttr: A #WebKitDOMAttr + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMAttr +**/ +WEBKIT_API WebKitDOMAttr* +webkit_dom_element_set_attribute_node(WebKitDOMElement* self, WebKitDOMAttr* newAttr, GError** error); + +/** + * webkit_dom_element_remove_attribute_node: + * @self: A #WebKitDOMElement + * @oldAttr: A #WebKitDOMAttr + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMAttr +**/ +WEBKIT_API WebKitDOMAttr* +webkit_dom_element_remove_attribute_node(WebKitDOMElement* self, WebKitDOMAttr* oldAttr, GError** error); + +/** + * webkit_dom_element_get_elements_by_tag_name_as_html_collection: + * @self: A #WebKitDOMElement + * @name: A #gchar + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.12 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_element_get_elements_by_tag_name_as_html_collection(WebKitDOMElement* self, const gchar* name); + +/** + * webkit_dom_element_has_attributes: + * @self: A #WebKitDOMElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_element_has_attributes(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_attribute_ns: + * @self: A #WebKitDOMElement + * @namespaceURI: A #gchar + * @localName: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_element_get_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName); + +/** + * webkit_dom_element_set_attribute_ns: + * @self: A #WebKitDOMElement + * @namespaceURI: (allow-none): A #gchar + * @qualifiedName: A #gchar + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_element_set_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* qualifiedName, const gchar* value, GError** error); + +/** + * webkit_dom_element_remove_attribute_ns: + * @self: A #WebKitDOMElement + * @namespaceURI: A #gchar + * @localName: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_element_remove_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName); + +/** + * webkit_dom_element_get_elements_by_tag_name_ns_as_html_collection: + * @self: A #WebKitDOMElement + * @namespaceURI: A #gchar + * @localName: A #gchar + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.12 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_element_get_elements_by_tag_name_ns_as_html_collection(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName); + +/** + * webkit_dom_element_get_attribute_node_ns: + * @self: A #WebKitDOMElement + * @namespaceURI: A #gchar + * @localName: A #gchar + * + * Returns: (transfer none): A #WebKitDOMAttr +**/ +WEBKIT_API WebKitDOMAttr* +webkit_dom_element_get_attribute_node_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName); + +/** + * webkit_dom_element_set_attribute_node_ns: + * @self: A #WebKitDOMElement + * @newAttr: A #WebKitDOMAttr + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMAttr +**/ +WEBKIT_API WebKitDOMAttr* +webkit_dom_element_set_attribute_node_ns(WebKitDOMElement* self, WebKitDOMAttr* newAttr, GError** error); + +/** + * webkit_dom_element_has_attribute: + * @self: A #WebKitDOMElement + * @name: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_element_has_attribute(WebKitDOMElement* self, const gchar* name); + +/** + * webkit_dom_element_has_attribute_ns: + * @self: A #WebKitDOMElement + * @namespaceURI: A #gchar + * @localName: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_element_has_attribute_ns(WebKitDOMElement* self, const gchar* namespaceURI, const gchar* localName); + +/** + * webkit_dom_element_focus: + * @self: A #WebKitDOMElement + * +**/ +WEBKIT_API void +webkit_dom_element_focus(WebKitDOMElement* self); + +/** + * webkit_dom_element_blur: + * @self: A #WebKitDOMElement + * +**/ +WEBKIT_API void +webkit_dom_element_blur(WebKitDOMElement* self); + +/** + * webkit_dom_element_scroll_into_view: + * @self: A #WebKitDOMElement + * @alignWithTop: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_element_scroll_into_view(WebKitDOMElement* self, gboolean alignWithTop); + +/** + * webkit_dom_element_scroll_into_view_if_needed: + * @self: A #WebKitDOMElement + * @centerIfNeeded: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_element_scroll_into_view_if_needed(WebKitDOMElement* self, gboolean centerIfNeeded); + +/** + * webkit_dom_element_scroll_by_lines: + * @self: A #WebKitDOMElement + * @lines: A #glong + * +**/ +WEBKIT_API void +webkit_dom_element_scroll_by_lines(WebKitDOMElement* self, glong lines); + +/** + * webkit_dom_element_scroll_by_pages: + * @self: A #WebKitDOMElement + * @pages: A #glong + * +**/ +WEBKIT_API void +webkit_dom_element_scroll_by_pages(WebKitDOMElement* self, glong pages); + +/** + * webkit_dom_element_get_elements_by_class_name_as_html_collection: + * @self: A #WebKitDOMElement + * @name: A #gchar + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.12 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_element_get_elements_by_class_name_as_html_collection(WebKitDOMElement* self, const gchar* name); + +/** + * webkit_dom_element_query_selector: + * @self: A #WebKitDOMElement + * @selectors: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_query_selector(WebKitDOMElement* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_element_query_selector_all: + * @self: A #WebKitDOMElement + * @selectors: A #gchar + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMNodeList +**/ +WEBKIT_API WebKitDOMNodeList* +webkit_dom_element_query_selector_all(WebKitDOMElement* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_element_get_tag_name: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_element_get_tag_name(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_attributes: + * @self: A #WebKitDOMElement + * + * Returns: (transfer full): A #WebKitDOMNamedNodeMap +**/ +WEBKIT_API WebKitDOMNamedNodeMap* +webkit_dom_element_get_attributes(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_style: + * @self: A #WebKitDOMElement + * + * Returns: (transfer full): A #WebKitDOMCSSStyleDeclaration +**/ +WEBKIT_API WebKitDOMCSSStyleDeclaration* +webkit_dom_element_get_style(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_id: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_element_get_id(WebKitDOMElement* self); + +/** + * webkit_dom_element_set_id: + * @self: A #WebKitDOMElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_element_set_id(WebKitDOMElement* self, const gchar* value); + +/** + * webkit_dom_element_get_namespace_uri: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_element_get_namespace_uri(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_prefix: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_element_get_prefix(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_local_name: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_element_get_local_name(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_offset_left: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_offset_left(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_offset_top: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_offset_top(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_offset_width: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_offset_width(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_offset_height: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_offset_height(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_client_left: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_client_left(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_client_top: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_client_top(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_client_width: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_client_width(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_client_height: + * @self: A #WebKitDOMElement + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_element_get_client_height(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_scroll_left: + * @self: A #WebKitDOMElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_element_get_scroll_left(WebKitDOMElement* self); + +/** + * webkit_dom_element_set_scroll_left: + * @self: A #WebKitDOMElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_element_set_scroll_left(WebKitDOMElement* self, glong value); + +/** + * webkit_dom_element_get_scroll_top: + * @self: A #WebKitDOMElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_element_get_scroll_top(WebKitDOMElement* self); + +/** + * webkit_dom_element_set_scroll_top: + * @self: A #WebKitDOMElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_element_set_scroll_top(WebKitDOMElement* self, glong value); + +/** + * webkit_dom_element_get_scroll_width: + * @self: A #WebKitDOMElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_element_get_scroll_width(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_scroll_height: + * @self: A #WebKitDOMElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_element_get_scroll_height(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_offset_parent: + * @self: A #WebKitDOMElement + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_get_offset_parent(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_inner_html: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar + * + * Since: 2.8 +**/ +WEBKIT_API gchar* +webkit_dom_element_get_inner_html(WebKitDOMElement* self); + +/** + * webkit_dom_element_set_inner_html: + * @self: A #WebKitDOMElement + * @value: A #gchar + * @error: #GError + * + * Since: 2.8 +**/ +WEBKIT_API void +webkit_dom_element_set_inner_html(WebKitDOMElement* self, const gchar* value, GError** error); + +/** + * webkit_dom_element_get_outer_html: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar + * + * Since: 2.8 +**/ +WEBKIT_API gchar* +webkit_dom_element_get_outer_html(WebKitDOMElement* self); + +/** + * webkit_dom_element_set_outer_html: + * @self: A #WebKitDOMElement + * @value: A #gchar + * @error: #GError + * + * Since: 2.8 +**/ +WEBKIT_API void +webkit_dom_element_set_outer_html(WebKitDOMElement* self, const gchar* value, GError** error); + +/** + * webkit_dom_element_get_class_name: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_element_get_class_name(WebKitDOMElement* self); + +/** + * webkit_dom_element_set_class_name: + * @self: A #WebKitDOMElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_element_set_class_name(WebKitDOMElement* self, const gchar* value); + +/** + * webkit_dom_element_get_previous_element_sibling: + * @self: A #WebKitDOMElement + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_get_previous_element_sibling(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_next_element_sibling: + * @self: A #WebKitDOMElement + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_get_next_element_sibling(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_children: + * @self: A #WebKitDOMElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection + * + * Since: 2.10 +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_element_get_children(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_first_element_child: + * @self: A #WebKitDOMElement + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_get_first_element_child(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_last_element_child: + * @self: A #WebKitDOMElement + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_get_last_element_child(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_child_element_count: + * @self: A #WebKitDOMElement + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_element_get_child_element_count(WebKitDOMElement* self); + +/** + * webkit_dom_element_matches: + * @self: A #WebKitDOMElement + * @selectors: A #gchar + * @error: #GError + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_element_matches(WebKitDOMElement* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_element_closest: + * @self: A #WebKitDOMElement + * @selectors: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_closest(WebKitDOMElement* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_element_webkit_matches_selector: + * @self: A #WebKitDOMElement + * @selectors: A #gchar + * @error: #GError + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_element_webkit_matches_selector(WebKitDOMElement* self, const gchar* selectors, GError** error); + +/** + * webkit_dom_element_webkit_request_fullscreen: + * @self: A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_element_webkit_request_fullscreen(WebKitDOMElement* self); + +/** + * webkit_dom_element_insert_adjacent_element: + * @self: A #WebKitDOMElement + * @where: A #gchar + * @element: A #WebKitDOMElement + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_element_insert_adjacent_element(WebKitDOMElement* self, const gchar* where, WebKitDOMElement* element, GError** error); + +/** + * webkit_dom_element_insert_adjacent_html: + * @self: A #WebKitDOMElement + * @where: A #gchar + * @html: A #gchar + * @error: #GError + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_element_insert_adjacent_html(WebKitDOMElement* self, const gchar* where, const gchar* html, GError** error); + +/** + * webkit_dom_element_insert_adjacent_text: + * @self: A #WebKitDOMElement + * @where: A #gchar + * @text: A #gchar + * @error: #GError + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_element_insert_adjacent_text(WebKitDOMElement* self, const gchar* where, const gchar* text, GError** error); + +/** + * webkit_dom_element_request_pointer_lock: + * @self: A #WebKitDOMElement + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_element_request_pointer_lock(WebKitDOMElement* self); + +/** + * webkit_dom_element_remove: + * @self: A #WebKitDOMElement + * @error: #GError + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_element_remove(WebKitDOMElement* self, GError** error); + +/** + * webkit_dom_element_get_class_list: + * @self: A #WebKitDOMElement + * + * Returns: (transfer full): A #WebKitDOMDOMTokenList + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMDOMTokenList* +webkit_dom_element_get_class_list(WebKitDOMElement* self); + +/** + * webkit_dom_element_get_webkit_region_overset: + * @self: A #WebKitDOMElement + * + * Returns: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API gchar* +webkit_dom_element_get_webkit_region_overset(WebKitDOMElement* self); + +G_END_DECLS + +#endif /* WebKitDOMElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementPrivate.h new file mode 100644 index 000000000..7c1f4308c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMElementPrivate_h +#define WebKitDOMElementPrivate_h + +#include <WebCore/Element.h> +#include <webkitdom/WebKitDOMElement.h> + +namespace WebKit { +WebKitDOMElement* wrapElement(WebCore::Element*); +WebKitDOMElement* kit(WebCore::Element*); +WebCore::Element* core(WebKitDOMElement*); +} // namespace WebKit + +#endif /* WebKitDOMElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementUnstable.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementUnstable.h new file mode 100644 index 000000000..04eba9227 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementUnstable.h @@ -0,0 +1,29 @@ +/* + * 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. + */ + +#ifndef WebKitDOMElementUnstable_h +#define WebKitDOMElementUnstable_h + +#ifdef WEBKIT_DOM_USE_UNSTABLE_API +#define __WEBKITDOM_H_INSIDE__ +#include <webkitdom/WebKitDOMElement.h> +#undef __WEBKITDOM_H_INSIDE__ +#endif /* WEBKIT_DOM_USE_UNSTABLE_API */ + +#endif /* WebKitDOMElementUnstable_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp new file mode 100644 index 000000000..48530e0ef --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp @@ -0,0 +1,411 @@ +/* + * 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 "WebKitDOMEvent.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTargetPrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_EVENT_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_EVENT, WebKitDOMEventPrivate) + +typedef struct _WebKitDOMEventPrivate { + RefPtr<WebCore::Event> coreObject; +} WebKitDOMEventPrivate; + +namespace WebKit { + +WebKitDOMEvent* kit(WebCore::Event* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_EVENT(ret); + + return wrap(obj); +} + +WebCore::Event* core(WebKitDOMEvent* request) +{ + return request ? static_cast<WebCore::Event*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMEvent* wrapEvent(WebCore::Event* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_EVENT(g_object_new(WEBKIT_DOM_TYPE_EVENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMEvent, webkit_dom_event, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_TYPE, + PROP_TARGET, + PROP_CURRENT_TARGET, + PROP_EVENT_PHASE, + PROP_BUBBLES, + PROP_CANCELABLE, + PROP_TIME_STAMP, + PROP_SRC_ELEMENT, + PROP_RETURN_VALUE, + PROP_CANCEL_BUBBLE, +}; + +static void webkit_dom_event_finalize(GObject* object) +{ + WebKitDOMEventPrivate* priv = WEBKIT_DOM_EVENT_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMEventPrivate(); + G_OBJECT_CLASS(webkit_dom_event_parent_class)->finalize(object); +} + +static void webkit_dom_event_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMEvent* self = WEBKIT_DOM_EVENT(object); + + switch (propertyId) { + case PROP_RETURN_VALUE: + webkit_dom_event_set_return_value(self, g_value_get_boolean(value)); + break; + case PROP_CANCEL_BUBBLE: + webkit_dom_event_set_cancel_bubble(self, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_event_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMEvent* self = WEBKIT_DOM_EVENT(object); + + switch (propertyId) { + case PROP_TYPE: + g_value_take_string(value, webkit_dom_event_get_event_type(self)); + break; + case PROP_TARGET: + g_value_set_object(value, webkit_dom_event_get_target(self)); + break; + case PROP_CURRENT_TARGET: + g_value_set_object(value, webkit_dom_event_get_current_target(self)); + break; + case PROP_EVENT_PHASE: + g_value_set_uint(value, webkit_dom_event_get_event_phase(self)); + break; + case PROP_BUBBLES: + g_value_set_boolean(value, webkit_dom_event_get_bubbles(self)); + break; + case PROP_CANCELABLE: + g_value_set_boolean(value, webkit_dom_event_get_cancelable(self)); + break; + case PROP_TIME_STAMP: + g_value_set_uint(value, webkit_dom_event_get_time_stamp(self)); + break; + case PROP_SRC_ELEMENT: + g_value_set_object(value, webkit_dom_event_get_src_element(self)); + break; + case PROP_RETURN_VALUE: + g_value_set_boolean(value, webkit_dom_event_get_return_value(self)); + break; + case PROP_CANCEL_BUBBLE: + g_value_set_boolean(value, webkit_dom_event_get_cancel_bubble(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_event_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_event_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMEventPrivate* priv = WEBKIT_DOM_EVENT_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::Event*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_event_class_init(WebKitDOMEventClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMEventPrivate)); + gobjectClass->constructor = webkit_dom_event_constructor; + gobjectClass->finalize = webkit_dom_event_finalize; + gobjectClass->set_property = webkit_dom_event_set_property; + gobjectClass->get_property = webkit_dom_event_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "Event:type", + "read-only gchar* Event:type", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TARGET, + g_param_spec_object( + "target", + "Event:target", + "read-only WebKitDOMEventTarget* Event:target", + WEBKIT_DOM_TYPE_EVENT_TARGET, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CURRENT_TARGET, + g_param_spec_object( + "current-target", + "Event:current-target", + "read-only WebKitDOMEventTarget* Event:current-target", + WEBKIT_DOM_TYPE_EVENT_TARGET, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_EVENT_PHASE, + g_param_spec_uint( + "event-phase", + "Event:event-phase", + "read-only gushort Event:event-phase", + 0, G_MAXUINT, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_BUBBLES, + g_param_spec_boolean( + "bubbles", + "Event:bubbles", + "read-only gboolean Event:bubbles", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CANCELABLE, + g_param_spec_boolean( + "cancelable", + "Event:cancelable", + "read-only gboolean Event:cancelable", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TIME_STAMP, + g_param_spec_uint( + "time-stamp", + "Event:time-stamp", + "read-only guint32 Event:time-stamp", + 0, G_MAXUINT, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SRC_ELEMENT, + g_param_spec_object( + "src-element", + "Event:src-element", + "read-only WebKitDOMEventTarget* Event:src-element", + WEBKIT_DOM_TYPE_EVENT_TARGET, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_RETURN_VALUE, + g_param_spec_boolean( + "return-value", + "Event:return-value", + "read-write gboolean Event:return-value", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CANCEL_BUBBLE, + g_param_spec_boolean( + "cancel-bubble", + "Event:cancel-bubble", + "read-write gboolean Event:cancel-bubble", + FALSE, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_event_init(WebKitDOMEvent* request) +{ + WebKitDOMEventPrivate* priv = WEBKIT_DOM_EVENT_GET_PRIVATE(request); + new (priv) WebKitDOMEventPrivate(); +} + +void webkit_dom_event_stop_propagation(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_EVENT(self)); + WebCore::Event* item = WebKit::core(self); + item->stopPropagation(); +} + +void webkit_dom_event_prevent_default(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_EVENT(self)); + WebCore::Event* item = WebKit::core(self); + item->preventDefault(); +} + +void webkit_dom_event_init_event(WebKitDOMEvent* self, const gchar* eventTypeArg, gboolean canBubbleArg, gboolean cancelableArg) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_EVENT(self)); + g_return_if_fail(eventTypeArg); + WebCore::Event* item = WebKit::core(self); + WTF::String convertedEventTypeArg = WTF::String::fromUTF8(eventTypeArg); + item->initEvent(convertedEventTypeArg, canBubbleArg, cancelableArg); +} + +gchar* webkit_dom_event_get_event_type(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), 0); + WebCore::Event* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->type()); + return result; +} + +WebKitDOMEventTarget* webkit_dom_event_get_target(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), 0); + WebCore::Event* item = WebKit::core(self); + RefPtr<WebCore::EventTarget> gobjectResult = WTF::getPtr(item->target()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMEventTarget* webkit_dom_event_get_current_target(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), 0); + WebCore::Event* item = WebKit::core(self); + RefPtr<WebCore::EventTarget> gobjectResult = WTF::getPtr(item->currentTarget()); + return WebKit::kit(gobjectResult.get()); +} + +gushort webkit_dom_event_get_event_phase(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), 0); + WebCore::Event* item = WebKit::core(self); + gushort result = item->eventPhase(); + return result; +} + +gboolean webkit_dom_event_get_bubbles(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), FALSE); + WebCore::Event* item = WebKit::core(self); + gboolean result = item->bubbles(); + return result; +} + +gboolean webkit_dom_event_get_cancelable(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), FALSE); + WebCore::Event* item = WebKit::core(self); + gboolean result = item->cancelable(); + return result; +} + +guint32 webkit_dom_event_get_time_stamp(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), 0); + WebCore::Event* item = WebKit::core(self); + guint32 result = item->timeStamp(); + return result; +} + +WebKitDOMEventTarget* webkit_dom_event_get_src_element(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), 0); + WebCore::Event* item = WebKit::core(self); + RefPtr<WebCore::EventTarget> gobjectResult = WTF::getPtr(item->srcElement()); + return WebKit::kit(gobjectResult.get()); +} + +gboolean webkit_dom_event_get_return_value(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), FALSE); + WebCore::Event* item = WebKit::core(self); + gboolean result = item->legacyReturnValue(); + return result; +} + +void webkit_dom_event_set_return_value(WebKitDOMEvent* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_EVENT(self)); + WebCore::Event* item = WebKit::core(self); + item->setLegacyReturnValue(value); +} + +gboolean webkit_dom_event_get_cancel_bubble(WebKitDOMEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(self), FALSE); + WebCore::Event* item = WebKit::core(self); + gboolean result = item->cancelBubble(); + return result; +} + +void webkit_dom_event_set_cancel_bubble(WebKitDOMEvent* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_EVENT(self)); + WebCore::Event* item = WebKit::core(self); + item->setCancelBubble(value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.h new file mode 100644 index 000000000..f2e189856 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.h @@ -0,0 +1,288 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMEvent_h +#define WebKitDOMEvent_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_EVENT (webkit_dom_event_get_type()) +#define WEBKIT_DOM_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_EVENT, WebKitDOMEvent)) +#define WEBKIT_DOM_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_EVENT, WebKitDOMEventClass) +#define WEBKIT_DOM_IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_EVENT)) +#define WEBKIT_DOM_IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_EVENT)) +#define WEBKIT_DOM_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_EVENT, WebKitDOMEventClass)) + +/** + * WEBKIT_DOM_EVENT_NONE: + */ +#define WEBKIT_DOM_EVENT_NONE 0 + +/** + * WEBKIT_DOM_EVENT_CAPTURING_PHASE: + */ +#define WEBKIT_DOM_EVENT_CAPTURING_PHASE 1 + +/** + * WEBKIT_DOM_EVENT_AT_TARGET: + */ +#define WEBKIT_DOM_EVENT_AT_TARGET 2 + +/** + * WEBKIT_DOM_EVENT_BUBBLING_PHASE: + */ +#define WEBKIT_DOM_EVENT_BUBBLING_PHASE 3 + +/** + * WEBKIT_DOM_EVENT_MOUSEDOWN: + */ +#define WEBKIT_DOM_EVENT_MOUSEDOWN 1 + +/** + * WEBKIT_DOM_EVENT_MOUSEUP: + */ +#define WEBKIT_DOM_EVENT_MOUSEUP 2 + +/** + * WEBKIT_DOM_EVENT_MOUSEOVER: + */ +#define WEBKIT_DOM_EVENT_MOUSEOVER 4 + +/** + * WEBKIT_DOM_EVENT_MOUSEOUT: + */ +#define WEBKIT_DOM_EVENT_MOUSEOUT 8 + +/** + * WEBKIT_DOM_EVENT_MOUSEMOVE: + */ +#define WEBKIT_DOM_EVENT_MOUSEMOVE 16 + +/** + * WEBKIT_DOM_EVENT_MOUSEDRAG: + */ +#define WEBKIT_DOM_EVENT_MOUSEDRAG 32 + +/** + * WEBKIT_DOM_EVENT_CLICK: + */ +#define WEBKIT_DOM_EVENT_CLICK 64 + +/** + * WEBKIT_DOM_EVENT_DBLCLICK: + */ +#define WEBKIT_DOM_EVENT_DBLCLICK 128 + +/** + * WEBKIT_DOM_EVENT_KEYDOWN: + */ +#define WEBKIT_DOM_EVENT_KEYDOWN 256 + +/** + * WEBKIT_DOM_EVENT_KEYUP: + */ +#define WEBKIT_DOM_EVENT_KEYUP 512 + +/** + * WEBKIT_DOM_EVENT_KEYPRESS: + */ +#define WEBKIT_DOM_EVENT_KEYPRESS 1024 + +/** + * WEBKIT_DOM_EVENT_DRAGDROP: + */ +#define WEBKIT_DOM_EVENT_DRAGDROP 2048 + +/** + * WEBKIT_DOM_EVENT_FOCUS: + */ +#define WEBKIT_DOM_EVENT_FOCUS 4096 + +/** + * WEBKIT_DOM_EVENT_BLUR: + */ +#define WEBKIT_DOM_EVENT_BLUR 8192 + +/** + * WEBKIT_DOM_EVENT_SELECT: + */ +#define WEBKIT_DOM_EVENT_SELECT 16384 + +/** + * WEBKIT_DOM_EVENT_CHANGE: + */ +#define WEBKIT_DOM_EVENT_CHANGE 32768 + +struct _WebKitDOMEvent { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMEventClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_event_get_type(void); + +/** + * webkit_dom_event_stop_propagation: + * @self: A #WebKitDOMEvent + * +**/ +WEBKIT_API void +webkit_dom_event_stop_propagation(WebKitDOMEvent* self); + +/** + * webkit_dom_event_prevent_default: + * @self: A #WebKitDOMEvent + * +**/ +WEBKIT_API void +webkit_dom_event_prevent_default(WebKitDOMEvent* self); + +/** + * webkit_dom_event_init_event: + * @self: A #WebKitDOMEvent + * @eventTypeArg: A #gchar + * @canBubbleArg: A #gboolean + * @cancelableArg: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_event_init_event(WebKitDOMEvent* self, const gchar* eventTypeArg, gboolean canBubbleArg, gboolean cancelableArg); + +/** + * webkit_dom_event_get_event_type: + * @self: A #WebKitDOMEvent + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_event_get_event_type(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_target: + * @self: A #WebKitDOMEvent + * + * Returns: (transfer full): A #WebKitDOMEventTarget +**/ +WEBKIT_API WebKitDOMEventTarget* +webkit_dom_event_get_target(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_current_target: + * @self: A #WebKitDOMEvent + * + * Returns: (transfer full): A #WebKitDOMEventTarget +**/ +WEBKIT_API WebKitDOMEventTarget* +webkit_dom_event_get_current_target(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_event_phase: + * @self: A #WebKitDOMEvent + * + * Returns: A #gushort +**/ +WEBKIT_API gushort +webkit_dom_event_get_event_phase(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_bubbles: + * @self: A #WebKitDOMEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_event_get_bubbles(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_cancelable: + * @self: A #WebKitDOMEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_event_get_cancelable(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_time_stamp: + * @self: A #WebKitDOMEvent + * + * Returns: A #guint32 +**/ +WEBKIT_API guint32 +webkit_dom_event_get_time_stamp(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_src_element: + * @self: A #WebKitDOMEvent + * + * Returns: (transfer full): A #WebKitDOMEventTarget +**/ +WEBKIT_API WebKitDOMEventTarget* +webkit_dom_event_get_src_element(WebKitDOMEvent* self); + +/** + * webkit_dom_event_get_return_value: + * @self: A #WebKitDOMEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_event_get_return_value(WebKitDOMEvent* self); + +/** + * webkit_dom_event_set_return_value: + * @self: A #WebKitDOMEvent + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_event_set_return_value(WebKitDOMEvent* self, gboolean value); + +/** + * webkit_dom_event_get_cancel_bubble: + * @self: A #WebKitDOMEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_event_get_cancel_bubble(WebKitDOMEvent* self); + +/** + * webkit_dom_event_set_cancel_bubble: + * @self: A #WebKitDOMEvent + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_event_set_cancel_bubble(WebKitDOMEvent* self, gboolean value); + +G_END_DECLS + +#endif /* WebKitDOMEvent_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventPrivate.h new file mode 100644 index 000000000..b0908622d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMEventPrivate_h +#define WebKitDOMEventPrivate_h + +#include <WebCore/Event.h> +#include <webkitdom/WebKitDOMEvent.h> + +namespace WebKit { +WebKitDOMEvent* wrapEvent(WebCore::Event*); +WebKitDOMEvent* kit(WebCore::Event*); +WebCore::Event* core(WebKitDOMEvent*); +} // namespace WebKit + +#endif /* WebKitDOMEventPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.cpp new file mode 100644 index 000000000..8b750b475 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.cpp @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2010 Igalia S.L. + * + * This file is derived by hand from an automatically generated file. + * Keeping it up-to-date could potentially be done by adding + * a make_names.pl generator, or by writing a separate + * generater which takes JSHTMLElementWrapperFactory.h as input. + * + * 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. ``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 + * 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 "WebKitDOMEventTarget.h" + +#include "DOMObjectCache.h" +#include <WebCore/EventTarget.h> +#include "WebKitDOMEvent.h" +#include "WebKitDOMEventTargetPrivate.h" +#include "WebKitDOMPrivate.h" +#include <wtf/glib/GRefPtr.h> + +typedef WebKitDOMEventTargetIface WebKitDOMEventTargetInterface; + +G_DEFINE_INTERFACE(WebKitDOMEventTarget, webkit_dom_event_target, G_TYPE_OBJECT) + +static void webkit_dom_event_target_default_init(WebKitDOMEventTargetIface*) +{ +} + +gboolean webkit_dom_event_target_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT_TARGET(target), FALSE); + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT(event), FALSE); + g_return_val_if_fail(!error || !*error, FALSE); + + return WEBKIT_DOM_EVENT_TARGET_GET_IFACE(target)->dispatch_event(target, event, error); +} + +gboolean webkit_dom_event_target_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean useCapture, gpointer userData) +{ + + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT_TARGET(target), FALSE); + g_return_val_if_fail(eventName, FALSE); + + GRefPtr<GClosure> closure = adoptGRef(g_cclosure_new(handler, userData, 0)); + return WEBKIT_DOM_EVENT_TARGET_GET_IFACE(target)->add_event_listener(target, eventName, closure.get(), useCapture); +} + +gboolean webkit_dom_event_target_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GCallback handler, gboolean useCapture) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT_TARGET(target), FALSE); + g_return_val_if_fail(eventName, FALSE); + + GRefPtr<GClosure> closure = adoptGRef(g_cclosure_new(handler, 0, 0)); + return WEBKIT_DOM_EVENT_TARGET_GET_IFACE(target)->remove_event_listener(target, eventName, closure.get(), useCapture); +} + +gboolean webkit_dom_event_target_add_event_listener_with_closure(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT_TARGET(target), FALSE); + g_return_val_if_fail(eventName, FALSE); + g_return_val_if_fail(handler, FALSE); + + return WEBKIT_DOM_EVENT_TARGET_GET_IFACE(target)->add_event_listener(target, eventName, handler, useCapture); +} + +gboolean webkit_dom_event_target_remove_event_listener_with_closure(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_EVENT_TARGET(target), FALSE); + g_return_val_if_fail(eventName, FALSE); + g_return_val_if_fail(handler, FALSE); + + return WEBKIT_DOM_EVENT_TARGET_GET_IFACE(target)->remove_event_listener(target, eventName, handler, useCapture); +} + +namespace WebKit { + +WebKitDOMEventTarget* kit(WebCore::EventTarget* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_EVENT_TARGET(ret); + + return wrap(obj); +} + +WebCore::EventTarget* core(WebKitDOMEventTarget* request) +{ + return request ? static_cast<WebCore::EventTarget*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +} // namespace WebKit + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h new file mode 100644 index 000000000..adc2106c7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2010 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WebKitDOMEventTarget_h +#define WebKitDOMEventTarget_h + +#include <glib-object.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_EVENT_TARGET (webkit_dom_event_target_get_type ()) +#define WEBKIT_DOM_EVENT_TARGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEBKIT_DOM_TYPE_EVENT_TARGET, WebKitDOMEventTarget)) +#define WEBKIT_DOM_EVENT_TARGET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), WEBKIT_DOM_TYPE_EVENT_TARGET, WebKitDOMEventTargetIface)) +#define WEBKIT_DOM_IS_EVENT_TARGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEBKIT_DOM_TYPE_EVENT_TARGET)) +#define WEBKIT_DOM_EVENT_TARGET_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), WEBKIT_DOM_TYPE_EVENT_TARGET, WebKitDOMEventTargetIface)) + +struct _WebKitDOMEventTargetIface { + GTypeInterface gIface; + + /* virtual table */ + gboolean (* dispatch_event)(WebKitDOMEventTarget *target, + WebKitDOMEvent *event, + GError **error); + + gboolean (* add_event_listener)(WebKitDOMEventTarget *target, + const char *event_name, + GClosure *handler, + gboolean use_capture); + gboolean (* remove_event_listener)(WebKitDOMEventTarget *target, + const char *event_name, + GClosure *handler, + gboolean use_capture); + + void (*_webkitdom_reserved0) (void); + void (*_webkitdom_reserved1) (void); + void (*_webkitdom_reserved2) (void); + void (*_webkitdom_reserved3) (void); +}; + + +WEBKIT_API GType webkit_dom_event_target_get_type(void) G_GNUC_CONST; + +/** + * webkit_dom_event_target_dispatch_event: + * @target: A #WebKitDOMEventTarget + * @event: A #WebKitDOMEvent + * @error: return location for an error or %NULL + * + * Returns: a #gboolean + */ +WEBKIT_API gboolean webkit_dom_event_target_dispatch_event(WebKitDOMEventTarget *target, + WebKitDOMEvent *event, + GError **error); + +/** + * webkit_dom_event_target_add_event_listener: + * @target: A #WebKitDOMEventTarget + * @event_name: A #gchar + * @handler: (scope async): A #GCallback + * @use_capture: A #gboolean + * @user_data: A #gpointer + * + * Returns: a #gboolean + */ +WEBKIT_API gboolean webkit_dom_event_target_add_event_listener(WebKitDOMEventTarget *target, + const char *event_name, + GCallback handler, + gboolean use_capture, + gpointer user_data); + +/** + * webkit_dom_event_target_remove_event_listener: + * @target: A #WebKitDOMEventTarget + * @event_name: A #gchar + * @handler: (scope call): A #GCallback + * @use_capture: A #gboolean + * + * Returns: a #gboolean + */ +WEBKIT_API gboolean webkit_dom_event_target_remove_event_listener(WebKitDOMEventTarget *target, + const char *event_name, + GCallback handler, + gboolean use_capture); + +/** + * webkit_dom_event_target_add_event_listener_with_closure: (rename-to webkit_dom_event_target_add_event_listener) + * @target: A #WebKitDOMEventTarget + * @event_name: A #gchar + * @handler: A #GClosure + * @use_capture: A #gboolean + * + * Version of webkit_dom_event_target_add_event_listener() using a closure + * instead of a callbacks for easier binding in other languages. + * + * Returns: a #gboolean + */ +WEBKIT_API gboolean webkit_dom_event_target_add_event_listener_with_closure(WebKitDOMEventTarget *target, + const char *event_name, + GClosure *handler, + gboolean use_capture); + +/** + * webkit_dom_event_target_remove_event_listener_with_closure: (rename-to webkit_dom_event_target_remove_event_listener) + * @target: A #WebKitDOMEventTarget + * @event_name: A #gchar + * @handler: A #GClosure + * @use_capture: A #gboolean + * + * Version of webkit_dom_event_target_remove_event_listener() using a closure + * instead of a callbacks for easier binding in other languages. + * + * Returns: a #gboolean + */ +WEBKIT_API gboolean webkit_dom_event_target_remove_event_listener_with_closure(WebKitDOMEventTarget *target, + const char *event_name, + GClosure *handler, + gboolean use_capture); + + +G_END_DECLS + +#endif /* WebKitDOMEventTarget_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTargetPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTargetPrivate.h new file mode 100644 index 000000000..e79be3845 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTargetPrivate.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010 Igalia S.L. + * + * 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. + */ + +#ifndef WebKitDOMEventTargetPrivate_h +#define WebKitDOMEventTargetPrivate_h + +#include <webkitdom/WebKitDOMEventTarget.h> + +namespace WebCore { +class EventTarget; +} + +namespace WebKit { +WebKitDOMEventTarget* kit(WebCore::EventTarget*); +WebCore::EventTarget* core(WebKitDOMEventTarget*); +} // namespace WebKit + +#endif /* WebKitDOMEventTargetPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp new file mode 100644 index 000000000..7390ab470 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp @@ -0,0 +1,105 @@ +/* + * 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 "WebKitDOMFile.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMBlobPrivate.h" +#include "WebKitDOMFilePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMFile* kit(WebCore::File* obj) +{ + return WEBKIT_DOM_FILE(kit(static_cast<WebCore::Blob*>(obj))); +} + +WebCore::File* core(WebKitDOMFile* request) +{ + return request ? static_cast<WebCore::File*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMFile* wrapFile(WebCore::File* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_FILE(g_object_new(WEBKIT_DOM_TYPE_FILE, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMFile, webkit_dom_file, WEBKIT_DOM_TYPE_BLOB) + +enum { + PROP_0, + PROP_NAME, +}; + +static void webkit_dom_file_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMFile* self = WEBKIT_DOM_FILE(object); + + switch (propertyId) { + case PROP_NAME: + g_value_take_string(value, webkit_dom_file_get_name(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_file_class_init(WebKitDOMFileClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_file_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "File:name", + "read-only gchar* File:name", + "", + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_file_init(WebKitDOMFile* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_file_get_name(WebKitDOMFile* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_FILE(self), 0); + WebCore::File* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->name()); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.h new file mode 100644 index 000000000..3238b6ac7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.h @@ -0,0 +1,62 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMFile_h +#define WebKitDOMFile_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMBlob.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_FILE (webkit_dom_file_get_type()) +#define WEBKIT_DOM_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_FILE, WebKitDOMFile)) +#define WEBKIT_DOM_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_FILE, WebKitDOMFileClass) +#define WEBKIT_DOM_IS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_FILE)) +#define WEBKIT_DOM_IS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_FILE)) +#define WEBKIT_DOM_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_FILE, WebKitDOMFileClass)) + +struct _WebKitDOMFile { + WebKitDOMBlob parent_instance; +}; + +struct _WebKitDOMFileClass { + WebKitDOMBlobClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_file_get_type(void); + +/** + * webkit_dom_file_get_name: + * @self: A #WebKitDOMFile + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_file_get_name(WebKitDOMFile* self); + +G_END_DECLS + +#endif /* WebKitDOMFile_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp new file mode 100644 index 000000000..647e60929 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp @@ -0,0 +1,153 @@ +/* + * 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 "WebKitDOMFileList.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMFileListPrivate.h" +#include "WebKitDOMFilePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_FILE_LIST_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_FILE_LIST, WebKitDOMFileListPrivate) + +typedef struct _WebKitDOMFileListPrivate { + RefPtr<WebCore::FileList> coreObject; +} WebKitDOMFileListPrivate; + +namespace WebKit { + +WebKitDOMFileList* kit(WebCore::FileList* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_FILE_LIST(ret); + + return wrapFileList(obj); +} + +WebCore::FileList* core(WebKitDOMFileList* request) +{ + return request ? static_cast<WebCore::FileList*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMFileList* wrapFileList(WebCore::FileList* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_FILE_LIST(g_object_new(WEBKIT_DOM_TYPE_FILE_LIST, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMFileList, webkit_dom_file_list, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_LENGTH, +}; + +static void webkit_dom_file_list_finalize(GObject* object) +{ + WebKitDOMFileListPrivate* priv = WEBKIT_DOM_FILE_LIST_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMFileListPrivate(); + G_OBJECT_CLASS(webkit_dom_file_list_parent_class)->finalize(object); +} + +static void webkit_dom_file_list_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMFileList* self = WEBKIT_DOM_FILE_LIST(object); + + switch (propertyId) { + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_file_list_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_file_list_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_file_list_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMFileListPrivate* priv = WEBKIT_DOM_FILE_LIST_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::FileList*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_file_list_class_init(WebKitDOMFileListClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMFileListPrivate)); + gobjectClass->constructor = webkit_dom_file_list_constructor; + gobjectClass->finalize = webkit_dom_file_list_finalize; + gobjectClass->get_property = webkit_dom_file_list_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "FileList:length", + "read-only gulong FileList:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_file_list_init(WebKitDOMFileList* request) +{ + WebKitDOMFileListPrivate* priv = WEBKIT_DOM_FILE_LIST_GET_PRIVATE(request); + new (priv) WebKitDOMFileListPrivate(); +} + +WebKitDOMFile* webkit_dom_file_list_item(WebKitDOMFileList* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_FILE_LIST(self), 0); + WebCore::FileList* item = WebKit::core(self); + RefPtr<WebCore::File> gobjectResult = WTF::getPtr(item->item(index)); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_file_list_get_length(WebKitDOMFileList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_FILE_LIST(self), 0); + WebCore::FileList* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.h new file mode 100644 index 000000000..bf5c9c14d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.h @@ -0,0 +1,72 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMFileList_h +#define WebKitDOMFileList_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_FILE_LIST (webkit_dom_file_list_get_type()) +#define WEBKIT_DOM_FILE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_FILE_LIST, WebKitDOMFileList)) +#define WEBKIT_DOM_FILE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_FILE_LIST, WebKitDOMFileListClass) +#define WEBKIT_DOM_IS_FILE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_FILE_LIST)) +#define WEBKIT_DOM_IS_FILE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_FILE_LIST)) +#define WEBKIT_DOM_FILE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_FILE_LIST, WebKitDOMFileListClass)) + +struct _WebKitDOMFileList { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMFileListClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_file_list_get_type(void); + +/** + * webkit_dom_file_list_item: + * @self: A #WebKitDOMFileList + * @index: A #gulong + * + * Returns: (transfer full): A #WebKitDOMFile +**/ +WEBKIT_API WebKitDOMFile* +webkit_dom_file_list_item(WebKitDOMFileList* self, gulong index); + +/** + * webkit_dom_file_list_get_length: + * @self: A #WebKitDOMFileList + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_file_list_get_length(WebKitDOMFileList* self); + +G_END_DECLS + +#endif /* WebKitDOMFileList_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileListPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileListPrivate.h new file mode 100644 index 000000000..a952c718e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileListPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMFileListPrivate_h +#define WebKitDOMFileListPrivate_h + +#include <WebCore/FileList.h> +#include <webkitdom/WebKitDOMFileList.h> + +namespace WebKit { +WebKitDOMFileList* wrapFileList(WebCore::FileList*); +WebKitDOMFileList* kit(WebCore::FileList*); +WebCore::FileList* core(WebKitDOMFileList*); +} // namespace WebKit + +#endif /* WebKitDOMFileListPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFilePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFilePrivate.h new file mode 100644 index 000000000..353d335d5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFilePrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMFilePrivate_h +#define WebKitDOMFilePrivate_h + +#include <WebCore/File.h> +#include <webkitdom/WebKitDOMFile.h> + +namespace WebKit { +WebKitDOMFile* wrapFile(WebCore::File*); +WebKitDOMFile* kit(WebCore::File*); +WebCore::File* core(WebKitDOMFile*); +} // namespace WebKit + +#endif /* WebKitDOMFilePrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp new file mode 100644 index 000000000..4552eaf59 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp @@ -0,0 +1,784 @@ +/* + * 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 "WebKitDOMHTMLAnchorElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMTokenListPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLAnchorElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLAnchorElement* kit(WebCore::HTMLAnchorElement* obj) +{ + return WEBKIT_DOM_HTML_ANCHOR_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLAnchorElement* core(WebKitDOMHTMLAnchorElement* request) +{ + return request ? static_cast<WebCore::HTMLAnchorElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLAnchorElement* wrapHTMLAnchorElement(WebCore::HTMLAnchorElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_ANCHOR_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_anchor_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLAnchorElement* coreTarget = static_cast<WebCore::HTMLAnchorElement*>(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_html_anchor_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLAnchorElement* coreTarget = static_cast<WebCore::HTMLAnchorElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_anchor_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLAnchorElement* coreTarget = static_cast<WebCore::HTMLAnchorElement*>(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_html_anchor_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_anchor_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_anchor_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLAnchorElement, webkit_dom_html_anchor_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CHARSET, + PROP_COORDS, + PROP_HREFLANG, + PROP_NAME, + PROP_REL, + PROP_REV, + PROP_SHAPE, + PROP_TARGET, + PROP_TYPE, + PROP_TEXT, + PROP_HREF, + PROP_PROTOCOL, + PROP_HOST, + PROP_HOSTNAME, + PROP_PORT, + PROP_PATHNAME, + PROP_SEARCH, + PROP_HASH, +}; + +static void webkit_dom_html_anchor_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLAnchorElement* self = WEBKIT_DOM_HTML_ANCHOR_ELEMENT(object); + + switch (propertyId) { + case PROP_CHARSET: + webkit_dom_html_anchor_element_set_charset(self, g_value_get_string(value)); + break; + case PROP_COORDS: + webkit_dom_html_anchor_element_set_coords(self, g_value_get_string(value)); + break; + case PROP_HREFLANG: + webkit_dom_html_anchor_element_set_hreflang(self, g_value_get_string(value)); + break; + case PROP_NAME: + webkit_dom_html_anchor_element_set_name(self, g_value_get_string(value)); + break; + case PROP_REL: + webkit_dom_html_anchor_element_set_rel(self, g_value_get_string(value)); + break; + case PROP_REV: + webkit_dom_html_anchor_element_set_rev(self, g_value_get_string(value)); + break; + case PROP_SHAPE: + webkit_dom_html_anchor_element_set_shape(self, g_value_get_string(value)); + break; + case PROP_TARGET: + webkit_dom_html_anchor_element_set_target(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_anchor_element_set_type_attr(self, g_value_get_string(value)); + break; + case PROP_TEXT: + webkit_dom_html_anchor_element_set_text(self, g_value_get_string(value)); + break; + case PROP_HREF: + webkit_dom_html_anchor_element_set_href(self, g_value_get_string(value)); + break; + case PROP_PROTOCOL: + webkit_dom_html_anchor_element_set_protocol(self, g_value_get_string(value)); + break; + case PROP_HOST: + webkit_dom_html_anchor_element_set_host(self, g_value_get_string(value)); + break; + case PROP_HOSTNAME: + webkit_dom_html_anchor_element_set_hostname(self, g_value_get_string(value)); + break; + case PROP_PORT: + webkit_dom_html_anchor_element_set_port(self, g_value_get_string(value)); + break; + case PROP_PATHNAME: + webkit_dom_html_anchor_element_set_pathname(self, g_value_get_string(value)); + break; + case PROP_SEARCH: + webkit_dom_html_anchor_element_set_search(self, g_value_get_string(value)); + break; + case PROP_HASH: + webkit_dom_html_anchor_element_set_hash(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_anchor_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLAnchorElement* self = WEBKIT_DOM_HTML_ANCHOR_ELEMENT(object); + + switch (propertyId) { + case PROP_CHARSET: + g_value_take_string(value, webkit_dom_html_anchor_element_get_charset(self)); + break; + case PROP_COORDS: + g_value_take_string(value, webkit_dom_html_anchor_element_get_coords(self)); + break; + case PROP_HREFLANG: + g_value_take_string(value, webkit_dom_html_anchor_element_get_hreflang(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_anchor_element_get_name(self)); + break; + case PROP_REL: + g_value_take_string(value, webkit_dom_html_anchor_element_get_rel(self)); + break; + case PROP_REV: + g_value_take_string(value, webkit_dom_html_anchor_element_get_rev(self)); + break; + case PROP_SHAPE: + g_value_take_string(value, webkit_dom_html_anchor_element_get_shape(self)); + break; + case PROP_TARGET: + g_value_take_string(value, webkit_dom_html_anchor_element_get_target(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_anchor_element_get_type_attr(self)); + break; + case PROP_TEXT: + g_value_take_string(value, webkit_dom_html_anchor_element_get_text(self)); + break; + case PROP_HREF: + g_value_take_string(value, webkit_dom_html_anchor_element_get_href(self)); + break; + case PROP_PROTOCOL: + g_value_take_string(value, webkit_dom_html_anchor_element_get_protocol(self)); + break; + case PROP_HOST: + g_value_take_string(value, webkit_dom_html_anchor_element_get_host(self)); + break; + case PROP_HOSTNAME: + g_value_take_string(value, webkit_dom_html_anchor_element_get_hostname(self)); + break; + case PROP_PORT: + g_value_take_string(value, webkit_dom_html_anchor_element_get_port(self)); + break; + case PROP_PATHNAME: + g_value_take_string(value, webkit_dom_html_anchor_element_get_pathname(self)); + break; + case PROP_SEARCH: + g_value_take_string(value, webkit_dom_html_anchor_element_get_search(self)); + break; + case PROP_HASH: + g_value_take_string(value, webkit_dom_html_anchor_element_get_hash(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_anchor_element_class_init(WebKitDOMHTMLAnchorElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_anchor_element_set_property; + gobjectClass->get_property = webkit_dom_html_anchor_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CHARSET, + g_param_spec_string( + "charset", + "HTMLAnchorElement:charset", + "read-write gchar* HTMLAnchorElement:charset", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_COORDS, + g_param_spec_string( + "coords", + "HTMLAnchorElement:coords", + "read-write gchar* HTMLAnchorElement:coords", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HREFLANG, + g_param_spec_string( + "hreflang", + "HTMLAnchorElement:hreflang", + "read-write gchar* HTMLAnchorElement:hreflang", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLAnchorElement:name", + "read-write gchar* HTMLAnchorElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_REL, + g_param_spec_string( + "rel", + "HTMLAnchorElement:rel", + "read-write gchar* HTMLAnchorElement:rel", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_REV, + g_param_spec_string( + "rev", + "HTMLAnchorElement:rev", + "read-write gchar* HTMLAnchorElement:rev", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SHAPE, + g_param_spec_string( + "shape", + "HTMLAnchorElement:shape", + "read-write gchar* HTMLAnchorElement:shape", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TARGET, + g_param_spec_string( + "target", + "HTMLAnchorElement:target", + "read-write gchar* HTMLAnchorElement:target", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLAnchorElement:type", + "read-write gchar* HTMLAnchorElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TEXT, + g_param_spec_string( + "text", + "HTMLAnchorElement:text", + "read-write gchar* HTMLAnchorElement:text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HREF, + g_param_spec_string( + "href", + "HTMLAnchorElement:href", + "read-write gchar* HTMLAnchorElement:href", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PROTOCOL, + g_param_spec_string( + "protocol", + "HTMLAnchorElement:protocol", + "read-write gchar* HTMLAnchorElement:protocol", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HOST, + g_param_spec_string( + "host", + "HTMLAnchorElement:host", + "read-write gchar* HTMLAnchorElement:host", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HOSTNAME, + g_param_spec_string( + "hostname", + "HTMLAnchorElement:hostname", + "read-write gchar* HTMLAnchorElement:hostname", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PORT, + g_param_spec_string( + "port", + "HTMLAnchorElement:port", + "read-write gchar* HTMLAnchorElement:port", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PATHNAME, + g_param_spec_string( + "pathname", + "HTMLAnchorElement:pathname", + "read-write gchar* HTMLAnchorElement:pathname", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SEARCH, + g_param_spec_string( + "search", + "HTMLAnchorElement:search", + "read-write gchar* HTMLAnchorElement:search", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HASH, + g_param_spec_string( + "hash", + "HTMLAnchorElement:hash", + "read-write gchar* HTMLAnchorElement:hash", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_anchor_element_init(WebKitDOMHTMLAnchorElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_anchor_element_get_charset(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charsetAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_charset(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charsetAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_coords(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::coordsAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_coords(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::coordsAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_hreflang(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::hreflangAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_hreflang(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::hreflangAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_name(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_anchor_element_set_name(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_rel(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::relAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_rel(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::relAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_rev(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::revAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_rev(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::revAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_shape(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::shapeAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_shape(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::shapeAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_target(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::targetAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_target(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::targetAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_type_attr(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_type_attr(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_text(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->text()); + return result; +} + +void webkit_dom_html_anchor_element_set_text(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setText(convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_href(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::hrefAttr)); + return result; +} + +void webkit_dom_html_anchor_element_set_href(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::hrefAttr, convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_protocol(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->protocol()); + return result; +} + +void webkit_dom_html_anchor_element_set_protocol(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setProtocol(convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_host(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->host()); + return result; +} + +void webkit_dom_html_anchor_element_set_host(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setHost(convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_hostname(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->hostname()); + return result; +} + +void webkit_dom_html_anchor_element_set_hostname(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setHostname(convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_port(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->port()); + return result; +} + +void webkit_dom_html_anchor_element_set_port(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setPort(convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_pathname(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->pathname()); + return result; +} + +void webkit_dom_html_anchor_element_set_pathname(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setPathname(convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_search(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->search()); + return result; +} + +void webkit_dom_html_anchor_element_set_search(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setSearch(convertedValue); +} + +gchar* webkit_dom_html_anchor_element_get_hash(WebKitDOMHTMLAnchorElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self), 0); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->hash()); + return result; +} + +void webkit_dom_html_anchor_element_set_hash(WebKitDOMHTMLAnchorElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAnchorElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setHash(convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h new file mode 100644 index 000000000..5d7108e9a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h @@ -0,0 +1,378 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLAnchorElement_h +#define WebKitDOMHTMLAnchorElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT (webkit_dom_html_anchor_element_get_type()) +#define WEBKIT_DOM_HTML_ANCHOR_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT, WebKitDOMHTMLAnchorElement)) +#define WEBKIT_DOM_HTML_ANCHOR_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT, WebKitDOMHTMLAnchorElementClass) +#define WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT)) +#define WEBKIT_DOM_HTML_ANCHOR_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT, WebKitDOMHTMLAnchorElementClass)) + +struct _WebKitDOMHTMLAnchorElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLAnchorElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_anchor_element_get_type(void); + +/** + * webkit_dom_html_anchor_element_get_charset: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_charset(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_charset: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_charset(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_coords: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_coords(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_coords: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_coords(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_hreflang: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_hreflang(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_hreflang: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_hreflang(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_name: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_name(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_name: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_name(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_rel: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_rel(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_rel: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_rel(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_rev: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_rev(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_rev: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_rev(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_shape: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_shape(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_shape: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_shape(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_target: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_target(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_target: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_target(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_type_attr: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_type_attr(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_type_attr: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_type_attr(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_text: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_text(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_text: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_text(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_href: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_href(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_href: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_href(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_protocol: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_protocol(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_protocol: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_protocol(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_host: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_host(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_host: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_host(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_hostname: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_hostname(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_hostname: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_hostname(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_port: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_port(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_port: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_port(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_pathname: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_pathname(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_pathname: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_pathname(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_search: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_search(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_search: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_search(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +/** + * webkit_dom_html_anchor_element_get_hash: + * @self: A #WebKitDOMHTMLAnchorElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_anchor_element_get_hash(WebKitDOMHTMLAnchorElement* self); + +/** + * webkit_dom_html_anchor_element_set_hash: + * @self: A #WebKitDOMHTMLAnchorElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_anchor_element_set_hash(WebKitDOMHTMLAnchorElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLAnchorElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElementPrivate.h new file mode 100644 index 000000000..a7cb53bac --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLAnchorElementPrivate_h +#define WebKitDOMHTMLAnchorElementPrivate_h + +#include <WebCore/HTMLAnchorElement.h> +#include <webkitdom/WebKitDOMHTMLAnchorElement.h> + +namespace WebKit { +WebKitDOMHTMLAnchorElement* wrapHTMLAnchorElement(WebCore::HTMLAnchorElement*); +WebKitDOMHTMLAnchorElement* kit(WebCore::HTMLAnchorElement*); +WebCore::HTMLAnchorElement* core(WebKitDOMHTMLAnchorElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLAnchorElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp new file mode 100644 index 000000000..00c7c65b6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp @@ -0,0 +1,527 @@ +/* + * 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 "WebKitDOMHTMLAppletElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLAppletElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLAppletElement* kit(WebCore::HTMLAppletElement* obj) +{ + return WEBKIT_DOM_HTML_APPLET_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLAppletElement* core(WebKitDOMHTMLAppletElement* request) +{ + return request ? static_cast<WebCore::HTMLAppletElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLAppletElement* wrapHTMLAppletElement(WebCore::HTMLAppletElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_APPLET_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_applet_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLAppletElement* coreTarget = static_cast<WebCore::HTMLAppletElement*>(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_html_applet_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLAppletElement* coreTarget = static_cast<WebCore::HTMLAppletElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_applet_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLAppletElement* coreTarget = static_cast<WebCore::HTMLAppletElement*>(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_html_applet_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_applet_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_applet_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLAppletElement, webkit_dom_html_applet_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, + PROP_ALT, + PROP_ARCHIVE, + PROP_CODE, + PROP_CODE_BASE, + PROP_HEIGHT, + PROP_HSPACE, + PROP_NAME, + PROP_OBJECT, + PROP_VSPACE, + PROP_WIDTH, +}; + +static void webkit_dom_html_applet_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLAppletElement* self = WEBKIT_DOM_HTML_APPLET_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_applet_element_set_align(self, g_value_get_string(value)); + break; + case PROP_ALT: + webkit_dom_html_applet_element_set_alt(self, g_value_get_string(value)); + break; + case PROP_ARCHIVE: + webkit_dom_html_applet_element_set_archive(self, g_value_get_string(value)); + break; + case PROP_CODE: + webkit_dom_html_applet_element_set_code(self, g_value_get_string(value)); + break; + case PROP_CODE_BASE: + webkit_dom_html_applet_element_set_code_base(self, g_value_get_string(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_applet_element_set_height(self, g_value_get_string(value)); + break; + case PROP_HSPACE: + webkit_dom_html_applet_element_set_hspace(self, g_value_get_long(value)); + break; + case PROP_NAME: + webkit_dom_html_applet_element_set_name(self, g_value_get_string(value)); + break; + case PROP_OBJECT: + webkit_dom_html_applet_element_set_object(self, g_value_get_string(value)); + break; + case PROP_VSPACE: + webkit_dom_html_applet_element_set_vspace(self, g_value_get_long(value)); + break; + case PROP_WIDTH: + webkit_dom_html_applet_element_set_width(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_applet_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLAppletElement* self = WEBKIT_DOM_HTML_APPLET_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_applet_element_get_align(self)); + break; + case PROP_ALT: + g_value_take_string(value, webkit_dom_html_applet_element_get_alt(self)); + break; + case PROP_ARCHIVE: + g_value_take_string(value, webkit_dom_html_applet_element_get_archive(self)); + break; + case PROP_CODE: + g_value_take_string(value, webkit_dom_html_applet_element_get_code(self)); + break; + case PROP_CODE_BASE: + g_value_take_string(value, webkit_dom_html_applet_element_get_code_base(self)); + break; + case PROP_HEIGHT: + g_value_take_string(value, webkit_dom_html_applet_element_get_height(self)); + break; + case PROP_HSPACE: + g_value_set_long(value, webkit_dom_html_applet_element_get_hspace(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_applet_element_get_name(self)); + break; + case PROP_OBJECT: + g_value_take_string(value, webkit_dom_html_applet_element_get_object(self)); + break; + case PROP_VSPACE: + g_value_set_long(value, webkit_dom_html_applet_element_get_vspace(self)); + break; + case PROP_WIDTH: + g_value_take_string(value, webkit_dom_html_applet_element_get_width(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_applet_element_class_init(WebKitDOMHTMLAppletElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_applet_element_set_property; + gobjectClass->get_property = webkit_dom_html_applet_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLAppletElement:align", + "read-write gchar* HTMLAppletElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALT, + g_param_spec_string( + "alt", + "HTMLAppletElement:alt", + "read-write gchar* HTMLAppletElement:alt", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ARCHIVE, + g_param_spec_string( + "archive", + "HTMLAppletElement:archive", + "read-write gchar* HTMLAppletElement:archive", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CODE, + g_param_spec_string( + "code", + "HTMLAppletElement:code", + "read-write gchar* HTMLAppletElement:code", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CODE_BASE, + g_param_spec_string( + "code-base", + "HTMLAppletElement:code-base", + "read-write gchar* HTMLAppletElement:code-base", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_string( + "height", + "HTMLAppletElement:height", + "read-write gchar* HTMLAppletElement:height", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HSPACE, + g_param_spec_long( + "hspace", + "HTMLAppletElement:hspace", + "read-write glong HTMLAppletElement:hspace", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLAppletElement:name", + "read-write gchar* HTMLAppletElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_OBJECT, + g_param_spec_string( + "object", + "HTMLAppletElement:object", + "read-write gchar* HTMLAppletElement:object", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VSPACE, + g_param_spec_long( + "vspace", + "HTMLAppletElement:vspace", + "read-write glong HTMLAppletElement:vspace", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_string( + "width", + "HTMLAppletElement:width", + "read-write gchar* HTMLAppletElement:width", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_applet_element_init(WebKitDOMHTMLAppletElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_applet_element_get_align(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_align(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_applet_element_get_alt(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::altAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_alt(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::altAttr, convertedValue); +} + +gchar* webkit_dom_html_applet_element_get_archive(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::archiveAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_archive(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::archiveAttr, convertedValue); +} + +gchar* webkit_dom_html_applet_element_get_code(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::codeAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_code(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::codeAttr, convertedValue); +} + +gchar* webkit_dom_html_applet_element_get_code_base(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::codebaseAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_code_base(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::codebaseAttr, convertedValue); +} + +gchar* webkit_dom_html_applet_element_get_height(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::heightAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_height(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::heightAttr, convertedValue); +} + +glong webkit_dom_html_applet_element_get_hspace(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::hspaceAttr); + return result; +} + +void webkit_dom_html_applet_element_set_hspace(WebKitDOMHTMLAppletElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + WebCore::HTMLAppletElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::hspaceAttr, value); +} + +gchar* webkit_dom_html_applet_element_get_name(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_applet_element_set_name(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_applet_element_get_object(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::objectAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_object(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::objectAttr, convertedValue); +} + +glong webkit_dom_html_applet_element_get_vspace(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::vspaceAttr); + return result; +} + +void webkit_dom_html_applet_element_set_vspace(WebKitDOMHTMLAppletElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + WebCore::HTMLAppletElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::vspaceAttr, value); +} + +gchar* webkit_dom_html_applet_element_get_width(WebKitDOMHTMLAppletElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self), 0); + WebCore::HTMLAppletElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::widthAttr)); + return result; +} + +void webkit_dom_html_applet_element_set_width(WebKitDOMHTMLAppletElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAppletElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::widthAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.h new file mode 100644 index 000000000..4d9014573 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.h @@ -0,0 +1,251 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLAppletElement_h +#define WebKitDOMHTMLAppletElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT (webkit_dom_html_applet_element_get_type()) +#define WEBKIT_DOM_HTML_APPLET_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT, WebKitDOMHTMLAppletElement)) +#define WEBKIT_DOM_HTML_APPLET_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT, WebKitDOMHTMLAppletElementClass) +#define WEBKIT_DOM_IS_HTML_APPLET_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_APPLET_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT)) +#define WEBKIT_DOM_HTML_APPLET_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT, WebKitDOMHTMLAppletElementClass)) + +struct _WebKitDOMHTMLAppletElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLAppletElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_applet_element_get_type(void); + +/** + * webkit_dom_html_applet_element_get_align: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_align(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_align: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_align(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_alt: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_alt(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_alt: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_alt(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_archive: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_archive(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_archive: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_archive(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_code: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_code(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_code: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_code(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_code_base: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_code_base(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_code_base: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_code_base(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_height: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_height(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_height: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_height(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_hspace: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_applet_element_get_hspace(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_hspace: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_hspace(WebKitDOMHTMLAppletElement* self, glong value); + +/** + * webkit_dom_html_applet_element_get_name: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_name(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_name: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_name(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_object: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_object(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_object: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_object(WebKitDOMHTMLAppletElement* self, const gchar* value); + +/** + * webkit_dom_html_applet_element_get_vspace: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_applet_element_get_vspace(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_vspace: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_vspace(WebKitDOMHTMLAppletElement* self, glong value); + +/** + * webkit_dom_html_applet_element_get_width: + * @self: A #WebKitDOMHTMLAppletElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_applet_element_get_width(WebKitDOMHTMLAppletElement* self); + +/** + * webkit_dom_html_applet_element_set_width: + * @self: A #WebKitDOMHTMLAppletElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_applet_element_set_width(WebKitDOMHTMLAppletElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLAppletElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElementPrivate.h new file mode 100644 index 000000000..04eb89c28 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLAppletElementPrivate_h +#define WebKitDOMHTMLAppletElementPrivate_h + +#include <WebCore/HTMLAppletElement.h> +#include <webkitdom/WebKitDOMHTMLAppletElement.h> + +namespace WebKit { +WebKitDOMHTMLAppletElement* wrapHTMLAppletElement(WebCore::HTMLAppletElement*); +WebKitDOMHTMLAppletElement* kit(WebCore::HTMLAppletElement*); +WebCore::HTMLAppletElement* core(WebKitDOMHTMLAppletElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLAppletElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp new file mode 100644 index 000000000..9a0e177a7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp @@ -0,0 +1,602 @@ +/* + * 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 "WebKitDOMHTMLAreaElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMTokenListPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLAreaElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLAreaElement* kit(WebCore::HTMLAreaElement* obj) +{ + return WEBKIT_DOM_HTML_AREA_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLAreaElement* core(WebKitDOMHTMLAreaElement* request) +{ + return request ? static_cast<WebCore::HTMLAreaElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLAreaElement* wrapHTMLAreaElement(WebCore::HTMLAreaElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_AREA_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_area_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLAreaElement* coreTarget = static_cast<WebCore::HTMLAreaElement*>(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_html_area_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLAreaElement* coreTarget = static_cast<WebCore::HTMLAreaElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_area_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLAreaElement* coreTarget = static_cast<WebCore::HTMLAreaElement*>(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_html_area_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_area_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_area_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLAreaElement, webkit_dom_html_area_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALT, + PROP_COORDS, + PROP_NO_HREF, + PROP_SHAPE, + PROP_TARGET, + PROP_HREF, + PROP_PROTOCOL, + PROP_HOST, + PROP_HOSTNAME, + PROP_PORT, + PROP_PATHNAME, + PROP_SEARCH, + PROP_HASH, +}; + +static void webkit_dom_html_area_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLAreaElement* self = WEBKIT_DOM_HTML_AREA_ELEMENT(object); + + switch (propertyId) { + case PROP_ALT: + webkit_dom_html_area_element_set_alt(self, g_value_get_string(value)); + break; + case PROP_COORDS: + webkit_dom_html_area_element_set_coords(self, g_value_get_string(value)); + break; + case PROP_NO_HREF: + webkit_dom_html_area_element_set_no_href(self, g_value_get_boolean(value)); + break; + case PROP_SHAPE: + webkit_dom_html_area_element_set_shape(self, g_value_get_string(value)); + break; + case PROP_TARGET: + webkit_dom_html_area_element_set_target(self, g_value_get_string(value)); + break; + case PROP_HREF: + webkit_dom_html_area_element_set_href(self, g_value_get_string(value)); + break; + case PROP_PROTOCOL: + webkit_dom_html_area_element_set_protocol(self, g_value_get_string(value)); + break; + case PROP_HOST: + webkit_dom_html_area_element_set_host(self, g_value_get_string(value)); + break; + case PROP_HOSTNAME: + webkit_dom_html_area_element_set_hostname(self, g_value_get_string(value)); + break; + case PROP_PORT: + webkit_dom_html_area_element_set_port(self, g_value_get_string(value)); + break; + case PROP_PATHNAME: + webkit_dom_html_area_element_set_pathname(self, g_value_get_string(value)); + break; + case PROP_SEARCH: + webkit_dom_html_area_element_set_search(self, g_value_get_string(value)); + break; + case PROP_HASH: + webkit_dom_html_area_element_set_hash(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_area_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLAreaElement* self = WEBKIT_DOM_HTML_AREA_ELEMENT(object); + + switch (propertyId) { + case PROP_ALT: + g_value_take_string(value, webkit_dom_html_area_element_get_alt(self)); + break; + case PROP_COORDS: + g_value_take_string(value, webkit_dom_html_area_element_get_coords(self)); + break; + case PROP_NO_HREF: + g_value_set_boolean(value, webkit_dom_html_area_element_get_no_href(self)); + break; + case PROP_SHAPE: + g_value_take_string(value, webkit_dom_html_area_element_get_shape(self)); + break; + case PROP_TARGET: + g_value_take_string(value, webkit_dom_html_area_element_get_target(self)); + break; + case PROP_HREF: + g_value_take_string(value, webkit_dom_html_area_element_get_href(self)); + break; + case PROP_PROTOCOL: + g_value_take_string(value, webkit_dom_html_area_element_get_protocol(self)); + break; + case PROP_HOST: + g_value_take_string(value, webkit_dom_html_area_element_get_host(self)); + break; + case PROP_HOSTNAME: + g_value_take_string(value, webkit_dom_html_area_element_get_hostname(self)); + break; + case PROP_PORT: + g_value_take_string(value, webkit_dom_html_area_element_get_port(self)); + break; + case PROP_PATHNAME: + g_value_take_string(value, webkit_dom_html_area_element_get_pathname(self)); + break; + case PROP_SEARCH: + g_value_take_string(value, webkit_dom_html_area_element_get_search(self)); + break; + case PROP_HASH: + g_value_take_string(value, webkit_dom_html_area_element_get_hash(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_area_element_class_init(WebKitDOMHTMLAreaElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_area_element_set_property; + gobjectClass->get_property = webkit_dom_html_area_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALT, + g_param_spec_string( + "alt", + "HTMLAreaElement:alt", + "read-write gchar* HTMLAreaElement:alt", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_COORDS, + g_param_spec_string( + "coords", + "HTMLAreaElement:coords", + "read-write gchar* HTMLAreaElement:coords", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NO_HREF, + g_param_spec_boolean( + "no-href", + "HTMLAreaElement:no-href", + "read-write gboolean HTMLAreaElement:no-href", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SHAPE, + g_param_spec_string( + "shape", + "HTMLAreaElement:shape", + "read-write gchar* HTMLAreaElement:shape", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TARGET, + g_param_spec_string( + "target", + "HTMLAreaElement:target", + "read-write gchar* HTMLAreaElement:target", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HREF, + g_param_spec_string( + "href", + "HTMLAreaElement:href", + "read-write gchar* HTMLAreaElement:href", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PROTOCOL, + g_param_spec_string( + "protocol", + "HTMLAreaElement:protocol", + "read-write gchar* HTMLAreaElement:protocol", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HOST, + g_param_spec_string( + "host", + "HTMLAreaElement:host", + "read-write gchar* HTMLAreaElement:host", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HOSTNAME, + g_param_spec_string( + "hostname", + "HTMLAreaElement:hostname", + "read-write gchar* HTMLAreaElement:hostname", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PORT, + g_param_spec_string( + "port", + "HTMLAreaElement:port", + "read-write gchar* HTMLAreaElement:port", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PATHNAME, + g_param_spec_string( + "pathname", + "HTMLAreaElement:pathname", + "read-write gchar* HTMLAreaElement:pathname", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SEARCH, + g_param_spec_string( + "search", + "HTMLAreaElement:search", + "read-write gchar* HTMLAreaElement:search", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HASH, + g_param_spec_string( + "hash", + "HTMLAreaElement:hash", + "read-write gchar* HTMLAreaElement:hash", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_area_element_init(WebKitDOMHTMLAreaElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_area_element_get_alt(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::altAttr)); + return result; +} + +void webkit_dom_html_area_element_set_alt(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::altAttr, convertedValue); +} + +gchar* webkit_dom_html_area_element_get_coords(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::coordsAttr)); + return result; +} + +void webkit_dom_html_area_element_set_coords(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::coordsAttr, convertedValue); +} + +gboolean webkit_dom_html_area_element_get_no_href(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), FALSE); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::nohrefAttr); + return result; +} + +void webkit_dom_html_area_element_set_no_href(WebKitDOMHTMLAreaElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + WebCore::HTMLAreaElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::nohrefAttr, value); +} + +gchar* webkit_dom_html_area_element_get_shape(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::shapeAttr)); + return result; +} + +void webkit_dom_html_area_element_set_shape(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::shapeAttr, convertedValue); +} + +gchar* webkit_dom_html_area_element_get_target(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::targetAttr)); + return result; +} + +void webkit_dom_html_area_element_set_target(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::targetAttr, convertedValue); +} + +gchar* webkit_dom_html_area_element_get_href(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::hrefAttr)); + return result; +} + +void webkit_dom_html_area_element_set_href(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::hrefAttr, convertedValue); +} + +gchar* webkit_dom_html_area_element_get_protocol(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->protocol()); + return result; +} + +void webkit_dom_html_area_element_set_protocol(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setProtocol(convertedValue); +} + +gchar* webkit_dom_html_area_element_get_host(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->host()); + return result; +} + +void webkit_dom_html_area_element_set_host(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setHost(convertedValue); +} + +gchar* webkit_dom_html_area_element_get_hostname(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->hostname()); + return result; +} + +void webkit_dom_html_area_element_set_hostname(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setHostname(convertedValue); +} + +gchar* webkit_dom_html_area_element_get_port(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->port()); + return result; +} + +void webkit_dom_html_area_element_set_port(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setPort(convertedValue); +} + +gchar* webkit_dom_html_area_element_get_pathname(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->pathname()); + return result; +} + +void webkit_dom_html_area_element_set_pathname(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setPathname(convertedValue); +} + +gchar* webkit_dom_html_area_element_get_search(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->search()); + return result; +} + +void webkit_dom_html_area_element_set_search(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setSearch(convertedValue); +} + +gchar* webkit_dom_html_area_element_get_hash(WebKitDOMHTMLAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self), 0); + WebCore::HTMLAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->hash()); + return result; +} + +void webkit_dom_html_area_element_set_hash(WebKitDOMHTMLAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setHash(convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h new file mode 100644 index 000000000..8e245f833 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h @@ -0,0 +1,294 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLAreaElement_h +#define WebKitDOMHTMLAreaElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT (webkit_dom_html_area_element_get_type()) +#define WEBKIT_DOM_HTML_AREA_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT, WebKitDOMHTMLAreaElement)) +#define WEBKIT_DOM_HTML_AREA_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT, WebKitDOMHTMLAreaElementClass) +#define WEBKIT_DOM_IS_HTML_AREA_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_AREA_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT)) +#define WEBKIT_DOM_HTML_AREA_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT, WebKitDOMHTMLAreaElementClass)) + +struct _WebKitDOMHTMLAreaElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLAreaElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_area_element_get_type(void); + +/** + * webkit_dom_html_area_element_get_alt: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_alt(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_alt: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_alt(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_coords: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_coords(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_coords: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_coords(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_no_href: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_area_element_get_no_href(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_no_href: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_no_href(WebKitDOMHTMLAreaElement* self, gboolean value); + +/** + * webkit_dom_html_area_element_get_shape: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_shape(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_shape: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_shape(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_target: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_target(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_target: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_target(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_href: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_href(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_href: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_href(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_protocol: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_protocol(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_protocol: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_protocol(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_host: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_host(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_host: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_host(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_hostname: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_hostname(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_hostname: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_hostname(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_port: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_port(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_port: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_port(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_pathname: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_pathname(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_pathname: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_pathname(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_search: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_search(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_search: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_search(WebKitDOMHTMLAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_area_element_get_hash: + * @self: A #WebKitDOMHTMLAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_area_element_get_hash(WebKitDOMHTMLAreaElement* self); + +/** + * webkit_dom_html_area_element_set_hash: + * @self: A #WebKitDOMHTMLAreaElement + * @value: A #gchar + * + * Stability: Unstable +**/ +WEBKIT_API void +webkit_dom_html_area_element_set_hash(WebKitDOMHTMLAreaElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLAreaElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElementPrivate.h new file mode 100644 index 000000000..5449ae45a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLAreaElementPrivate_h +#define WebKitDOMHTMLAreaElementPrivate_h + +#include <WebCore/HTMLAreaElement.h> +#include <webkitdom/WebKitDOMHTMLAreaElement.h> + +namespace WebKit { +WebKitDOMHTMLAreaElement* wrapHTMLAreaElement(WebCore::HTMLAreaElement*); +WebKitDOMHTMLAreaElement* kit(WebCore::HTMLAreaElement*); +WebCore::HTMLAreaElement* core(WebKitDOMHTMLAreaElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLAreaElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp new file mode 100644 index 000000000..3f7026d51 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp @@ -0,0 +1,171 @@ +/* + * 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 "WebKitDOMHTMLBRElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLBRElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLBRElement* kit(WebCore::HTMLBRElement* obj) +{ + return WEBKIT_DOM_HTML_BR_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLBRElement* core(WebKitDOMHTMLBRElement* request) +{ + return request ? static_cast<WebCore::HTMLBRElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLBRElement* wrapHTMLBRElement(WebCore::HTMLBRElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_BR_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_BR_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_br_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLBRElement* coreTarget = static_cast<WebCore::HTMLBRElement*>(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_html_br_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLBRElement* coreTarget = static_cast<WebCore::HTMLBRElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_br_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLBRElement* coreTarget = static_cast<WebCore::HTMLBRElement*>(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_html_br_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_br_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_br_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLBRElement, webkit_dom_html_br_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CLEAR, +}; + +static void webkit_dom_html_br_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLBRElement* self = WEBKIT_DOM_HTML_BR_ELEMENT(object); + + switch (propertyId) { + case PROP_CLEAR: + webkit_dom_html_br_element_set_clear(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_br_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLBRElement* self = WEBKIT_DOM_HTML_BR_ELEMENT(object); + + switch (propertyId) { + case PROP_CLEAR: + g_value_take_string(value, webkit_dom_html_br_element_get_clear(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_br_element_class_init(WebKitDOMHTMLBRElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_br_element_set_property; + gobjectClass->get_property = webkit_dom_html_br_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CLEAR, + g_param_spec_string( + "clear", + "HTMLBRElement:clear", + "read-write gchar* HTMLBRElement:clear", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_br_element_init(WebKitDOMHTMLBRElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_br_element_get_clear(WebKitDOMHTMLBRElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BR_ELEMENT(self), 0); + WebCore::HTMLBRElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::clearAttr)); + return result; +} + +void webkit_dom_html_br_element_set_clear(WebKitDOMHTMLBRElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBRElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::clearAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.h new file mode 100644 index 000000000..47771ac8c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLBRElement_h +#define WebKitDOMHTMLBRElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_BR_ELEMENT (webkit_dom_html_br_element_get_type()) +#define WEBKIT_DOM_HTML_BR_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_BR_ELEMENT, WebKitDOMHTMLBRElement)) +#define WEBKIT_DOM_HTML_BR_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_BR_ELEMENT, WebKitDOMHTMLBRElementClass) +#define WEBKIT_DOM_IS_HTML_BR_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_BR_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_BR_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_BR_ELEMENT)) +#define WEBKIT_DOM_HTML_BR_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_BR_ELEMENT, WebKitDOMHTMLBRElementClass)) + +struct _WebKitDOMHTMLBRElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLBRElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_br_element_get_type(void); + +/** + * webkit_dom_html_br_element_get_clear: + * @self: A #WebKitDOMHTMLBRElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_br_element_get_clear(WebKitDOMHTMLBRElement* self); + +/** + * webkit_dom_html_br_element_set_clear: + * @self: A #WebKitDOMHTMLBRElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_br_element_set_clear(WebKitDOMHTMLBRElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLBRElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElementPrivate.h new file mode 100644 index 000000000..3df8d863c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLBRElementPrivate_h +#define WebKitDOMHTMLBRElementPrivate_h + +#include <WebCore/HTMLBRElement.h> +#include <webkitdom/WebKitDOMHTMLBRElement.h> + +namespace WebKit { +WebKitDOMHTMLBRElement* wrapHTMLBRElement(WebCore::HTMLBRElement*); +WebKitDOMHTMLBRElement* kit(WebCore::HTMLBRElement*); +WebCore::HTMLBRElement* core(WebKitDOMHTMLBRElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLBRElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp new file mode 100644 index 000000000..37b959322 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp @@ -0,0 +1,207 @@ +/* + * 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 "WebKitDOMHTMLBaseElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLBaseElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLBaseElement* kit(WebCore::HTMLBaseElement* obj) +{ + return WEBKIT_DOM_HTML_BASE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLBaseElement* core(WebKitDOMHTMLBaseElement* request) +{ + return request ? static_cast<WebCore::HTMLBaseElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLBaseElement* wrapHTMLBaseElement(WebCore::HTMLBaseElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_BASE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_base_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLBaseElement* coreTarget = static_cast<WebCore::HTMLBaseElement*>(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_html_base_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLBaseElement* coreTarget = static_cast<WebCore::HTMLBaseElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_base_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLBaseElement* coreTarget = static_cast<WebCore::HTMLBaseElement*>(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_html_base_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_base_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_base_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLBaseElement, webkit_dom_html_base_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_HREF, + PROP_TARGET, +}; + +static void webkit_dom_html_base_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLBaseElement* self = WEBKIT_DOM_HTML_BASE_ELEMENT(object); + + switch (propertyId) { + case PROP_HREF: + webkit_dom_html_base_element_set_href(self, g_value_get_string(value)); + break; + case PROP_TARGET: + webkit_dom_html_base_element_set_target(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_base_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLBaseElement* self = WEBKIT_DOM_HTML_BASE_ELEMENT(object); + + switch (propertyId) { + case PROP_HREF: + g_value_take_string(value, webkit_dom_html_base_element_get_href(self)); + break; + case PROP_TARGET: + g_value_take_string(value, webkit_dom_html_base_element_get_target(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_base_element_class_init(WebKitDOMHTMLBaseElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_base_element_set_property; + gobjectClass->get_property = webkit_dom_html_base_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_HREF, + g_param_spec_string( + "href", + "HTMLBaseElement:href", + "read-write gchar* HTMLBaseElement:href", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TARGET, + g_param_spec_string( + "target", + "HTMLBaseElement:target", + "read-write gchar* HTMLBaseElement:target", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_base_element_init(WebKitDOMHTMLBaseElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_base_element_get_href(WebKitDOMHTMLBaseElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BASE_ELEMENT(self), 0); + WebCore::HTMLBaseElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->href()); + return result; +} + +void webkit_dom_html_base_element_set_href(WebKitDOMHTMLBaseElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BASE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBaseElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setHref(convertedValue); +} + +gchar* webkit_dom_html_base_element_get_target(WebKitDOMHTMLBaseElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BASE_ELEMENT(self), 0); + WebCore::HTMLBaseElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::targetAttr)); + return result; +} + +void webkit_dom_html_base_element_set_target(WebKitDOMHTMLBaseElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BASE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBaseElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::targetAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.h new file mode 100644 index 000000000..ef2242b6c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLBaseElement_h +#define WebKitDOMHTMLBaseElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT (webkit_dom_html_base_element_get_type()) +#define WEBKIT_DOM_HTML_BASE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT, WebKitDOMHTMLBaseElement)) +#define WEBKIT_DOM_HTML_BASE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT, WebKitDOMHTMLBaseElementClass) +#define WEBKIT_DOM_IS_HTML_BASE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_BASE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT)) +#define WEBKIT_DOM_HTML_BASE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT, WebKitDOMHTMLBaseElementClass)) + +struct _WebKitDOMHTMLBaseElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLBaseElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_base_element_get_type(void); + +/** + * webkit_dom_html_base_element_get_href: + * @self: A #WebKitDOMHTMLBaseElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_base_element_get_href(WebKitDOMHTMLBaseElement* self); + +/** + * webkit_dom_html_base_element_set_href: + * @self: A #WebKitDOMHTMLBaseElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_base_element_set_href(WebKitDOMHTMLBaseElement* self, const gchar* value); + +/** + * webkit_dom_html_base_element_get_target: + * @self: A #WebKitDOMHTMLBaseElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_base_element_get_target(WebKitDOMHTMLBaseElement* self); + +/** + * webkit_dom_html_base_element_set_target: + * @self: A #WebKitDOMHTMLBaseElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_base_element_set_target(WebKitDOMHTMLBaseElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLBaseElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElementPrivate.h new file mode 100644 index 000000000..6fc31984d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLBaseElementPrivate_h +#define WebKitDOMHTMLBaseElementPrivate_h + +#include <WebCore/HTMLBaseElement.h> +#include <webkitdom/WebKitDOMHTMLBaseElement.h> + +namespace WebKit { +WebKitDOMHTMLBaseElement* wrapHTMLBaseElement(WebCore::HTMLBaseElement*); +WebKitDOMHTMLBaseElement* kit(WebCore::HTMLBaseElement*); +WebCore::HTMLBaseElement* core(WebKitDOMHTMLBaseElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLBaseElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp new file mode 100644 index 000000000..78291dcb6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp @@ -0,0 +1,351 @@ +/* + * 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 "WebKitDOMHTMLBodyElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLBodyElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLBodyElement* kit(WebCore::HTMLBodyElement* obj) +{ + return WEBKIT_DOM_HTML_BODY_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLBodyElement* core(WebKitDOMHTMLBodyElement* request) +{ + return request ? static_cast<WebCore::HTMLBodyElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLBodyElement* wrapHTMLBodyElement(WebCore::HTMLBodyElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_BODY_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_body_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLBodyElement* coreTarget = static_cast<WebCore::HTMLBodyElement*>(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_html_body_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLBodyElement* coreTarget = static_cast<WebCore::HTMLBodyElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_body_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLBodyElement* coreTarget = static_cast<WebCore::HTMLBodyElement*>(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_html_body_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_body_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_body_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLBodyElement, webkit_dom_html_body_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_A_LINK, + PROP_BACKGROUND, + PROP_BG_COLOR, + PROP_LINK, + PROP_TEXT, + PROP_V_LINK, +}; + +static void webkit_dom_html_body_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLBodyElement* self = WEBKIT_DOM_HTML_BODY_ELEMENT(object); + + switch (propertyId) { + case PROP_A_LINK: + webkit_dom_html_body_element_set_a_link(self, g_value_get_string(value)); + break; + case PROP_BACKGROUND: + webkit_dom_html_body_element_set_background(self, g_value_get_string(value)); + break; + case PROP_BG_COLOR: + webkit_dom_html_body_element_set_bg_color(self, g_value_get_string(value)); + break; + case PROP_LINK: + webkit_dom_html_body_element_set_link(self, g_value_get_string(value)); + break; + case PROP_TEXT: + webkit_dom_html_body_element_set_text(self, g_value_get_string(value)); + break; + case PROP_V_LINK: + webkit_dom_html_body_element_set_v_link(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_body_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLBodyElement* self = WEBKIT_DOM_HTML_BODY_ELEMENT(object); + + switch (propertyId) { + case PROP_A_LINK: + g_value_take_string(value, webkit_dom_html_body_element_get_a_link(self)); + break; + case PROP_BACKGROUND: + g_value_take_string(value, webkit_dom_html_body_element_get_background(self)); + break; + case PROP_BG_COLOR: + g_value_take_string(value, webkit_dom_html_body_element_get_bg_color(self)); + break; + case PROP_LINK: + g_value_take_string(value, webkit_dom_html_body_element_get_link(self)); + break; + case PROP_TEXT: + g_value_take_string(value, webkit_dom_html_body_element_get_text(self)); + break; + case PROP_V_LINK: + g_value_take_string(value, webkit_dom_html_body_element_get_v_link(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_body_element_class_init(WebKitDOMHTMLBodyElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_body_element_set_property; + gobjectClass->get_property = webkit_dom_html_body_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_A_LINK, + g_param_spec_string( + "a-link", + "HTMLBodyElement:a-link", + "read-write gchar* HTMLBodyElement:a-link", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BACKGROUND, + g_param_spec_string( + "background", + "HTMLBodyElement:background", + "read-write gchar* HTMLBodyElement:background", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BG_COLOR, + g_param_spec_string( + "bg-color", + "HTMLBodyElement:bg-color", + "read-write gchar* HTMLBodyElement:bg-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LINK, + g_param_spec_string( + "link", + "HTMLBodyElement:link", + "read-write gchar* HTMLBodyElement:link", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TEXT, + g_param_spec_string( + "text", + "HTMLBodyElement:text", + "read-write gchar* HTMLBodyElement:text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_V_LINK, + g_param_spec_string( + "v-link", + "HTMLBodyElement:v-link", + "read-write gchar* HTMLBodyElement:v-link", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_body_element_init(WebKitDOMHTMLBodyElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_body_element_get_a_link(WebKitDOMHTMLBodyElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self), 0); + WebCore::HTMLBodyElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alinkAttr)); + return result; +} + +void webkit_dom_html_body_element_set_a_link(WebKitDOMHTMLBodyElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBodyElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alinkAttr, convertedValue); +} + +gchar* webkit_dom_html_body_element_get_background(WebKitDOMHTMLBodyElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self), 0); + WebCore::HTMLBodyElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::backgroundAttr)); + return result; +} + +void webkit_dom_html_body_element_set_background(WebKitDOMHTMLBodyElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBodyElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::backgroundAttr, convertedValue); +} + +gchar* webkit_dom_html_body_element_get_bg_color(WebKitDOMHTMLBodyElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self), 0); + WebCore::HTMLBodyElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr)); + return result; +} + +void webkit_dom_html_body_element_set_bg_color(WebKitDOMHTMLBodyElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBodyElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr, convertedValue); +} + +gchar* webkit_dom_html_body_element_get_link(WebKitDOMHTMLBodyElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self), 0); + WebCore::HTMLBodyElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::linkAttr)); + return result; +} + +void webkit_dom_html_body_element_set_link(WebKitDOMHTMLBodyElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBodyElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::linkAttr, convertedValue); +} + +gchar* webkit_dom_html_body_element_get_text(WebKitDOMHTMLBodyElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self), 0); + WebCore::HTMLBodyElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::textAttr)); + return result; +} + +void webkit_dom_html_body_element_set_text(WebKitDOMHTMLBodyElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBodyElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::textAttr, convertedValue); +} + +gchar* webkit_dom_html_body_element_get_v_link(WebKitDOMHTMLBodyElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self), 0); + WebCore::HTMLBodyElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::vlinkAttr)); + return result; +} + +void webkit_dom_html_body_element_set_v_link(WebKitDOMHTMLBodyElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBodyElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::vlinkAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.h new file mode 100644 index 000000000..570ebbaf5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.h @@ -0,0 +1,161 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLBodyElement_h +#define WebKitDOMHTMLBodyElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT (webkit_dom_html_body_element_get_type()) +#define WEBKIT_DOM_HTML_BODY_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT, WebKitDOMHTMLBodyElement)) +#define WEBKIT_DOM_HTML_BODY_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT, WebKitDOMHTMLBodyElementClass) +#define WEBKIT_DOM_IS_HTML_BODY_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_BODY_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT)) +#define WEBKIT_DOM_HTML_BODY_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT, WebKitDOMHTMLBodyElementClass)) + +struct _WebKitDOMHTMLBodyElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLBodyElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_body_element_get_type(void); + +/** + * webkit_dom_html_body_element_get_a_link: + * @self: A #WebKitDOMHTMLBodyElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_body_element_get_a_link(WebKitDOMHTMLBodyElement* self); + +/** + * webkit_dom_html_body_element_set_a_link: + * @self: A #WebKitDOMHTMLBodyElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_body_element_set_a_link(WebKitDOMHTMLBodyElement* self, const gchar* value); + +/** + * webkit_dom_html_body_element_get_background: + * @self: A #WebKitDOMHTMLBodyElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_body_element_get_background(WebKitDOMHTMLBodyElement* self); + +/** + * webkit_dom_html_body_element_set_background: + * @self: A #WebKitDOMHTMLBodyElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_body_element_set_background(WebKitDOMHTMLBodyElement* self, const gchar* value); + +/** + * webkit_dom_html_body_element_get_bg_color: + * @self: A #WebKitDOMHTMLBodyElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_body_element_get_bg_color(WebKitDOMHTMLBodyElement* self); + +/** + * webkit_dom_html_body_element_set_bg_color: + * @self: A #WebKitDOMHTMLBodyElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_body_element_set_bg_color(WebKitDOMHTMLBodyElement* self, const gchar* value); + +/** + * webkit_dom_html_body_element_get_link: + * @self: A #WebKitDOMHTMLBodyElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_body_element_get_link(WebKitDOMHTMLBodyElement* self); + +/** + * webkit_dom_html_body_element_set_link: + * @self: A #WebKitDOMHTMLBodyElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_body_element_set_link(WebKitDOMHTMLBodyElement* self, const gchar* value); + +/** + * webkit_dom_html_body_element_get_text: + * @self: A #WebKitDOMHTMLBodyElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_body_element_get_text(WebKitDOMHTMLBodyElement* self); + +/** + * webkit_dom_html_body_element_set_text: + * @self: A #WebKitDOMHTMLBodyElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_body_element_set_text(WebKitDOMHTMLBodyElement* self, const gchar* value); + +/** + * webkit_dom_html_body_element_get_v_link: + * @self: A #WebKitDOMHTMLBodyElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_body_element_get_v_link(WebKitDOMHTMLBodyElement* self); + +/** + * webkit_dom_html_body_element_set_v_link: + * @self: A #WebKitDOMHTMLBodyElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_body_element_set_v_link(WebKitDOMHTMLBodyElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLBodyElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElementPrivate.h new file mode 100644 index 000000000..b31710b47 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLBodyElementPrivate_h +#define WebKitDOMHTMLBodyElementPrivate_h + +#include <WebCore/HTMLBodyElement.h> +#include <webkitdom/WebKitDOMHTMLBodyElement.h> + +namespace WebKit { +WebKitDOMHTMLBodyElement* wrapHTMLBodyElement(WebCore::HTMLBodyElement*); +WebKitDOMHTMLBodyElement* kit(WebCore::HTMLBodyElement*); +WebCore::HTMLBodyElement* core(WebKitDOMHTMLBodyElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLBodyElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp new file mode 100644 index 000000000..93eba07e7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp @@ -0,0 +1,357 @@ +/* + * 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 "WebKitDOMHTMLButtonElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLButtonElementPrivate.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLButtonElement* kit(WebCore::HTMLButtonElement* obj) +{ + return WEBKIT_DOM_HTML_BUTTON_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLButtonElement* core(WebKitDOMHTMLButtonElement* request) +{ + return request ? static_cast<WebCore::HTMLButtonElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLButtonElement* wrapHTMLButtonElement(WebCore::HTMLButtonElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_BUTTON_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_button_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLButtonElement* coreTarget = static_cast<WebCore::HTMLButtonElement*>(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_html_button_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLButtonElement* coreTarget = static_cast<WebCore::HTMLButtonElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_button_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLButtonElement* coreTarget = static_cast<WebCore::HTMLButtonElement*>(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_html_button_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_button_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_button_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLButtonElement, webkit_dom_html_button_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_AUTOFOCUS, + PROP_DISABLED, + PROP_FORM, + PROP_TYPE, + PROP_NAME, + PROP_VALUE, + PROP_WILL_VALIDATE, +}; + +static void webkit_dom_html_button_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLButtonElement* self = WEBKIT_DOM_HTML_BUTTON_ELEMENT(object); + + switch (propertyId) { + case PROP_AUTOFOCUS: + webkit_dom_html_button_element_set_autofocus(self, g_value_get_boolean(value)); + break; + case PROP_DISABLED: + webkit_dom_html_button_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_TYPE: + webkit_dom_html_button_element_set_button_type(self, g_value_get_string(value)); + break; + case PROP_NAME: + webkit_dom_html_button_element_set_name(self, g_value_get_string(value)); + break; + case PROP_VALUE: + webkit_dom_html_button_element_set_value(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_button_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLButtonElement* self = WEBKIT_DOM_HTML_BUTTON_ELEMENT(object); + + switch (propertyId) { + case PROP_AUTOFOCUS: + g_value_set_boolean(value, webkit_dom_html_button_element_get_autofocus(self)); + break; + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_button_element_get_disabled(self)); + break; + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_button_element_get_form(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_button_element_get_button_type(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_button_element_get_name(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_html_button_element_get_value(self)); + break; + case PROP_WILL_VALIDATE: + g_value_set_boolean(value, webkit_dom_html_button_element_get_will_validate(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_button_element_class_init(WebKitDOMHTMLButtonElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_button_element_set_property; + gobjectClass->get_property = webkit_dom_html_button_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_AUTOFOCUS, + g_param_spec_boolean( + "autofocus", + "HTMLButtonElement:autofocus", + "read-write gboolean HTMLButtonElement:autofocus", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLButtonElement:disabled", + "read-write gboolean HTMLButtonElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLButtonElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLButtonElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLButtonElement:type", + "read-write gchar* HTMLButtonElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLButtonElement:name", + "read-write gchar* HTMLButtonElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "HTMLButtonElement:value", + "read-write gchar* HTMLButtonElement:value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WILL_VALIDATE, + g_param_spec_boolean( + "will-validate", + "HTMLButtonElement:will-validate", + "read-only gboolean HTMLButtonElement:will-validate", + FALSE, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_html_button_element_init(WebKitDOMHTMLButtonElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_button_element_get_autofocus(WebKitDOMHTMLButtonElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self), FALSE); + WebCore::HTMLButtonElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::autofocusAttr); + return result; +} + +void webkit_dom_html_button_element_set_autofocus(WebKitDOMHTMLButtonElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self)); + WebCore::HTMLButtonElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::autofocusAttr, value); +} + +gboolean webkit_dom_html_button_element_get_disabled(WebKitDOMHTMLButtonElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self), FALSE); + WebCore::HTMLButtonElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr); + return result; +} + +void webkit_dom_html_button_element_set_disabled(WebKitDOMHTMLButtonElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self)); + WebCore::HTMLButtonElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_button_element_get_form(WebKitDOMHTMLButtonElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self), 0); + WebCore::HTMLButtonElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_button_element_get_button_type(WebKitDOMHTMLButtonElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self), 0); + WebCore::HTMLButtonElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->type()); + return result; +} + +void webkit_dom_html_button_element_set_button_type(WebKitDOMHTMLButtonElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLButtonElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setType(convertedValue); +} + +gchar* webkit_dom_html_button_element_get_name(WebKitDOMHTMLButtonElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self), 0); + WebCore::HTMLButtonElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_button_element_set_name(WebKitDOMHTMLButtonElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLButtonElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_button_element_get_value(WebKitDOMHTMLButtonElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self), 0); + WebCore::HTMLButtonElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valueAttr)); + return result; +} + +void webkit_dom_html_button_element_set_value(WebKitDOMHTMLButtonElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLButtonElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, convertedValue); +} + +gboolean webkit_dom_html_button_element_get_will_validate(WebKitDOMHTMLButtonElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self), FALSE); + WebCore::HTMLButtonElement* item = WebKit::core(self); + gboolean result = item->willValidate(); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.h new file mode 100644 index 000000000..950412429 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.h @@ -0,0 +1,161 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLButtonElement_h +#define WebKitDOMHTMLButtonElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT (webkit_dom_html_button_element_get_type()) +#define WEBKIT_DOM_HTML_BUTTON_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT, WebKitDOMHTMLButtonElement)) +#define WEBKIT_DOM_HTML_BUTTON_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT, WebKitDOMHTMLButtonElementClass) +#define WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT)) +#define WEBKIT_DOM_HTML_BUTTON_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT, WebKitDOMHTMLButtonElementClass)) + +struct _WebKitDOMHTMLButtonElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLButtonElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_button_element_get_type(void); + +/** + * webkit_dom_html_button_element_get_autofocus: + * @self: A #WebKitDOMHTMLButtonElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_button_element_get_autofocus(WebKitDOMHTMLButtonElement* self); + +/** + * webkit_dom_html_button_element_set_autofocus: + * @self: A #WebKitDOMHTMLButtonElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_button_element_set_autofocus(WebKitDOMHTMLButtonElement* self, gboolean value); + +/** + * webkit_dom_html_button_element_get_disabled: + * @self: A #WebKitDOMHTMLButtonElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_button_element_get_disabled(WebKitDOMHTMLButtonElement* self); + +/** + * webkit_dom_html_button_element_set_disabled: + * @self: A #WebKitDOMHTMLButtonElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_button_element_set_disabled(WebKitDOMHTMLButtonElement* self, gboolean value); + +/** + * webkit_dom_html_button_element_get_form: + * @self: A #WebKitDOMHTMLButtonElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_button_element_get_form(WebKitDOMHTMLButtonElement* self); + +/** + * webkit_dom_html_button_element_get_button_type: + * @self: A #WebKitDOMHTMLButtonElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_button_element_get_button_type(WebKitDOMHTMLButtonElement* self); + +/** + * webkit_dom_html_button_element_set_button_type: + * @self: A #WebKitDOMHTMLButtonElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_button_element_set_button_type(WebKitDOMHTMLButtonElement* self, const gchar* value); + +/** + * webkit_dom_html_button_element_get_name: + * @self: A #WebKitDOMHTMLButtonElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_button_element_get_name(WebKitDOMHTMLButtonElement* self); + +/** + * webkit_dom_html_button_element_set_name: + * @self: A #WebKitDOMHTMLButtonElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_button_element_set_name(WebKitDOMHTMLButtonElement* self, const gchar* value); + +/** + * webkit_dom_html_button_element_get_value: + * @self: A #WebKitDOMHTMLButtonElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_button_element_get_value(WebKitDOMHTMLButtonElement* self); + +/** + * webkit_dom_html_button_element_set_value: + * @self: A #WebKitDOMHTMLButtonElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_button_element_set_value(WebKitDOMHTMLButtonElement* self, const gchar* value); + +/** + * webkit_dom_html_button_element_get_will_validate: + * @self: A #WebKitDOMHTMLButtonElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_button_element_get_will_validate(WebKitDOMHTMLButtonElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLButtonElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElementPrivate.h new file mode 100644 index 000000000..8b79accca --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLButtonElementPrivate_h +#define WebKitDOMHTMLButtonElementPrivate_h + +#include <WebCore/HTMLButtonElement.h> +#include <webkitdom/WebKitDOMHTMLButtonElement.h> + +namespace WebKit { +WebKitDOMHTMLButtonElement* wrapHTMLButtonElement(WebCore::HTMLButtonElement*); +WebKitDOMHTMLButtonElement* kit(WebCore::HTMLButtonElement*); +WebCore::HTMLButtonElement* core(WebKitDOMHTMLButtonElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLButtonElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp new file mode 100644 index 000000000..53ef129ef --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp @@ -0,0 +1,202 @@ +/* + * 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 "WebKitDOMHTMLCanvasElement.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 "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCanvasElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLCanvasElement* kit(WebCore::HTMLCanvasElement* obj) +{ + return WEBKIT_DOM_HTML_CANVAS_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLCanvasElement* core(WebKitDOMHTMLCanvasElement* request) +{ + return request ? static_cast<WebCore::HTMLCanvasElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLCanvasElement* wrapHTMLCanvasElement(WebCore::HTMLCanvasElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_CANVAS_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_canvas_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLCanvasElement* coreTarget = static_cast<WebCore::HTMLCanvasElement*>(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_html_canvas_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLCanvasElement* coreTarget = static_cast<WebCore::HTMLCanvasElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_canvas_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLCanvasElement* coreTarget = static_cast<WebCore::HTMLCanvasElement*>(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_html_canvas_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_canvas_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_canvas_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLCanvasElement, webkit_dom_html_canvas_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_WIDTH, + PROP_HEIGHT, +}; + +static void webkit_dom_html_canvas_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLCanvasElement* self = WEBKIT_DOM_HTML_CANVAS_ELEMENT(object); + + switch (propertyId) { + case PROP_WIDTH: + webkit_dom_html_canvas_element_set_width(self, g_value_get_long(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_canvas_element_set_height(self, g_value_get_long(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_canvas_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLCanvasElement* self = WEBKIT_DOM_HTML_CANVAS_ELEMENT(object); + + switch (propertyId) { + case PROP_WIDTH: + g_value_set_long(value, webkit_dom_html_canvas_element_get_width(self)); + break; + case PROP_HEIGHT: + g_value_set_long(value, webkit_dom_html_canvas_element_get_height(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_canvas_element_class_init(WebKitDOMHTMLCanvasElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_canvas_element_set_property; + gobjectClass->get_property = webkit_dom_html_canvas_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_long( + "width", + "HTMLCanvasElement:width", + "read-write glong HTMLCanvasElement:width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_long( + "height", + "HTMLCanvasElement:height", + "read-write glong HTMLCanvasElement:height", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_canvas_element_init(WebKitDOMHTMLCanvasElement* request) +{ + UNUSED_PARAM(request); +} + +glong webkit_dom_html_canvas_element_get_width(WebKitDOMHTMLCanvasElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self), 0); + WebCore::HTMLCanvasElement* item = WebKit::core(self); + glong result = item->width(); + return result; +} + +void webkit_dom_html_canvas_element_set_width(WebKitDOMHTMLCanvasElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self)); + WebCore::HTMLCanvasElement* item = WebKit::core(self); + item->setWidth(value); +} + +glong webkit_dom_html_canvas_element_get_height(WebKitDOMHTMLCanvasElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self), 0); + WebCore::HTMLCanvasElement* item = WebKit::core(self); + glong result = item->height(); + return result; +} + +void webkit_dom_html_canvas_element_set_height(WebKitDOMHTMLCanvasElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self)); + WebCore::HTMLCanvasElement* item = WebKit::core(self); + item->setHeight(value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.h new file mode 100644 index 000000000..46f397f4c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLCanvasElement_h +#define WebKitDOMHTMLCanvasElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT (webkit_dom_html_canvas_element_get_type()) +#define WEBKIT_DOM_HTML_CANVAS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT, WebKitDOMHTMLCanvasElement)) +#define WEBKIT_DOM_HTML_CANVAS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT, WebKitDOMHTMLCanvasElementClass) +#define WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT)) +#define WEBKIT_DOM_HTML_CANVAS_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT, WebKitDOMHTMLCanvasElementClass)) + +struct _WebKitDOMHTMLCanvasElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLCanvasElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_canvas_element_get_type(void); + +/** + * webkit_dom_html_canvas_element_get_width: + * @self: A #WebKitDOMHTMLCanvasElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_canvas_element_get_width(WebKitDOMHTMLCanvasElement* self); + +/** + * webkit_dom_html_canvas_element_set_width: + * @self: A #WebKitDOMHTMLCanvasElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_canvas_element_set_width(WebKitDOMHTMLCanvasElement* self, glong value); + +/** + * webkit_dom_html_canvas_element_get_height: + * @self: A #WebKitDOMHTMLCanvasElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_canvas_element_get_height(WebKitDOMHTMLCanvasElement* self); + +/** + * webkit_dom_html_canvas_element_set_height: + * @self: A #WebKitDOMHTMLCanvasElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_canvas_element_set_height(WebKitDOMHTMLCanvasElement* self, glong value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLCanvasElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElementPrivate.h new file mode 100644 index 000000000..745cf5764 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLCanvasElementPrivate_h +#define WebKitDOMHTMLCanvasElementPrivate_h + +#include <WebCore/HTMLCanvasElement.h> +#include <webkitdom/WebKitDOMHTMLCanvasElement.h> + +namespace WebKit { +WebKitDOMHTMLCanvasElement* wrapHTMLCanvasElement(WebCore::HTMLCanvasElement*); +WebKitDOMHTMLCanvasElement* kit(WebCore::HTMLCanvasElement*); +WebCore::HTMLCanvasElement* core(WebKitDOMHTMLCanvasElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLCanvasElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp new file mode 100644 index 000000000..ed46dfc42 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp @@ -0,0 +1,164 @@ +/* + * 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 "WebKitDOMHTMLCollection.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_HTML_COLLECTION_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_HTML_COLLECTION, WebKitDOMHTMLCollectionPrivate) + +typedef struct _WebKitDOMHTMLCollectionPrivate { + RefPtr<WebCore::HTMLCollection> coreObject; +} WebKitDOMHTMLCollectionPrivate; + +namespace WebKit { + +WebKitDOMHTMLCollection* kit(WebCore::HTMLCollection* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_HTML_COLLECTION(ret); + + return wrap(obj); +} + +WebCore::HTMLCollection* core(WebKitDOMHTMLCollection* request) +{ + return request ? static_cast<WebCore::HTMLCollection*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLCollection* wrapHTMLCollection(WebCore::HTMLCollection* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_COLLECTION(g_object_new(WEBKIT_DOM_TYPE_HTML_COLLECTION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMHTMLCollection, webkit_dom_html_collection, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_LENGTH, +}; + +static void webkit_dom_html_collection_finalize(GObject* object) +{ + WebKitDOMHTMLCollectionPrivate* priv = WEBKIT_DOM_HTML_COLLECTION_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMHTMLCollectionPrivate(); + G_OBJECT_CLASS(webkit_dom_html_collection_parent_class)->finalize(object); +} + +static void webkit_dom_html_collection_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLCollection* self = WEBKIT_DOM_HTML_COLLECTION(object); + + switch (propertyId) { + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_html_collection_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_html_collection_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_html_collection_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMHTMLCollectionPrivate* priv = WEBKIT_DOM_HTML_COLLECTION_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::HTMLCollection*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_html_collection_class_init(WebKitDOMHTMLCollectionClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMHTMLCollectionPrivate)); + gobjectClass->constructor = webkit_dom_html_collection_constructor; + gobjectClass->finalize = webkit_dom_html_collection_finalize; + gobjectClass->get_property = webkit_dom_html_collection_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "HTMLCollection:length", + "read-only gulong HTMLCollection:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_collection_init(WebKitDOMHTMLCollection* request) +{ + WebKitDOMHTMLCollectionPrivate* priv = WEBKIT_DOM_HTML_COLLECTION_GET_PRIVATE(request); + new (priv) WebKitDOMHTMLCollectionPrivate(); +} + +WebKitDOMNode* webkit_dom_html_collection_item(WebKitDOMHTMLCollection* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_COLLECTION(self), 0); + WebCore::HTMLCollection* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->item(index)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_html_collection_named_item(WebKitDOMHTMLCollection* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_COLLECTION(self), 0); + g_return_val_if_fail(name, 0); + WebCore::HTMLCollection* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->namedItem(convertedName)); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_html_collection_get_length(WebKitDOMHTMLCollection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_COLLECTION(self), 0); + WebCore::HTMLCollection* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.h new file mode 100644 index 000000000..2c4a064f3 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.h @@ -0,0 +1,82 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLCollection_h +#define WebKitDOMHTMLCollection_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_COLLECTION (webkit_dom_html_collection_get_type()) +#define WEBKIT_DOM_HTML_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_COLLECTION, WebKitDOMHTMLCollection)) +#define WEBKIT_DOM_HTML_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_COLLECTION, WebKitDOMHTMLCollectionClass) +#define WEBKIT_DOM_IS_HTML_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_COLLECTION)) +#define WEBKIT_DOM_IS_HTML_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_COLLECTION)) +#define WEBKIT_DOM_HTML_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_COLLECTION, WebKitDOMHTMLCollectionClass)) + +struct _WebKitDOMHTMLCollection { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMHTMLCollectionClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_collection_get_type(void); + +/** + * webkit_dom_html_collection_item: + * @self: A #WebKitDOMHTMLCollection + * @index: A #gulong + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_html_collection_item(WebKitDOMHTMLCollection* self, gulong index); + +/** + * webkit_dom_html_collection_named_item: + * @self: A #WebKitDOMHTMLCollection + * @name: A #gchar + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_html_collection_named_item(WebKitDOMHTMLCollection* self, const gchar* name); + +/** + * webkit_dom_html_collection_get_length: + * @self: A #WebKitDOMHTMLCollection + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_html_collection_get_length(WebKitDOMHTMLCollection* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLCollection_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollectionPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollectionPrivate.h new file mode 100644 index 000000000..a5c865985 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollectionPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLCollectionPrivate_h +#define WebKitDOMHTMLCollectionPrivate_h + +#include <WebCore/HTMLCollection.h> +#include <webkitdom/WebKitDOMHTMLCollection.h> + +namespace WebKit { +WebKitDOMHTMLCollection* wrapHTMLCollection(WebCore::HTMLCollection*); +WebKitDOMHTMLCollection* kit(WebCore::HTMLCollection*); +WebCore::HTMLCollection* core(WebKitDOMHTMLCollection*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLCollectionPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp new file mode 100644 index 000000000..f1a80282d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp @@ -0,0 +1,169 @@ +/* + * 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 "WebKitDOMHTMLDListElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLDListElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLDListElement* kit(WebCore::HTMLDListElement* obj) +{ + return WEBKIT_DOM_HTML_D_LIST_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLDListElement* core(WebKitDOMHTMLDListElement* request) +{ + return request ? static_cast<WebCore::HTMLDListElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLDListElement* wrapHTMLDListElement(WebCore::HTMLDListElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_D_LIST_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_d_list_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLDListElement* coreTarget = static_cast<WebCore::HTMLDListElement*>(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_html_d_list_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDListElement* coreTarget = static_cast<WebCore::HTMLDListElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_d_list_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDListElement* coreTarget = static_cast<WebCore::HTMLDListElement*>(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_html_d_list_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_d_list_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_d_list_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLDListElement, webkit_dom_html_d_list_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_COMPACT, +}; + +static void webkit_dom_html_d_list_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDListElement* self = WEBKIT_DOM_HTML_D_LIST_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + webkit_dom_html_d_list_element_set_compact(self, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_d_list_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDListElement* self = WEBKIT_DOM_HTML_D_LIST_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + g_value_set_boolean(value, webkit_dom_html_d_list_element_get_compact(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_d_list_element_class_init(WebKitDOMHTMLDListElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_d_list_element_set_property; + gobjectClass->get_property = webkit_dom_html_d_list_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_COMPACT, + g_param_spec_boolean( + "compact", + "HTMLDListElement:compact", + "read-write gboolean HTMLDListElement:compact", + FALSE, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_d_list_element_init(WebKitDOMHTMLDListElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_d_list_element_get_compact(WebKitDOMHTMLDListElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_D_LIST_ELEMENT(self), FALSE); + WebCore::HTMLDListElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::compactAttr); + return result; +} + +void webkit_dom_html_d_list_element_set_compact(WebKitDOMHTMLDListElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_D_LIST_ELEMENT(self)); + WebCore::HTMLDListElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::compactAttr, value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.h new file mode 100644 index 000000000..a6ae7089b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLDListElement_h +#define WebKitDOMHTMLDListElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT (webkit_dom_html_d_list_element_get_type()) +#define WEBKIT_DOM_HTML_D_LIST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT, WebKitDOMHTMLDListElement)) +#define WEBKIT_DOM_HTML_D_LIST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT, WebKitDOMHTMLDListElementClass) +#define WEBKIT_DOM_IS_HTML_D_LIST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_D_LIST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT)) +#define WEBKIT_DOM_HTML_D_LIST_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT, WebKitDOMHTMLDListElementClass)) + +struct _WebKitDOMHTMLDListElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLDListElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_d_list_element_get_type(void); + +/** + * webkit_dom_html_d_list_element_get_compact: + * @self: A #WebKitDOMHTMLDListElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_d_list_element_get_compact(WebKitDOMHTMLDListElement* self); + +/** + * webkit_dom_html_d_list_element_set_compact: + * @self: A #WebKitDOMHTMLDListElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_d_list_element_set_compact(WebKitDOMHTMLDListElement* self, gboolean value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLDListElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElementPrivate.h new file mode 100644 index 000000000..580bd9b43 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLDListElementPrivate_h +#define WebKitDOMHTMLDListElementPrivate_h + +#include <WebCore/HTMLDListElement.h> +#include <webkitdom/WebKitDOMHTMLDListElement.h> + +namespace WebKit { +WebKitDOMHTMLDListElement* wrapHTMLDListElement(WebCore::HTMLDListElement*); +WebKitDOMHTMLDListElement* kit(WebCore::HTMLDListElement*); +WebCore::HTMLDListElement* core(WebKitDOMHTMLDListElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLDListElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp new file mode 100644 index 000000000..ded7562e1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp @@ -0,0 +1,169 @@ +/* + * 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 "WebKitDOMHTMLDirectoryElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLDirectoryElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLDirectoryElement* kit(WebCore::HTMLDirectoryElement* obj) +{ + return WEBKIT_DOM_HTML_DIRECTORY_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLDirectoryElement* core(WebKitDOMHTMLDirectoryElement* request) +{ + return request ? static_cast<WebCore::HTMLDirectoryElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLDirectoryElement* wrapHTMLDirectoryElement(WebCore::HTMLDirectoryElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_DIRECTORY_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_directory_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLDirectoryElement* coreTarget = static_cast<WebCore::HTMLDirectoryElement*>(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_html_directory_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDirectoryElement* coreTarget = static_cast<WebCore::HTMLDirectoryElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_directory_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDirectoryElement* coreTarget = static_cast<WebCore::HTMLDirectoryElement*>(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_html_directory_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_directory_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_directory_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLDirectoryElement, webkit_dom_html_directory_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_COMPACT, +}; + +static void webkit_dom_html_directory_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDirectoryElement* self = WEBKIT_DOM_HTML_DIRECTORY_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + webkit_dom_html_directory_element_set_compact(self, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_directory_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDirectoryElement* self = WEBKIT_DOM_HTML_DIRECTORY_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + g_value_set_boolean(value, webkit_dom_html_directory_element_get_compact(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_directory_element_class_init(WebKitDOMHTMLDirectoryElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_directory_element_set_property; + gobjectClass->get_property = webkit_dom_html_directory_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_COMPACT, + g_param_spec_boolean( + "compact", + "HTMLDirectoryElement:compact", + "read-write gboolean HTMLDirectoryElement:compact", + FALSE, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_directory_element_init(WebKitDOMHTMLDirectoryElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_directory_element_get_compact(WebKitDOMHTMLDirectoryElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DIRECTORY_ELEMENT(self), FALSE); + WebCore::HTMLDirectoryElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::compactAttr); + return result; +} + +void webkit_dom_html_directory_element_set_compact(WebKitDOMHTMLDirectoryElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DIRECTORY_ELEMENT(self)); + WebCore::HTMLDirectoryElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::compactAttr, value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.h new file mode 100644 index 000000000..76ad67fd7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLDirectoryElement_h +#define WebKitDOMHTMLDirectoryElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT (webkit_dom_html_directory_element_get_type()) +#define WEBKIT_DOM_HTML_DIRECTORY_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT, WebKitDOMHTMLDirectoryElement)) +#define WEBKIT_DOM_HTML_DIRECTORY_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT, WebKitDOMHTMLDirectoryElementClass) +#define WEBKIT_DOM_IS_HTML_DIRECTORY_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_DIRECTORY_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT)) +#define WEBKIT_DOM_HTML_DIRECTORY_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT, WebKitDOMHTMLDirectoryElementClass)) + +struct _WebKitDOMHTMLDirectoryElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLDirectoryElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_directory_element_get_type(void); + +/** + * webkit_dom_html_directory_element_get_compact: + * @self: A #WebKitDOMHTMLDirectoryElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_directory_element_get_compact(WebKitDOMHTMLDirectoryElement* self); + +/** + * webkit_dom_html_directory_element_set_compact: + * @self: A #WebKitDOMHTMLDirectoryElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_directory_element_set_compact(WebKitDOMHTMLDirectoryElement* self, gboolean value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLDirectoryElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElementPrivate.h new file mode 100644 index 000000000..f10e4442e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLDirectoryElementPrivate_h +#define WebKitDOMHTMLDirectoryElementPrivate_h + +#include <WebCore/HTMLDirectoryElement.h> +#include <webkitdom/WebKitDOMHTMLDirectoryElement.h> + +namespace WebKit { +WebKitDOMHTMLDirectoryElement* wrapHTMLDirectoryElement(WebCore::HTMLDirectoryElement*); +WebKitDOMHTMLDirectoryElement* kit(WebCore::HTMLDirectoryElement*); +WebCore::HTMLDirectoryElement* core(WebKitDOMHTMLDirectoryElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLDirectoryElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp new file mode 100644 index 000000000..70689a73d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp @@ -0,0 +1,171 @@ +/* + * 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 "WebKitDOMHTMLDivElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLDivElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLDivElement* kit(WebCore::HTMLDivElement* obj) +{ + return WEBKIT_DOM_HTML_DIV_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLDivElement* core(WebKitDOMHTMLDivElement* request) +{ + return request ? static_cast<WebCore::HTMLDivElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLDivElement* wrapHTMLDivElement(WebCore::HTMLDivElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_DIV_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_div_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLDivElement* coreTarget = static_cast<WebCore::HTMLDivElement*>(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_html_div_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDivElement* coreTarget = static_cast<WebCore::HTMLDivElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_div_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDivElement* coreTarget = static_cast<WebCore::HTMLDivElement*>(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_html_div_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_div_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_div_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLDivElement, webkit_dom_html_div_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, +}; + +static void webkit_dom_html_div_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDivElement* self = WEBKIT_DOM_HTML_DIV_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_div_element_set_align(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_div_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDivElement* self = WEBKIT_DOM_HTML_DIV_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_div_element_get_align(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_div_element_class_init(WebKitDOMHTMLDivElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_div_element_set_property; + gobjectClass->get_property = webkit_dom_html_div_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLDivElement:align", + "read-write gchar* HTMLDivElement:align", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_div_element_init(WebKitDOMHTMLDivElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_div_element_get_align(WebKitDOMHTMLDivElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DIV_ELEMENT(self), 0); + WebCore::HTMLDivElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_div_element_set_align(WebKitDOMHTMLDivElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DIV_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLDivElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.h new file mode 100644 index 000000000..5f92076ec --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLDivElement_h +#define WebKitDOMHTMLDivElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT (webkit_dom_html_div_element_get_type()) +#define WEBKIT_DOM_HTML_DIV_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT, WebKitDOMHTMLDivElement)) +#define WEBKIT_DOM_HTML_DIV_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT, WebKitDOMHTMLDivElementClass) +#define WEBKIT_DOM_IS_HTML_DIV_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_DIV_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT)) +#define WEBKIT_DOM_HTML_DIV_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT, WebKitDOMHTMLDivElementClass)) + +struct _WebKitDOMHTMLDivElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLDivElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_div_element_get_type(void); + +/** + * webkit_dom_html_div_element_get_align: + * @self: A #WebKitDOMHTMLDivElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_div_element_get_align(WebKitDOMHTMLDivElement* self); + +/** + * webkit_dom_html_div_element_set_align: + * @self: A #WebKitDOMHTMLDivElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_div_element_set_align(WebKitDOMHTMLDivElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLDivElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElementPrivate.h new file mode 100644 index 000000000..dc41139ec --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLDivElementPrivate_h +#define WebKitDOMHTMLDivElementPrivate_h + +#include <WebCore/HTMLDivElement.h> +#include <webkitdom/WebKitDOMHTMLDivElement.h> + +namespace WebKit { +WebKitDOMHTMLDivElement* wrapHTMLDivElement(WebCore::HTMLDivElement*); +WebKitDOMHTMLDivElement* kit(WebCore::HTMLDivElement*); +WebCore::HTMLDivElement* core(WebKitDOMHTMLDivElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLDivElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp new file mode 100644 index 000000000..0ecfae9e6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp @@ -0,0 +1,428 @@ +/* + * 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 "WebKitDOMHTMLDocument.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 "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLDocumentPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLDocument* kit(WebCore::HTMLDocument* obj) +{ + return WEBKIT_DOM_HTML_DOCUMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLDocument* core(WebKitDOMHTMLDocument* request) +{ + return request ? static_cast<WebCore::HTMLDocument*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLDocument* wrapHTMLDocument(WebCore::HTMLDocument* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_DOCUMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_DOCUMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_document_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLDocument* coreTarget = static_cast<WebCore::HTMLDocument*>(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_html_document_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDocument* coreTarget = static_cast<WebCore::HTMLDocument*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_document_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLDocument* coreTarget = static_cast<WebCore::HTMLDocument*>(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_html_document_dispatch_event; + iface->add_event_listener = webkit_dom_html_document_add_event_listener; + iface->remove_event_listener = webkit_dom_html_document_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLDocument, webkit_dom_html_document, WEBKIT_DOM_TYPE_DOCUMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_WIDTH, + PROP_HEIGHT, + PROP_DIR, + PROP_BG_COLOR, + PROP_FG_COLOR, + PROP_ALINK_COLOR, + PROP_LINK_COLOR, + PROP_VLINK_COLOR, +}; + +static void webkit_dom_html_document_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDocument* self = WEBKIT_DOM_HTML_DOCUMENT(object); + + switch (propertyId) { + case PROP_DIR: + webkit_dom_html_document_set_dir(self, g_value_get_string(value)); + break; + case PROP_BG_COLOR: + webkit_dom_html_document_set_bg_color(self, g_value_get_string(value)); + break; + case PROP_FG_COLOR: + webkit_dom_html_document_set_fg_color(self, g_value_get_string(value)); + break; + case PROP_ALINK_COLOR: + webkit_dom_html_document_set_alink_color(self, g_value_get_string(value)); + break; + case PROP_LINK_COLOR: + webkit_dom_html_document_set_link_color(self, g_value_get_string(value)); + break; + case PROP_VLINK_COLOR: + webkit_dom_html_document_set_vlink_color(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_document_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLDocument* self = WEBKIT_DOM_HTML_DOCUMENT(object); + + switch (propertyId) { + case PROP_WIDTH: + g_value_set_long(value, webkit_dom_html_document_get_width(self)); + break; + case PROP_HEIGHT: + g_value_set_long(value, webkit_dom_html_document_get_height(self)); + break; + case PROP_DIR: + g_value_take_string(value, webkit_dom_html_document_get_dir(self)); + break; + case PROP_BG_COLOR: + g_value_take_string(value, webkit_dom_html_document_get_bg_color(self)); + break; + case PROP_FG_COLOR: + g_value_take_string(value, webkit_dom_html_document_get_fg_color(self)); + break; + case PROP_ALINK_COLOR: + g_value_take_string(value, webkit_dom_html_document_get_alink_color(self)); + break; + case PROP_LINK_COLOR: + g_value_take_string(value, webkit_dom_html_document_get_link_color(self)); + break; + case PROP_VLINK_COLOR: + g_value_take_string(value, webkit_dom_html_document_get_vlink_color(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_document_class_init(WebKitDOMHTMLDocumentClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_document_set_property; + gobjectClass->get_property = webkit_dom_html_document_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_long( + "width", + "HTMLDocument:width", + "read-only glong HTMLDocument:width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_long( + "height", + "HTMLDocument:height", + "read-only glong HTMLDocument:height", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_DIR, + g_param_spec_string( + "dir", + "HTMLDocument:dir", + "read-write gchar* HTMLDocument:dir", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BG_COLOR, + g_param_spec_string( + "bg-color", + "HTMLDocument:bg-color", + "read-write gchar* HTMLDocument:bg-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FG_COLOR, + g_param_spec_string( + "fg-color", + "HTMLDocument:fg-color", + "read-write gchar* HTMLDocument:fg-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALINK_COLOR, + g_param_spec_string( + "alink-color", + "HTMLDocument:alink-color", + "read-write gchar* HTMLDocument:alink-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LINK_COLOR, + g_param_spec_string( + "link-color", + "HTMLDocument:link-color", + "read-write gchar* HTMLDocument:link-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VLINK_COLOR, + g_param_spec_string( + "vlink-color", + "HTMLDocument:vlink-color", + "read-write gchar* HTMLDocument:vlink-color", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_document_init(WebKitDOMHTMLDocument* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_html_document_close(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + WebCore::HTMLDocument* item = WebKit::core(self); + item->close(); +} + +void webkit_dom_html_document_clear(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + WebCore::HTMLDocument* item = WebKit::core(self); + item->clear(); +} + +void webkit_dom_html_document_capture_events(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + WebCore::HTMLDocument* item = WebKit::core(self); + item->captureEvents(); +} + +void webkit_dom_html_document_release_events(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + WebCore::HTMLDocument* item = WebKit::core(self); + item->releaseEvents(); +} + +glong webkit_dom_html_document_get_width(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + glong result = item->width(); + return result; +} + +glong webkit_dom_html_document_get_height(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + glong result = item->height(); + return result; +} + +gchar* webkit_dom_html_document_get_dir(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->dir()); + return result; +} + +void webkit_dom_html_document_set_dir(WebKitDOMHTMLDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::HTMLDocument* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setDir(convertedValue); +} + +gchar* webkit_dom_html_document_get_bg_color(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->bgColor()); + return result; +} + +void webkit_dom_html_document_set_bg_color(WebKitDOMHTMLDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::HTMLDocument* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setBgColor(convertedValue); +} + +gchar* webkit_dom_html_document_get_fg_color(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->fgColor()); + return result; +} + +void webkit_dom_html_document_set_fg_color(WebKitDOMHTMLDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::HTMLDocument* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setFgColor(convertedValue); +} + +gchar* webkit_dom_html_document_get_alink_color(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->alinkColor()); + return result; +} + +void webkit_dom_html_document_set_alink_color(WebKitDOMHTMLDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::HTMLDocument* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAlinkColor(convertedValue); +} + +gchar* webkit_dom_html_document_get_link_color(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->linkColor()); + return result; +} + +void webkit_dom_html_document_set_link_color(WebKitDOMHTMLDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::HTMLDocument* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setLinkColor(convertedValue); +} + +gchar* webkit_dom_html_document_get_vlink_color(WebKitDOMHTMLDocument* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self), 0); + WebCore::HTMLDocument* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->vlinkColor()); + return result; +} + +void webkit_dom_html_document_set_vlink_color(WebKitDOMHTMLDocument* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_DOCUMENT(self)); + g_return_if_fail(value); + WebCore::HTMLDocument* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setVlinkColor(convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.h new file mode 100644 index 000000000..3a240e518 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.h @@ -0,0 +1,211 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLDocument_h +#define WebKitDOMHTMLDocument_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMDocument.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_DOCUMENT (webkit_dom_html_document_get_type()) +#define WEBKIT_DOM_HTML_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_DOCUMENT, WebKitDOMHTMLDocument)) +#define WEBKIT_DOM_HTML_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_DOCUMENT, WebKitDOMHTMLDocumentClass) +#define WEBKIT_DOM_IS_HTML_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_DOCUMENT)) +#define WEBKIT_DOM_IS_HTML_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_DOCUMENT)) +#define WEBKIT_DOM_HTML_DOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_DOCUMENT, WebKitDOMHTMLDocumentClass)) + +struct _WebKitDOMHTMLDocument { + WebKitDOMDocument parent_instance; +}; + +struct _WebKitDOMHTMLDocumentClass { + WebKitDOMDocumentClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_document_get_type(void); + +/** + * webkit_dom_html_document_close: + * @self: A #WebKitDOMHTMLDocument + * +**/ +WEBKIT_API void +webkit_dom_html_document_close(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_clear: + * @self: A #WebKitDOMHTMLDocument + * +**/ +WEBKIT_API void +webkit_dom_html_document_clear(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_capture_events: + * @self: A #WebKitDOMHTMLDocument + * +**/ +WEBKIT_API void +webkit_dom_html_document_capture_events(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_release_events: + * @self: A #WebKitDOMHTMLDocument + * +**/ +WEBKIT_API void +webkit_dom_html_document_release_events(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_get_width: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_document_get_width(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_get_height: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_document_get_height(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_get_dir: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_document_get_dir(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_set_dir: + * @self: A #WebKitDOMHTMLDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_document_set_dir(WebKitDOMHTMLDocument* self, const gchar* value); + +/** + * webkit_dom_html_document_get_bg_color: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_document_get_bg_color(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_set_bg_color: + * @self: A #WebKitDOMHTMLDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_document_set_bg_color(WebKitDOMHTMLDocument* self, const gchar* value); + +/** + * webkit_dom_html_document_get_fg_color: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_document_get_fg_color(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_set_fg_color: + * @self: A #WebKitDOMHTMLDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_document_set_fg_color(WebKitDOMHTMLDocument* self, const gchar* value); + +/** + * webkit_dom_html_document_get_alink_color: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_document_get_alink_color(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_set_alink_color: + * @self: A #WebKitDOMHTMLDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_document_set_alink_color(WebKitDOMHTMLDocument* self, const gchar* value); + +/** + * webkit_dom_html_document_get_link_color: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_document_get_link_color(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_set_link_color: + * @self: A #WebKitDOMHTMLDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_document_set_link_color(WebKitDOMHTMLDocument* self, const gchar* value); + +/** + * webkit_dom_html_document_get_vlink_color: + * @self: A #WebKitDOMHTMLDocument + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_document_get_vlink_color(WebKitDOMHTMLDocument* self); + +/** + * webkit_dom_html_document_set_vlink_color: + * @self: A #WebKitDOMHTMLDocument + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_document_set_vlink_color(WebKitDOMHTMLDocument* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLDocument_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocumentPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocumentPrivate.h new file mode 100644 index 000000000..12d60100d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocumentPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLDocumentPrivate_h +#define WebKitDOMHTMLDocumentPrivate_h + +#include <WebCore/HTMLDocument.h> +#include <webkitdom/WebKitDOMHTMLDocument.h> + +namespace WebKit { +WebKitDOMHTMLDocument* wrapHTMLDocument(WebCore::HTMLDocument*); +WebKitDOMHTMLDocument* kit(WebCore::HTMLDocument*); +WebCore::HTMLDocument* core(WebKitDOMHTMLDocument*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLDocumentPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp new file mode 100644 index 000000000..8d1883070 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp @@ -0,0 +1,640 @@ +/* + * 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 "WebKitDOMHTMLElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include "WebKitDOMHTMLElementUnstable.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLElement* kit(WebCore::HTMLElement* obj) +{ + return WEBKIT_DOM_HTML_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLElement* core(WebKitDOMHTMLElement* request) +{ + return request ? static_cast<WebCore::HTMLElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLElement* wrapHTMLElement(WebCore::HTMLElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLElement* coreTarget = static_cast<WebCore::HTMLElement*>(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_html_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLElement* coreTarget = static_cast<WebCore::HTMLElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLElement* coreTarget = static_cast<WebCore::HTMLElement*>(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_html_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLElement, webkit_dom_html_element, WEBKIT_DOM_TYPE_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_TITLE, + PROP_LANG, + PROP_TRANSLATE, + PROP_DIR, + PROP_TAB_INDEX, + PROP_DRAGGABLE, + PROP_WEBKITDROPZONE, + PROP_HIDDEN, + PROP_ACCESS_KEY, + PROP_INNER_TEXT, + PROP_OUTER_TEXT, + PROP_CONTENT_EDITABLE, + PROP_IS_CONTENT_EDITABLE, + PROP_SPELLCHECK, +}; + +static void webkit_dom_html_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLElement* self = WEBKIT_DOM_HTML_ELEMENT(object); + + switch (propertyId) { + case PROP_TITLE: + webkit_dom_html_element_set_title(self, g_value_get_string(value)); + break; + case PROP_LANG: + webkit_dom_html_element_set_lang(self, g_value_get_string(value)); + break; + case PROP_TRANSLATE: + webkit_dom_html_element_set_translate(self, g_value_get_boolean(value)); + break; + case PROP_DIR: + webkit_dom_html_element_set_dir(self, g_value_get_string(value)); + break; + case PROP_TAB_INDEX: + webkit_dom_html_element_set_tab_index(self, g_value_get_long(value)); + break; + case PROP_DRAGGABLE: + webkit_dom_html_element_set_draggable(self, g_value_get_boolean(value)); + break; + case PROP_WEBKITDROPZONE: + webkit_dom_html_element_set_webkitdropzone(self, g_value_get_string(value)); + break; + case PROP_HIDDEN: + webkit_dom_html_element_set_hidden(self, g_value_get_boolean(value)); + break; + case PROP_ACCESS_KEY: + webkit_dom_html_element_set_access_key(self, g_value_get_string(value)); + break; + case PROP_INNER_TEXT: + webkit_dom_html_element_set_inner_text(self, g_value_get_string(value), nullptr); + break; + case PROP_OUTER_TEXT: + webkit_dom_html_element_set_outer_text(self, g_value_get_string(value), nullptr); + break; + case PROP_CONTENT_EDITABLE: + webkit_dom_html_element_set_content_editable(self, g_value_get_string(value), nullptr); + break; + case PROP_SPELLCHECK: + webkit_dom_html_element_set_spellcheck(self, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLElement* self = WEBKIT_DOM_HTML_ELEMENT(object); + + switch (propertyId) { + case PROP_TITLE: + g_value_take_string(value, webkit_dom_html_element_get_title(self)); + break; + case PROP_LANG: + g_value_take_string(value, webkit_dom_html_element_get_lang(self)); + break; + case PROP_TRANSLATE: + g_value_set_boolean(value, webkit_dom_html_element_get_translate(self)); + break; + case PROP_DIR: + g_value_take_string(value, webkit_dom_html_element_get_dir(self)); + break; + case PROP_TAB_INDEX: + g_value_set_long(value, webkit_dom_html_element_get_tab_index(self)); + break; + case PROP_DRAGGABLE: + g_value_set_boolean(value, webkit_dom_html_element_get_draggable(self)); + break; + case PROP_WEBKITDROPZONE: + g_value_take_string(value, webkit_dom_html_element_get_webkitdropzone(self)); + break; + case PROP_HIDDEN: + g_value_set_boolean(value, webkit_dom_html_element_get_hidden(self)); + break; + case PROP_ACCESS_KEY: + g_value_take_string(value, webkit_dom_html_element_get_access_key(self)); + break; + case PROP_INNER_TEXT: + g_value_take_string(value, webkit_dom_html_element_get_inner_text(self)); + break; + case PROP_OUTER_TEXT: + g_value_take_string(value, webkit_dom_html_element_get_outer_text(self)); + break; + case PROP_CONTENT_EDITABLE: + g_value_take_string(value, webkit_dom_html_element_get_content_editable(self)); + break; + case PROP_IS_CONTENT_EDITABLE: + g_value_set_boolean(value, webkit_dom_html_element_get_is_content_editable(self)); + break; + case PROP_SPELLCHECK: + g_value_set_boolean(value, webkit_dom_html_element_get_spellcheck(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_element_class_init(WebKitDOMHTMLElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_element_set_property; + gobjectClass->get_property = webkit_dom_html_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TITLE, + g_param_spec_string( + "title", + "HTMLElement:title", + "read-write gchar* HTMLElement:title", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LANG, + g_param_spec_string( + "lang", + "HTMLElement:lang", + "read-write gchar* HTMLElement:lang", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TRANSLATE, + g_param_spec_boolean( + "translate", + "HTMLElement:translate", + "read-write gboolean HTMLElement:translate", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DIR, + g_param_spec_string( + "dir", + "HTMLElement:dir", + "read-write gchar* HTMLElement:dir", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TAB_INDEX, + g_param_spec_long( + "tab-index", + "HTMLElement:tab-index", + "read-write glong HTMLElement:tab-index", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DRAGGABLE, + g_param_spec_boolean( + "draggable", + "HTMLElement:draggable", + "read-write gboolean HTMLElement:draggable", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WEBKITDROPZONE, + g_param_spec_string( + "webkitdropzone", + "HTMLElement:webkitdropzone", + "read-write gchar* HTMLElement:webkitdropzone", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HIDDEN, + g_param_spec_boolean( + "hidden", + "HTMLElement:hidden", + "read-write gboolean HTMLElement:hidden", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ACCESS_KEY, + g_param_spec_string( + "access-key", + "HTMLElement:access-key", + "read-write gchar* HTMLElement:access-key", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_INNER_TEXT, + g_param_spec_string( + "inner-text", + "HTMLElement:inner-text", + "read-write gchar* HTMLElement:inner-text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_OUTER_TEXT, + g_param_spec_string( + "outer-text", + "HTMLElement:outer-text", + "read-write gchar* HTMLElement:outer-text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT_EDITABLE, + g_param_spec_string( + "content-editable", + "HTMLElement:content-editable", + "read-write gchar* HTMLElement:content-editable", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_IS_CONTENT_EDITABLE, + g_param_spec_boolean( + "is-content-editable", + "HTMLElement:is-content-editable", + "read-only gboolean HTMLElement:is-content-editable", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SPELLCHECK, + g_param_spec_boolean( + "spellcheck", + "HTMLElement:spellcheck", + "read-write gboolean HTMLElement:spellcheck", + FALSE, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_element_init(WebKitDOMHTMLElement* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_html_element_click(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + WebCore::HTMLElement* item = WebKit::core(self); + item->click(); +} + +gchar* webkit_dom_html_element_get_title(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::titleAttr)); + return result; +} + +void webkit_dom_html_element_set_title(WebKitDOMHTMLElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::titleAttr, convertedValue); +} + +gchar* webkit_dom_html_element_get_lang(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::langAttr)); + return result; +} + +void webkit_dom_html_element_set_lang(WebKitDOMHTMLElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::langAttr, convertedValue); +} + +gboolean webkit_dom_html_element_get_translate(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), FALSE); + WebCore::HTMLElement* item = WebKit::core(self); + gboolean result = item->translate(); + return result; +} + +void webkit_dom_html_element_set_translate(WebKitDOMHTMLElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + WebCore::HTMLElement* item = WebKit::core(self); + item->setTranslate(value); +} + +gchar* webkit_dom_html_element_get_dir(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->dir()); + return result; +} + +void webkit_dom_html_element_set_dir(WebKitDOMHTMLElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setDir(convertedValue); +} + +glong webkit_dom_html_element_get_tab_index(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + glong result = item->tabIndex(); + return result; +} + +void webkit_dom_html_element_set_tab_index(WebKitDOMHTMLElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + WebCore::HTMLElement* item = WebKit::core(self); + item->setTabIndex(value); +} + +gboolean webkit_dom_html_element_get_draggable(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), FALSE); + WebCore::HTMLElement* item = WebKit::core(self); + gboolean result = item->draggable(); + return result; +} + +void webkit_dom_html_element_set_draggable(WebKitDOMHTMLElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + WebCore::HTMLElement* item = WebKit::core(self); + item->setDraggable(value); +} + +gchar* webkit_dom_html_element_get_webkitdropzone(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::webkitdropzoneAttr)); + return result; +} + +void webkit_dom_html_element_set_webkitdropzone(WebKitDOMHTMLElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::webkitdropzoneAttr, convertedValue); +} + +gboolean webkit_dom_html_element_get_hidden(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), FALSE); + WebCore::HTMLElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::hiddenAttr); + return result; +} + +void webkit_dom_html_element_set_hidden(WebKitDOMHTMLElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + WebCore::HTMLElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::hiddenAttr, value); +} + +gchar* webkit_dom_html_element_get_access_key(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::accesskeyAttr)); + return result; +} + +void webkit_dom_html_element_set_access_key(WebKitDOMHTMLElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::accesskeyAttr, convertedValue); +} + +gchar* webkit_dom_html_element_get_inner_text(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->innerText()); + return result; +} + +void webkit_dom_html_element_set_inner_text(WebKitDOMHTMLElement* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setInnerText(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_html_element_get_outer_text(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->outerText()); + return result; +} + +void webkit_dom_html_element_set_outer_text(WebKitDOMHTMLElement* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setOuterText(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_html_element_get_content_editable(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), 0); + WebCore::HTMLElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->contentEditable()); + return result; +} + +void webkit_dom_html_element_set_content_editable(WebKitDOMHTMLElement* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::HTMLElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setContentEditable(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gboolean webkit_dom_html_element_get_is_content_editable(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), FALSE); + WebCore::HTMLElement* item = WebKit::core(self); + gboolean result = item->isContentEditable(); + return result; +} + +gboolean webkit_dom_html_element_get_spellcheck(WebKitDOMHTMLElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self), FALSE); + WebCore::HTMLElement* item = WebKit::core(self); + gboolean result = item->spellcheck(); + return result; +} + +void webkit_dom_html_element_set_spellcheck(WebKitDOMHTMLElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + WebCore::HTMLElement* item = WebKit::core(self); + item->setSpellcheck(value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h new file mode 100644 index 000000000..2d1fb5a5e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h @@ -0,0 +1,322 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLElement_h +#define WebKitDOMHTMLElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_ELEMENT (webkit_dom_html_element_get_type()) +#define WEBKIT_DOM_HTML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_ELEMENT, WebKitDOMHTMLElement)) +#define WEBKIT_DOM_HTML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_ELEMENT, WebKitDOMHTMLElementClass) +#define WEBKIT_DOM_IS_HTML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_ELEMENT)) +#define WEBKIT_DOM_HTML_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_ELEMENT, WebKitDOMHTMLElementClass)) + +struct _WebKitDOMHTMLElement { + WebKitDOMElement parent_instance; +}; + +struct _WebKitDOMHTMLElementClass { + WebKitDOMElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_element_get_type(void); + +/** + * webkit_dom_html_element_click: + * @self: A #WebKitDOMHTMLElement + * +**/ +WEBKIT_API void +webkit_dom_html_element_click(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_get_title: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_title(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_title: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_title(WebKitDOMHTMLElement* self, const gchar* value); + +/** + * webkit_dom_html_element_get_lang: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_lang(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_lang: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_lang(WebKitDOMHTMLElement* self, const gchar* value); + +/** + * webkit_dom_html_element_get_dir: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_dir(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_dir: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_dir(WebKitDOMHTMLElement* self, const gchar* value); + +/** + * webkit_dom_html_element_get_tab_index: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_element_get_tab_index(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_tab_index: + * @self: A #WebKitDOMHTMLElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_tab_index(WebKitDOMHTMLElement* self, glong value); + +/** + * webkit_dom_html_element_get_access_key: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_access_key(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_access_key: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_access_key(WebKitDOMHTMLElement* self, const gchar* value); + +/** + * webkit_dom_html_element_get_inner_text: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_inner_text(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_inner_text: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_inner_text(WebKitDOMHTMLElement* self, const gchar* value, GError** error); + +/** + * webkit_dom_html_element_get_outer_text: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_outer_text(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_outer_text: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_outer_text(WebKitDOMHTMLElement* self, const gchar* value, GError** error); + +/** + * webkit_dom_html_element_get_content_editable: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_content_editable(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_content_editable: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_element_set_content_editable(WebKitDOMHTMLElement* self, const gchar* value, GError** error); + +/** + * webkit_dom_html_element_get_is_content_editable: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_element_get_is_content_editable(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_get_translate: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_html_element_get_translate(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_translate: + * @self: A #WebKitDOMHTMLElement + * @value: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_element_set_translate(WebKitDOMHTMLElement* self, gboolean value); + +/** + * webkit_dom_html_element_get_draggable: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_html_element_get_draggable(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_draggable: + * @self: A #WebKitDOMHTMLElement + * @value: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_element_set_draggable(WebKitDOMHTMLElement* self, gboolean value); + +/** + * webkit_dom_html_element_get_webkitdropzone: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API gchar* +webkit_dom_html_element_get_webkitdropzone(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_webkitdropzone: + * @self: A #WebKitDOMHTMLElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_element_set_webkitdropzone(WebKitDOMHTMLElement* self, const gchar* value); + +/** + * webkit_dom_html_element_get_hidden: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_html_element_get_hidden(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_hidden: + * @self: A #WebKitDOMHTMLElement + * @value: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_element_set_hidden(WebKitDOMHTMLElement* self, gboolean value); + +/** + * webkit_dom_html_element_get_spellcheck: + * @self: A #WebKitDOMHTMLElement + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_html_element_get_spellcheck(WebKitDOMHTMLElement* self); + +/** + * webkit_dom_html_element_set_spellcheck: + * @self: A #WebKitDOMHTMLElement + * @value: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_element_set_spellcheck(WebKitDOMHTMLElement* self, gboolean value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementPrivate.h new file mode 100644 index 000000000..5f9d1c1c5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLElementPrivate_h +#define WebKitDOMHTMLElementPrivate_h + +#include <WebCore/HTMLElement.h> +#include <webkitdom/WebKitDOMHTMLElement.h> + +namespace WebKit { +WebKitDOMHTMLElement* wrapHTMLElement(WebCore::HTMLElement*); +WebKitDOMHTMLElement* kit(WebCore::HTMLElement*); +WebCore::HTMLElement* core(WebKitDOMHTMLElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementUnstable.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementUnstable.h new file mode 100644 index 000000000..cf3b73ecf --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementUnstable.h @@ -0,0 +1,29 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLElementUnstable_h +#define WebKitDOMHTMLElementUnstable_h + +#ifdef WEBKIT_DOM_USE_UNSTABLE_API +#define __WEBKITDOM_H_INSIDE__ +#include <webkitdom/WebKitDOMHTMLElement.h> +#undef __WEBKITDOM_H_INSIDE__ +#endif /* WEBKIT_DOM_USE_UNSTABLE_API */ + +#endif /* WebKitDOMHTMLElementUnstable_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp new file mode 100644 index 000000000..f80d2b89a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp @@ -0,0 +1,347 @@ +/* + * 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 "WebKitDOMHTMLEmbedElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLEmbedElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLEmbedElement* kit(WebCore::HTMLEmbedElement* obj) +{ + return WEBKIT_DOM_HTML_EMBED_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLEmbedElement* core(WebKitDOMHTMLEmbedElement* request) +{ + return request ? static_cast<WebCore::HTMLEmbedElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLEmbedElement* wrapHTMLEmbedElement(WebCore::HTMLEmbedElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_EMBED_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_embed_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLEmbedElement* coreTarget = static_cast<WebCore::HTMLEmbedElement*>(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_html_embed_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLEmbedElement* coreTarget = static_cast<WebCore::HTMLEmbedElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_embed_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLEmbedElement* coreTarget = static_cast<WebCore::HTMLEmbedElement*>(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_html_embed_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_embed_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_embed_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLEmbedElement, webkit_dom_html_embed_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, + PROP_HEIGHT, + PROP_NAME, + PROP_SRC, + PROP_TYPE, + PROP_WIDTH, +}; + +static void webkit_dom_html_embed_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLEmbedElement* self = WEBKIT_DOM_HTML_EMBED_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_embed_element_set_align(self, g_value_get_string(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_embed_element_set_height(self, g_value_get_long(value)); + break; + case PROP_NAME: + webkit_dom_html_embed_element_set_name(self, g_value_get_string(value)); + break; + case PROP_SRC: + webkit_dom_html_embed_element_set_src(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_embed_element_set_type_attr(self, g_value_get_string(value)); + break; + case PROP_WIDTH: + webkit_dom_html_embed_element_set_width(self, g_value_get_long(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_embed_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLEmbedElement* self = WEBKIT_DOM_HTML_EMBED_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_embed_element_get_align(self)); + break; + case PROP_HEIGHT: + g_value_set_long(value, webkit_dom_html_embed_element_get_height(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_embed_element_get_name(self)); + break; + case PROP_SRC: + g_value_take_string(value, webkit_dom_html_embed_element_get_src(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_embed_element_get_type_attr(self)); + break; + case PROP_WIDTH: + g_value_set_long(value, webkit_dom_html_embed_element_get_width(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_embed_element_class_init(WebKitDOMHTMLEmbedElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_embed_element_set_property; + gobjectClass->get_property = webkit_dom_html_embed_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLEmbedElement:align", + "read-write gchar* HTMLEmbedElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_long( + "height", + "HTMLEmbedElement:height", + "read-write glong HTMLEmbedElement:height", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLEmbedElement:name", + "read-write gchar* HTMLEmbedElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SRC, + g_param_spec_string( + "src", + "HTMLEmbedElement:src", + "read-write gchar* HTMLEmbedElement:src", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLEmbedElement:type", + "read-write gchar* HTMLEmbedElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_long( + "width", + "HTMLEmbedElement:width", + "read-write glong HTMLEmbedElement:width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_embed_element_init(WebKitDOMHTMLEmbedElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_embed_element_get_align(WebKitDOMHTMLEmbedElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_embed_element_set_align(WebKitDOMHTMLEmbedElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +glong webkit_dom_html_embed_element_get_height(WebKitDOMHTMLEmbedElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::heightAttr); + return result; +} + +void webkit_dom_html_embed_element_set_height(WebKitDOMHTMLEmbedElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::heightAttr, value); +} + +gchar* webkit_dom_html_embed_element_get_name(WebKitDOMHTMLEmbedElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_embed_element_set_name(WebKitDOMHTMLEmbedElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_embed_element_get_src(WebKitDOMHTMLEmbedElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr)); + return result; +} + +void webkit_dom_html_embed_element_set_src(WebKitDOMHTMLEmbedElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::srcAttr, convertedValue); +} + +gchar* webkit_dom_html_embed_element_get_type_attr(WebKitDOMHTMLEmbedElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_embed_element_set_type_attr(WebKitDOMHTMLEmbedElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + +glong webkit_dom_html_embed_element_get_width(WebKitDOMHTMLEmbedElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::widthAttr); + return result; +} + +void webkit_dom_html_embed_element_set_width(WebKitDOMHTMLEmbedElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self)); + WebCore::HTMLEmbedElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.h new file mode 100644 index 000000000..68d23330c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.h @@ -0,0 +1,161 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLEmbedElement_h +#define WebKitDOMHTMLEmbedElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT (webkit_dom_html_embed_element_get_type()) +#define WEBKIT_DOM_HTML_EMBED_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT, WebKitDOMHTMLEmbedElement)) +#define WEBKIT_DOM_HTML_EMBED_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT, WebKitDOMHTMLEmbedElementClass) +#define WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_EMBED_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT)) +#define WEBKIT_DOM_HTML_EMBED_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT, WebKitDOMHTMLEmbedElementClass)) + +struct _WebKitDOMHTMLEmbedElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLEmbedElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_embed_element_get_type(void); + +/** + * webkit_dom_html_embed_element_get_align: + * @self: A #WebKitDOMHTMLEmbedElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_embed_element_get_align(WebKitDOMHTMLEmbedElement* self); + +/** + * webkit_dom_html_embed_element_set_align: + * @self: A #WebKitDOMHTMLEmbedElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_embed_element_set_align(WebKitDOMHTMLEmbedElement* self, const gchar* value); + +/** + * webkit_dom_html_embed_element_get_height: + * @self: A #WebKitDOMHTMLEmbedElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_embed_element_get_height(WebKitDOMHTMLEmbedElement* self); + +/** + * webkit_dom_html_embed_element_set_height: + * @self: A #WebKitDOMHTMLEmbedElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_embed_element_set_height(WebKitDOMHTMLEmbedElement* self, glong value); + +/** + * webkit_dom_html_embed_element_get_name: + * @self: A #WebKitDOMHTMLEmbedElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_embed_element_get_name(WebKitDOMHTMLEmbedElement* self); + +/** + * webkit_dom_html_embed_element_set_name: + * @self: A #WebKitDOMHTMLEmbedElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_embed_element_set_name(WebKitDOMHTMLEmbedElement* self, const gchar* value); + +/** + * webkit_dom_html_embed_element_get_src: + * @self: A #WebKitDOMHTMLEmbedElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_embed_element_get_src(WebKitDOMHTMLEmbedElement* self); + +/** + * webkit_dom_html_embed_element_set_src: + * @self: A #WebKitDOMHTMLEmbedElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_embed_element_set_src(WebKitDOMHTMLEmbedElement* self, const gchar* value); + +/** + * webkit_dom_html_embed_element_get_type_attr: + * @self: A #WebKitDOMHTMLEmbedElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_embed_element_get_type_attr(WebKitDOMHTMLEmbedElement* self); + +/** + * webkit_dom_html_embed_element_set_type_attr: + * @self: A #WebKitDOMHTMLEmbedElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_embed_element_set_type_attr(WebKitDOMHTMLEmbedElement* self, const gchar* value); + +/** + * webkit_dom_html_embed_element_get_width: + * @self: A #WebKitDOMHTMLEmbedElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_embed_element_get_width(WebKitDOMHTMLEmbedElement* self); + +/** + * webkit_dom_html_embed_element_set_width: + * @self: A #WebKitDOMHTMLEmbedElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_embed_element_set_width(WebKitDOMHTMLEmbedElement* self, glong value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLEmbedElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElementPrivate.h new file mode 100644 index 000000000..a9d657e4c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLEmbedElementPrivate_h +#define WebKitDOMHTMLEmbedElementPrivate_h + +#include <WebCore/HTMLEmbedElement.h> +#include <webkitdom/WebKitDOMHTMLEmbedElement.h> + +namespace WebKit { +WebKitDOMHTMLEmbedElement* wrapHTMLEmbedElement(WebCore::HTMLEmbedElement*); +WebKitDOMHTMLEmbedElement* kit(WebCore::HTMLEmbedElement*); +WebCore::HTMLEmbedElement* core(WebKitDOMHTMLEmbedElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLEmbedElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp new file mode 100644 index 000000000..1aaa179a6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp @@ -0,0 +1,146 @@ +/* + * 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 "WebKitDOMHTMLFieldSetElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLFieldSetElementPrivate.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLFieldSetElement* kit(WebCore::HTMLFieldSetElement* obj) +{ + return WEBKIT_DOM_HTML_FIELD_SET_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLFieldSetElement* core(WebKitDOMHTMLFieldSetElement* request) +{ + return request ? static_cast<WebCore::HTMLFieldSetElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLFieldSetElement* wrapHTMLFieldSetElement(WebCore::HTMLFieldSetElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_FIELD_SET_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_field_set_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLFieldSetElement* coreTarget = static_cast<WebCore::HTMLFieldSetElement*>(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_html_field_set_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFieldSetElement* coreTarget = static_cast<WebCore::HTMLFieldSetElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_field_set_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFieldSetElement* coreTarget = static_cast<WebCore::HTMLFieldSetElement*>(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_html_field_set_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_field_set_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_field_set_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLFieldSetElement, webkit_dom_html_field_set_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_FORM, +}; + +static void webkit_dom_html_field_set_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFieldSetElement* self = WEBKIT_DOM_HTML_FIELD_SET_ELEMENT(object); + + switch (propertyId) { + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_field_set_element_get_form(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_field_set_element_class_init(WebKitDOMHTMLFieldSetElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_html_field_set_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLFieldSetElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLFieldSetElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_html_field_set_element_init(WebKitDOMHTMLFieldSetElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_field_set_element_get_form(WebKitDOMHTMLFieldSetElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FIELD_SET_ELEMENT(self), 0); + WebCore::HTMLFieldSetElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.h new file mode 100644 index 000000000..b8766177b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.h @@ -0,0 +1,62 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLFieldSetElement_h +#define WebKitDOMHTMLFieldSetElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT (webkit_dom_html_field_set_element_get_type()) +#define WEBKIT_DOM_HTML_FIELD_SET_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT, WebKitDOMHTMLFieldSetElement)) +#define WEBKIT_DOM_HTML_FIELD_SET_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT, WebKitDOMHTMLFieldSetElementClass) +#define WEBKIT_DOM_IS_HTML_FIELD_SET_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_FIELD_SET_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT)) +#define WEBKIT_DOM_HTML_FIELD_SET_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT, WebKitDOMHTMLFieldSetElementClass)) + +struct _WebKitDOMHTMLFieldSetElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLFieldSetElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_field_set_element_get_type(void); + +/** + * webkit_dom_html_field_set_element_get_form: + * @self: A #WebKitDOMHTMLFieldSetElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_field_set_element_get_form(WebKitDOMHTMLFieldSetElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLFieldSetElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElementPrivate.h new file mode 100644 index 000000000..59f7740a4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLFieldSetElementPrivate_h +#define WebKitDOMHTMLFieldSetElementPrivate_h + +#include <WebCore/HTMLFieldSetElement.h> +#include <webkitdom/WebKitDOMHTMLFieldSetElement.h> + +namespace WebKit { +WebKitDOMHTMLFieldSetElement* wrapHTMLFieldSetElement(WebCore::HTMLFieldSetElement*); +WebKitDOMHTMLFieldSetElement* kit(WebCore::HTMLFieldSetElement*); +WebCore::HTMLFieldSetElement* core(WebKitDOMHTMLFieldSetElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLFieldSetElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp new file mode 100644 index 000000000..f38839309 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp @@ -0,0 +1,243 @@ +/* + * 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 "WebKitDOMHTMLFontElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLFontElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLFontElement* kit(WebCore::HTMLFontElement* obj) +{ + return WEBKIT_DOM_HTML_FONT_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLFontElement* core(WebKitDOMHTMLFontElement* request) +{ + return request ? static_cast<WebCore::HTMLFontElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLFontElement* wrapHTMLFontElement(WebCore::HTMLFontElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_FONT_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_font_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLFontElement* coreTarget = static_cast<WebCore::HTMLFontElement*>(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_html_font_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFontElement* coreTarget = static_cast<WebCore::HTMLFontElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_font_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFontElement* coreTarget = static_cast<WebCore::HTMLFontElement*>(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_html_font_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_font_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_font_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLFontElement, webkit_dom_html_font_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_COLOR, + PROP_FACE, + PROP_SIZE, +}; + +static void webkit_dom_html_font_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFontElement* self = WEBKIT_DOM_HTML_FONT_ELEMENT(object); + + switch (propertyId) { + case PROP_COLOR: + webkit_dom_html_font_element_set_color(self, g_value_get_string(value)); + break; + case PROP_FACE: + webkit_dom_html_font_element_set_face(self, g_value_get_string(value)); + break; + case PROP_SIZE: + webkit_dom_html_font_element_set_size(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_font_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFontElement* self = WEBKIT_DOM_HTML_FONT_ELEMENT(object); + + switch (propertyId) { + case PROP_COLOR: + g_value_take_string(value, webkit_dom_html_font_element_get_color(self)); + break; + case PROP_FACE: + g_value_take_string(value, webkit_dom_html_font_element_get_face(self)); + break; + case PROP_SIZE: + g_value_take_string(value, webkit_dom_html_font_element_get_size(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_font_element_class_init(WebKitDOMHTMLFontElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_font_element_set_property; + gobjectClass->get_property = webkit_dom_html_font_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_COLOR, + g_param_spec_string( + "color", + "HTMLFontElement:color", + "read-write gchar* HTMLFontElement:color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FACE, + g_param_spec_string( + "face", + "HTMLFontElement:face", + "read-write gchar* HTMLFontElement:face", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SIZE, + g_param_spec_string( + "size", + "HTMLFontElement:size", + "read-write gchar* HTMLFontElement:size", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_font_element_init(WebKitDOMHTMLFontElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_font_element_get_color(WebKitDOMHTMLFontElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FONT_ELEMENT(self), 0); + WebCore::HTMLFontElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::colorAttr)); + return result; +} + +void webkit_dom_html_font_element_set_color(WebKitDOMHTMLFontElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FONT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFontElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::colorAttr, convertedValue); +} + +gchar* webkit_dom_html_font_element_get_face(WebKitDOMHTMLFontElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FONT_ELEMENT(self), 0); + WebCore::HTMLFontElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::faceAttr)); + return result; +} + +void webkit_dom_html_font_element_set_face(WebKitDOMHTMLFontElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FONT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFontElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::faceAttr, convertedValue); +} + +gchar* webkit_dom_html_font_element_get_size(WebKitDOMHTMLFontElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FONT_ELEMENT(self), 0); + WebCore::HTMLFontElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::sizeAttr)); + return result; +} + +void webkit_dom_html_font_element_set_size(WebKitDOMHTMLFontElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FONT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFontElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::sizeAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.h new file mode 100644 index 000000000..8a2e08231 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.h @@ -0,0 +1,107 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLFontElement_h +#define WebKitDOMHTMLFontElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT (webkit_dom_html_font_element_get_type()) +#define WEBKIT_DOM_HTML_FONT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT, WebKitDOMHTMLFontElement)) +#define WEBKIT_DOM_HTML_FONT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT, WebKitDOMHTMLFontElementClass) +#define WEBKIT_DOM_IS_HTML_FONT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_FONT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT)) +#define WEBKIT_DOM_HTML_FONT_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT, WebKitDOMHTMLFontElementClass)) + +struct _WebKitDOMHTMLFontElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLFontElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_font_element_get_type(void); + +/** + * webkit_dom_html_font_element_get_color: + * @self: A #WebKitDOMHTMLFontElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_font_element_get_color(WebKitDOMHTMLFontElement* self); + +/** + * webkit_dom_html_font_element_set_color: + * @self: A #WebKitDOMHTMLFontElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_font_element_set_color(WebKitDOMHTMLFontElement* self, const gchar* value); + +/** + * webkit_dom_html_font_element_get_face: + * @self: A #WebKitDOMHTMLFontElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_font_element_get_face(WebKitDOMHTMLFontElement* self); + +/** + * webkit_dom_html_font_element_set_face: + * @self: A #WebKitDOMHTMLFontElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_font_element_set_face(WebKitDOMHTMLFontElement* self, const gchar* value); + +/** + * webkit_dom_html_font_element_get_size: + * @self: A #WebKitDOMHTMLFontElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_font_element_get_size(WebKitDOMHTMLFontElement* self); + +/** + * webkit_dom_html_font_element_set_size: + * @self: A #WebKitDOMHTMLFontElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_font_element_set_size(WebKitDOMHTMLFontElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLFontElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElementPrivate.h new file mode 100644 index 000000000..eaabd4863 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLFontElementPrivate_h +#define WebKitDOMHTMLFontElementPrivate_h + +#include <WebCore/HTMLFontElement.h> +#include <webkitdom/WebKitDOMHTMLFontElement.h> + +namespace WebKit { +WebKitDOMHTMLFontElement* wrapHTMLFontElement(WebCore::HTMLFontElement*); +WebKitDOMHTMLFontElement* kit(WebCore::HTMLFontElement*); +WebCore::HTMLFontElement* core(WebKitDOMHTMLFontElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLFontElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp new file mode 100644 index 000000000..b08ab0eb5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp @@ -0,0 +1,448 @@ +/* + * 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 "WebKitDOMHTMLFormElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLFormElement* kit(WebCore::HTMLFormElement* obj) +{ + return WEBKIT_DOM_HTML_FORM_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLFormElement* core(WebKitDOMHTMLFormElement* request) +{ + return request ? static_cast<WebCore::HTMLFormElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLFormElement* wrapHTMLFormElement(WebCore::HTMLFormElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_FORM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_form_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLFormElement* coreTarget = static_cast<WebCore::HTMLFormElement*>(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_html_form_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFormElement* coreTarget = static_cast<WebCore::HTMLFormElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_form_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFormElement* coreTarget = static_cast<WebCore::HTMLFormElement*>(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_html_form_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_form_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_form_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLFormElement, webkit_dom_html_form_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ACCEPT_CHARSET, + PROP_ACTION, + PROP_ENCTYPE, + PROP_ENCODING, + PROP_METHOD, + PROP_NAME, + PROP_TARGET, + PROP_ELEMENTS, + PROP_LENGTH, +}; + +static void webkit_dom_html_form_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFormElement* self = WEBKIT_DOM_HTML_FORM_ELEMENT(object); + + switch (propertyId) { + case PROP_ACCEPT_CHARSET: + webkit_dom_html_form_element_set_accept_charset(self, g_value_get_string(value)); + break; + case PROP_ACTION: + webkit_dom_html_form_element_set_action(self, g_value_get_string(value)); + break; + case PROP_ENCTYPE: + webkit_dom_html_form_element_set_enctype(self, g_value_get_string(value)); + break; + case PROP_ENCODING: + webkit_dom_html_form_element_set_encoding(self, g_value_get_string(value)); + break; + case PROP_METHOD: + webkit_dom_html_form_element_set_method(self, g_value_get_string(value)); + break; + case PROP_NAME: + webkit_dom_html_form_element_set_name(self, g_value_get_string(value)); + break; + case PROP_TARGET: + webkit_dom_html_form_element_set_target(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_form_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFormElement* self = WEBKIT_DOM_HTML_FORM_ELEMENT(object); + + switch (propertyId) { + case PROP_ACCEPT_CHARSET: + g_value_take_string(value, webkit_dom_html_form_element_get_accept_charset(self)); + break; + case PROP_ACTION: + g_value_take_string(value, webkit_dom_html_form_element_get_action(self)); + break; + case PROP_ENCTYPE: + g_value_take_string(value, webkit_dom_html_form_element_get_enctype(self)); + break; + case PROP_ENCODING: + g_value_take_string(value, webkit_dom_html_form_element_get_encoding(self)); + break; + case PROP_METHOD: + g_value_take_string(value, webkit_dom_html_form_element_get_method(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_form_element_get_name(self)); + break; + case PROP_TARGET: + g_value_take_string(value, webkit_dom_html_form_element_get_target(self)); + break; + case PROP_ELEMENTS: + g_value_set_object(value, webkit_dom_html_form_element_get_elements(self)); + break; + case PROP_LENGTH: + g_value_set_long(value, webkit_dom_html_form_element_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_form_element_class_init(WebKitDOMHTMLFormElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_form_element_set_property; + gobjectClass->get_property = webkit_dom_html_form_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ACCEPT_CHARSET, + g_param_spec_string( + "accept-charset", + "HTMLFormElement:accept-charset", + "read-write gchar* HTMLFormElement:accept-charset", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ACTION, + g_param_spec_string( + "action", + "HTMLFormElement:action", + "read-write gchar* HTMLFormElement:action", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ENCTYPE, + g_param_spec_string( + "enctype", + "HTMLFormElement:enctype", + "read-write gchar* HTMLFormElement:enctype", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ENCODING, + g_param_spec_string( + "encoding", + "HTMLFormElement:encoding", + "read-write gchar* HTMLFormElement:encoding", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_METHOD, + g_param_spec_string( + "method", + "HTMLFormElement:method", + "read-write gchar* HTMLFormElement:method", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLFormElement:name", + "read-write gchar* HTMLFormElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TARGET, + g_param_spec_string( + "target", + "HTMLFormElement:target", + "read-write gchar* HTMLFormElement:target", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ELEMENTS, + g_param_spec_object( + "elements", + "HTMLFormElement:elements", + "read-only WebKitDOMHTMLCollection* HTMLFormElement:elements", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_long( + "length", + "HTMLFormElement:length", + "read-only glong HTMLFormElement:length", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_html_form_element_init(WebKitDOMHTMLFormElement* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_html_form_element_submit(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + WebCore::HTMLFormElement* item = WebKit::core(self); + item->submit(); +} + +void webkit_dom_html_form_element_reset(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + WebCore::HTMLFormElement* item = WebKit::core(self); + item->reset(); +} + +gchar* webkit_dom_html_form_element_get_accept_charset(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::accept_charsetAttr)); + return result; +} + +void webkit_dom_html_form_element_set_accept_charset(WebKitDOMHTMLFormElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::accept_charsetAttr, convertedValue); +} + +gchar* webkit_dom_html_form_element_get_action(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::actionAttr)); + return result; +} + +void webkit_dom_html_form_element_set_action(WebKitDOMHTMLFormElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::actionAttr, convertedValue); +} + +gchar* webkit_dom_html_form_element_get_enctype(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->enctype()); + return result; +} + +void webkit_dom_html_form_element_set_enctype(WebKitDOMHTMLFormElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setEnctype(convertedValue); +} + +gchar* webkit_dom_html_form_element_get_encoding(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->enctype()); + return result; +} + +void webkit_dom_html_form_element_set_encoding(WebKitDOMHTMLFormElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setEnctype(convertedValue); +} + +gchar* webkit_dom_html_form_element_get_method(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->method()); + return result; +} + +void webkit_dom_html_form_element_set_method(WebKitDOMHTMLFormElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setMethod(convertedValue); +} + +gchar* webkit_dom_html_form_element_get_name(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_form_element_set_name(WebKitDOMHTMLFormElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_form_element_get_target(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::targetAttr)); + return result; +} + +void webkit_dom_html_form_element_set_target(WebKitDOMHTMLFormElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::targetAttr, convertedValue); +} + +WebKitDOMHTMLCollection* webkit_dom_html_form_element_get_elements(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->elementsForNativeBindings()); + return WebKit::kit(gobjectResult.get()); +} + +glong webkit_dom_html_form_element_get_length(WebKitDOMHTMLFormElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self), 0); + WebCore::HTMLFormElement* item = WebKit::core(self); + glong result = item->length(); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.h new file mode 100644 index 000000000..b9ef8a65b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.h @@ -0,0 +1,213 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLFormElement_h +#define WebKitDOMHTMLFormElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT (webkit_dom_html_form_element_get_type()) +#define WEBKIT_DOM_HTML_FORM_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, WebKitDOMHTMLFormElement)) +#define WEBKIT_DOM_HTML_FORM_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, WebKitDOMHTMLFormElementClass) +#define WEBKIT_DOM_IS_HTML_FORM_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_FORM_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT)) +#define WEBKIT_DOM_HTML_FORM_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, WebKitDOMHTMLFormElementClass)) + +struct _WebKitDOMHTMLFormElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLFormElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_form_element_get_type(void); + +/** + * webkit_dom_html_form_element_submit: + * @self: A #WebKitDOMHTMLFormElement + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_submit(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_reset: + * @self: A #WebKitDOMHTMLFormElement + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_reset(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_get_accept_charset: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_form_element_get_accept_charset(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_set_accept_charset: + * @self: A #WebKitDOMHTMLFormElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_set_accept_charset(WebKitDOMHTMLFormElement* self, const gchar* value); + +/** + * webkit_dom_html_form_element_get_action: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_form_element_get_action(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_set_action: + * @self: A #WebKitDOMHTMLFormElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_set_action(WebKitDOMHTMLFormElement* self, const gchar* value); + +/** + * webkit_dom_html_form_element_get_enctype: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_form_element_get_enctype(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_set_enctype: + * @self: A #WebKitDOMHTMLFormElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_set_enctype(WebKitDOMHTMLFormElement* self, const gchar* value); + +/** + * webkit_dom_html_form_element_get_encoding: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_form_element_get_encoding(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_set_encoding: + * @self: A #WebKitDOMHTMLFormElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_set_encoding(WebKitDOMHTMLFormElement* self, const gchar* value); + +/** + * webkit_dom_html_form_element_get_method: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_form_element_get_method(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_set_method: + * @self: A #WebKitDOMHTMLFormElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_set_method(WebKitDOMHTMLFormElement* self, const gchar* value); + +/** + * webkit_dom_html_form_element_get_name: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_form_element_get_name(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_set_name: + * @self: A #WebKitDOMHTMLFormElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_set_name(WebKitDOMHTMLFormElement* self, const gchar* value); + +/** + * webkit_dom_html_form_element_get_target: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_form_element_get_target(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_set_target: + * @self: A #WebKitDOMHTMLFormElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_form_element_set_target(WebKitDOMHTMLFormElement* self, const gchar* value); + +/** + * webkit_dom_html_form_element_get_elements: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_html_form_element_get_elements(WebKitDOMHTMLFormElement* self); + +/** + * webkit_dom_html_form_element_get_length: + * @self: A #WebKitDOMHTMLFormElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_form_element_get_length(WebKitDOMHTMLFormElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLFormElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElementPrivate.h new file mode 100644 index 000000000..82038dfc3 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLFormElementPrivate_h +#define WebKitDOMHTMLFormElementPrivate_h + +#include <WebCore/HTMLFormElement.h> +#include <webkitdom/WebKitDOMHTMLFormElement.h> + +namespace WebKit { +WebKitDOMHTMLFormElement* wrapHTMLFormElement(WebCore::HTMLFormElement*); +WebKitDOMHTMLFormElement* kit(WebCore::HTMLFormElement*); +WebCore::HTMLFormElement* core(WebKitDOMHTMLFormElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLFormElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp new file mode 100644 index 000000000..272929892 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp @@ -0,0 +1,515 @@ +/* + * 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 "WebKitDOMHTMLFrameElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLFrameElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLFrameElement* kit(WebCore::HTMLFrameElement* obj) +{ + return WEBKIT_DOM_HTML_FRAME_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLFrameElement* core(WebKitDOMHTMLFrameElement* request) +{ + return request ? static_cast<WebCore::HTMLFrameElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLFrameElement* wrapHTMLFrameElement(WebCore::HTMLFrameElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_FRAME_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_frame_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLFrameElement* coreTarget = static_cast<WebCore::HTMLFrameElement*>(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_html_frame_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFrameElement* coreTarget = static_cast<WebCore::HTMLFrameElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_frame_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFrameElement* coreTarget = static_cast<WebCore::HTMLFrameElement*>(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_html_frame_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_frame_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_frame_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLFrameElement, webkit_dom_html_frame_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_FRAME_BORDER, + PROP_LONG_DESC, + PROP_MARGIN_HEIGHT, + PROP_MARGIN_WIDTH, + PROP_NAME, + PROP_NO_RESIZE, + PROP_SCROLLING, + PROP_SRC, + PROP_CONTENT_DOCUMENT, + PROP_CONTENT_WINDOW, + PROP_WIDTH, + PROP_HEIGHT, +}; + +static void webkit_dom_html_frame_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFrameElement* self = WEBKIT_DOM_HTML_FRAME_ELEMENT(object); + + switch (propertyId) { + case PROP_FRAME_BORDER: + webkit_dom_html_frame_element_set_frame_border(self, g_value_get_string(value)); + break; + case PROP_LONG_DESC: + webkit_dom_html_frame_element_set_long_desc(self, g_value_get_string(value)); + break; + case PROP_MARGIN_HEIGHT: + webkit_dom_html_frame_element_set_margin_height(self, g_value_get_string(value)); + break; + case PROP_MARGIN_WIDTH: + webkit_dom_html_frame_element_set_margin_width(self, g_value_get_string(value)); + break; + case PROP_NAME: + webkit_dom_html_frame_element_set_name(self, g_value_get_string(value)); + break; + case PROP_NO_RESIZE: + webkit_dom_html_frame_element_set_no_resize(self, g_value_get_boolean(value)); + break; + case PROP_SCROLLING: + webkit_dom_html_frame_element_set_scrolling(self, g_value_get_string(value)); + break; + case PROP_SRC: + webkit_dom_html_frame_element_set_src(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_frame_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFrameElement* self = WEBKIT_DOM_HTML_FRAME_ELEMENT(object); + + switch (propertyId) { + case PROP_FRAME_BORDER: + g_value_take_string(value, webkit_dom_html_frame_element_get_frame_border(self)); + break; + case PROP_LONG_DESC: + g_value_take_string(value, webkit_dom_html_frame_element_get_long_desc(self)); + break; + case PROP_MARGIN_HEIGHT: + g_value_take_string(value, webkit_dom_html_frame_element_get_margin_height(self)); + break; + case PROP_MARGIN_WIDTH: + g_value_take_string(value, webkit_dom_html_frame_element_get_margin_width(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_frame_element_get_name(self)); + break; + case PROP_NO_RESIZE: + g_value_set_boolean(value, webkit_dom_html_frame_element_get_no_resize(self)); + break; + case PROP_SCROLLING: + g_value_take_string(value, webkit_dom_html_frame_element_get_scrolling(self)); + break; + case PROP_SRC: + g_value_take_string(value, webkit_dom_html_frame_element_get_src(self)); + break; + case PROP_CONTENT_DOCUMENT: + g_value_set_object(value, webkit_dom_html_frame_element_get_content_document(self)); + break; + case PROP_CONTENT_WINDOW: + g_value_set_object(value, webkit_dom_html_frame_element_get_content_window(self)); + break; + case PROP_WIDTH: + g_value_set_long(value, webkit_dom_html_frame_element_get_width(self)); + break; + case PROP_HEIGHT: + g_value_set_long(value, webkit_dom_html_frame_element_get_height(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_frame_element_class_init(WebKitDOMHTMLFrameElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_frame_element_set_property; + gobjectClass->get_property = webkit_dom_html_frame_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_FRAME_BORDER, + g_param_spec_string( + "frame-border", + "HTMLFrameElement:frame-border", + "read-write gchar* HTMLFrameElement:frame-border", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LONG_DESC, + g_param_spec_string( + "long-desc", + "HTMLFrameElement:long-desc", + "read-write gchar* HTMLFrameElement:long-desc", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MARGIN_HEIGHT, + g_param_spec_string( + "margin-height", + "HTMLFrameElement:margin-height", + "read-write gchar* HTMLFrameElement:margin-height", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MARGIN_WIDTH, + g_param_spec_string( + "margin-width", + "HTMLFrameElement:margin-width", + "read-write gchar* HTMLFrameElement:margin-width", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLFrameElement:name", + "read-write gchar* HTMLFrameElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NO_RESIZE, + g_param_spec_boolean( + "no-resize", + "HTMLFrameElement:no-resize", + "read-write gboolean HTMLFrameElement:no-resize", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCROLLING, + g_param_spec_string( + "scrolling", + "HTMLFrameElement:scrolling", + "read-write gchar* HTMLFrameElement:scrolling", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SRC, + g_param_spec_string( + "src", + "HTMLFrameElement:src", + "read-write gchar* HTMLFrameElement:src", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT_DOCUMENT, + g_param_spec_object( + "content-document", + "HTMLFrameElement:content-document", + "read-only WebKitDOMDocument* HTMLFrameElement:content-document", + WEBKIT_DOM_TYPE_DOCUMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT_WINDOW, + g_param_spec_object( + "content-window", + "HTMLFrameElement:content-window", + "read-only WebKitDOMDOMWindow* HTMLFrameElement:content-window", + WEBKIT_DOM_TYPE_DOM_WINDOW, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_long( + "width", + "HTMLFrameElement:width", + "read-only glong HTMLFrameElement:width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_long( + "height", + "HTMLFrameElement:height", + "read-only glong HTMLFrameElement:height", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_frame_element_init(WebKitDOMHTMLFrameElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_frame_element_get_frame_border(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::frameborderAttr)); + return result; +} + +void webkit_dom_html_frame_element_set_frame_border(WebKitDOMHTMLFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::frameborderAttr, convertedValue); +} + +gchar* webkit_dom_html_frame_element_get_long_desc(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::longdescAttr)); + return result; +} + +void webkit_dom_html_frame_element_set_long_desc(WebKitDOMHTMLFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::longdescAttr, convertedValue); +} + +gchar* webkit_dom_html_frame_element_get_margin_height(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::marginheightAttr)); + return result; +} + +void webkit_dom_html_frame_element_set_margin_height(WebKitDOMHTMLFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::marginheightAttr, convertedValue); +} + +gchar* webkit_dom_html_frame_element_get_margin_width(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::marginwidthAttr)); + return result; +} + +void webkit_dom_html_frame_element_set_margin_width(WebKitDOMHTMLFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::marginwidthAttr, convertedValue); +} + +gchar* webkit_dom_html_frame_element_get_name(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_frame_element_set_name(WebKitDOMHTMLFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gboolean webkit_dom_html_frame_element_get_no_resize(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), FALSE); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::noresizeAttr); + return result; +} + +void webkit_dom_html_frame_element_set_no_resize(WebKitDOMHTMLFrameElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + WebCore::HTMLFrameElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::noresizeAttr, value); +} + +gchar* webkit_dom_html_frame_element_get_scrolling(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::scrollingAttr)); + return result; +} + +void webkit_dom_html_frame_element_set_scrolling(WebKitDOMHTMLFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::scrollingAttr, convertedValue); +} + +gchar* webkit_dom_html_frame_element_get_src(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr)); + return result; +} + +void webkit_dom_html_frame_element_set_src(WebKitDOMHTMLFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::srcAttr, convertedValue); +} + +WebKitDOMDocument* webkit_dom_html_frame_element_get_content_document(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + RefPtr<WebCore::Document> gobjectResult = WTF::getPtr(item->contentDocument()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMDOMWindow* webkit_dom_html_frame_element_get_content_window(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->contentWindow()); + return WebKit::kit(gobjectResult.get()); +} + +glong webkit_dom_html_frame_element_get_width(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + glong result = item->width(); + return result; +} + +glong webkit_dom_html_frame_element_get_height(WebKitDOMHTMLFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(self), 0); + WebCore::HTMLFrameElement* item = WebKit::core(self); + glong result = item->height(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.h new file mode 100644 index 000000000..73c7bcc2f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.h @@ -0,0 +1,233 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLFrameElement_h +#define WebKitDOMHTMLFrameElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT (webkit_dom_html_frame_element_get_type()) +#define WEBKIT_DOM_HTML_FRAME_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT, WebKitDOMHTMLFrameElement)) +#define WEBKIT_DOM_HTML_FRAME_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT, WebKitDOMHTMLFrameElementClass) +#define WEBKIT_DOM_IS_HTML_FRAME_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_FRAME_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT)) +#define WEBKIT_DOM_HTML_FRAME_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT, WebKitDOMHTMLFrameElementClass)) + +struct _WebKitDOMHTMLFrameElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLFrameElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_frame_element_get_type(void); + +/** + * webkit_dom_html_frame_element_get_frame_border: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_element_get_frame_border(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_frame_border: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_frame_border(WebKitDOMHTMLFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_element_get_long_desc: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_element_get_long_desc(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_long_desc: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_long_desc(WebKitDOMHTMLFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_element_get_margin_height: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_element_get_margin_height(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_margin_height: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_margin_height(WebKitDOMHTMLFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_element_get_margin_width: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_element_get_margin_width(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_margin_width: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_margin_width(WebKitDOMHTMLFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_element_get_name: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_element_get_name(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_name: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_name(WebKitDOMHTMLFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_element_get_no_resize: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_frame_element_get_no_resize(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_no_resize: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_no_resize(WebKitDOMHTMLFrameElement* self, gboolean value); + +/** + * webkit_dom_html_frame_element_get_scrolling: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_element_get_scrolling(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_scrolling: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_scrolling(WebKitDOMHTMLFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_element_get_src: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_element_get_src(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_set_src: + * @self: A #WebKitDOMHTMLFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_element_set_src(WebKitDOMHTMLFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_element_get_content_document: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: (transfer none): A #WebKitDOMDocument +**/ +WEBKIT_API WebKitDOMDocument* +webkit_dom_html_frame_element_get_content_document(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_get_content_window: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: (transfer full): A #WebKitDOMDOMWindow +**/ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_html_frame_element_get_content_window(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_get_width: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_frame_element_get_width(WebKitDOMHTMLFrameElement* self); + +/** + * webkit_dom_html_frame_element_get_height: + * @self: A #WebKitDOMHTMLFrameElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_frame_element_get_height(WebKitDOMHTMLFrameElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLFrameElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElementPrivate.h new file mode 100644 index 000000000..f1635ee84 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLFrameElementPrivate_h +#define WebKitDOMHTMLFrameElementPrivate_h + +#include <WebCore/HTMLFrameElement.h> +#include <webkitdom/WebKitDOMHTMLFrameElement.h> + +namespace WebKit { +WebKitDOMHTMLFrameElement* wrapHTMLFrameElement(WebCore::HTMLFrameElement*); +WebKitDOMHTMLFrameElement* kit(WebCore::HTMLFrameElement*); +WebCore::HTMLFrameElement* core(WebKitDOMHTMLFrameElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLFrameElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp new file mode 100644 index 000000000..d9b409ba2 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp @@ -0,0 +1,207 @@ +/* + * 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 "WebKitDOMHTMLFrameSetElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLFrameSetElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLFrameSetElement* kit(WebCore::HTMLFrameSetElement* obj) +{ + return WEBKIT_DOM_HTML_FRAME_SET_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLFrameSetElement* core(WebKitDOMHTMLFrameSetElement* request) +{ + return request ? static_cast<WebCore::HTMLFrameSetElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLFrameSetElement* wrapHTMLFrameSetElement(WebCore::HTMLFrameSetElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_FRAME_SET_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_frame_set_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLFrameSetElement* coreTarget = static_cast<WebCore::HTMLFrameSetElement*>(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_html_frame_set_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFrameSetElement* coreTarget = static_cast<WebCore::HTMLFrameSetElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_frame_set_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLFrameSetElement* coreTarget = static_cast<WebCore::HTMLFrameSetElement*>(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_html_frame_set_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_frame_set_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_frame_set_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLFrameSetElement, webkit_dom_html_frame_set_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_COLS, + PROP_ROWS, +}; + +static void webkit_dom_html_frame_set_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFrameSetElement* self = WEBKIT_DOM_HTML_FRAME_SET_ELEMENT(object); + + switch (propertyId) { + case PROP_COLS: + webkit_dom_html_frame_set_element_set_cols(self, g_value_get_string(value)); + break; + case PROP_ROWS: + webkit_dom_html_frame_set_element_set_rows(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_frame_set_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLFrameSetElement* self = WEBKIT_DOM_HTML_FRAME_SET_ELEMENT(object); + + switch (propertyId) { + case PROP_COLS: + g_value_take_string(value, webkit_dom_html_frame_set_element_get_cols(self)); + break; + case PROP_ROWS: + g_value_take_string(value, webkit_dom_html_frame_set_element_get_rows(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_frame_set_element_class_init(WebKitDOMHTMLFrameSetElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_frame_set_element_set_property; + gobjectClass->get_property = webkit_dom_html_frame_set_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_COLS, + g_param_spec_string( + "cols", + "HTMLFrameSetElement:cols", + "read-write gchar* HTMLFrameSetElement:cols", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ROWS, + g_param_spec_string( + "rows", + "HTMLFrameSetElement:rows", + "read-write gchar* HTMLFrameSetElement:rows", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_frame_set_element_init(WebKitDOMHTMLFrameSetElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_frame_set_element_get_cols(WebKitDOMHTMLFrameSetElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT(self), 0); + WebCore::HTMLFrameSetElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::colsAttr)); + return result; +} + +void webkit_dom_html_frame_set_element_set_cols(WebKitDOMHTMLFrameSetElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameSetElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::colsAttr, convertedValue); +} + +gchar* webkit_dom_html_frame_set_element_get_rows(WebKitDOMHTMLFrameSetElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT(self), 0); + WebCore::HTMLFrameSetElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::rowsAttr)); + return result; +} + +void webkit_dom_html_frame_set_element_set_rows(WebKitDOMHTMLFrameSetElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFrameSetElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::rowsAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.h new file mode 100644 index 000000000..ba2b1bd01 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLFrameSetElement_h +#define WebKitDOMHTMLFrameSetElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT (webkit_dom_html_frame_set_element_get_type()) +#define WEBKIT_DOM_HTML_FRAME_SET_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT, WebKitDOMHTMLFrameSetElement)) +#define WEBKIT_DOM_HTML_FRAME_SET_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT, WebKitDOMHTMLFrameSetElementClass) +#define WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT)) +#define WEBKIT_DOM_HTML_FRAME_SET_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT, WebKitDOMHTMLFrameSetElementClass)) + +struct _WebKitDOMHTMLFrameSetElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLFrameSetElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_frame_set_element_get_type(void); + +/** + * webkit_dom_html_frame_set_element_get_cols: + * @self: A #WebKitDOMHTMLFrameSetElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_set_element_get_cols(WebKitDOMHTMLFrameSetElement* self); + +/** + * webkit_dom_html_frame_set_element_set_cols: + * @self: A #WebKitDOMHTMLFrameSetElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_set_element_set_cols(WebKitDOMHTMLFrameSetElement* self, const gchar* value); + +/** + * webkit_dom_html_frame_set_element_get_rows: + * @self: A #WebKitDOMHTMLFrameSetElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_frame_set_element_get_rows(WebKitDOMHTMLFrameSetElement* self); + +/** + * webkit_dom_html_frame_set_element_set_rows: + * @self: A #WebKitDOMHTMLFrameSetElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_frame_set_element_set_rows(WebKitDOMHTMLFrameSetElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLFrameSetElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElementPrivate.h new file mode 100644 index 000000000..280c6138f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLFrameSetElementPrivate_h +#define WebKitDOMHTMLFrameSetElementPrivate_h + +#include <WebCore/HTMLFrameSetElement.h> +#include <webkitdom/WebKitDOMHTMLFrameSetElement.h> + +namespace WebKit { +WebKitDOMHTMLFrameSetElement* wrapHTMLFrameSetElement(WebCore::HTMLFrameSetElement*); +WebKitDOMHTMLFrameSetElement* kit(WebCore::HTMLFrameSetElement*); +WebCore::HTMLFrameSetElement* core(WebKitDOMHTMLFrameSetElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLFrameSetElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp new file mode 100644 index 000000000..2f0901fee --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp @@ -0,0 +1,277 @@ +/* + * 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 "WebKitDOMHTMLHRElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLHRElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLHRElement* kit(WebCore::HTMLHRElement* obj) +{ + return WEBKIT_DOM_HTML_HR_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLHRElement* core(WebKitDOMHTMLHRElement* request) +{ + return request ? static_cast<WebCore::HTMLHRElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLHRElement* wrapHTMLHRElement(WebCore::HTMLHRElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_HR_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_HR_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_hr_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLHRElement* coreTarget = static_cast<WebCore::HTMLHRElement*>(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_html_hr_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHRElement* coreTarget = static_cast<WebCore::HTMLHRElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_hr_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHRElement* coreTarget = static_cast<WebCore::HTMLHRElement*>(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_html_hr_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_hr_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_hr_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLHRElement, webkit_dom_html_hr_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, + PROP_NO_SHADE, + PROP_SIZE, + PROP_WIDTH, +}; + +static void webkit_dom_html_hr_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHRElement* self = WEBKIT_DOM_HTML_HR_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_hr_element_set_align(self, g_value_get_string(value)); + break; + case PROP_NO_SHADE: + webkit_dom_html_hr_element_set_no_shade(self, g_value_get_boolean(value)); + break; + case PROP_SIZE: + webkit_dom_html_hr_element_set_size(self, g_value_get_string(value)); + break; + case PROP_WIDTH: + webkit_dom_html_hr_element_set_width(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_hr_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHRElement* self = WEBKIT_DOM_HTML_HR_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_hr_element_get_align(self)); + break; + case PROP_NO_SHADE: + g_value_set_boolean(value, webkit_dom_html_hr_element_get_no_shade(self)); + break; + case PROP_SIZE: + g_value_take_string(value, webkit_dom_html_hr_element_get_size(self)); + break; + case PROP_WIDTH: + g_value_take_string(value, webkit_dom_html_hr_element_get_width(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_hr_element_class_init(WebKitDOMHTMLHRElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_hr_element_set_property; + gobjectClass->get_property = webkit_dom_html_hr_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLHRElement:align", + "read-write gchar* HTMLHRElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NO_SHADE, + g_param_spec_boolean( + "no-shade", + "HTMLHRElement:no-shade", + "read-write gboolean HTMLHRElement:no-shade", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SIZE, + g_param_spec_string( + "size", + "HTMLHRElement:size", + "read-write gchar* HTMLHRElement:size", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_string( + "width", + "HTMLHRElement:width", + "read-write gchar* HTMLHRElement:width", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_hr_element_init(WebKitDOMHTMLHRElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_hr_element_get_align(WebKitDOMHTMLHRElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self), 0); + WebCore::HTMLHRElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_hr_element_set_align(WebKitDOMHTMLHRElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLHRElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gboolean webkit_dom_html_hr_element_get_no_shade(WebKitDOMHTMLHRElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self), FALSE); + WebCore::HTMLHRElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::noshadeAttr); + return result; +} + +void webkit_dom_html_hr_element_set_no_shade(WebKitDOMHTMLHRElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self)); + WebCore::HTMLHRElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::noshadeAttr, value); +} + +gchar* webkit_dom_html_hr_element_get_size(WebKitDOMHTMLHRElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self), 0); + WebCore::HTMLHRElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::sizeAttr)); + return result; +} + +void webkit_dom_html_hr_element_set_size(WebKitDOMHTMLHRElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLHRElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::sizeAttr, convertedValue); +} + +gchar* webkit_dom_html_hr_element_get_width(WebKitDOMHTMLHRElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self), 0); + WebCore::HTMLHRElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::widthAttr)); + return result; +} + +void webkit_dom_html_hr_element_set_width(WebKitDOMHTMLHRElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_HR_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLHRElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::widthAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.h new file mode 100644 index 000000000..6facbc0ed --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.h @@ -0,0 +1,125 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLHRElement_h +#define WebKitDOMHTMLHRElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_HR_ELEMENT (webkit_dom_html_hr_element_get_type()) +#define WEBKIT_DOM_HTML_HR_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_HR_ELEMENT, WebKitDOMHTMLHRElement)) +#define WEBKIT_DOM_HTML_HR_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_HR_ELEMENT, WebKitDOMHTMLHRElementClass) +#define WEBKIT_DOM_IS_HTML_HR_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_HR_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_HR_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_HR_ELEMENT)) +#define WEBKIT_DOM_HTML_HR_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_HR_ELEMENT, WebKitDOMHTMLHRElementClass)) + +struct _WebKitDOMHTMLHRElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLHRElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_hr_element_get_type(void); + +/** + * webkit_dom_html_hr_element_get_align: + * @self: A #WebKitDOMHTMLHRElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_hr_element_get_align(WebKitDOMHTMLHRElement* self); + +/** + * webkit_dom_html_hr_element_set_align: + * @self: A #WebKitDOMHTMLHRElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_hr_element_set_align(WebKitDOMHTMLHRElement* self, const gchar* value); + +/** + * webkit_dom_html_hr_element_get_no_shade: + * @self: A #WebKitDOMHTMLHRElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_hr_element_get_no_shade(WebKitDOMHTMLHRElement* self); + +/** + * webkit_dom_html_hr_element_set_no_shade: + * @self: A #WebKitDOMHTMLHRElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_hr_element_set_no_shade(WebKitDOMHTMLHRElement* self, gboolean value); + +/** + * webkit_dom_html_hr_element_get_size: + * @self: A #WebKitDOMHTMLHRElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_hr_element_get_size(WebKitDOMHTMLHRElement* self); + +/** + * webkit_dom_html_hr_element_set_size: + * @self: A #WebKitDOMHTMLHRElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_hr_element_set_size(WebKitDOMHTMLHRElement* self, const gchar* value); + +/** + * webkit_dom_html_hr_element_get_width: + * @self: A #WebKitDOMHTMLHRElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_hr_element_get_width(WebKitDOMHTMLHRElement* self); + +/** + * webkit_dom_html_hr_element_set_width: + * @self: A #WebKitDOMHTMLHRElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_hr_element_set_width(WebKitDOMHTMLHRElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLHRElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElementPrivate.h new file mode 100644 index 000000000..dc12b3e77 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLHRElementPrivate_h +#define WebKitDOMHTMLHRElementPrivate_h + +#include <WebCore/HTMLHRElement.h> +#include <webkitdom/WebKitDOMHTMLHRElement.h> + +namespace WebKit { +WebKitDOMHTMLHRElement* wrapHTMLHRElement(WebCore::HTMLHRElement*); +WebKitDOMHTMLHRElement* kit(WebCore::HTMLHRElement*); +WebCore::HTMLHRElement* core(WebKitDOMHTMLHRElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLHRElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp new file mode 100644 index 000000000..f35332bf8 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp @@ -0,0 +1,171 @@ +/* + * 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 "WebKitDOMHTMLHeadElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLHeadElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLHeadElement* kit(WebCore::HTMLHeadElement* obj) +{ + return WEBKIT_DOM_HTML_HEAD_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLHeadElement* core(WebKitDOMHTMLHeadElement* request) +{ + return request ? static_cast<WebCore::HTMLHeadElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLHeadElement* wrapHTMLHeadElement(WebCore::HTMLHeadElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_HEAD_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_head_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLHeadElement* coreTarget = static_cast<WebCore::HTMLHeadElement*>(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_html_head_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHeadElement* coreTarget = static_cast<WebCore::HTMLHeadElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_head_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHeadElement* coreTarget = static_cast<WebCore::HTMLHeadElement*>(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_html_head_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_head_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_head_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLHeadElement, webkit_dom_html_head_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_PROFILE, +}; + +static void webkit_dom_html_head_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHeadElement* self = WEBKIT_DOM_HTML_HEAD_ELEMENT(object); + + switch (propertyId) { + case PROP_PROFILE: + webkit_dom_html_head_element_set_profile(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_head_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHeadElement* self = WEBKIT_DOM_HTML_HEAD_ELEMENT(object); + + switch (propertyId) { + case PROP_PROFILE: + g_value_take_string(value, webkit_dom_html_head_element_get_profile(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_head_element_class_init(WebKitDOMHTMLHeadElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_head_element_set_property; + gobjectClass->get_property = webkit_dom_html_head_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_PROFILE, + g_param_spec_string( + "profile", + "HTMLHeadElement:profile", + "read-write gchar* HTMLHeadElement:profile", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_head_element_init(WebKitDOMHTMLHeadElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_head_element_get_profile(WebKitDOMHTMLHeadElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(self), 0); + WebCore::HTMLHeadElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::profileAttr)); + return result; +} + +void webkit_dom_html_head_element_set_profile(WebKitDOMHTMLHeadElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLHeadElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::profileAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.h new file mode 100644 index 000000000..ce816ce69 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLHeadElement_h +#define WebKitDOMHTMLHeadElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT (webkit_dom_html_head_element_get_type()) +#define WEBKIT_DOM_HTML_HEAD_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT, WebKitDOMHTMLHeadElement)) +#define WEBKIT_DOM_HTML_HEAD_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT, WebKitDOMHTMLHeadElementClass) +#define WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_HEAD_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT)) +#define WEBKIT_DOM_HTML_HEAD_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT, WebKitDOMHTMLHeadElementClass)) + +struct _WebKitDOMHTMLHeadElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLHeadElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_head_element_get_type(void); + +/** + * webkit_dom_html_head_element_get_profile: + * @self: A #WebKitDOMHTMLHeadElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_head_element_get_profile(WebKitDOMHTMLHeadElement* self); + +/** + * webkit_dom_html_head_element_set_profile: + * @self: A #WebKitDOMHTMLHeadElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_head_element_set_profile(WebKitDOMHTMLHeadElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLHeadElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElementPrivate.h new file mode 100644 index 000000000..4af7a7678 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLHeadElementPrivate_h +#define WebKitDOMHTMLHeadElementPrivate_h + +#include <WebCore/HTMLHeadElement.h> +#include <webkitdom/WebKitDOMHTMLHeadElement.h> + +namespace WebKit { +WebKitDOMHTMLHeadElement* wrapHTMLHeadElement(WebCore::HTMLHeadElement*); +WebKitDOMHTMLHeadElement* kit(WebCore::HTMLHeadElement*); +WebCore::HTMLHeadElement* core(WebKitDOMHTMLHeadElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLHeadElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp new file mode 100644 index 000000000..23042a04a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp @@ -0,0 +1,171 @@ +/* + * 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 "WebKitDOMHTMLHeadingElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLHeadingElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLHeadingElement* kit(WebCore::HTMLHeadingElement* obj) +{ + return WEBKIT_DOM_HTML_HEADING_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLHeadingElement* core(WebKitDOMHTMLHeadingElement* request) +{ + return request ? static_cast<WebCore::HTMLHeadingElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLHeadingElement* wrapHTMLHeadingElement(WebCore::HTMLHeadingElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_HEADING_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_heading_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLHeadingElement* coreTarget = static_cast<WebCore::HTMLHeadingElement*>(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_html_heading_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHeadingElement* coreTarget = static_cast<WebCore::HTMLHeadingElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_heading_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHeadingElement* coreTarget = static_cast<WebCore::HTMLHeadingElement*>(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_html_heading_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_heading_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_heading_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLHeadingElement, webkit_dom_html_heading_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, +}; + +static void webkit_dom_html_heading_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHeadingElement* self = WEBKIT_DOM_HTML_HEADING_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_heading_element_set_align(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_heading_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHeadingElement* self = WEBKIT_DOM_HTML_HEADING_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_heading_element_get_align(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_heading_element_class_init(WebKitDOMHTMLHeadingElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_heading_element_set_property; + gobjectClass->get_property = webkit_dom_html_heading_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLHeadingElement:align", + "read-write gchar* HTMLHeadingElement:align", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_heading_element_init(WebKitDOMHTMLHeadingElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_heading_element_get_align(WebKitDOMHTMLHeadingElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HEADING_ELEMENT(self), 0); + WebCore::HTMLHeadingElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_heading_element_set_align(WebKitDOMHTMLHeadingElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_HEADING_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLHeadingElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.h new file mode 100644 index 000000000..470062c08 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLHeadingElement_h +#define WebKitDOMHTMLHeadingElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT (webkit_dom_html_heading_element_get_type()) +#define WEBKIT_DOM_HTML_HEADING_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT, WebKitDOMHTMLHeadingElement)) +#define WEBKIT_DOM_HTML_HEADING_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT, WebKitDOMHTMLHeadingElementClass) +#define WEBKIT_DOM_IS_HTML_HEADING_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_HEADING_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT)) +#define WEBKIT_DOM_HTML_HEADING_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT, WebKitDOMHTMLHeadingElementClass)) + +struct _WebKitDOMHTMLHeadingElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLHeadingElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_heading_element_get_type(void); + +/** + * webkit_dom_html_heading_element_get_align: + * @self: A #WebKitDOMHTMLHeadingElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_heading_element_get_align(WebKitDOMHTMLHeadingElement* self); + +/** + * webkit_dom_html_heading_element_set_align: + * @self: A #WebKitDOMHTMLHeadingElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_heading_element_set_align(WebKitDOMHTMLHeadingElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLHeadingElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElementPrivate.h new file mode 100644 index 000000000..797350bab --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLHeadingElementPrivate_h +#define WebKitDOMHTMLHeadingElementPrivate_h + +#include <WebCore/HTMLHeadingElement.h> +#include <webkitdom/WebKitDOMHTMLHeadingElement.h> + +namespace WebKit { +WebKitDOMHTMLHeadingElement* wrapHTMLHeadingElement(WebCore::HTMLHeadingElement*); +WebKitDOMHTMLHeadingElement* kit(WebCore::HTMLHeadingElement*); +WebCore::HTMLHeadingElement* core(WebKitDOMHTMLHeadingElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLHeadingElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp new file mode 100644 index 000000000..60fb941c8 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp @@ -0,0 +1,169 @@ +/* + * 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 "WebKitDOMHTMLHtmlElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLHtmlElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLHtmlElement* kit(WebCore::HTMLHtmlElement* obj) +{ + return WEBKIT_DOM_HTML_HTML_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLHtmlElement* core(WebKitDOMHTMLHtmlElement* request) +{ + return request ? static_cast<WebCore::HTMLHtmlElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLHtmlElement* wrapHTMLHtmlElement(WebCore::HTMLHtmlElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_HTML_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_html_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLHtmlElement* coreTarget = static_cast<WebCore::HTMLHtmlElement*>(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_html_html_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHtmlElement* coreTarget = static_cast<WebCore::HTMLHtmlElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_html_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLHtmlElement* coreTarget = static_cast<WebCore::HTMLHtmlElement*>(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_html_html_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_html_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_html_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLHtmlElement, webkit_dom_html_html_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_VERSION, +}; + +static void webkit_dom_html_html_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHtmlElement* self = WEBKIT_DOM_HTML_HTML_ELEMENT(object); + + switch (propertyId) { + case PROP_VERSION: + webkit_dom_html_html_element_set_version(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_html_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLHtmlElement* self = WEBKIT_DOM_HTML_HTML_ELEMENT(object); + + switch (propertyId) { + case PROP_VERSION: + g_value_take_string(value, webkit_dom_html_html_element_get_version(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_html_element_class_init(WebKitDOMHTMLHtmlElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_html_element_set_property; + gobjectClass->get_property = webkit_dom_html_html_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_VERSION, + g_param_spec_string( + "version", + "HTMLHtmlElement:version", + "read-write gchar* HTMLHtmlElement:version", + "", + WEBKIT_PARAM_READWRITE)); +} + +static void webkit_dom_html_html_element_init(WebKitDOMHTMLHtmlElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_html_element_get_version(WebKitDOMHTMLHtmlElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HTML_ELEMENT(self), 0); + WebCore::HTMLHtmlElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::versionAttr)); + return result; +} + +void webkit_dom_html_html_element_set_version(WebKitDOMHTMLHtmlElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_HTML_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLHtmlElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::versionAttr, convertedValue); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.h new file mode 100644 index 000000000..26020c5de --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLHtmlElement_h +#define WebKitDOMHTMLHtmlElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT (webkit_dom_html_html_element_get_type()) +#define WEBKIT_DOM_HTML_HTML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT, WebKitDOMHTMLHtmlElement)) +#define WEBKIT_DOM_HTML_HTML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT, WebKitDOMHTMLHtmlElementClass) +#define WEBKIT_DOM_IS_HTML_HTML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_HTML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT)) +#define WEBKIT_DOM_HTML_HTML_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT, WebKitDOMHTMLHtmlElementClass)) + +struct _WebKitDOMHTMLHtmlElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLHtmlElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_html_element_get_type(void); + +/** + * webkit_dom_html_html_element_get_version: + * @self: A #WebKitDOMHTMLHtmlElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_html_element_get_version(WebKitDOMHTMLHtmlElement* self); + +/** + * webkit_dom_html_html_element_set_version: + * @self: A #WebKitDOMHTMLHtmlElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_html_element_set_version(WebKitDOMHTMLHtmlElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLHtmlElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElementPrivate.h new file mode 100644 index 000000000..300c6f102 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLHtmlElementPrivate_h +#define WebKitDOMHTMLHtmlElementPrivate_h + +#include <WebCore/HTMLHtmlElement.h> +#include <webkitdom/WebKitDOMHTMLHtmlElement.h> + +namespace WebKit { +WebKitDOMHTMLHtmlElement* wrapHTMLHtmlElement(WebCore::HTMLHtmlElement*); +WebKitDOMHTMLHtmlElement* kit(WebCore::HTMLHtmlElement*); +WebCore::HTMLHtmlElement* core(WebKitDOMHTMLHtmlElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLHtmlElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp new file mode 100644 index 000000000..7cbd1ded9 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp @@ -0,0 +1,543 @@ +/* + * 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 "WebKitDOMHTMLIFrameElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLIFrameElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLIFrameElement* kit(WebCore::HTMLIFrameElement* obj) +{ + return WEBKIT_DOM_HTML_IFRAME_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLIFrameElement* core(WebKitDOMHTMLIFrameElement* request) +{ + return request ? static_cast<WebCore::HTMLIFrameElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLIFrameElement* wrapHTMLIFrameElement(WebCore::HTMLIFrameElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_IFRAME_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_iframe_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLIFrameElement* coreTarget = static_cast<WebCore::HTMLIFrameElement*>(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_html_iframe_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLIFrameElement* coreTarget = static_cast<WebCore::HTMLIFrameElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_iframe_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLIFrameElement* coreTarget = static_cast<WebCore::HTMLIFrameElement*>(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_html_iframe_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_iframe_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_iframe_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLIFrameElement, webkit_dom_html_iframe_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, + PROP_FRAME_BORDER, + PROP_HEIGHT, + PROP_LONG_DESC, + PROP_MARGIN_HEIGHT, + PROP_MARGIN_WIDTH, + PROP_NAME, + PROP_SCROLLING, + PROP_SRC, + PROP_WIDTH, + PROP_CONTENT_DOCUMENT, + PROP_CONTENT_WINDOW, +}; + +static void webkit_dom_html_iframe_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLIFrameElement* self = WEBKIT_DOM_HTML_IFRAME_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_iframe_element_set_align(self, g_value_get_string(value)); + break; + case PROP_FRAME_BORDER: + webkit_dom_html_iframe_element_set_frame_border(self, g_value_get_string(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_iframe_element_set_height(self, g_value_get_string(value)); + break; + case PROP_LONG_DESC: + webkit_dom_html_iframe_element_set_long_desc(self, g_value_get_string(value)); + break; + case PROP_MARGIN_HEIGHT: + webkit_dom_html_iframe_element_set_margin_height(self, g_value_get_string(value)); + break; + case PROP_MARGIN_WIDTH: + webkit_dom_html_iframe_element_set_margin_width(self, g_value_get_string(value)); + break; + case PROP_NAME: + webkit_dom_html_iframe_element_set_name(self, g_value_get_string(value)); + break; + case PROP_SCROLLING: + webkit_dom_html_iframe_element_set_scrolling(self, g_value_get_string(value)); + break; + case PROP_SRC: + webkit_dom_html_iframe_element_set_src(self, g_value_get_string(value)); + break; + case PROP_WIDTH: + webkit_dom_html_iframe_element_set_width(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_iframe_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLIFrameElement* self = WEBKIT_DOM_HTML_IFRAME_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_iframe_element_get_align(self)); + break; + case PROP_FRAME_BORDER: + g_value_take_string(value, webkit_dom_html_iframe_element_get_frame_border(self)); + break; + case PROP_HEIGHT: + g_value_take_string(value, webkit_dom_html_iframe_element_get_height(self)); + break; + case PROP_LONG_DESC: + g_value_take_string(value, webkit_dom_html_iframe_element_get_long_desc(self)); + break; + case PROP_MARGIN_HEIGHT: + g_value_take_string(value, webkit_dom_html_iframe_element_get_margin_height(self)); + break; + case PROP_MARGIN_WIDTH: + g_value_take_string(value, webkit_dom_html_iframe_element_get_margin_width(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_iframe_element_get_name(self)); + break; + case PROP_SCROLLING: + g_value_take_string(value, webkit_dom_html_iframe_element_get_scrolling(self)); + break; + case PROP_SRC: + g_value_take_string(value, webkit_dom_html_iframe_element_get_src(self)); + break; + case PROP_WIDTH: + g_value_take_string(value, webkit_dom_html_iframe_element_get_width(self)); + break; + case PROP_CONTENT_DOCUMENT: + g_value_set_object(value, webkit_dom_html_iframe_element_get_content_document(self)); + break; + case PROP_CONTENT_WINDOW: + g_value_set_object(value, webkit_dom_html_iframe_element_get_content_window(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_iframe_element_class_init(WebKitDOMHTMLIFrameElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_iframe_element_set_property; + gobjectClass->get_property = webkit_dom_html_iframe_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLIFrameElement:align", + "read-write gchar* HTMLIFrameElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FRAME_BORDER, + g_param_spec_string( + "frame-border", + "HTMLIFrameElement:frame-border", + "read-write gchar* HTMLIFrameElement:frame-border", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_string( + "height", + "HTMLIFrameElement:height", + "read-write gchar* HTMLIFrameElement:height", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LONG_DESC, + g_param_spec_string( + "long-desc", + "HTMLIFrameElement:long-desc", + "read-write gchar* HTMLIFrameElement:long-desc", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MARGIN_HEIGHT, + g_param_spec_string( + "margin-height", + "HTMLIFrameElement:margin-height", + "read-write gchar* HTMLIFrameElement:margin-height", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MARGIN_WIDTH, + g_param_spec_string( + "margin-width", + "HTMLIFrameElement:margin-width", + "read-write gchar* HTMLIFrameElement:margin-width", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLIFrameElement:name", + "read-write gchar* HTMLIFrameElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCROLLING, + g_param_spec_string( + "scrolling", + "HTMLIFrameElement:scrolling", + "read-write gchar* HTMLIFrameElement:scrolling", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SRC, + g_param_spec_string( + "src", + "HTMLIFrameElement:src", + "read-write gchar* HTMLIFrameElement:src", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_string( + "width", + "HTMLIFrameElement:width", + "read-write gchar* HTMLIFrameElement:width", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT_DOCUMENT, + g_param_spec_object( + "content-document", + "HTMLIFrameElement:content-document", + "read-only WebKitDOMDocument* HTMLIFrameElement:content-document", + WEBKIT_DOM_TYPE_DOCUMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT_WINDOW, + g_param_spec_object( + "content-window", + "HTMLIFrameElement:content-window", + "read-only WebKitDOMDOMWindow* HTMLIFrameElement:content-window", + WEBKIT_DOM_TYPE_DOM_WINDOW, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_iframe_element_init(WebKitDOMHTMLIFrameElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_iframe_element_get_align(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_align(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_frame_border(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::frameborderAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_frame_border(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::frameborderAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_height(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::heightAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_height(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::heightAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_long_desc(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::longdescAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_long_desc(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::longdescAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_margin_height(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::marginheightAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_margin_height(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::marginheightAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_margin_width(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::marginwidthAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_margin_width(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::marginwidthAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_name(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_iframe_element_set_name(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_scrolling(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::scrollingAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_scrolling(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::scrollingAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_src(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_src(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::srcAttr, convertedValue); +} + +gchar* webkit_dom_html_iframe_element_get_width(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::widthAttr)); + return result; +} + +void webkit_dom_html_iframe_element_set_width(WebKitDOMHTMLIFrameElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::widthAttr, convertedValue); +} + +WebKitDOMDocument* webkit_dom_html_iframe_element_get_content_document(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + RefPtr<WebCore::Document> gobjectResult = WTF::getPtr(item->contentDocument()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMDOMWindow* webkit_dom_html_iframe_element_get_content_window(WebKitDOMHTMLIFrameElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(self), 0); + WebCore::HTMLIFrameElement* item = WebKit::core(self); + RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->contentWindow()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.h new file mode 100644 index 000000000..7bc7e776e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.h @@ -0,0 +1,251 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLIFrameElement_h +#define WebKitDOMHTMLIFrameElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT (webkit_dom_html_iframe_element_get_type()) +#define WEBKIT_DOM_HTML_IFRAME_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT, WebKitDOMHTMLIFrameElement)) +#define WEBKIT_DOM_HTML_IFRAME_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT, WebKitDOMHTMLIFrameElementClass) +#define WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT)) +#define WEBKIT_DOM_HTML_IFRAME_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT, WebKitDOMHTMLIFrameElementClass)) + +struct _WebKitDOMHTMLIFrameElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLIFrameElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_iframe_element_get_type(void); + +/** + * webkit_dom_html_iframe_element_get_align: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_align(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_align: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_align(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_frame_border: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_frame_border(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_frame_border: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_frame_border(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_height: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_height(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_height: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_height(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_long_desc: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_long_desc(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_long_desc: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_long_desc(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_margin_height: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_margin_height(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_margin_height: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_margin_height(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_margin_width: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_margin_width(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_margin_width: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_margin_width(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_name: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_name(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_name: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_name(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_scrolling: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_scrolling(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_scrolling: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_scrolling(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_src: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_src(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_src: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_src(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_width: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_iframe_element_get_width(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_set_width: + * @self: A #WebKitDOMHTMLIFrameElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_iframe_element_set_width(WebKitDOMHTMLIFrameElement* self, const gchar* value); + +/** + * webkit_dom_html_iframe_element_get_content_document: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: (transfer none): A #WebKitDOMDocument +**/ +WEBKIT_API WebKitDOMDocument* +webkit_dom_html_iframe_element_get_content_document(WebKitDOMHTMLIFrameElement* self); + +/** + * webkit_dom_html_iframe_element_get_content_window: + * @self: A #WebKitDOMHTMLIFrameElement + * + * Returns: (transfer full): A #WebKitDOMDOMWindow +**/ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_html_iframe_element_get_content_window(WebKitDOMHTMLIFrameElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLIFrameElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElementPrivate.h new file mode 100644 index 000000000..2e45508ab --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLIFrameElementPrivate_h +#define WebKitDOMHTMLIFrameElementPrivate_h + +#include <WebCore/HTMLIFrameElement.h> +#include <webkitdom/WebKitDOMHTMLIFrameElement.h> + +namespace WebKit { +WebKitDOMHTMLIFrameElement* wrapHTMLIFrameElement(WebCore::HTMLIFrameElement*); +WebKitDOMHTMLIFrameElement* kit(WebCore::HTMLIFrameElement*); +WebCore::HTMLIFrameElement* core(WebKitDOMHTMLIFrameElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLIFrameElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp new file mode 100644 index 000000000..841e0d0d1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp @@ -0,0 +1,708 @@ +/* + * 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 "WebKitDOMHTMLImageElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLImageElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLImageElement* kit(WebCore::HTMLImageElement* obj) +{ + return WEBKIT_DOM_HTML_IMAGE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLImageElement* core(WebKitDOMHTMLImageElement* request) +{ + return request ? static_cast<WebCore::HTMLImageElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLImageElement* wrapHTMLImageElement(WebCore::HTMLImageElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_IMAGE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_image_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLImageElement* coreTarget = static_cast<WebCore::HTMLImageElement*>(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_html_image_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLImageElement* coreTarget = static_cast<WebCore::HTMLImageElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_image_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLImageElement* coreTarget = static_cast<WebCore::HTMLImageElement*>(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_html_image_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_image_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_image_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLImageElement, webkit_dom_html_image_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_NAME, + PROP_ALIGN, + PROP_ALT, + PROP_BORDER, + PROP_HEIGHT, + PROP_HSPACE, + PROP_IS_MAP, + PROP_LONG_DESC, + PROP_SRC, + PROP_USE_MAP, + PROP_VSPACE, + PROP_WIDTH, + PROP_COMPLETE, + PROP_LOWSRC, + PROP_NATURAL_HEIGHT, + PROP_NATURAL_WIDTH, + PROP_X, + PROP_Y, +}; + +static void webkit_dom_html_image_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLImageElement* self = WEBKIT_DOM_HTML_IMAGE_ELEMENT(object); + + switch (propertyId) { + case PROP_NAME: + webkit_dom_html_image_element_set_name(self, g_value_get_string(value)); + break; + case PROP_ALIGN: + webkit_dom_html_image_element_set_align(self, g_value_get_string(value)); + break; + case PROP_ALT: + webkit_dom_html_image_element_set_alt(self, g_value_get_string(value)); + break; + case PROP_BORDER: + webkit_dom_html_image_element_set_border(self, g_value_get_string(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_image_element_set_height(self, g_value_get_long(value)); + break; + case PROP_HSPACE: + webkit_dom_html_image_element_set_hspace(self, g_value_get_long(value)); + break; + case PROP_IS_MAP: + webkit_dom_html_image_element_set_is_map(self, g_value_get_boolean(value)); + break; + case PROP_LONG_DESC: + webkit_dom_html_image_element_set_long_desc(self, g_value_get_string(value)); + break; + case PROP_SRC: + webkit_dom_html_image_element_set_src(self, g_value_get_string(value)); + break; + case PROP_USE_MAP: + webkit_dom_html_image_element_set_use_map(self, g_value_get_string(value)); + break; + case PROP_VSPACE: + webkit_dom_html_image_element_set_vspace(self, g_value_get_long(value)); + break; + case PROP_WIDTH: + webkit_dom_html_image_element_set_width(self, g_value_get_long(value)); + break; + case PROP_LOWSRC: + webkit_dom_html_image_element_set_lowsrc(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_image_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLImageElement* self = WEBKIT_DOM_HTML_IMAGE_ELEMENT(object); + + switch (propertyId) { + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_image_element_get_name(self)); + break; + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_image_element_get_align(self)); + break; + case PROP_ALT: + g_value_take_string(value, webkit_dom_html_image_element_get_alt(self)); + break; + case PROP_BORDER: + g_value_take_string(value, webkit_dom_html_image_element_get_border(self)); + break; + case PROP_HEIGHT: + g_value_set_long(value, webkit_dom_html_image_element_get_height(self)); + break; + case PROP_HSPACE: + g_value_set_long(value, webkit_dom_html_image_element_get_hspace(self)); + break; + case PROP_IS_MAP: + g_value_set_boolean(value, webkit_dom_html_image_element_get_is_map(self)); + break; + case PROP_LONG_DESC: + g_value_take_string(value, webkit_dom_html_image_element_get_long_desc(self)); + break; + case PROP_SRC: + g_value_take_string(value, webkit_dom_html_image_element_get_src(self)); + break; + case PROP_USE_MAP: + g_value_take_string(value, webkit_dom_html_image_element_get_use_map(self)); + break; + case PROP_VSPACE: + g_value_set_long(value, webkit_dom_html_image_element_get_vspace(self)); + break; + case PROP_WIDTH: + g_value_set_long(value, webkit_dom_html_image_element_get_width(self)); + break; + case PROP_COMPLETE: + g_value_set_boolean(value, webkit_dom_html_image_element_get_complete(self)); + break; + case PROP_LOWSRC: + g_value_take_string(value, webkit_dom_html_image_element_get_lowsrc(self)); + break; + case PROP_NATURAL_HEIGHT: + g_value_set_long(value, webkit_dom_html_image_element_get_natural_height(self)); + break; + case PROP_NATURAL_WIDTH: + g_value_set_long(value, webkit_dom_html_image_element_get_natural_width(self)); + break; + case PROP_X: + g_value_set_long(value, webkit_dom_html_image_element_get_x(self)); + break; + case PROP_Y: + g_value_set_long(value, webkit_dom_html_image_element_get_y(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_image_element_class_init(WebKitDOMHTMLImageElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_image_element_set_property; + gobjectClass->get_property = webkit_dom_html_image_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLImageElement:name", + "read-write gchar* HTMLImageElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLImageElement:align", + "read-write gchar* HTMLImageElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALT, + g_param_spec_string( + "alt", + "HTMLImageElement:alt", + "read-write gchar* HTMLImageElement:alt", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BORDER, + g_param_spec_string( + "border", + "HTMLImageElement:border", + "read-write gchar* HTMLImageElement:border", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_long( + "height", + "HTMLImageElement:height", + "read-write glong HTMLImageElement:height", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HSPACE, + g_param_spec_long( + "hspace", + "HTMLImageElement:hspace", + "read-write glong HTMLImageElement:hspace", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_IS_MAP, + g_param_spec_boolean( + "is-map", + "HTMLImageElement:is-map", + "read-write gboolean HTMLImageElement:is-map", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LONG_DESC, + g_param_spec_string( + "long-desc", + "HTMLImageElement:long-desc", + "read-write gchar* HTMLImageElement:long-desc", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SRC, + g_param_spec_string( + "src", + "HTMLImageElement:src", + "read-write gchar* HTMLImageElement:src", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_USE_MAP, + g_param_spec_string( + "use-map", + "HTMLImageElement:use-map", + "read-write gchar* HTMLImageElement:use-map", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VSPACE, + g_param_spec_long( + "vspace", + "HTMLImageElement:vspace", + "read-write glong HTMLImageElement:vspace", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_long( + "width", + "HTMLImageElement:width", + "read-write glong HTMLImageElement:width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_COMPLETE, + g_param_spec_boolean( + "complete", + "HTMLImageElement:complete", + "read-only gboolean HTMLImageElement:complete", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LOWSRC, + g_param_spec_string( + "lowsrc", + "HTMLImageElement:lowsrc", + "read-write gchar* HTMLImageElement:lowsrc", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NATURAL_HEIGHT, + g_param_spec_long( + "natural-height", + "HTMLImageElement:natural-height", + "read-only glong HTMLImageElement:natural-height", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NATURAL_WIDTH, + g_param_spec_long( + "natural-width", + "HTMLImageElement:natural-width", + "read-only glong HTMLImageElement:natural-width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_X, + g_param_spec_long( + "x", + "HTMLImageElement:x", + "read-only glong HTMLImageElement:x", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_Y, + g_param_spec_long( + "y", + "HTMLImageElement:y", + "read-only glong HTMLImageElement:y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_image_element_init(WebKitDOMHTMLImageElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_image_element_get_name(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_image_element_set_name(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_image_element_get_align(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_image_element_set_align(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_image_element_get_alt(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::altAttr)); + return result; +} + +void webkit_dom_html_image_element_set_alt(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::altAttr, convertedValue); +} + +gchar* webkit_dom_html_image_element_get_border(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::borderAttr)); + return result; +} + +void webkit_dom_html_image_element_set_border(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::borderAttr, convertedValue); +} + +glong webkit_dom_html_image_element_get_height(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->height(); + return result; +} + +void webkit_dom_html_image_element_set_height(WebKitDOMHTMLImageElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + WebCore::HTMLImageElement* item = WebKit::core(self); + item->setHeight(value); +} + +glong webkit_dom_html_image_element_get_hspace(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::hspaceAttr); + return result; +} + +void webkit_dom_html_image_element_set_hspace(WebKitDOMHTMLImageElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + WebCore::HTMLImageElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::hspaceAttr, value); +} + +gboolean webkit_dom_html_image_element_get_is_map(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), FALSE); + WebCore::HTMLImageElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::ismapAttr); + return result; +} + +void webkit_dom_html_image_element_set_is_map(WebKitDOMHTMLImageElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + WebCore::HTMLImageElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::ismapAttr, value); +} + +gchar* webkit_dom_html_image_element_get_long_desc(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::longdescAttr)); + return result; +} + +void webkit_dom_html_image_element_set_long_desc(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::longdescAttr, convertedValue); +} + +gchar* webkit_dom_html_image_element_get_src(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr)); + return result; +} + +void webkit_dom_html_image_element_set_src(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::srcAttr, convertedValue); +} + +gchar* webkit_dom_html_image_element_get_use_map(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr)); + return result; +} + +void webkit_dom_html_image_element_set_use_map(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr, convertedValue); +} + +glong webkit_dom_html_image_element_get_vspace(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::vspaceAttr); + return result; +} + +void webkit_dom_html_image_element_set_vspace(WebKitDOMHTMLImageElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + WebCore::HTMLImageElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::vspaceAttr, value); +} + +glong webkit_dom_html_image_element_get_width(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->width(); + return result; +} + +void webkit_dom_html_image_element_set_width(WebKitDOMHTMLImageElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + WebCore::HTMLImageElement* item = WebKit::core(self); + item->setWidth(value); +} + +gboolean webkit_dom_html_image_element_get_complete(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), FALSE); + WebCore::HTMLImageElement* item = WebKit::core(self); + gboolean result = item->complete(); + return result; +} + +gchar* webkit_dom_html_image_element_get_lowsrc(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::lowsrcAttr)); + return result; +} + +void webkit_dom_html_image_element_set_lowsrc(WebKitDOMHTMLImageElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLImageElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::lowsrcAttr, convertedValue); +} + +glong webkit_dom_html_image_element_get_natural_height(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->naturalHeight(); + return result; +} + +glong webkit_dom_html_image_element_get_natural_width(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->naturalWidth(); + return result; +} + +glong webkit_dom_html_image_element_get_x(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->x(); + return result; +} + +glong webkit_dom_html_image_element_get_y(WebKitDOMHTMLImageElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); + glong result = item->y(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.h new file mode 100644 index 000000000..b4928348f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.h @@ -0,0 +1,332 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLImageElement_h +#define WebKitDOMHTMLImageElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT (webkit_dom_html_image_element_get_type()) +#define WEBKIT_DOM_HTML_IMAGE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT, WebKitDOMHTMLImageElement)) +#define WEBKIT_DOM_HTML_IMAGE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT, WebKitDOMHTMLImageElementClass) +#define WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT)) +#define WEBKIT_DOM_HTML_IMAGE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT, WebKitDOMHTMLImageElementClass)) + +struct _WebKitDOMHTMLImageElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLImageElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_image_element_get_type(void); + +/** + * webkit_dom_html_image_element_get_name: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_name(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_name: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_name(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_align: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_align(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_align: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_align(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_alt: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_alt(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_alt: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_alt(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_border: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_border(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_border: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_border(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_height: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_height(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_height: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_height(WebKitDOMHTMLImageElement* self, glong value); + +/** + * webkit_dom_html_image_element_get_hspace: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_hspace(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_hspace: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_hspace(WebKitDOMHTMLImageElement* self, glong value); + +/** + * webkit_dom_html_image_element_get_is_map: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_image_element_get_is_map(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_is_map: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_is_map(WebKitDOMHTMLImageElement* self, gboolean value); + +/** + * webkit_dom_html_image_element_get_long_desc: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_long_desc(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_long_desc: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_long_desc(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_src: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_src(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_src: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_src(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_use_map: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_use_map(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_use_map: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_use_map(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_vspace: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_vspace(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_vspace: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_vspace(WebKitDOMHTMLImageElement* self, glong value); + +/** + * webkit_dom_html_image_element_get_width: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_width(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_width: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_width(WebKitDOMHTMLImageElement* self, glong value); + +/** + * webkit_dom_html_image_element_get_complete: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_image_element_get_complete(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_get_lowsrc: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_image_element_get_lowsrc(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_set_lowsrc: + * @self: A #WebKitDOMHTMLImageElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_image_element_set_lowsrc(WebKitDOMHTMLImageElement* self, const gchar* value); + +/** + * webkit_dom_html_image_element_get_natural_height: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_natural_height(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_get_natural_width: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_natural_width(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_get_x: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_x(WebKitDOMHTMLImageElement* self); + +/** + * webkit_dom_html_image_element_get_y: + * @self: A #WebKitDOMHTMLImageElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_image_element_get_y(WebKitDOMHTMLImageElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLImageElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElementPrivate.h new file mode 100644 index 000000000..e42fceebf --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLImageElementPrivate_h +#define WebKitDOMHTMLImageElementPrivate_h + +#include <WebCore/HTMLImageElement.h> +#include <webkitdom/WebKitDOMHTMLImageElement.h> + +namespace WebKit { +WebKitDOMHTMLImageElement* wrapHTMLImageElement(WebCore::HTMLImageElement*); +WebKitDOMHTMLImageElement* kit(WebCore::HTMLImageElement*); +WebCore::HTMLImageElement* core(WebKitDOMHTMLImageElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLImageElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp new file mode 100644 index 000000000..0171cc4a8 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp @@ -0,0 +1,1010 @@ +/* + * 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 "WebKitDOMHTMLInputElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMFileListPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLInputElementPrivate.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLInputElement* kit(WebCore::HTMLInputElement* obj) +{ + return WEBKIT_DOM_HTML_INPUT_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLInputElement* core(WebKitDOMHTMLInputElement* request) +{ + return request ? static_cast<WebCore::HTMLInputElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLInputElement* wrapHTMLInputElement(WebCore::HTMLInputElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_INPUT_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_input_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLInputElement* coreTarget = static_cast<WebCore::HTMLInputElement*>(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_html_input_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLInputElement* coreTarget = static_cast<WebCore::HTMLInputElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_input_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLInputElement* coreTarget = static_cast<WebCore::HTMLInputElement*>(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_html_input_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_input_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_input_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLInputElement, webkit_dom_html_input_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ACCEPT, + PROP_ALT, + PROP_AUTOFOCUS, + PROP_DEFAULT_CHECKED, + PROP_CHECKED, + PROP_DISABLED, + PROP_FORM, + PROP_FILES, + PROP_HEIGHT, + PROP_INDETERMINATE, + PROP_MAX_LENGTH, + PROP_MULTIPLE, + PROP_NAME, + PROP_READ_ONLY, + PROP_SIZE, + PROP_SRC, + PROP_TYPE, + PROP_DEFAULT_VALUE, + PROP_VALUE, + PROP_WIDTH, + PROP_WILL_VALIDATE, + PROP_ALIGN, + PROP_USE_MAP, + PROP_CAPTURE, +}; + +static void webkit_dom_html_input_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLInputElement* self = WEBKIT_DOM_HTML_INPUT_ELEMENT(object); + + switch (propertyId) { + case PROP_ACCEPT: + webkit_dom_html_input_element_set_accept(self, g_value_get_string(value)); + break; + case PROP_ALT: + webkit_dom_html_input_element_set_alt(self, g_value_get_string(value)); + break; + case PROP_AUTOFOCUS: + webkit_dom_html_input_element_set_autofocus(self, g_value_get_boolean(value)); + break; + case PROP_DEFAULT_CHECKED: + webkit_dom_html_input_element_set_default_checked(self, g_value_get_boolean(value)); + break; + case PROP_CHECKED: + webkit_dom_html_input_element_set_checked(self, g_value_get_boolean(value)); + break; + case PROP_DISABLED: + webkit_dom_html_input_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_input_element_set_height(self, g_value_get_ulong(value)); + break; + case PROP_INDETERMINATE: + webkit_dom_html_input_element_set_indeterminate(self, g_value_get_boolean(value)); + break; + case PROP_MAX_LENGTH: + webkit_dom_html_input_element_set_max_length(self, g_value_get_long(value), nullptr); + break; + case PROP_MULTIPLE: + webkit_dom_html_input_element_set_multiple(self, g_value_get_boolean(value)); + break; + case PROP_NAME: + webkit_dom_html_input_element_set_name(self, g_value_get_string(value)); + break; + case PROP_READ_ONLY: + webkit_dom_html_input_element_set_read_only(self, g_value_get_boolean(value)); + break; + case PROP_SIZE: + webkit_dom_html_input_element_set_size(self, g_value_get_ulong(value), nullptr); + break; + case PROP_SRC: + webkit_dom_html_input_element_set_src(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_input_element_set_input_type(self, g_value_get_string(value)); + break; + case PROP_DEFAULT_VALUE: + webkit_dom_html_input_element_set_default_value(self, g_value_get_string(value)); + break; + case PROP_VALUE: + webkit_dom_html_input_element_set_value(self, g_value_get_string(value)); + break; + case PROP_WIDTH: + webkit_dom_html_input_element_set_width(self, g_value_get_ulong(value)); + break; + case PROP_ALIGN: + webkit_dom_html_input_element_set_align(self, g_value_get_string(value)); + break; + case PROP_USE_MAP: + webkit_dom_html_input_element_set_use_map(self, g_value_get_string(value)); + break; + case PROP_CAPTURE: + webkit_dom_html_input_element_set_capture_type(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_input_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLInputElement* self = WEBKIT_DOM_HTML_INPUT_ELEMENT(object); + + switch (propertyId) { + case PROP_ACCEPT: + g_value_take_string(value, webkit_dom_html_input_element_get_accept(self)); + break; + case PROP_ALT: + g_value_take_string(value, webkit_dom_html_input_element_get_alt(self)); + break; + case PROP_AUTOFOCUS: + g_value_set_boolean(value, webkit_dom_html_input_element_get_autofocus(self)); + break; + case PROP_DEFAULT_CHECKED: + g_value_set_boolean(value, webkit_dom_html_input_element_get_default_checked(self)); + break; + case PROP_CHECKED: + g_value_set_boolean(value, webkit_dom_html_input_element_get_checked(self)); + break; + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_input_element_get_disabled(self)); + break; + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_input_element_get_form(self)); + break; + case PROP_FILES: + g_value_set_object(value, webkit_dom_html_input_element_get_files(self)); + break; + case PROP_HEIGHT: + g_value_set_ulong(value, webkit_dom_html_input_element_get_height(self)); + break; + case PROP_INDETERMINATE: + g_value_set_boolean(value, webkit_dom_html_input_element_get_indeterminate(self)); + break; + case PROP_MAX_LENGTH: + g_value_set_long(value, webkit_dom_html_input_element_get_max_length(self)); + break; + case PROP_MULTIPLE: + g_value_set_boolean(value, webkit_dom_html_input_element_get_multiple(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_input_element_get_name(self)); + break; + case PROP_READ_ONLY: + g_value_set_boolean(value, webkit_dom_html_input_element_get_read_only(self)); + break; + case PROP_SIZE: + g_value_set_ulong(value, webkit_dom_html_input_element_get_size(self)); + break; + case PROP_SRC: + g_value_take_string(value, webkit_dom_html_input_element_get_src(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_input_element_get_input_type(self)); + break; + case PROP_DEFAULT_VALUE: + g_value_take_string(value, webkit_dom_html_input_element_get_default_value(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_html_input_element_get_value(self)); + break; + case PROP_WIDTH: + g_value_set_ulong(value, webkit_dom_html_input_element_get_width(self)); + break; + case PROP_WILL_VALIDATE: + g_value_set_boolean(value, webkit_dom_html_input_element_get_will_validate(self)); + break; + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_input_element_get_align(self)); + break; + case PROP_USE_MAP: + g_value_take_string(value, webkit_dom_html_input_element_get_use_map(self)); + break; + case PROP_CAPTURE: + g_value_take_string(value, webkit_dom_html_input_element_get_capture_type(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_input_element_class_init(WebKitDOMHTMLInputElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_input_element_set_property; + gobjectClass->get_property = webkit_dom_html_input_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ACCEPT, + g_param_spec_string( + "accept", + "HTMLInputElement:accept", + "read-write gchar* HTMLInputElement:accept", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALT, + g_param_spec_string( + "alt", + "HTMLInputElement:alt", + "read-write gchar* HTMLInputElement:alt", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_AUTOFOCUS, + g_param_spec_boolean( + "autofocus", + "HTMLInputElement:autofocus", + "read-write gboolean HTMLInputElement:autofocus", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DEFAULT_CHECKED, + g_param_spec_boolean( + "default-checked", + "HTMLInputElement:default-checked", + "read-write gboolean HTMLInputElement:default-checked", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHECKED, + g_param_spec_boolean( + "checked", + "HTMLInputElement:checked", + "read-write gboolean HTMLInputElement:checked", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLInputElement:disabled", + "read-write gboolean HTMLInputElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLInputElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLInputElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FILES, + g_param_spec_object( + "files", + "HTMLInputElement:files", + "read-only WebKitDOMFileList* HTMLInputElement:files", + WEBKIT_DOM_TYPE_FILE_LIST, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_ulong( + "height", + "HTMLInputElement:height", + "read-write gulong HTMLInputElement:height", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_INDETERMINATE, + g_param_spec_boolean( + "indeterminate", + "HTMLInputElement:indeterminate", + "read-write gboolean HTMLInputElement:indeterminate", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MAX_LENGTH, + g_param_spec_long( + "max-length", + "HTMLInputElement:max-length", + "read-write glong HTMLInputElement:max-length", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MULTIPLE, + g_param_spec_boolean( + "multiple", + "HTMLInputElement:multiple", + "read-write gboolean HTMLInputElement:multiple", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLInputElement:name", + "read-write gchar* HTMLInputElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_READ_ONLY, + g_param_spec_boolean( + "read-only", + "HTMLInputElement:read-only", + "read-write gboolean HTMLInputElement:read-only", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SIZE, + g_param_spec_ulong( + "size", + "HTMLInputElement:size", + "read-write gulong HTMLInputElement:size", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SRC, + g_param_spec_string( + "src", + "HTMLInputElement:src", + "read-write gchar* HTMLInputElement:src", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLInputElement:type", + "read-write gchar* HTMLInputElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DEFAULT_VALUE, + g_param_spec_string( + "default-value", + "HTMLInputElement:default-value", + "read-write gchar* HTMLInputElement:default-value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "HTMLInputElement:value", + "read-write gchar* HTMLInputElement:value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_ulong( + "width", + "HTMLInputElement:width", + "read-write gulong HTMLInputElement:width", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WILL_VALIDATE, + g_param_spec_boolean( + "will-validate", + "HTMLInputElement:will-validate", + "read-only gboolean HTMLInputElement:will-validate", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLInputElement:align", + "read-write gchar* HTMLInputElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_USE_MAP, + g_param_spec_string( + "use-map", + "HTMLInputElement:use-map", + "read-write gchar* HTMLInputElement:use-map", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CAPTURE, + g_param_spec_string( + "capture", + "HTMLInputElement:capture", + "read-write gchar* HTMLInputElement:capture", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_input_element_init(WebKitDOMHTMLInputElement* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_html_input_element_select(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->select(); +} + +gchar* webkit_dom_html_input_element_get_accept(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::acceptAttr)); + return result; +} + +void webkit_dom_html_input_element_set_accept(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::acceptAttr, convertedValue); +} + +gchar* webkit_dom_html_input_element_get_alt(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::altAttr)); + return result; +} + +void webkit_dom_html_input_element_set_alt(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::altAttr, convertedValue); +} + +gboolean webkit_dom_html_input_element_get_autofocus(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::autofocusAttr); + return result; +} + +void webkit_dom_html_input_element_set_autofocus(WebKitDOMHTMLInputElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::autofocusAttr, value); +} + +gboolean webkit_dom_html_input_element_get_default_checked(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::checkedAttr); + return result; +} + +void webkit_dom_html_input_element_set_default_checked(WebKitDOMHTMLInputElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::checkedAttr, value); +} + +gboolean webkit_dom_html_input_element_get_checked(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->checked(); + return result; +} + +void webkit_dom_html_input_element_set_checked(WebKitDOMHTMLInputElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setChecked(value); +} + +gboolean webkit_dom_html_input_element_get_disabled(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr); + return result; +} + +void webkit_dom_html_input_element_set_disabled(WebKitDOMHTMLInputElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_input_element_get_form(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMFileList* webkit_dom_html_input_element_get_files(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + RefPtr<WebCore::FileList> gobjectResult = WTF::getPtr(item->files()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_input_element_set_files(WebKitDOMHTMLInputElement* self, WebKitDOMFileList* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(WEBKIT_DOM_IS_FILE_LIST(value)); + WebCore::HTMLInputElement* item = WebKit::core(self); + WebCore::FileList* convertedValue = WebKit::core(value); + item->setFiles(convertedValue); +} + +gulong webkit_dom_html_input_element_get_height(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gulong result = item->height(); + return result; +} + +void webkit_dom_html_input_element_set_height(WebKitDOMHTMLInputElement* self, gulong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setHeight(value); +} + +gboolean webkit_dom_html_input_element_get_indeterminate(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->indeterminate(); + return result; +} + +void webkit_dom_html_input_element_set_indeterminate(WebKitDOMHTMLInputElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setIndeterminate(value); +} + +glong webkit_dom_html_input_element_get_max_length(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + glong result = item->maxLength(); + return result; +} + +void webkit_dom_html_input_element_set_max_length(WebKitDOMHTMLInputElement* self, glong value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(!error || !*error); + WebCore::HTMLInputElement* item = WebKit::core(self); + auto result = item->setMaxLength(value); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gboolean webkit_dom_html_input_element_get_multiple(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::multipleAttr); + return result; +} + +void webkit_dom_html_input_element_set_multiple(WebKitDOMHTMLInputElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::multipleAttr, value); +} + +gchar* webkit_dom_html_input_element_get_name(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_input_element_set_name(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gboolean webkit_dom_html_input_element_get_read_only(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::readonlyAttr); + return result; +} + +void webkit_dom_html_input_element_set_read_only(WebKitDOMHTMLInputElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::readonlyAttr, value); +} + +gulong webkit_dom_html_input_element_get_size(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gulong result = item->size(); + return result; +} + +void webkit_dom_html_input_element_set_size(WebKitDOMHTMLInputElement* self, gulong value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(!error || !*error); + WebCore::HTMLInputElement* item = WebKit::core(self); + auto result = item->setSize(value); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_html_input_element_get_src(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr)); + return result; +} + +void webkit_dom_html_input_element_set_src(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::srcAttr, convertedValue); +} + +gchar* webkit_dom_html_input_element_get_input_type(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->type()); + return result; +} + +void webkit_dom_html_input_element_set_input_type(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setType(convertedValue); +} + +gchar* webkit_dom_html_input_element_get_default_value(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->defaultValue()); + return result; +} + +void webkit_dom_html_input_element_set_default_value(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setDefaultValue(convertedValue); +} + +gchar* webkit_dom_html_input_element_get_value(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->value()); + return result; +} + +void webkit_dom_html_input_element_set_value(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setValue(convertedValue); +} + +gulong webkit_dom_html_input_element_get_width(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gulong result = item->width(); + return result; +} + +void webkit_dom_html_input_element_set_width(WebKitDOMHTMLInputElement* self, gulong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); + item->setWidth(value); +} + +gboolean webkit_dom_html_input_element_get_will_validate(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + WebCore::HTMLInputElement* item = WebKit::core(self); + gboolean result = item->willValidate(); + return result; +} + +gchar* webkit_dom_html_input_element_get_align(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_input_element_set_align(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_input_element_get_use_map(WebKitDOMHTMLInputElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr)); + return result; +} + +void webkit_dom_html_input_element_set_use_map(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr, convertedValue); +} + +gchar* webkit_dom_html_input_element_get_capture_type(WebKitDOMHTMLInputElement* self) +{ +#if ENABLE(MEDIA_CAPTURE) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::captureAttr)); + return result; +#else + UNUSED_PARAM(self); + WEBKIT_WARN_FEATURE_NOT_PRESENT("Media Capture") + return 0; +#endif /* ENABLE(MEDIA_CAPTURE) */ +} + +void webkit_dom_html_input_element_set_capture_type(WebKitDOMHTMLInputElement* self, const gchar* value) +{ +#if ENABLE(MEDIA_CAPTURE) + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::captureAttr, convertedValue); +#else + UNUSED_PARAM(self); + UNUSED_PARAM(value); + WEBKIT_WARN_FEATURE_NOT_PRESENT("Media Capture") +#endif /* ENABLE(MEDIA_CAPTURE) */ +} + +gboolean webkit_dom_html_input_element_is_edited(WebKitDOMHTMLInputElement* input) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(input), FALSE); + + return WebKit::core(input)->lastChangeWasUserEdit(); +} + +gboolean webkit_dom_html_input_element_get_auto_filled(WebKitDOMHTMLInputElement* self) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), FALSE); + + return WebKit::core(self)->isAutoFilled(); +} + +void webkit_dom_html_input_element_set_auto_filled(WebKitDOMHTMLInputElement* self, gboolean value) +{ + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + + WebKit::core(self)->setAutoFilled(value); +} + +void webkit_dom_html_input_element_set_editing_value(WebKitDOMHTMLInputElement* self, const gchar* value) +{ + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + + WebKit::core(self)->setEditingValue(WTF::String::fromUTF8(value)); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h new file mode 100644 index 000000000..5433442ed --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h @@ -0,0 +1,522 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLInputElement_h +#define WebKitDOMHTMLInputElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT (webkit_dom_html_input_element_get_type()) +#define WEBKIT_DOM_HTML_INPUT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT, WebKitDOMHTMLInputElement)) +#define WEBKIT_DOM_HTML_INPUT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT, WebKitDOMHTMLInputElementClass) +#define WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_INPUT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT)) +#define WEBKIT_DOM_HTML_INPUT_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT, WebKitDOMHTMLInputElementClass)) + +struct _WebKitDOMHTMLInputElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLInputElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_input_element_get_type(void); + +/** + * webkit_dom_html_input_element_select: + * @self: A #WebKitDOMHTMLInputElement + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_select(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_get_accept: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_accept(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_accept: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_accept(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_alt: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_alt(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_alt: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_alt(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_autofocus: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_autofocus(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_autofocus: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_autofocus(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_get_default_checked: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_default_checked(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_default_checked: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_default_checked(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_get_checked: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_checked(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_checked: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_checked(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_get_disabled: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_disabled(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_disabled: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_disabled(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_get_form: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_input_element_get_form(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_get_files: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: (transfer full): A #WebKitDOMFileList +**/ +WEBKIT_API WebKitDOMFileList* +webkit_dom_html_input_element_get_files(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_files: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #WebKitDOMFileList + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_files(WebKitDOMHTMLInputElement* self, WebKitDOMFileList* value); + +/** + * webkit_dom_html_input_element_get_height: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_html_input_element_get_height(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_height: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gulong + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_height(WebKitDOMHTMLInputElement* self, gulong value); + +/** + * webkit_dom_html_input_element_get_indeterminate: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_indeterminate(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_indeterminate: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_indeterminate(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_get_max_length: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_input_element_get_max_length(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_max_length: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #glong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_max_length(WebKitDOMHTMLInputElement* self, glong value, GError** error); + +/** + * webkit_dom_html_input_element_get_multiple: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_multiple(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_multiple: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_multiple(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_get_name: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_name(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_name: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_name(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_read_only: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean + * + * Since: 2.16 +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_read_only(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_read_only: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_read_only(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_get_size: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_html_input_element_get_size(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_size: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gulong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_size(WebKitDOMHTMLInputElement* self, gulong value, GError** error); + +/** + * webkit_dom_html_input_element_get_src: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_src(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_src: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_src(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_input_type: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_input_type(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_input_type: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_input_type(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_default_value: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_default_value(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_default_value: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_default_value(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_value: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_value(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_value: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_value(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_width: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_html_input_element_get_width(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_width: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gulong + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_width(WebKitDOMHTMLInputElement* self, gulong value); + +/** + * webkit_dom_html_input_element_get_will_validate: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_will_validate(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_get_align: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_align(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_align: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_align(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_use_map: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_use_map(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_use_map: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_use_map(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_get_capture_type: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gchar + * + * Since: 2.14 +**/ +WEBKIT_API gchar* +webkit_dom_html_input_element_get_capture_type(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_capture_type: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_input_element_set_capture_type(WebKitDOMHTMLInputElement* self, const gchar* value); + +/** + * webkit_dom_html_input_element_is_edited: + * @input: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean + */ +WEBKIT_API gboolean webkit_dom_html_input_element_is_edited(WebKitDOMHTMLInputElement* input); + +/** + * webkit_dom_html_input_element_get_auto_filled: + * @self: A #WebKitDOMHTMLInputElement + * + * Returns: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API gboolean +webkit_dom_html_input_element_get_auto_filled(WebKitDOMHTMLInputElement* self); + +/** + * webkit_dom_html_input_element_set_auto_filled: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gboolean + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_html_input_element_set_auto_filled(WebKitDOMHTMLInputElement* self, gboolean value); + +/** + * webkit_dom_html_input_element_set_editing_value: + * @self: A #WebKitDOMHTMLInputElement + * @value: A #gchar + * + * Since: 2.16 + */ +WEBKIT_API void +webkit_dom_html_input_element_set_editing_value(WebKitDOMHTMLInputElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLInputElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElementPrivate.h new file mode 100644 index 000000000..14e729749 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLInputElementPrivate_h +#define WebKitDOMHTMLInputElementPrivate_h + +#include <WebCore/HTMLInputElement.h> +#include <webkitdom/WebKitDOMHTMLInputElement.h> + +namespace WebKit { +WebKitDOMHTMLInputElement* wrapHTMLInputElement(WebCore::HTMLInputElement*); +WebKitDOMHTMLInputElement* kit(WebCore::HTMLInputElement*); +WebCore::HTMLInputElement* core(WebKitDOMHTMLInputElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLInputElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp new file mode 100644 index 000000000..d4207871e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp @@ -0,0 +1,205 @@ +/* + * 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 "WebKitDOMHTMLLIElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLLIElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLLIElement* kit(WebCore::HTMLLIElement* obj) +{ + return WEBKIT_DOM_HTML_LI_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLLIElement* core(WebKitDOMHTMLLIElement* request) +{ + return request ? static_cast<WebCore::HTMLLIElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLLIElement* wrapHTMLLIElement(WebCore::HTMLLIElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_LI_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_LI_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_li_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLLIElement* coreTarget = static_cast<WebCore::HTMLLIElement*>(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_html_li_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLIElement* coreTarget = static_cast<WebCore::HTMLLIElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_li_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLIElement* coreTarget = static_cast<WebCore::HTMLLIElement*>(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_html_li_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_li_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_li_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLLIElement, webkit_dom_html_li_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_TYPE, + PROP_VALUE, +}; + +static void webkit_dom_html_li_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLIElement* self = WEBKIT_DOM_HTML_LI_ELEMENT(object); + + switch (propertyId) { + case PROP_TYPE: + webkit_dom_html_li_element_set_type_attr(self, g_value_get_string(value)); + break; + case PROP_VALUE: + webkit_dom_html_li_element_set_value(self, g_value_get_long(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_li_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLIElement* self = WEBKIT_DOM_HTML_LI_ELEMENT(object); + + switch (propertyId) { + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_li_element_get_type_attr(self)); + break; + case PROP_VALUE: + g_value_set_long(value, webkit_dom_html_li_element_get_value(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_li_element_class_init(WebKitDOMHTMLLIElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_li_element_set_property; + gobjectClass->get_property = webkit_dom_html_li_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLLIElement:type", + "read-write gchar* HTMLLIElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_long( + "value", + "HTMLLIElement:value", + "read-write glong HTMLLIElement:value", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_li_element_init(WebKitDOMHTMLLIElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_li_element_get_type_attr(WebKitDOMHTMLLIElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LI_ELEMENT(self), 0); + WebCore::HTMLLIElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_li_element_set_type_attr(WebKitDOMHTMLLIElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LI_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLIElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + +glong webkit_dom_html_li_element_get_value(WebKitDOMHTMLLIElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LI_ELEMENT(self), 0); + WebCore::HTMLLIElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::valueAttr); + return result; +} + +void webkit_dom_html_li_element_set_value(WebKitDOMHTMLLIElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LI_ELEMENT(self)); + WebCore::HTMLLIElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::valueAttr, value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.h new file mode 100644 index 000000000..cfd1e0557 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLLIElement_h +#define WebKitDOMHTMLLIElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_LI_ELEMENT (webkit_dom_html_li_element_get_type()) +#define WEBKIT_DOM_HTML_LI_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_LI_ELEMENT, WebKitDOMHTMLLIElement)) +#define WEBKIT_DOM_HTML_LI_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_LI_ELEMENT, WebKitDOMHTMLLIElementClass) +#define WEBKIT_DOM_IS_HTML_LI_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_LI_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_LI_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_LI_ELEMENT)) +#define WEBKIT_DOM_HTML_LI_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_LI_ELEMENT, WebKitDOMHTMLLIElementClass)) + +struct _WebKitDOMHTMLLIElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLLIElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_li_element_get_type(void); + +/** + * webkit_dom_html_li_element_get_type_attr: + * @self: A #WebKitDOMHTMLLIElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_li_element_get_type_attr(WebKitDOMHTMLLIElement* self); + +/** + * webkit_dom_html_li_element_set_type_attr: + * @self: A #WebKitDOMHTMLLIElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_li_element_set_type_attr(WebKitDOMHTMLLIElement* self, const gchar* value); + +/** + * webkit_dom_html_li_element_get_value: + * @self: A #WebKitDOMHTMLLIElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_li_element_get_value(WebKitDOMHTMLLIElement* self); + +/** + * webkit_dom_html_li_element_set_value: + * @self: A #WebKitDOMHTMLLIElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_li_element_set_value(WebKitDOMHTMLLIElement* self, glong value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLLIElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElementPrivate.h new file mode 100644 index 000000000..f2536701a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLLIElementPrivate_h +#define WebKitDOMHTMLLIElementPrivate_h + +#include <WebCore/HTMLLIElement.h> +#include <webkitdom/WebKitDOMHTMLLIElement.h> + +namespace WebKit { +WebKitDOMHTMLLIElement* wrapHTMLLIElement(WebCore::HTMLLIElement*); +WebKitDOMHTMLLIElement* kit(WebCore::HTMLLIElement*); +WebCore::HTMLLIElement* core(WebKitDOMHTMLLIElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLLIElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp new file mode 100644 index 000000000..a7a15dbd3 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp @@ -0,0 +1,195 @@ +/* + * 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 "WebKitDOMHTMLLabelElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLLabelElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLLabelElement* kit(WebCore::HTMLLabelElement* obj) +{ + return WEBKIT_DOM_HTML_LABEL_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLLabelElement* core(WebKitDOMHTMLLabelElement* request) +{ + return request ? static_cast<WebCore::HTMLLabelElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLLabelElement* wrapHTMLLabelElement(WebCore::HTMLLabelElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_LABEL_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_label_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLLabelElement* coreTarget = static_cast<WebCore::HTMLLabelElement*>(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_html_label_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLabelElement* coreTarget = static_cast<WebCore::HTMLLabelElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_label_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLabelElement* coreTarget = static_cast<WebCore::HTMLLabelElement*>(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_html_label_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_label_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_label_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLLabelElement, webkit_dom_html_label_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_FORM, + PROP_HTML_FOR, +}; + +static void webkit_dom_html_label_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLabelElement* self = WEBKIT_DOM_HTML_LABEL_ELEMENT(object); + + switch (propertyId) { + case PROP_HTML_FOR: + webkit_dom_html_label_element_set_html_for(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_label_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLabelElement* self = WEBKIT_DOM_HTML_LABEL_ELEMENT(object); + + switch (propertyId) { + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_label_element_get_form(self)); + break; + case PROP_HTML_FOR: + g_value_take_string(value, webkit_dom_html_label_element_get_html_for(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_label_element_class_init(WebKitDOMHTMLLabelElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_label_element_set_property; + gobjectClass->get_property = webkit_dom_html_label_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLLabelElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLLabelElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_HTML_FOR, + g_param_spec_string( + "html-for", + "HTMLLabelElement:html-for", + "read-write gchar* HTMLLabelElement:html-for", + "", + WEBKIT_PARAM_READWRITE)); +} + +static void webkit_dom_html_label_element_init(WebKitDOMHTMLLabelElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_label_element_get_form(WebKitDOMHTMLLabelElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LABEL_ELEMENT(self), 0); + WebCore::HTMLLabelElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_label_element_get_html_for(WebKitDOMHTMLLabelElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LABEL_ELEMENT(self), 0); + WebCore::HTMLLabelElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::forAttr)); + return result; +} + +void webkit_dom_html_label_element_set_html_for(WebKitDOMHTMLLabelElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LABEL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLabelElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::forAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.h new file mode 100644 index 000000000..01b7d6880 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.h @@ -0,0 +1,80 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLLabelElement_h +#define WebKitDOMHTMLLabelElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT (webkit_dom_html_label_element_get_type()) +#define WEBKIT_DOM_HTML_LABEL_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT, WebKitDOMHTMLLabelElement)) +#define WEBKIT_DOM_HTML_LABEL_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT, WebKitDOMHTMLLabelElementClass) +#define WEBKIT_DOM_IS_HTML_LABEL_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_LABEL_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT)) +#define WEBKIT_DOM_HTML_LABEL_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT, WebKitDOMHTMLLabelElementClass)) + +struct _WebKitDOMHTMLLabelElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLLabelElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_label_element_get_type(void); + +/** + * webkit_dom_html_label_element_get_form: + * @self: A #WebKitDOMHTMLLabelElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_label_element_get_form(WebKitDOMHTMLLabelElement* self); + +/** + * webkit_dom_html_label_element_get_html_for: + * @self: A #WebKitDOMHTMLLabelElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_label_element_get_html_for(WebKitDOMHTMLLabelElement* self); + +/** + * webkit_dom_html_label_element_set_html_for: + * @self: A #WebKitDOMHTMLLabelElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_label_element_set_html_for(WebKitDOMHTMLLabelElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLLabelElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElementPrivate.h new file mode 100644 index 000000000..94800575b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLLabelElementPrivate_h +#define WebKitDOMHTMLLabelElementPrivate_h + +#include <WebCore/HTMLLabelElement.h> +#include <webkitdom/WebKitDOMHTMLLabelElement.h> + +namespace WebKit { +WebKitDOMHTMLLabelElement* wrapHTMLLabelElement(WebCore::HTMLLabelElement*); +WebKitDOMHTMLLabelElement* kit(WebCore::HTMLLabelElement*); +WebCore::HTMLLabelElement* core(WebKitDOMHTMLLabelElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLLabelElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp new file mode 100644 index 000000000..04067e5e7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp @@ -0,0 +1,195 @@ +/* + * 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 "WebKitDOMHTMLLegendElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLLegendElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLLegendElement* kit(WebCore::HTMLLegendElement* obj) +{ + return WEBKIT_DOM_HTML_LEGEND_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLLegendElement* core(WebKitDOMHTMLLegendElement* request) +{ + return request ? static_cast<WebCore::HTMLLegendElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLLegendElement* wrapHTMLLegendElement(WebCore::HTMLLegendElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_LEGEND_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_legend_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLLegendElement* coreTarget = static_cast<WebCore::HTMLLegendElement*>(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_html_legend_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLegendElement* coreTarget = static_cast<WebCore::HTMLLegendElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_legend_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLegendElement* coreTarget = static_cast<WebCore::HTMLLegendElement*>(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_html_legend_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_legend_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_legend_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLLegendElement, webkit_dom_html_legend_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_FORM, + PROP_ALIGN, +}; + +static void webkit_dom_html_legend_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLegendElement* self = WEBKIT_DOM_HTML_LEGEND_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_legend_element_set_align(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_legend_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLegendElement* self = WEBKIT_DOM_HTML_LEGEND_ELEMENT(object); + + switch (propertyId) { + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_legend_element_get_form(self)); + break; + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_legend_element_get_align(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_legend_element_class_init(WebKitDOMHTMLLegendElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_legend_element_set_property; + gobjectClass->get_property = webkit_dom_html_legend_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLLegendElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLLegendElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLLegendElement:align", + "read-write gchar* HTMLLegendElement:align", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_legend_element_init(WebKitDOMHTMLLegendElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_legend_element_get_form(WebKitDOMHTMLLegendElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LEGEND_ELEMENT(self), 0); + WebCore::HTMLLegendElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_legend_element_get_align(WebKitDOMHTMLLegendElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LEGEND_ELEMENT(self), 0); + WebCore::HTMLLegendElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_legend_element_set_align(WebKitDOMHTMLLegendElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LEGEND_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLegendElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.h new file mode 100644 index 000000000..70e853c45 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.h @@ -0,0 +1,80 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLLegendElement_h +#define WebKitDOMHTMLLegendElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT (webkit_dom_html_legend_element_get_type()) +#define WEBKIT_DOM_HTML_LEGEND_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT, WebKitDOMHTMLLegendElement)) +#define WEBKIT_DOM_HTML_LEGEND_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT, WebKitDOMHTMLLegendElementClass) +#define WEBKIT_DOM_IS_HTML_LEGEND_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_LEGEND_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT)) +#define WEBKIT_DOM_HTML_LEGEND_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT, WebKitDOMHTMLLegendElementClass)) + +struct _WebKitDOMHTMLLegendElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLLegendElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_legend_element_get_type(void); + +/** + * webkit_dom_html_legend_element_get_form: + * @self: A #WebKitDOMHTMLLegendElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_legend_element_get_form(WebKitDOMHTMLLegendElement* self); + +/** + * webkit_dom_html_legend_element_get_align: + * @self: A #WebKitDOMHTMLLegendElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_legend_element_get_align(WebKitDOMHTMLLegendElement* self); + +/** + * webkit_dom_html_legend_element_set_align: + * @self: A #WebKitDOMHTMLLegendElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_legend_element_set_align(WebKitDOMHTMLLegendElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLLegendElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElementPrivate.h new file mode 100644 index 000000000..28b126537 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLLegendElementPrivate_h +#define WebKitDOMHTMLLegendElementPrivate_h + +#include <WebCore/HTMLLegendElement.h> +#include <webkitdom/WebKitDOMHTMLLegendElement.h> + +namespace WebKit { +WebKitDOMHTMLLegendElement* wrapHTMLLegendElement(WebCore::HTMLLegendElement*); +WebKitDOMHTMLLegendElement* kit(WebCore::HTMLLegendElement*); +WebCore::HTMLLegendElement* core(WebKitDOMHTMLLegendElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLLegendElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp new file mode 100644 index 000000000..a83ed7806 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp @@ -0,0 +1,511 @@ +/* + * 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 "WebKitDOMHTMLLinkElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMTokenListPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLLinkElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMStyleSheetPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLLinkElement* kit(WebCore::HTMLLinkElement* obj) +{ + return WEBKIT_DOM_HTML_LINK_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLLinkElement* core(WebKitDOMHTMLLinkElement* request) +{ + return request ? static_cast<WebCore::HTMLLinkElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLLinkElement* wrapHTMLLinkElement(WebCore::HTMLLinkElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_LINK_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_link_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLLinkElement* coreTarget = static_cast<WebCore::HTMLLinkElement*>(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_html_link_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLinkElement* coreTarget = static_cast<WebCore::HTMLLinkElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_link_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLLinkElement* coreTarget = static_cast<WebCore::HTMLLinkElement*>(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_html_link_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_link_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_link_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLLinkElement, webkit_dom_html_link_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_DISABLED, + PROP_CHARSET, + PROP_HREF, + PROP_HREFLANG, + PROP_MEDIA, + PROP_REL, + PROP_REV, + PROP_SIZES, + PROP_TARGET, + PROP_TYPE, + PROP_SHEET, +}; + +static void webkit_dom_html_link_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLinkElement* self = WEBKIT_DOM_HTML_LINK_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + webkit_dom_html_link_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_CHARSET: + webkit_dom_html_link_element_set_charset(self, g_value_get_string(value)); + break; + case PROP_HREF: + webkit_dom_html_link_element_set_href(self, g_value_get_string(value)); + break; + case PROP_HREFLANG: + webkit_dom_html_link_element_set_hreflang(self, g_value_get_string(value)); + break; + case PROP_MEDIA: + webkit_dom_html_link_element_set_media(self, g_value_get_string(value)); + break; + case PROP_REL: + webkit_dom_html_link_element_set_rel(self, g_value_get_string(value)); + break; + case PROP_REV: + webkit_dom_html_link_element_set_rev(self, g_value_get_string(value)); + break; + case PROP_TARGET: + webkit_dom_html_link_element_set_target(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_link_element_set_type_attr(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_link_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLLinkElement* self = WEBKIT_DOM_HTML_LINK_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_link_element_get_disabled(self)); + break; + case PROP_CHARSET: + g_value_take_string(value, webkit_dom_html_link_element_get_charset(self)); + break; + case PROP_HREF: + g_value_take_string(value, webkit_dom_html_link_element_get_href(self)); + break; + case PROP_HREFLANG: + g_value_take_string(value, webkit_dom_html_link_element_get_hreflang(self)); + break; + case PROP_MEDIA: + g_value_take_string(value, webkit_dom_html_link_element_get_media(self)); + break; + case PROP_REL: + g_value_take_string(value, webkit_dom_html_link_element_get_rel(self)); + break; + case PROP_REV: + g_value_take_string(value, webkit_dom_html_link_element_get_rev(self)); + break; + case PROP_SIZES: + g_value_set_object(value, webkit_dom_html_link_element_get_sizes(self)); + break; + case PROP_TARGET: + g_value_take_string(value, webkit_dom_html_link_element_get_target(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_link_element_get_type_attr(self)); + break; + case PROP_SHEET: + g_value_set_object(value, webkit_dom_html_link_element_get_sheet(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_link_element_class_init(WebKitDOMHTMLLinkElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_link_element_set_property; + gobjectClass->get_property = webkit_dom_html_link_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLLinkElement:disabled", + "read-write gboolean HTMLLinkElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHARSET, + g_param_spec_string( + "charset", + "HTMLLinkElement:charset", + "read-write gchar* HTMLLinkElement:charset", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HREF, + g_param_spec_string( + "href", + "HTMLLinkElement:href", + "read-write gchar* HTMLLinkElement:href", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HREFLANG, + g_param_spec_string( + "hreflang", + "HTMLLinkElement:hreflang", + "read-write gchar* HTMLLinkElement:hreflang", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MEDIA, + g_param_spec_string( + "media", + "HTMLLinkElement:media", + "read-write gchar* HTMLLinkElement:media", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_REL, + g_param_spec_string( + "rel", + "HTMLLinkElement:rel", + "read-write gchar* HTMLLinkElement:rel", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_REV, + g_param_spec_string( + "rev", + "HTMLLinkElement:rev", + "read-write gchar* HTMLLinkElement:rev", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SIZES, + g_param_spec_object( + "sizes", + "HTMLLinkElement:sizes", + "read-only WebKitDOMDOMTokenList* HTMLLinkElement:sizes", + WEBKIT_DOM_TYPE_DOM_TOKEN_LIST, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TARGET, + g_param_spec_string( + "target", + "HTMLLinkElement:target", + "read-write gchar* HTMLLinkElement:target", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLLinkElement:type", + "read-write gchar* HTMLLinkElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SHEET, + g_param_spec_object( + "sheet", + "HTMLLinkElement:sheet", + "read-only WebKitDOMStyleSheet* HTMLLinkElement:sheet", + WEBKIT_DOM_TYPE_STYLE_SHEET, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_html_link_element_init(WebKitDOMHTMLLinkElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_link_element_get_disabled(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), FALSE); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr); + return result; +} + +void webkit_dom_html_link_element_set_disabled(WebKitDOMHTMLLinkElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + WebCore::HTMLLinkElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value); +} + +gchar* webkit_dom_html_link_element_get_charset(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charsetAttr)); + return result; +} + +void webkit_dom_html_link_element_set_charset(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charsetAttr, convertedValue); +} + +gchar* webkit_dom_html_link_element_get_href(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::hrefAttr)); + return result; +} + +void webkit_dom_html_link_element_set_href(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::hrefAttr, convertedValue); +} + +gchar* webkit_dom_html_link_element_get_hreflang(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::hreflangAttr)); + return result; +} + +void webkit_dom_html_link_element_set_hreflang(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::hreflangAttr, convertedValue); +} + +gchar* webkit_dom_html_link_element_get_media(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::mediaAttr)); + return result; +} + +void webkit_dom_html_link_element_set_media(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::mediaAttr, convertedValue); +} + +gchar* webkit_dom_html_link_element_get_rel(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::relAttr)); + return result; +} + +void webkit_dom_html_link_element_set_rel(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::relAttr, convertedValue); +} + +gchar* webkit_dom_html_link_element_get_rev(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::revAttr)); + return result; +} + +void webkit_dom_html_link_element_set_rev(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::revAttr, convertedValue); +} + +WebKitDOMDOMTokenList* webkit_dom_html_link_element_get_sizes(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + RefPtr<WebCore::DOMTokenList> gobjectResult = WTF::getPtr(item->sizes()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_link_element_get_target(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::targetAttr)); + return result; +} + +void webkit_dom_html_link_element_set_target(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::targetAttr, convertedValue); +} + +gchar* webkit_dom_html_link_element_get_type_attr(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_link_element_set_type_attr(WebKitDOMHTMLLinkElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLLinkElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + +WebKitDOMStyleSheet* webkit_dom_html_link_element_get_sheet(WebKitDOMHTMLLinkElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(self), 0); + WebCore::HTMLLinkElement* item = WebKit::core(self); + RefPtr<WebCore::StyleSheet> gobjectResult = WTF::getPtr(item->sheet()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_link_element_set_sizes(WebKitDOMHTMLLinkElement* linkElement, const gchar* value) +{ + g_return_if_fail(WEBKIT_DOM_IS_HTML_LINK_ELEMENT(linkElement)); + g_return_if_fail(value); + + WebKit::core(linkElement)->sizes().setValue(String::fromUTF8(value)); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h new file mode 100644 index 000000000..14c3353d1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h @@ -0,0 +1,245 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLLinkElement_h +#define WebKitDOMHTMLLinkElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT (webkit_dom_html_link_element_get_type()) +#define WEBKIT_DOM_HTML_LINK_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT, WebKitDOMHTMLLinkElement)) +#define WEBKIT_DOM_HTML_LINK_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT, WebKitDOMHTMLLinkElementClass) +#define WEBKIT_DOM_IS_HTML_LINK_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_LINK_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT)) +#define WEBKIT_DOM_HTML_LINK_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT, WebKitDOMHTMLLinkElementClass)) + +struct _WebKitDOMHTMLLinkElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLLinkElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_link_element_get_type(void); + +/** + * webkit_dom_html_link_element_get_disabled: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_link_element_get_disabled(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_disabled: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_disabled(WebKitDOMHTMLLinkElement* self, gboolean value); + +/** + * webkit_dom_html_link_element_get_charset: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_charset(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_charset: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_charset(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_href: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_href(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_href: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_href(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_hreflang: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_hreflang(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_hreflang: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_hreflang(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_media: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_media(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_media: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_media(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_rel: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_rel(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_rel: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_rel(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_rev: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_rev(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_rev: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_rev(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_target: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_target(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_target: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_target(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_type_attr: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_link_element_get_type_attr(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_type_attr: + * @self: A #WebKitDOMHTMLLinkElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_type_attr(WebKitDOMHTMLLinkElement* self, const gchar* value); + +/** + * webkit_dom_html_link_element_get_sheet: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: (transfer full): A #WebKitDOMStyleSheet +**/ +WEBKIT_API WebKitDOMStyleSheet* +webkit_dom_html_link_element_get_sheet(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_get_sizes: + * @self: A #WebKitDOMHTMLLinkElement + * + * Returns: (transfer full): A #WebKitDOMDOMTokenList + * + * Since: 2.16 +**/ +WEBKIT_API WebKitDOMDOMTokenList* +webkit_dom_html_link_element_get_sizes(WebKitDOMHTMLLinkElement* self); + +/** + * webkit_dom_html_link_element_set_sizes: + * @self: A #WebKitDOMHTMLLinkElement + * @value: a #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_link_element_set_sizes(WebKitDOMHTMLLinkElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLLinkElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElementPrivate.h new file mode 100644 index 000000000..1c73d0f53 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLLinkElementPrivate_h +#define WebKitDOMHTMLLinkElementPrivate_h + +#include <WebCore/HTMLLinkElement.h> +#include <webkitdom/WebKitDOMHTMLLinkElement.h> + +namespace WebKit { +WebKitDOMHTMLLinkElement* wrapHTMLLinkElement(WebCore::HTMLLinkElement*); +WebKitDOMHTMLLinkElement* kit(WebCore::HTMLLinkElement*); +WebCore::HTMLLinkElement* core(WebKitDOMHTMLLinkElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLLinkElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp new file mode 100644 index 000000000..289bba577 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp @@ -0,0 +1,195 @@ +/* + * 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 "WebKitDOMHTMLMapElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLMapElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLMapElement* kit(WebCore::HTMLMapElement* obj) +{ + return WEBKIT_DOM_HTML_MAP_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLMapElement* core(WebKitDOMHTMLMapElement* request) +{ + return request ? static_cast<WebCore::HTMLMapElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLMapElement* wrapHTMLMapElement(WebCore::HTMLMapElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_MAP_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_map_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLMapElement* coreTarget = static_cast<WebCore::HTMLMapElement*>(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_html_map_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMapElement* coreTarget = static_cast<WebCore::HTMLMapElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_map_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMapElement* coreTarget = static_cast<WebCore::HTMLMapElement*>(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_html_map_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_map_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_map_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLMapElement, webkit_dom_html_map_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_AREAS, + PROP_NAME, +}; + +static void webkit_dom_html_map_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLMapElement* self = WEBKIT_DOM_HTML_MAP_ELEMENT(object); + + switch (propertyId) { + case PROP_NAME: + webkit_dom_html_map_element_set_name(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_map_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLMapElement* self = WEBKIT_DOM_HTML_MAP_ELEMENT(object); + + switch (propertyId) { + case PROP_AREAS: + g_value_set_object(value, webkit_dom_html_map_element_get_areas(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_map_element_get_name(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_map_element_class_init(WebKitDOMHTMLMapElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_map_element_set_property; + gobjectClass->get_property = webkit_dom_html_map_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_AREAS, + g_param_spec_object( + "areas", + "HTMLMapElement:areas", + "read-only WebKitDOMHTMLCollection* HTMLMapElement:areas", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLMapElement:name", + "read-write gchar* HTMLMapElement:name", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_map_element_init(WebKitDOMHTMLMapElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLCollection* webkit_dom_html_map_element_get_areas(WebKitDOMHTMLMapElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_MAP_ELEMENT(self), 0); + WebCore::HTMLMapElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->areas()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_map_element_get_name(WebKitDOMHTMLMapElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_MAP_ELEMENT(self), 0); + WebCore::HTMLMapElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_map_element_set_name(WebKitDOMHTMLMapElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_MAP_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLMapElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.h new file mode 100644 index 000000000..6f5a62555 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.h @@ -0,0 +1,80 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLMapElement_h +#define WebKitDOMHTMLMapElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT (webkit_dom_html_map_element_get_type()) +#define WEBKIT_DOM_HTML_MAP_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT, WebKitDOMHTMLMapElement)) +#define WEBKIT_DOM_HTML_MAP_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT, WebKitDOMHTMLMapElementClass) +#define WEBKIT_DOM_IS_HTML_MAP_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_MAP_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT)) +#define WEBKIT_DOM_HTML_MAP_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT, WebKitDOMHTMLMapElementClass)) + +struct _WebKitDOMHTMLMapElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLMapElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_map_element_get_type(void); + +/** + * webkit_dom_html_map_element_get_areas: + * @self: A #WebKitDOMHTMLMapElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_html_map_element_get_areas(WebKitDOMHTMLMapElement* self); + +/** + * webkit_dom_html_map_element_get_name: + * @self: A #WebKitDOMHTMLMapElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_map_element_get_name(WebKitDOMHTMLMapElement* self); + +/** + * webkit_dom_html_map_element_set_name: + * @self: A #WebKitDOMHTMLMapElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_map_element_set_name(WebKitDOMHTMLMapElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLMapElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElementPrivate.h new file mode 100644 index 000000000..3fbcc4e36 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLMapElementPrivate_h +#define WebKitDOMHTMLMapElementPrivate_h + +#include <WebCore/HTMLMapElement.h> +#include <webkitdom/WebKitDOMHTMLMapElement.h> + +namespace WebKit { +WebKitDOMHTMLMapElement* wrapHTMLMapElement(WebCore::HTMLMapElement*); +WebKitDOMHTMLMapElement* kit(WebCore::HTMLMapElement*); +WebCore::HTMLMapElement* core(WebKitDOMHTMLMapElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLMapElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp new file mode 100644 index 000000000..46d3d73f7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp @@ -0,0 +1,120 @@ +/* + * 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 "WebKitDOMHTMLMarqueeElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLMarqueeElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLMarqueeElement* kit(WebCore::HTMLMarqueeElement* obj) +{ + return WEBKIT_DOM_HTML_MARQUEE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLMarqueeElement* core(WebKitDOMHTMLMarqueeElement* request) +{ + return request ? static_cast<WebCore::HTMLMarqueeElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLMarqueeElement* wrapHTMLMarqueeElement(WebCore::HTMLMarqueeElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_MARQUEE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_marquee_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLMarqueeElement* coreTarget = static_cast<WebCore::HTMLMarqueeElement*>(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_html_marquee_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMarqueeElement* coreTarget = static_cast<WebCore::HTMLMarqueeElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_marquee_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMarqueeElement* coreTarget = static_cast<WebCore::HTMLMarqueeElement*>(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_html_marquee_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_marquee_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_marquee_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLMarqueeElement, webkit_dom_html_marquee_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +static void webkit_dom_html_marquee_element_class_init(WebKitDOMHTMLMarqueeElementClass* requestClass) +{ +} + +static void webkit_dom_html_marquee_element_init(WebKitDOMHTMLMarqueeElement* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_html_marquee_element_start(WebKitDOMHTMLMarqueeElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_MARQUEE_ELEMENT(self)); + WebCore::HTMLMarqueeElement* item = WebKit::core(self); + item->start(); +} + +void webkit_dom_html_marquee_element_stop(WebKitDOMHTMLMarqueeElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_MARQUEE_ELEMENT(self)); + WebCore::HTMLMarqueeElement* item = WebKit::core(self); + item->stop(); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.h new file mode 100644 index 000000000..0d6b82df4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.h @@ -0,0 +1,69 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLMarqueeElement_h +#define WebKitDOMHTMLMarqueeElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT (webkit_dom_html_marquee_element_get_type()) +#define WEBKIT_DOM_HTML_MARQUEE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT, WebKitDOMHTMLMarqueeElement)) +#define WEBKIT_DOM_HTML_MARQUEE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT, WebKitDOMHTMLMarqueeElementClass) +#define WEBKIT_DOM_IS_HTML_MARQUEE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_MARQUEE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT)) +#define WEBKIT_DOM_HTML_MARQUEE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT, WebKitDOMHTMLMarqueeElementClass)) + +struct _WebKitDOMHTMLMarqueeElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLMarqueeElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_marquee_element_get_type(void); + +/** + * webkit_dom_html_marquee_element_start: + * @self: A #WebKitDOMHTMLMarqueeElement + * +**/ +WEBKIT_API void +webkit_dom_html_marquee_element_start(WebKitDOMHTMLMarqueeElement* self); + +/** + * webkit_dom_html_marquee_element_stop: + * @self: A #WebKitDOMHTMLMarqueeElement + * +**/ +WEBKIT_API void +webkit_dom_html_marquee_element_stop(WebKitDOMHTMLMarqueeElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLMarqueeElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElementPrivate.h new file mode 100644 index 000000000..50a405f3b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLMarqueeElementPrivate_h +#define WebKitDOMHTMLMarqueeElementPrivate_h + +#include <WebCore/HTMLMarqueeElement.h> +#include <webkitdom/WebKitDOMHTMLMarqueeElement.h> + +namespace WebKit { +WebKitDOMHTMLMarqueeElement* wrapHTMLMarqueeElement(WebCore::HTMLMarqueeElement*); +WebKitDOMHTMLMarqueeElement* kit(WebCore::HTMLMarqueeElement*); +WebCore::HTMLMarqueeElement* core(WebKitDOMHTMLMarqueeElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLMarqueeElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp new file mode 100644 index 000000000..593163342 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp @@ -0,0 +1,169 @@ +/* + * 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 "WebKitDOMHTMLMenuElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLMenuElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLMenuElement* kit(WebCore::HTMLMenuElement* obj) +{ + return WEBKIT_DOM_HTML_MENU_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLMenuElement* core(WebKitDOMHTMLMenuElement* request) +{ + return request ? static_cast<WebCore::HTMLMenuElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLMenuElement* wrapHTMLMenuElement(WebCore::HTMLMenuElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_MENU_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_menu_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLMenuElement* coreTarget = static_cast<WebCore::HTMLMenuElement*>(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_html_menu_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMenuElement* coreTarget = static_cast<WebCore::HTMLMenuElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_menu_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMenuElement* coreTarget = static_cast<WebCore::HTMLMenuElement*>(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_html_menu_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_menu_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_menu_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLMenuElement, webkit_dom_html_menu_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_COMPACT, +}; + +static void webkit_dom_html_menu_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLMenuElement* self = WEBKIT_DOM_HTML_MENU_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + webkit_dom_html_menu_element_set_compact(self, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_menu_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLMenuElement* self = WEBKIT_DOM_HTML_MENU_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + g_value_set_boolean(value, webkit_dom_html_menu_element_get_compact(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_menu_element_class_init(WebKitDOMHTMLMenuElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_menu_element_set_property; + gobjectClass->get_property = webkit_dom_html_menu_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_COMPACT, + g_param_spec_boolean( + "compact", + "HTMLMenuElement:compact", + "read-write gboolean HTMLMenuElement:compact", + FALSE, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_menu_element_init(WebKitDOMHTMLMenuElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_menu_element_get_compact(WebKitDOMHTMLMenuElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_MENU_ELEMENT(self), FALSE); + WebCore::HTMLMenuElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::compactAttr); + return result; +} + +void webkit_dom_html_menu_element_set_compact(WebKitDOMHTMLMenuElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_MENU_ELEMENT(self)); + WebCore::HTMLMenuElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::compactAttr, value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.h new file mode 100644 index 000000000..1f6708639 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLMenuElement_h +#define WebKitDOMHTMLMenuElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT (webkit_dom_html_menu_element_get_type()) +#define WEBKIT_DOM_HTML_MENU_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT, WebKitDOMHTMLMenuElement)) +#define WEBKIT_DOM_HTML_MENU_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT, WebKitDOMHTMLMenuElementClass) +#define WEBKIT_DOM_IS_HTML_MENU_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_MENU_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT)) +#define WEBKIT_DOM_HTML_MENU_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT, WebKitDOMHTMLMenuElementClass)) + +struct _WebKitDOMHTMLMenuElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLMenuElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_menu_element_get_type(void); + +/** + * webkit_dom_html_menu_element_get_compact: + * @self: A #WebKitDOMHTMLMenuElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_menu_element_get_compact(WebKitDOMHTMLMenuElement* self); + +/** + * webkit_dom_html_menu_element_set_compact: + * @self: A #WebKitDOMHTMLMenuElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_menu_element_set_compact(WebKitDOMHTMLMenuElement* self, gboolean value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLMenuElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElementPrivate.h new file mode 100644 index 000000000..43906f52c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLMenuElementPrivate_h +#define WebKitDOMHTMLMenuElementPrivate_h + +#include <WebCore/HTMLMenuElement.h> +#include <webkitdom/WebKitDOMHTMLMenuElement.h> + +namespace WebKit { +WebKitDOMHTMLMenuElement* wrapHTMLMenuElement(WebCore::HTMLMenuElement*); +WebKitDOMHTMLMenuElement* kit(WebCore::HTMLMenuElement*); +WebCore::HTMLMenuElement* core(WebKitDOMHTMLMenuElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLMenuElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp new file mode 100644 index 000000000..219b5af54 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp @@ -0,0 +1,279 @@ +/* + * 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 "WebKitDOMHTMLMetaElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLMetaElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLMetaElement* kit(WebCore::HTMLMetaElement* obj) +{ + return WEBKIT_DOM_HTML_META_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLMetaElement* core(WebKitDOMHTMLMetaElement* request) +{ + return request ? static_cast<WebCore::HTMLMetaElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLMetaElement* wrapHTMLMetaElement(WebCore::HTMLMetaElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_META_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_META_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_meta_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLMetaElement* coreTarget = static_cast<WebCore::HTMLMetaElement*>(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_html_meta_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMetaElement* coreTarget = static_cast<WebCore::HTMLMetaElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_meta_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLMetaElement* coreTarget = static_cast<WebCore::HTMLMetaElement*>(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_html_meta_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_meta_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_meta_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLMetaElement, webkit_dom_html_meta_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CONTENT, + PROP_HTTP_EQUIV, + PROP_NAME, + PROP_SCHEME, +}; + +static void webkit_dom_html_meta_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLMetaElement* self = WEBKIT_DOM_HTML_META_ELEMENT(object); + + switch (propertyId) { + case PROP_CONTENT: + webkit_dom_html_meta_element_set_content(self, g_value_get_string(value)); + break; + case PROP_HTTP_EQUIV: + webkit_dom_html_meta_element_set_http_equiv(self, g_value_get_string(value)); + break; + case PROP_NAME: + webkit_dom_html_meta_element_set_name(self, g_value_get_string(value)); + break; + case PROP_SCHEME: + webkit_dom_html_meta_element_set_scheme(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_meta_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLMetaElement* self = WEBKIT_DOM_HTML_META_ELEMENT(object); + + switch (propertyId) { + case PROP_CONTENT: + g_value_take_string(value, webkit_dom_html_meta_element_get_content(self)); + break; + case PROP_HTTP_EQUIV: + g_value_take_string(value, webkit_dom_html_meta_element_get_http_equiv(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_meta_element_get_name(self)); + break; + case PROP_SCHEME: + g_value_take_string(value, webkit_dom_html_meta_element_get_scheme(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_meta_element_class_init(WebKitDOMHTMLMetaElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_meta_element_set_property; + gobjectClass->get_property = webkit_dom_html_meta_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT, + g_param_spec_string( + "content", + "HTMLMetaElement:content", + "read-write gchar* HTMLMetaElement:content", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HTTP_EQUIV, + g_param_spec_string( + "http-equiv", + "HTMLMetaElement:http-equiv", + "read-write gchar* HTMLMetaElement:http-equiv", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLMetaElement:name", + "read-write gchar* HTMLMetaElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCHEME, + g_param_spec_string( + "scheme", + "HTMLMetaElement:scheme", + "read-write gchar* HTMLMetaElement:scheme", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_meta_element_init(WebKitDOMHTMLMetaElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_meta_element_get_content(WebKitDOMHTMLMetaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self), 0); + WebCore::HTMLMetaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::contentAttr)); + return result; +} + +void webkit_dom_html_meta_element_set_content(WebKitDOMHTMLMetaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLMetaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::contentAttr, convertedValue); +} + +gchar* webkit_dom_html_meta_element_get_http_equiv(WebKitDOMHTMLMetaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self), 0); + WebCore::HTMLMetaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::http_equivAttr)); + return result; +} + +void webkit_dom_html_meta_element_set_http_equiv(WebKitDOMHTMLMetaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLMetaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::http_equivAttr, convertedValue); +} + +gchar* webkit_dom_html_meta_element_get_name(WebKitDOMHTMLMetaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self), 0); + WebCore::HTMLMetaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_meta_element_set_name(WebKitDOMHTMLMetaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLMetaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_meta_element_get_scheme(WebKitDOMHTMLMetaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self), 0); + WebCore::HTMLMetaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::schemeAttr)); + return result; +} + +void webkit_dom_html_meta_element_set_scheme(WebKitDOMHTMLMetaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_META_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLMetaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::schemeAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.h new file mode 100644 index 000000000..ecda97084 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.h @@ -0,0 +1,125 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLMetaElement_h +#define WebKitDOMHTMLMetaElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_META_ELEMENT (webkit_dom_html_meta_element_get_type()) +#define WEBKIT_DOM_HTML_META_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_META_ELEMENT, WebKitDOMHTMLMetaElement)) +#define WEBKIT_DOM_HTML_META_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_META_ELEMENT, WebKitDOMHTMLMetaElementClass) +#define WEBKIT_DOM_IS_HTML_META_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_META_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_META_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_META_ELEMENT)) +#define WEBKIT_DOM_HTML_META_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_META_ELEMENT, WebKitDOMHTMLMetaElementClass)) + +struct _WebKitDOMHTMLMetaElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLMetaElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_meta_element_get_type(void); + +/** + * webkit_dom_html_meta_element_get_content: + * @self: A #WebKitDOMHTMLMetaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_meta_element_get_content(WebKitDOMHTMLMetaElement* self); + +/** + * webkit_dom_html_meta_element_set_content: + * @self: A #WebKitDOMHTMLMetaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_meta_element_set_content(WebKitDOMHTMLMetaElement* self, const gchar* value); + +/** + * webkit_dom_html_meta_element_get_http_equiv: + * @self: A #WebKitDOMHTMLMetaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_meta_element_get_http_equiv(WebKitDOMHTMLMetaElement* self); + +/** + * webkit_dom_html_meta_element_set_http_equiv: + * @self: A #WebKitDOMHTMLMetaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_meta_element_set_http_equiv(WebKitDOMHTMLMetaElement* self, const gchar* value); + +/** + * webkit_dom_html_meta_element_get_name: + * @self: A #WebKitDOMHTMLMetaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_meta_element_get_name(WebKitDOMHTMLMetaElement* self); + +/** + * webkit_dom_html_meta_element_set_name: + * @self: A #WebKitDOMHTMLMetaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_meta_element_set_name(WebKitDOMHTMLMetaElement* self, const gchar* value); + +/** + * webkit_dom_html_meta_element_get_scheme: + * @self: A #WebKitDOMHTMLMetaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_meta_element_get_scheme(WebKitDOMHTMLMetaElement* self); + +/** + * webkit_dom_html_meta_element_set_scheme: + * @self: A #WebKitDOMHTMLMetaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_meta_element_set_scheme(WebKitDOMHTMLMetaElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLMetaElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElementPrivate.h new file mode 100644 index 000000000..fb4c31a79 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLMetaElementPrivate_h +#define WebKitDOMHTMLMetaElementPrivate_h + +#include <WebCore/HTMLMetaElement.h> +#include <webkitdom/WebKitDOMHTMLMetaElement.h> + +namespace WebKit { +WebKitDOMHTMLMetaElement* wrapHTMLMetaElement(WebCore::HTMLMetaElement*); +WebKitDOMHTMLMetaElement* kit(WebCore::HTMLMetaElement*); +WebCore::HTMLMetaElement* core(WebKitDOMHTMLMetaElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLMetaElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp new file mode 100644 index 000000000..25f28f8d6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp @@ -0,0 +1,207 @@ +/* + * 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 "WebKitDOMHTMLModElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLModElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLModElement* kit(WebCore::HTMLModElement* obj) +{ + return WEBKIT_DOM_HTML_MOD_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLModElement* core(WebKitDOMHTMLModElement* request) +{ + return request ? static_cast<WebCore::HTMLModElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLModElement* wrapHTMLModElement(WebCore::HTMLModElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_MOD_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_mod_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLModElement* coreTarget = static_cast<WebCore::HTMLModElement*>(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_html_mod_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLModElement* coreTarget = static_cast<WebCore::HTMLModElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_mod_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLModElement* coreTarget = static_cast<WebCore::HTMLModElement*>(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_html_mod_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_mod_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_mod_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLModElement, webkit_dom_html_mod_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CITE, + PROP_DATE_TIME, +}; + +static void webkit_dom_html_mod_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLModElement* self = WEBKIT_DOM_HTML_MOD_ELEMENT(object); + + switch (propertyId) { + case PROP_CITE: + webkit_dom_html_mod_element_set_cite(self, g_value_get_string(value)); + break; + case PROP_DATE_TIME: + webkit_dom_html_mod_element_set_date_time(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_mod_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLModElement* self = WEBKIT_DOM_HTML_MOD_ELEMENT(object); + + switch (propertyId) { + case PROP_CITE: + g_value_take_string(value, webkit_dom_html_mod_element_get_cite(self)); + break; + case PROP_DATE_TIME: + g_value_take_string(value, webkit_dom_html_mod_element_get_date_time(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_mod_element_class_init(WebKitDOMHTMLModElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_mod_element_set_property; + gobjectClass->get_property = webkit_dom_html_mod_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CITE, + g_param_spec_string( + "cite", + "HTMLModElement:cite", + "read-write gchar* HTMLModElement:cite", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DATE_TIME, + g_param_spec_string( + "date-time", + "HTMLModElement:date-time", + "read-write gchar* HTMLModElement:date-time", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_mod_element_init(WebKitDOMHTMLModElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_mod_element_get_cite(WebKitDOMHTMLModElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_MOD_ELEMENT(self), 0); + WebCore::HTMLModElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::citeAttr)); + return result; +} + +void webkit_dom_html_mod_element_set_cite(WebKitDOMHTMLModElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_MOD_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLModElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::citeAttr, convertedValue); +} + +gchar* webkit_dom_html_mod_element_get_date_time(WebKitDOMHTMLModElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_MOD_ELEMENT(self), 0); + WebCore::HTMLModElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::datetimeAttr)); + return result; +} + +void webkit_dom_html_mod_element_set_date_time(WebKitDOMHTMLModElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_MOD_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLModElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::datetimeAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.h new file mode 100644 index 000000000..e9c770faf --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLModElement_h +#define WebKitDOMHTMLModElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT (webkit_dom_html_mod_element_get_type()) +#define WEBKIT_DOM_HTML_MOD_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT, WebKitDOMHTMLModElement)) +#define WEBKIT_DOM_HTML_MOD_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT, WebKitDOMHTMLModElementClass) +#define WEBKIT_DOM_IS_HTML_MOD_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_MOD_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT)) +#define WEBKIT_DOM_HTML_MOD_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT, WebKitDOMHTMLModElementClass)) + +struct _WebKitDOMHTMLModElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLModElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_mod_element_get_type(void); + +/** + * webkit_dom_html_mod_element_get_cite: + * @self: A #WebKitDOMHTMLModElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_mod_element_get_cite(WebKitDOMHTMLModElement* self); + +/** + * webkit_dom_html_mod_element_set_cite: + * @self: A #WebKitDOMHTMLModElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_mod_element_set_cite(WebKitDOMHTMLModElement* self, const gchar* value); + +/** + * webkit_dom_html_mod_element_get_date_time: + * @self: A #WebKitDOMHTMLModElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_mod_element_get_date_time(WebKitDOMHTMLModElement* self); + +/** + * webkit_dom_html_mod_element_set_date_time: + * @self: A #WebKitDOMHTMLModElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_mod_element_set_date_time(WebKitDOMHTMLModElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLModElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElementPrivate.h new file mode 100644 index 000000000..dde83567d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLModElementPrivate_h +#define WebKitDOMHTMLModElementPrivate_h + +#include <WebCore/HTMLModElement.h> +#include <webkitdom/WebKitDOMHTMLModElement.h> + +namespace WebKit { +WebKitDOMHTMLModElement* wrapHTMLModElement(WebCore::HTMLModElement*); +WebKitDOMHTMLModElement* kit(WebCore::HTMLModElement*); +WebCore::HTMLModElement* core(WebKitDOMHTMLModElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLModElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp new file mode 100644 index 000000000..7c356c33e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp @@ -0,0 +1,239 @@ +/* + * 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 "WebKitDOMHTMLOListElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLOListElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLOListElement* kit(WebCore::HTMLOListElement* obj) +{ + return WEBKIT_DOM_HTML_O_LIST_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLOListElement* core(WebKitDOMHTMLOListElement* request) +{ + return request ? static_cast<WebCore::HTMLOListElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLOListElement* wrapHTMLOListElement(WebCore::HTMLOListElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_O_LIST_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_o_list_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLOListElement* coreTarget = static_cast<WebCore::HTMLOListElement*>(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_html_o_list_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLOListElement* coreTarget = static_cast<WebCore::HTMLOListElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_o_list_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLOListElement* coreTarget = static_cast<WebCore::HTMLOListElement*>(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_html_o_list_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_o_list_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_o_list_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLOListElement, webkit_dom_html_o_list_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_COMPACT, + PROP_START, + PROP_TYPE, +}; + +static void webkit_dom_html_o_list_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOListElement* self = WEBKIT_DOM_HTML_O_LIST_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + webkit_dom_html_o_list_element_set_compact(self, g_value_get_boolean(value)); + break; + case PROP_START: + webkit_dom_html_o_list_element_set_start(self, g_value_get_long(value)); + break; + case PROP_TYPE: + webkit_dom_html_o_list_element_set_type_attr(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_o_list_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOListElement* self = WEBKIT_DOM_HTML_O_LIST_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + g_value_set_boolean(value, webkit_dom_html_o_list_element_get_compact(self)); + break; + case PROP_START: + g_value_set_long(value, webkit_dom_html_o_list_element_get_start(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_o_list_element_get_type_attr(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_o_list_element_class_init(WebKitDOMHTMLOListElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_o_list_element_set_property; + gobjectClass->get_property = webkit_dom_html_o_list_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_COMPACT, + g_param_spec_boolean( + "compact", + "HTMLOListElement:compact", + "read-write gboolean HTMLOListElement:compact", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_START, + g_param_spec_long( + "start", + "HTMLOListElement:start", + "read-write glong HTMLOListElement:start", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLOListElement:type", + "read-write gchar* HTMLOListElement:type", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_o_list_element_init(WebKitDOMHTMLOListElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_o_list_element_get_compact(WebKitDOMHTMLOListElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self), FALSE); + WebCore::HTMLOListElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::compactAttr); + return result; +} + +void webkit_dom_html_o_list_element_set_compact(WebKitDOMHTMLOListElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self)); + WebCore::HTMLOListElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::compactAttr, value); +} + +glong webkit_dom_html_o_list_element_get_start(WebKitDOMHTMLOListElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self), 0); + WebCore::HTMLOListElement* item = WebKit::core(self); + glong result = item->start(); + return result; +} + +void webkit_dom_html_o_list_element_set_start(WebKitDOMHTMLOListElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self)); + WebCore::HTMLOListElement* item = WebKit::core(self); + item->setStartForBindings(value); +} + +gchar* webkit_dom_html_o_list_element_get_type_attr(WebKitDOMHTMLOListElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self), 0); + WebCore::HTMLOListElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_o_list_element_set_type_attr(WebKitDOMHTMLOListElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLOListElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.h new file mode 100644 index 000000000..bca8a2d1e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.h @@ -0,0 +1,107 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLOListElement_h +#define WebKitDOMHTMLOListElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT (webkit_dom_html_o_list_element_get_type()) +#define WEBKIT_DOM_HTML_O_LIST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT, WebKitDOMHTMLOListElement)) +#define WEBKIT_DOM_HTML_O_LIST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT, WebKitDOMHTMLOListElementClass) +#define WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT)) +#define WEBKIT_DOM_HTML_O_LIST_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT, WebKitDOMHTMLOListElementClass)) + +struct _WebKitDOMHTMLOListElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLOListElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_o_list_element_get_type(void); + +/** + * webkit_dom_html_o_list_element_get_compact: + * @self: A #WebKitDOMHTMLOListElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_o_list_element_get_compact(WebKitDOMHTMLOListElement* self); + +/** + * webkit_dom_html_o_list_element_set_compact: + * @self: A #WebKitDOMHTMLOListElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_o_list_element_set_compact(WebKitDOMHTMLOListElement* self, gboolean value); + +/** + * webkit_dom_html_o_list_element_get_start: + * @self: A #WebKitDOMHTMLOListElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_o_list_element_get_start(WebKitDOMHTMLOListElement* self); + +/** + * webkit_dom_html_o_list_element_set_start: + * @self: A #WebKitDOMHTMLOListElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_o_list_element_set_start(WebKitDOMHTMLOListElement* self, glong value); + +/** + * webkit_dom_html_o_list_element_get_type_attr: + * @self: A #WebKitDOMHTMLOListElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_o_list_element_get_type_attr(WebKitDOMHTMLOListElement* self); + +/** + * webkit_dom_html_o_list_element_set_type_attr: + * @self: A #WebKitDOMHTMLOListElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_o_list_element_set_type_attr(WebKitDOMHTMLOListElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLOListElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElementPrivate.h new file mode 100644 index 000000000..1a2eaf649 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLOListElementPrivate_h +#define WebKitDOMHTMLOListElementPrivate_h + +#include <WebCore/HTMLOListElement.h> +#include <webkitdom/WebKitDOMHTMLOListElement.h> + +namespace WebKit { +WebKitDOMHTMLOListElement* wrapHTMLOListElement(WebCore::HTMLOListElement*); +WebKitDOMHTMLOListElement* kit(WebCore::HTMLOListElement*); +WebCore::HTMLOListElement* core(WebKitDOMHTMLOListElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLOListElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp new file mode 100644 index 000000000..24d73143d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp @@ -0,0 +1,753 @@ +/* + * 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 "WebKitDOMHTMLObjectElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLObjectElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLObjectElement* kit(WebCore::HTMLObjectElement* obj) +{ + return WEBKIT_DOM_HTML_OBJECT_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLObjectElement* core(WebKitDOMHTMLObjectElement* request) +{ + return request ? static_cast<WebCore::HTMLObjectElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLObjectElement* wrapHTMLObjectElement(WebCore::HTMLObjectElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_OBJECT_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_object_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLObjectElement* coreTarget = static_cast<WebCore::HTMLObjectElement*>(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_html_object_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLObjectElement* coreTarget = static_cast<WebCore::HTMLObjectElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_object_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLObjectElement* coreTarget = static_cast<WebCore::HTMLObjectElement*>(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_html_object_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_object_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_object_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLObjectElement, webkit_dom_html_object_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_FORM, + PROP_CODE, + PROP_ALIGN, + PROP_ARCHIVE, + PROP_BORDER, + PROP_CODE_BASE, + PROP_CODE_TYPE, + PROP_DATA, + PROP_DECLARE, + PROP_HEIGHT, + PROP_HSPACE, + PROP_NAME, + PROP_STANDBY, + PROP_TYPE, + PROP_USE_MAP, + PROP_VSPACE, + PROP_WIDTH, + PROP_CONTENT_DOCUMENT, +}; + +static void webkit_dom_html_object_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLObjectElement* self = WEBKIT_DOM_HTML_OBJECT_ELEMENT(object); + + switch (propertyId) { + case PROP_CODE: + webkit_dom_html_object_element_set_code(self, g_value_get_string(value)); + break; + case PROP_ALIGN: + webkit_dom_html_object_element_set_align(self, g_value_get_string(value)); + break; + case PROP_ARCHIVE: + webkit_dom_html_object_element_set_archive(self, g_value_get_string(value)); + break; + case PROP_BORDER: + webkit_dom_html_object_element_set_border(self, g_value_get_string(value)); + break; + case PROP_CODE_BASE: + webkit_dom_html_object_element_set_code_base(self, g_value_get_string(value)); + break; + case PROP_CODE_TYPE: + webkit_dom_html_object_element_set_code_type(self, g_value_get_string(value)); + break; + case PROP_DATA: + webkit_dom_html_object_element_set_data(self, g_value_get_string(value)); + break; + case PROP_DECLARE: + webkit_dom_html_object_element_set_declare(self, g_value_get_boolean(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_object_element_set_height(self, g_value_get_string(value)); + break; + case PROP_HSPACE: + webkit_dom_html_object_element_set_hspace(self, g_value_get_long(value)); + break; + case PROP_NAME: + webkit_dom_html_object_element_set_name(self, g_value_get_string(value)); + break; + case PROP_STANDBY: + webkit_dom_html_object_element_set_standby(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_object_element_set_type_attr(self, g_value_get_string(value)); + break; + case PROP_USE_MAP: + webkit_dom_html_object_element_set_use_map(self, g_value_get_string(value)); + break; + case PROP_VSPACE: + webkit_dom_html_object_element_set_vspace(self, g_value_get_long(value)); + break; + case PROP_WIDTH: + webkit_dom_html_object_element_set_width(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_object_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLObjectElement* self = WEBKIT_DOM_HTML_OBJECT_ELEMENT(object); + + switch (propertyId) { + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_object_element_get_form(self)); + break; + case PROP_CODE: + g_value_take_string(value, webkit_dom_html_object_element_get_code(self)); + break; + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_object_element_get_align(self)); + break; + case PROP_ARCHIVE: + g_value_take_string(value, webkit_dom_html_object_element_get_archive(self)); + break; + case PROP_BORDER: + g_value_take_string(value, webkit_dom_html_object_element_get_border(self)); + break; + case PROP_CODE_BASE: + g_value_take_string(value, webkit_dom_html_object_element_get_code_base(self)); + break; + case PROP_CODE_TYPE: + g_value_take_string(value, webkit_dom_html_object_element_get_code_type(self)); + break; + case PROP_DATA: + g_value_take_string(value, webkit_dom_html_object_element_get_data(self)); + break; + case PROP_DECLARE: + g_value_set_boolean(value, webkit_dom_html_object_element_get_declare(self)); + break; + case PROP_HEIGHT: + g_value_take_string(value, webkit_dom_html_object_element_get_height(self)); + break; + case PROP_HSPACE: + g_value_set_long(value, webkit_dom_html_object_element_get_hspace(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_object_element_get_name(self)); + break; + case PROP_STANDBY: + g_value_take_string(value, webkit_dom_html_object_element_get_standby(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_object_element_get_type_attr(self)); + break; + case PROP_USE_MAP: + g_value_take_string(value, webkit_dom_html_object_element_get_use_map(self)); + break; + case PROP_VSPACE: + g_value_set_long(value, webkit_dom_html_object_element_get_vspace(self)); + break; + case PROP_WIDTH: + g_value_take_string(value, webkit_dom_html_object_element_get_width(self)); + break; + case PROP_CONTENT_DOCUMENT: + g_value_set_object(value, webkit_dom_html_object_element_get_content_document(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_object_element_class_init(WebKitDOMHTMLObjectElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_object_element_set_property; + gobjectClass->get_property = webkit_dom_html_object_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLObjectElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLObjectElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CODE, + g_param_spec_string( + "code", + "HTMLObjectElement:code", + "read-write gchar* HTMLObjectElement:code", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLObjectElement:align", + "read-write gchar* HTMLObjectElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ARCHIVE, + g_param_spec_string( + "archive", + "HTMLObjectElement:archive", + "read-write gchar* HTMLObjectElement:archive", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BORDER, + g_param_spec_string( + "border", + "HTMLObjectElement:border", + "read-write gchar* HTMLObjectElement:border", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CODE_BASE, + g_param_spec_string( + "code-base", + "HTMLObjectElement:code-base", + "read-write gchar* HTMLObjectElement:code-base", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CODE_TYPE, + g_param_spec_string( + "code-type", + "HTMLObjectElement:code-type", + "read-write gchar* HTMLObjectElement:code-type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DATA, + g_param_spec_string( + "data", + "HTMLObjectElement:data", + "read-write gchar* HTMLObjectElement:data", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DECLARE, + g_param_spec_boolean( + "declare", + "HTMLObjectElement:declare", + "read-write gboolean HTMLObjectElement:declare", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_string( + "height", + "HTMLObjectElement:height", + "read-write gchar* HTMLObjectElement:height", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HSPACE, + g_param_spec_long( + "hspace", + "HTMLObjectElement:hspace", + "read-write glong HTMLObjectElement:hspace", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLObjectElement:name", + "read-write gchar* HTMLObjectElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_STANDBY, + g_param_spec_string( + "standby", + "HTMLObjectElement:standby", + "read-write gchar* HTMLObjectElement:standby", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLObjectElement:type", + "read-write gchar* HTMLObjectElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_USE_MAP, + g_param_spec_string( + "use-map", + "HTMLObjectElement:use-map", + "read-write gchar* HTMLObjectElement:use-map", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VSPACE, + g_param_spec_long( + "vspace", + "HTMLObjectElement:vspace", + "read-write glong HTMLObjectElement:vspace", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_string( + "width", + "HTMLObjectElement:width", + "read-write gchar* HTMLObjectElement:width", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CONTENT_DOCUMENT, + g_param_spec_object( + "content-document", + "HTMLObjectElement:content-document", + "read-only WebKitDOMDocument* HTMLObjectElement:content-document", + WEBKIT_DOM_TYPE_DOCUMENT, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_object_element_init(WebKitDOMHTMLObjectElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_object_element_get_form(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_object_element_get_code(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::codeAttr)); + return result; +} + +void webkit_dom_html_object_element_set_code(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::codeAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_align(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_object_element_set_align(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_archive(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::archiveAttr)); + return result; +} + +void webkit_dom_html_object_element_set_archive(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::archiveAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_border(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::borderAttr)); + return result; +} + +void webkit_dom_html_object_element_set_border(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::borderAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_code_base(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::codebaseAttr)); + return result; +} + +void webkit_dom_html_object_element_set_code_base(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::codebaseAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_code_type(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::codetypeAttr)); + return result; +} + +void webkit_dom_html_object_element_set_code_type(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::codetypeAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_data(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::dataAttr)); + return result; +} + +void webkit_dom_html_object_element_set_data(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::dataAttr, convertedValue); +} + +gboolean webkit_dom_html_object_element_get_declare(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), FALSE); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::declareAttr); + return result; +} + +void webkit_dom_html_object_element_set_declare(WebKitDOMHTMLObjectElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + WebCore::HTMLObjectElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::declareAttr, value); +} + +gchar* webkit_dom_html_object_element_get_height(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::heightAttr)); + return result; +} + +void webkit_dom_html_object_element_set_height(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::heightAttr, convertedValue); +} + +glong webkit_dom_html_object_element_get_hspace(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::hspaceAttr); + return result; +} + +void webkit_dom_html_object_element_set_hspace(WebKitDOMHTMLObjectElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + WebCore::HTMLObjectElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::hspaceAttr, value); +} + +gchar* webkit_dom_html_object_element_get_name(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_object_element_set_name(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_standby(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::standbyAttr)); + return result; +} + +void webkit_dom_html_object_element_set_standby(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::standbyAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_type_attr(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_object_element_set_type_attr(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + +gchar* webkit_dom_html_object_element_get_use_map(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr)); + return result; +} + +void webkit_dom_html_object_element_set_use_map(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::usemapAttr, convertedValue); +} + +glong webkit_dom_html_object_element_get_vspace(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::vspaceAttr); + return result; +} + +void webkit_dom_html_object_element_set_vspace(WebKitDOMHTMLObjectElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + WebCore::HTMLObjectElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::vspaceAttr, value); +} + +gchar* webkit_dom_html_object_element_get_width(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::widthAttr)); + return result; +} + +void webkit_dom_html_object_element_set_width(WebKitDOMHTMLObjectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLObjectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::widthAttr, convertedValue); +} + +WebKitDOMDocument* webkit_dom_html_object_element_get_content_document(WebKitDOMHTMLObjectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); + RefPtr<WebCore::Document> gobjectResult = WTF::getPtr(item->contentDocument()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.h new file mode 100644 index 000000000..5d3bde722 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.h @@ -0,0 +1,359 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLObjectElement_h +#define WebKitDOMHTMLObjectElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT (webkit_dom_html_object_element_get_type()) +#define WEBKIT_DOM_HTML_OBJECT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT, WebKitDOMHTMLObjectElement)) +#define WEBKIT_DOM_HTML_OBJECT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT, WebKitDOMHTMLObjectElementClass) +#define WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT)) +#define WEBKIT_DOM_HTML_OBJECT_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT, WebKitDOMHTMLObjectElementClass)) + +struct _WebKitDOMHTMLObjectElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLObjectElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_object_element_get_type(void); + +/** + * webkit_dom_html_object_element_get_form: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_object_element_get_form(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_get_code: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_code(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_code: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_code(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_align: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_align(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_align: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_align(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_archive: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_archive(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_archive: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_archive(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_border: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_border(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_border: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_border(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_code_base: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_code_base(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_code_base: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_code_base(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_code_type: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_code_type(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_code_type: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_code_type(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_data: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_data(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_data: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_data(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_declare: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_object_element_get_declare(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_declare: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_declare(WebKitDOMHTMLObjectElement* self, gboolean value); + +/** + * webkit_dom_html_object_element_get_height: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_height(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_height: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_height(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_hspace: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_object_element_get_hspace(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_hspace: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_hspace(WebKitDOMHTMLObjectElement* self, glong value); + +/** + * webkit_dom_html_object_element_get_name: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_name(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_name: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_name(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_standby: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_standby(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_standby: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_standby(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_type_attr: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_type_attr(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_type_attr: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_type_attr(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_use_map: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_use_map(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_use_map: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_use_map(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_vspace: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_object_element_get_vspace(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_vspace: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_vspace(WebKitDOMHTMLObjectElement* self, glong value); + +/** + * webkit_dom_html_object_element_get_width: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_object_element_get_width(WebKitDOMHTMLObjectElement* self); + +/** + * webkit_dom_html_object_element_set_width: + * @self: A #WebKitDOMHTMLObjectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_object_element_set_width(WebKitDOMHTMLObjectElement* self, const gchar* value); + +/** + * webkit_dom_html_object_element_get_content_document: + * @self: A #WebKitDOMHTMLObjectElement + * + * Returns: (transfer none): A #WebKitDOMDocument +**/ +WEBKIT_API WebKitDOMDocument* +webkit_dom_html_object_element_get_content_document(WebKitDOMHTMLObjectElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLObjectElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElementPrivate.h new file mode 100644 index 000000000..588a4ffea --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLObjectElementPrivate_h +#define WebKitDOMHTMLObjectElementPrivate_h + +#include <WebCore/HTMLObjectElement.h> +#include <webkitdom/WebKitDOMHTMLObjectElement.h> + +namespace WebKit { +WebKitDOMHTMLObjectElement* wrapHTMLObjectElement(WebCore::HTMLObjectElement*); +WebKitDOMHTMLObjectElement* kit(WebCore::HTMLObjectElement*); +WebCore::HTMLObjectElement* core(WebKitDOMHTMLObjectElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLObjectElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp new file mode 100644 index 000000000..c5e6d93c0 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp @@ -0,0 +1,205 @@ +/* + * 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 "WebKitDOMHTMLOptGroupElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLOptGroupElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLOptGroupElement* kit(WebCore::HTMLOptGroupElement* obj) +{ + return WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLOptGroupElement* core(WebKitDOMHTMLOptGroupElement* request) +{ + return request ? static_cast<WebCore::HTMLOptGroupElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLOptGroupElement* wrapHTMLOptGroupElement(WebCore::HTMLOptGroupElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_opt_group_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLOptGroupElement* coreTarget = static_cast<WebCore::HTMLOptGroupElement*>(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_html_opt_group_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLOptGroupElement* coreTarget = static_cast<WebCore::HTMLOptGroupElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_opt_group_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLOptGroupElement* coreTarget = static_cast<WebCore::HTMLOptGroupElement*>(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_html_opt_group_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_opt_group_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_opt_group_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLOptGroupElement, webkit_dom_html_opt_group_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_DISABLED, + PROP_LABEL, +}; + +static void webkit_dom_html_opt_group_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOptGroupElement* self = WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + webkit_dom_html_opt_group_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_LABEL: + webkit_dom_html_opt_group_element_set_label(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_opt_group_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOptGroupElement* self = WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_opt_group_element_get_disabled(self)); + break; + case PROP_LABEL: + g_value_take_string(value, webkit_dom_html_opt_group_element_get_label(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_opt_group_element_class_init(WebKitDOMHTMLOptGroupElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_opt_group_element_set_property; + gobjectClass->get_property = webkit_dom_html_opt_group_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLOptGroupElement:disabled", + "read-write gboolean HTMLOptGroupElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LABEL, + g_param_spec_string( + "label", + "HTMLOptGroupElement:label", + "read-write gchar* HTMLOptGroupElement:label", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_opt_group_element_init(WebKitDOMHTMLOptGroupElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_opt_group_element_get_disabled(WebKitDOMHTMLOptGroupElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT(self), FALSE); + WebCore::HTMLOptGroupElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr); + return result; +} + +void webkit_dom_html_opt_group_element_set_disabled(WebKitDOMHTMLOptGroupElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT(self)); + WebCore::HTMLOptGroupElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value); +} + +gchar* webkit_dom_html_opt_group_element_get_label(WebKitDOMHTMLOptGroupElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT(self), 0); + WebCore::HTMLOptGroupElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::labelAttr)); + return result; +} + +void webkit_dom_html_opt_group_element_set_label(WebKitDOMHTMLOptGroupElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLOptGroupElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::labelAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.h new file mode 100644 index 000000000..bd82fa8bd --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLOptGroupElement_h +#define WebKitDOMHTMLOptGroupElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT (webkit_dom_html_opt_group_element_get_type()) +#define WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT, WebKitDOMHTMLOptGroupElement)) +#define WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT, WebKitDOMHTMLOptGroupElementClass) +#define WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT)) +#define WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT, WebKitDOMHTMLOptGroupElementClass)) + +struct _WebKitDOMHTMLOptGroupElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLOptGroupElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_opt_group_element_get_type(void); + +/** + * webkit_dom_html_opt_group_element_get_disabled: + * @self: A #WebKitDOMHTMLOptGroupElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_opt_group_element_get_disabled(WebKitDOMHTMLOptGroupElement* self); + +/** + * webkit_dom_html_opt_group_element_set_disabled: + * @self: A #WebKitDOMHTMLOptGroupElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_opt_group_element_set_disabled(WebKitDOMHTMLOptGroupElement* self, gboolean value); + +/** + * webkit_dom_html_opt_group_element_get_label: + * @self: A #WebKitDOMHTMLOptGroupElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_opt_group_element_get_label(WebKitDOMHTMLOptGroupElement* self); + +/** + * webkit_dom_html_opt_group_element_set_label: + * @self: A #WebKitDOMHTMLOptGroupElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_opt_group_element_set_label(WebKitDOMHTMLOptGroupElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLOptGroupElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElementPrivate.h new file mode 100644 index 000000000..ef2cb619d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLOptGroupElementPrivate_h +#define WebKitDOMHTMLOptGroupElementPrivate_h + +#include <WebCore/HTMLOptGroupElement.h> +#include <webkitdom/WebKitDOMHTMLOptGroupElement.h> + +namespace WebKit { +WebKitDOMHTMLOptGroupElement* wrapHTMLOptGroupElement(WebCore::HTMLOptGroupElement*); +WebKitDOMHTMLOptGroupElement* kit(WebCore::HTMLOptGroupElement*); +WebCore::HTMLOptGroupElement* core(WebKitDOMHTMLOptGroupElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLOptGroupElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp new file mode 100644 index 000000000..f3ce4f1db --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp @@ -0,0 +1,379 @@ +/* + * 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 "WebKitDOMHTMLOptionElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLOptionElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLOptionElement* kit(WebCore::HTMLOptionElement* obj) +{ + return WEBKIT_DOM_HTML_OPTION_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLOptionElement* core(WebKitDOMHTMLOptionElement* request) +{ + return request ? static_cast<WebCore::HTMLOptionElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLOptionElement* wrapHTMLOptionElement(WebCore::HTMLOptionElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_OPTION_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_option_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLOptionElement* coreTarget = static_cast<WebCore::HTMLOptionElement*>(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_html_option_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLOptionElement* coreTarget = static_cast<WebCore::HTMLOptionElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_option_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLOptionElement* coreTarget = static_cast<WebCore::HTMLOptionElement*>(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_html_option_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_option_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_option_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLOptionElement, webkit_dom_html_option_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_DISABLED, + PROP_FORM, + PROP_LABEL, + PROP_DEFAULT_SELECTED, + PROP_SELECTED, + PROP_VALUE, + PROP_TEXT, + PROP_INDEX, +}; + +static void webkit_dom_html_option_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOptionElement* self = WEBKIT_DOM_HTML_OPTION_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + webkit_dom_html_option_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_LABEL: + webkit_dom_html_option_element_set_label(self, g_value_get_string(value)); + break; + case PROP_DEFAULT_SELECTED: + webkit_dom_html_option_element_set_default_selected(self, g_value_get_boolean(value)); + break; + case PROP_SELECTED: + webkit_dom_html_option_element_set_selected(self, g_value_get_boolean(value)); + break; + case PROP_VALUE: + webkit_dom_html_option_element_set_value(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_option_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOptionElement* self = WEBKIT_DOM_HTML_OPTION_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_option_element_get_disabled(self)); + break; + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_option_element_get_form(self)); + break; + case PROP_LABEL: + g_value_take_string(value, webkit_dom_html_option_element_get_label(self)); + break; + case PROP_DEFAULT_SELECTED: + g_value_set_boolean(value, webkit_dom_html_option_element_get_default_selected(self)); + break; + case PROP_SELECTED: + g_value_set_boolean(value, webkit_dom_html_option_element_get_selected(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_html_option_element_get_value(self)); + break; + case PROP_TEXT: + g_value_take_string(value, webkit_dom_html_option_element_get_text(self)); + break; + case PROP_INDEX: + g_value_set_long(value, webkit_dom_html_option_element_get_index(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_option_element_class_init(WebKitDOMHTMLOptionElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_option_element_set_property; + gobjectClass->get_property = webkit_dom_html_option_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLOptionElement:disabled", + "read-write gboolean HTMLOptionElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLOptionElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLOptionElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LABEL, + g_param_spec_string( + "label", + "HTMLOptionElement:label", + "read-write gchar* HTMLOptionElement:label", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DEFAULT_SELECTED, + g_param_spec_boolean( + "default-selected", + "HTMLOptionElement:default-selected", + "read-write gboolean HTMLOptionElement:default-selected", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SELECTED, + g_param_spec_boolean( + "selected", + "HTMLOptionElement:selected", + "read-write gboolean HTMLOptionElement:selected", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "HTMLOptionElement:value", + "read-write gchar* HTMLOptionElement:value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TEXT, + g_param_spec_string( + "text", + "HTMLOptionElement:text", + "read-only gchar* HTMLOptionElement:text", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_INDEX, + g_param_spec_long( + "index", + "HTMLOptionElement:index", + "read-only glong HTMLOptionElement:index", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_option_element_init(WebKitDOMHTMLOptionElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_option_element_get_disabled(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), FALSE); + WebCore::HTMLOptionElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr); + return result; +} + +void webkit_dom_html_option_element_set_disabled(WebKitDOMHTMLOptionElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); + WebCore::HTMLOptionElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_option_element_get_form(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), 0); + WebCore::HTMLOptionElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_option_element_get_label(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), 0); + WebCore::HTMLOptionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->label()); + return result; +} + +void webkit_dom_html_option_element_set_label(WebKitDOMHTMLOptionElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLOptionElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setLabel(convertedValue); +} + +gboolean webkit_dom_html_option_element_get_default_selected(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), FALSE); + WebCore::HTMLOptionElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::selectedAttr); + return result; +} + +void webkit_dom_html_option_element_set_default_selected(WebKitDOMHTMLOptionElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); + WebCore::HTMLOptionElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::selectedAttr, value); +} + +gboolean webkit_dom_html_option_element_get_selected(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), FALSE); + WebCore::HTMLOptionElement* item = WebKit::core(self); + gboolean result = item->selected(); + return result; +} + +void webkit_dom_html_option_element_set_selected(WebKitDOMHTMLOptionElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); + WebCore::HTMLOptionElement* item = WebKit::core(self); + item->setSelected(value); +} + +gchar* webkit_dom_html_option_element_get_value(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), 0); + WebCore::HTMLOptionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->value()); + return result; +} + +void webkit_dom_html_option_element_set_value(WebKitDOMHTMLOptionElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLOptionElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setValue(convertedValue); +} + +gchar* webkit_dom_html_option_element_get_text(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), 0); + WebCore::HTMLOptionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->text()); + return result; +} + +glong webkit_dom_html_option_element_get_index(WebKitDOMHTMLOptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self), 0); + WebCore::HTMLOptionElement* item = WebKit::core(self); + glong result = item->index(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.h new file mode 100644 index 000000000..538705690 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.h @@ -0,0 +1,170 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLOptionElement_h +#define WebKitDOMHTMLOptionElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT (webkit_dom_html_option_element_get_type()) +#define WEBKIT_DOM_HTML_OPTION_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT, WebKitDOMHTMLOptionElement)) +#define WEBKIT_DOM_HTML_OPTION_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT, WebKitDOMHTMLOptionElementClass) +#define WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_OPTION_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT)) +#define WEBKIT_DOM_HTML_OPTION_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT, WebKitDOMHTMLOptionElementClass)) + +struct _WebKitDOMHTMLOptionElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLOptionElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_option_element_get_type(void); + +/** + * webkit_dom_html_option_element_get_disabled: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_option_element_get_disabled(WebKitDOMHTMLOptionElement* self); + +/** + * webkit_dom_html_option_element_set_disabled: + * @self: A #WebKitDOMHTMLOptionElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_option_element_set_disabled(WebKitDOMHTMLOptionElement* self, gboolean value); + +/** + * webkit_dom_html_option_element_get_form: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_option_element_get_form(WebKitDOMHTMLOptionElement* self); + +/** + * webkit_dom_html_option_element_get_label: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_option_element_get_label(WebKitDOMHTMLOptionElement* self); + +/** + * webkit_dom_html_option_element_set_label: + * @self: A #WebKitDOMHTMLOptionElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_option_element_set_label(WebKitDOMHTMLOptionElement* self, const gchar* value); + +/** + * webkit_dom_html_option_element_get_default_selected: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_option_element_get_default_selected(WebKitDOMHTMLOptionElement* self); + +/** + * webkit_dom_html_option_element_set_default_selected: + * @self: A #WebKitDOMHTMLOptionElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_option_element_set_default_selected(WebKitDOMHTMLOptionElement* self, gboolean value); + +/** + * webkit_dom_html_option_element_get_selected: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_option_element_get_selected(WebKitDOMHTMLOptionElement* self); + +/** + * webkit_dom_html_option_element_set_selected: + * @self: A #WebKitDOMHTMLOptionElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_option_element_set_selected(WebKitDOMHTMLOptionElement* self, gboolean value); + +/** + * webkit_dom_html_option_element_get_value: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_option_element_get_value(WebKitDOMHTMLOptionElement* self); + +/** + * webkit_dom_html_option_element_set_value: + * @self: A #WebKitDOMHTMLOptionElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_option_element_set_value(WebKitDOMHTMLOptionElement* self, const gchar* value); + +/** + * webkit_dom_html_option_element_get_text: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_option_element_get_text(WebKitDOMHTMLOptionElement* self); + +/** + * webkit_dom_html_option_element_get_index: + * @self: A #WebKitDOMHTMLOptionElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_option_element_get_index(WebKitDOMHTMLOptionElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLOptionElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElementPrivate.h new file mode 100644 index 000000000..6205133b9 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLOptionElementPrivate_h +#define WebKitDOMHTMLOptionElementPrivate_h + +#include <WebCore/HTMLOptionElement.h> +#include <webkitdom/WebKitDOMHTMLOptionElement.h> + +namespace WebKit { +WebKitDOMHTMLOptionElement* wrapHTMLOptionElement(WebCore::HTMLOptionElement*); +WebKitDOMHTMLOptionElement* kit(WebCore::HTMLOptionElement*); +WebCore::HTMLOptionElement* core(WebKitDOMHTMLOptionElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLOptionElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp new file mode 100644 index 000000000..3f4184dcc --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp @@ -0,0 +1,166 @@ +/* + * 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 "WebKitDOMHTMLOptionsCollection.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLOptionElementPrivate.h" +#include "WebKitDOMHTMLOptionsCollectionPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLOptionsCollection* kit(WebCore::HTMLOptionsCollection* obj) +{ + return WEBKIT_DOM_HTML_OPTIONS_COLLECTION(kit(static_cast<WebCore::HTMLCollection*>(obj))); +} + +WebCore::HTMLOptionsCollection* core(WebKitDOMHTMLOptionsCollection* request) +{ + return request ? static_cast<WebCore::HTMLOptionsCollection*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLOptionsCollection* wrapHTMLOptionsCollection(WebCore::HTMLOptionsCollection* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_OPTIONS_COLLECTION(g_object_new(WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMHTMLOptionsCollection, webkit_dom_html_options_collection, WEBKIT_DOM_TYPE_HTML_COLLECTION) + +enum { + PROP_0, + PROP_SELECTED_INDEX, + PROP_LENGTH, +}; + +static void webkit_dom_html_options_collection_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOptionsCollection* self = WEBKIT_DOM_HTML_OPTIONS_COLLECTION(object); + + switch (propertyId) { + case PROP_SELECTED_INDEX: + webkit_dom_html_options_collection_set_selected_index(self, g_value_get_long(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_options_collection_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLOptionsCollection* self = WEBKIT_DOM_HTML_OPTIONS_COLLECTION(object); + + switch (propertyId) { + case PROP_SELECTED_INDEX: + g_value_set_long(value, webkit_dom_html_options_collection_get_selected_index(self)); + break; + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_html_options_collection_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_options_collection_class_init(WebKitDOMHTMLOptionsCollectionClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_options_collection_set_property; + gobjectClass->get_property = webkit_dom_html_options_collection_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_SELECTED_INDEX, + g_param_spec_long( + "selected-index", + "HTMLOptionsCollection:selected-index", + "read-write glong HTMLOptionsCollection:selected-index", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "HTMLOptionsCollection:length", + "read-only gulong HTMLOptionsCollection:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_options_collection_init(WebKitDOMHTMLOptionsCollection* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMNode* webkit_dom_html_options_collection_named_item(WebKitDOMHTMLOptionsCollection* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION(self), 0); + g_return_val_if_fail(name, 0); + WebCore::HTMLOptionsCollection* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->namedItem(convertedName)); + return WebKit::kit(gobjectResult.get()); +} + +glong webkit_dom_html_options_collection_get_selected_index(WebKitDOMHTMLOptionsCollection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION(self), 0); + WebCore::HTMLOptionsCollection* item = WebKit::core(self); + glong result = item->selectedIndex(); + return result; +} + +void webkit_dom_html_options_collection_set_selected_index(WebKitDOMHTMLOptionsCollection* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION(self)); + WebCore::HTMLOptionsCollection* item = WebKit::core(self); + item->setSelectedIndex(value); +} + +gulong webkit_dom_html_options_collection_get_length(WebKitDOMHTMLOptionsCollection* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION(self), 0); + WebCore::HTMLOptionsCollection* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.h new file mode 100644 index 000000000..b7bc609e3 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.h @@ -0,0 +1,90 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLOptionsCollection_h +#define WebKitDOMHTMLOptionsCollection_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLCollection.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION (webkit_dom_html_options_collection_get_type()) +#define WEBKIT_DOM_HTML_OPTIONS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION, WebKitDOMHTMLOptionsCollection)) +#define WEBKIT_DOM_HTML_OPTIONS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION, WebKitDOMHTMLOptionsCollectionClass) +#define WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION)) +#define WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION)) +#define WEBKIT_DOM_HTML_OPTIONS_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION, WebKitDOMHTMLOptionsCollectionClass)) + +struct _WebKitDOMHTMLOptionsCollection { + WebKitDOMHTMLCollection parent_instance; +}; + +struct _WebKitDOMHTMLOptionsCollectionClass { + WebKitDOMHTMLCollectionClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_options_collection_get_type(void); + +/** + * webkit_dom_html_options_collection_named_item: + * @self: A #WebKitDOMHTMLOptionsCollection + * @name: A #gchar + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_html_options_collection_named_item(WebKitDOMHTMLOptionsCollection* self, const gchar* name); + +/** + * webkit_dom_html_options_collection_get_selected_index: + * @self: A #WebKitDOMHTMLOptionsCollection + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_options_collection_get_selected_index(WebKitDOMHTMLOptionsCollection* self); + +/** + * webkit_dom_html_options_collection_set_selected_index: + * @self: A #WebKitDOMHTMLOptionsCollection + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_options_collection_set_selected_index(WebKitDOMHTMLOptionsCollection* self, glong value); + +/** + * webkit_dom_html_options_collection_get_length: + * @self: A #WebKitDOMHTMLOptionsCollection + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_html_options_collection_get_length(WebKitDOMHTMLOptionsCollection* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLOptionsCollection_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollectionPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollectionPrivate.h new file mode 100644 index 000000000..82c65e29f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollectionPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLOptionsCollectionPrivate_h +#define WebKitDOMHTMLOptionsCollectionPrivate_h + +#include <WebCore/HTMLOptionsCollection.h> +#include <webkitdom/WebKitDOMHTMLOptionsCollection.h> + +namespace WebKit { +WebKitDOMHTMLOptionsCollection* wrapHTMLOptionsCollection(WebCore::HTMLOptionsCollection*); +WebKitDOMHTMLOptionsCollection* kit(WebCore::HTMLOptionsCollection*); +WebCore::HTMLOptionsCollection* core(WebKitDOMHTMLOptionsCollection*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLOptionsCollectionPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp new file mode 100644 index 000000000..627528392 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp @@ -0,0 +1,171 @@ +/* + * 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 "WebKitDOMHTMLParagraphElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLParagraphElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLParagraphElement* kit(WebCore::HTMLParagraphElement* obj) +{ + return WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLParagraphElement* core(WebKitDOMHTMLParagraphElement* request) +{ + return request ? static_cast<WebCore::HTMLParagraphElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLParagraphElement* wrapHTMLParagraphElement(WebCore::HTMLParagraphElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_paragraph_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLParagraphElement* coreTarget = static_cast<WebCore::HTMLParagraphElement*>(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_html_paragraph_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLParagraphElement* coreTarget = static_cast<WebCore::HTMLParagraphElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_paragraph_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLParagraphElement* coreTarget = static_cast<WebCore::HTMLParagraphElement*>(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_html_paragraph_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_paragraph_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_paragraph_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLParagraphElement, webkit_dom_html_paragraph_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, +}; + +static void webkit_dom_html_paragraph_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLParagraphElement* self = WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_paragraph_element_set_align(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_paragraph_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLParagraphElement* self = WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_paragraph_element_get_align(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_paragraph_element_class_init(WebKitDOMHTMLParagraphElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_paragraph_element_set_property; + gobjectClass->get_property = webkit_dom_html_paragraph_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLParagraphElement:align", + "read-write gchar* HTMLParagraphElement:align", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_paragraph_element_init(WebKitDOMHTMLParagraphElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_paragraph_element_get_align(WebKitDOMHTMLParagraphElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT(self), 0); + WebCore::HTMLParagraphElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_paragraph_element_set_align(WebKitDOMHTMLParagraphElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLParagraphElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.h new file mode 100644 index 000000000..f8d902fba --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLParagraphElement_h +#define WebKitDOMHTMLParagraphElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT (webkit_dom_html_paragraph_element_get_type()) +#define WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT, WebKitDOMHTMLParagraphElement)) +#define WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT, WebKitDOMHTMLParagraphElementClass) +#define WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT)) +#define WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT, WebKitDOMHTMLParagraphElementClass)) + +struct _WebKitDOMHTMLParagraphElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLParagraphElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_paragraph_element_get_type(void); + +/** + * webkit_dom_html_paragraph_element_get_align: + * @self: A #WebKitDOMHTMLParagraphElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_paragraph_element_get_align(WebKitDOMHTMLParagraphElement* self); + +/** + * webkit_dom_html_paragraph_element_set_align: + * @self: A #WebKitDOMHTMLParagraphElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_paragraph_element_set_align(WebKitDOMHTMLParagraphElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLParagraphElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElementPrivate.h new file mode 100644 index 000000000..8bff0db84 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLParagraphElementPrivate_h +#define WebKitDOMHTMLParagraphElementPrivate_h + +#include <WebCore/HTMLParagraphElement.h> +#include <webkitdom/WebKitDOMHTMLParagraphElement.h> + +namespace WebKit { +WebKitDOMHTMLParagraphElement* wrapHTMLParagraphElement(WebCore::HTMLParagraphElement*); +WebKitDOMHTMLParagraphElement* kit(WebCore::HTMLParagraphElement*); +WebCore::HTMLParagraphElement* core(WebKitDOMHTMLParagraphElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLParagraphElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp new file mode 100644 index 000000000..315fb2e61 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp @@ -0,0 +1,279 @@ +/* + * 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 "WebKitDOMHTMLParamElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLParamElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLParamElement* kit(WebCore::HTMLParamElement* obj) +{ + return WEBKIT_DOM_HTML_PARAM_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLParamElement* core(WebKitDOMHTMLParamElement* request) +{ + return request ? static_cast<WebCore::HTMLParamElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLParamElement* wrapHTMLParamElement(WebCore::HTMLParamElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_PARAM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_param_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLParamElement* coreTarget = static_cast<WebCore::HTMLParamElement*>(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_html_param_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLParamElement* coreTarget = static_cast<WebCore::HTMLParamElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_param_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLParamElement* coreTarget = static_cast<WebCore::HTMLParamElement*>(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_html_param_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_param_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_param_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLParamElement, webkit_dom_html_param_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_NAME, + PROP_TYPE, + PROP_VALUE, + PROP_VALUE_TYPE, +}; + +static void webkit_dom_html_param_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLParamElement* self = WEBKIT_DOM_HTML_PARAM_ELEMENT(object); + + switch (propertyId) { + case PROP_NAME: + webkit_dom_html_param_element_set_name(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_param_element_set_type_attr(self, g_value_get_string(value)); + break; + case PROP_VALUE: + webkit_dom_html_param_element_set_value(self, g_value_get_string(value)); + break; + case PROP_VALUE_TYPE: + webkit_dom_html_param_element_set_value_type(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_param_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLParamElement* self = WEBKIT_DOM_HTML_PARAM_ELEMENT(object); + + switch (propertyId) { + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_param_element_get_name(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_param_element_get_type_attr(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_html_param_element_get_value(self)); + break; + case PROP_VALUE_TYPE: + g_value_take_string(value, webkit_dom_html_param_element_get_value_type(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_param_element_class_init(WebKitDOMHTMLParamElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_param_element_set_property; + gobjectClass->get_property = webkit_dom_html_param_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLParamElement:name", + "read-write gchar* HTMLParamElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLParamElement:type", + "read-write gchar* HTMLParamElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "HTMLParamElement:value", + "read-write gchar* HTMLParamElement:value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE_TYPE, + g_param_spec_string( + "value-type", + "HTMLParamElement:value-type", + "read-write gchar* HTMLParamElement:value-type", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_param_element_init(WebKitDOMHTMLParamElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_param_element_get_name(WebKitDOMHTMLParamElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self), 0); + WebCore::HTMLParamElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_param_element_set_name(WebKitDOMHTMLParamElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLParamElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gchar* webkit_dom_html_param_element_get_type_attr(WebKitDOMHTMLParamElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self), 0); + WebCore::HTMLParamElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_param_element_set_type_attr(WebKitDOMHTMLParamElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLParamElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + +gchar* webkit_dom_html_param_element_get_value(WebKitDOMHTMLParamElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self), 0); + WebCore::HTMLParamElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valueAttr)); + return result; +} + +void webkit_dom_html_param_element_set_value(WebKitDOMHTMLParamElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLParamElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, convertedValue); +} + +gchar* webkit_dom_html_param_element_get_value_type(WebKitDOMHTMLParamElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self), 0); + WebCore::HTMLParamElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valuetypeAttr)); + return result; +} + +void webkit_dom_html_param_element_set_value_type(WebKitDOMHTMLParamElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLParamElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valuetypeAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.h new file mode 100644 index 000000000..6888a0b10 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.h @@ -0,0 +1,125 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLParamElement_h +#define WebKitDOMHTMLParamElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT (webkit_dom_html_param_element_get_type()) +#define WEBKIT_DOM_HTML_PARAM_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT, WebKitDOMHTMLParamElement)) +#define WEBKIT_DOM_HTML_PARAM_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT, WebKitDOMHTMLParamElementClass) +#define WEBKIT_DOM_IS_HTML_PARAM_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_PARAM_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT)) +#define WEBKIT_DOM_HTML_PARAM_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT, WebKitDOMHTMLParamElementClass)) + +struct _WebKitDOMHTMLParamElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLParamElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_param_element_get_type(void); + +/** + * webkit_dom_html_param_element_get_name: + * @self: A #WebKitDOMHTMLParamElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_param_element_get_name(WebKitDOMHTMLParamElement* self); + +/** + * webkit_dom_html_param_element_set_name: + * @self: A #WebKitDOMHTMLParamElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_param_element_set_name(WebKitDOMHTMLParamElement* self, const gchar* value); + +/** + * webkit_dom_html_param_element_get_type_attr: + * @self: A #WebKitDOMHTMLParamElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_param_element_get_type_attr(WebKitDOMHTMLParamElement* self); + +/** + * webkit_dom_html_param_element_set_type_attr: + * @self: A #WebKitDOMHTMLParamElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_param_element_set_type_attr(WebKitDOMHTMLParamElement* self, const gchar* value); + +/** + * webkit_dom_html_param_element_get_value: + * @self: A #WebKitDOMHTMLParamElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_param_element_get_value(WebKitDOMHTMLParamElement* self); + +/** + * webkit_dom_html_param_element_set_value: + * @self: A #WebKitDOMHTMLParamElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_param_element_set_value(WebKitDOMHTMLParamElement* self, const gchar* value); + +/** + * webkit_dom_html_param_element_get_value_type: + * @self: A #WebKitDOMHTMLParamElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_param_element_get_value_type(WebKitDOMHTMLParamElement* self); + +/** + * webkit_dom_html_param_element_set_value_type: + * @self: A #WebKitDOMHTMLParamElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_param_element_set_value_type(WebKitDOMHTMLParamElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLParamElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElementPrivate.h new file mode 100644 index 000000000..b0fc939cc --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLParamElementPrivate_h +#define WebKitDOMHTMLParamElementPrivate_h + +#include <WebCore/HTMLParamElement.h> +#include <webkitdom/WebKitDOMHTMLParamElement.h> + +namespace WebKit { +WebKitDOMHTMLParamElement* wrapHTMLParamElement(WebCore::HTMLParamElement*); +WebKitDOMHTMLParamElement* kit(WebCore::HTMLParamElement*); +WebCore::HTMLParamElement* core(WebKitDOMHTMLParamElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLParamElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp new file mode 100644 index 000000000..a6c0bfbb7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp @@ -0,0 +1,203 @@ +/* + * 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 "WebKitDOMHTMLPreElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLPreElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLPreElement* kit(WebCore::HTMLPreElement* obj) +{ + return WEBKIT_DOM_HTML_PRE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLPreElement* core(WebKitDOMHTMLPreElement* request) +{ + return request ? static_cast<WebCore::HTMLPreElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLPreElement* wrapHTMLPreElement(WebCore::HTMLPreElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_PRE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_pre_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLPreElement* coreTarget = static_cast<WebCore::HTMLPreElement*>(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_html_pre_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLPreElement* coreTarget = static_cast<WebCore::HTMLPreElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_pre_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLPreElement* coreTarget = static_cast<WebCore::HTMLPreElement*>(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_html_pre_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_pre_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_pre_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLPreElement, webkit_dom_html_pre_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_WIDTH, + PROP_WRAP, +}; + +static void webkit_dom_html_pre_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLPreElement* self = WEBKIT_DOM_HTML_PRE_ELEMENT(object); + + switch (propertyId) { + case PROP_WIDTH: + webkit_dom_html_pre_element_set_width(self, g_value_get_long(value)); + break; + case PROP_WRAP: + webkit_dom_html_pre_element_set_wrap(self, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_pre_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLPreElement* self = WEBKIT_DOM_HTML_PRE_ELEMENT(object); + + switch (propertyId) { + case PROP_WIDTH: + g_value_set_long(value, webkit_dom_html_pre_element_get_width(self)); + break; + case PROP_WRAP: + g_value_set_boolean(value, webkit_dom_html_pre_element_get_wrap(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_pre_element_class_init(WebKitDOMHTMLPreElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_pre_element_set_property; + gobjectClass->get_property = webkit_dom_html_pre_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_long( + "width", + "HTMLPreElement:width", + "read-write glong HTMLPreElement:width", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WRAP, + g_param_spec_boolean( + "wrap", + "HTMLPreElement:wrap", + "read-write gboolean HTMLPreElement:wrap", + FALSE, + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_pre_element_init(WebKitDOMHTMLPreElement* request) +{ + UNUSED_PARAM(request); +} + +glong webkit_dom_html_pre_element_get_width(WebKitDOMHTMLPreElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PRE_ELEMENT(self), 0); + WebCore::HTMLPreElement* item = WebKit::core(self); + glong result = item->getIntegralAttribute(WebCore::HTMLNames::widthAttr); + return result; +} + +void webkit_dom_html_pre_element_set_width(WebKitDOMHTMLPreElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_PRE_ELEMENT(self)); + WebCore::HTMLPreElement* item = WebKit::core(self); + item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); +} + +gboolean webkit_dom_html_pre_element_get_wrap(WebKitDOMHTMLPreElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PRE_ELEMENT(self), FALSE); + WebCore::HTMLPreElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::wrapAttr); + return result; +} + +void webkit_dom_html_pre_element_set_wrap(WebKitDOMHTMLPreElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_PRE_ELEMENT(self)); + WebCore::HTMLPreElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::wrapAttr, value); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.h new file mode 100644 index 000000000..38cde94fb --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLPreElement_h +#define WebKitDOMHTMLPreElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT (webkit_dom_html_pre_element_get_type()) +#define WEBKIT_DOM_HTML_PRE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT, WebKitDOMHTMLPreElement)) +#define WEBKIT_DOM_HTML_PRE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT, WebKitDOMHTMLPreElementClass) +#define WEBKIT_DOM_IS_HTML_PRE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_PRE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT)) +#define WEBKIT_DOM_HTML_PRE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT, WebKitDOMHTMLPreElementClass)) + +struct _WebKitDOMHTMLPreElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLPreElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_pre_element_get_type(void); + +/** + * webkit_dom_html_pre_element_get_width: + * @self: A #WebKitDOMHTMLPreElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_pre_element_get_width(WebKitDOMHTMLPreElement* self); + +/** + * webkit_dom_html_pre_element_set_width: + * @self: A #WebKitDOMHTMLPreElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_pre_element_set_width(WebKitDOMHTMLPreElement* self, glong value); + +/** + * webkit_dom_html_pre_element_get_wrap: + * @self: A #WebKitDOMHTMLPreElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_pre_element_get_wrap(WebKitDOMHTMLPreElement* self); + +/** + * webkit_dom_html_pre_element_set_wrap: + * @self: A #WebKitDOMHTMLPreElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_pre_element_set_wrap(WebKitDOMHTMLPreElement* self, gboolean value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLPreElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElementPrivate.h new file mode 100644 index 000000000..ec81962b5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLPreElementPrivate_h +#define WebKitDOMHTMLPreElementPrivate_h + +#include <WebCore/HTMLPreElement.h> +#include <webkitdom/WebKitDOMHTMLPreElement.h> + +namespace WebKit { +WebKitDOMHTMLPreElement* wrapHTMLPreElement(WebCore::HTMLPreElement*); +WebKitDOMHTMLPreElement* kit(WebCore::HTMLPreElement*); +WebCore::HTMLPreElement* core(WebKitDOMHTMLPreElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLPreElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp new file mode 100644 index 000000000..2a264c722 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2013 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. ``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 + * 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 "WebKitDOMHTMLPrivate.h" + +#include <WebCore/HTMLAnchorElement.h> +#include <WebCore/HTMLAppletElement.h> +#include <WebCore/HTMLAreaElement.h> +#include <WebCore/HTMLAudioElement.h> +#include <WebCore/HTMLBRElement.h> +#include <WebCore/HTMLBaseElement.h> +#include <WebCore/HTMLBodyElement.h> +#include <WebCore/HTMLButtonElement.h> +#include <WebCore/HTMLCanvasElement.h> +#include <WebCore/HTMLDListElement.h> +#include <WebCore/HTMLDirectoryElement.h> +#include <WebCore/HTMLDivElement.h> +#include <WebCore/HTMLElement.h> +#include <WebCore/HTMLEmbedElement.h> +#include <WebCore/HTMLFieldSetElement.h> +#include <WebCore/HTMLFontElement.h> +#include <WebCore/HTMLFormElement.h> +#include <WebCore/HTMLFrameElement.h> +#include <WebCore/HTMLFrameSetElement.h> +#include <WebCore/HTMLHRElement.h> +#include <WebCore/HTMLHeadElement.h> +#include <WebCore/HTMLHeadingElement.h> +#include <WebCore/HTMLHtmlElement.h> +#include <WebCore/HTMLIFrameElement.h> +#include <WebCore/HTMLImageElement.h> +#include <WebCore/HTMLInputElement.h> +#include <WebCore/HTMLKeygenElement.h> +#include <WebCore/HTMLLIElement.h> +#include <WebCore/HTMLLabelElement.h> +#include <WebCore/HTMLLegendElement.h> +#include <WebCore/HTMLLinkElement.h> +#include <WebCore/HTMLMapElement.h> +#include <WebCore/HTMLMarqueeElement.h> +#include <WebCore/HTMLMenuElement.h> +#include <WebCore/HTMLMetaElement.h> +#include <WebCore/HTMLModElement.h> +#include <WebCore/HTMLNames.h> +#include <WebCore/HTMLOListElement.h> +#include <WebCore/HTMLObjectElement.h> +#include <WebCore/HTMLOptGroupElement.h> +#include <WebCore/HTMLOptionElement.h> +#include <WebCore/HTMLParagraphElement.h> +#include <WebCore/HTMLParamElement.h> +#include <WebCore/HTMLPreElement.h> +#include <WebCore/HTMLQuoteElement.h> +#include <WebCore/HTMLScriptElement.h> +#include <WebCore/HTMLSelectElement.h> +#include <WebCore/HTMLStyleElement.h> +#include <WebCore/HTMLTableCaptionElement.h> +#include <WebCore/HTMLTableCellElement.h> +#include <WebCore/HTMLTableColElement.h> +#include <WebCore/HTMLTableElement.h> +#include <WebCore/HTMLTableRowElement.h> +#include <WebCore/HTMLTableSectionElement.h> +#include <WebCore/HTMLTextAreaElement.h> +#include <WebCore/HTMLTitleElement.h> +#include <WebCore/HTMLUListElement.h> +#include <WebCore/HTMLVideoElement.h> +#include "WebKitDOMHTMLAnchorElementPrivate.h" +#include "WebKitDOMHTMLAppletElementPrivate.h" +#include "WebKitDOMHTMLAreaElementPrivate.h" +#include "WebKitDOMHTMLBRElementPrivate.h" +#include "WebKitDOMHTMLBaseElementPrivate.h" +#include "WebKitDOMHTMLBodyElementPrivate.h" +#include "WebKitDOMHTMLButtonElementPrivate.h" +#include "WebKitDOMHTMLCanvasElementPrivate.h" +#include "WebKitDOMHTMLDListElementPrivate.h" +#include "WebKitDOMHTMLDirectoryElementPrivate.h" +#include "WebKitDOMHTMLDivElementPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLEmbedElementPrivate.h" +#include "WebKitDOMHTMLFieldSetElementPrivate.h" +#include "WebKitDOMHTMLFontElementPrivate.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLFrameElementPrivate.h" +#include "WebKitDOMHTMLFrameSetElementPrivate.h" +#include "WebKitDOMHTMLHRElementPrivate.h" +#include "WebKitDOMHTMLHeadElementPrivate.h" +#include "WebKitDOMHTMLHeadingElementPrivate.h" +#include "WebKitDOMHTMLHtmlElementPrivate.h" +#include "WebKitDOMHTMLIFrameElementPrivate.h" +#include "WebKitDOMHTMLImageElementPrivate.h" +#include "WebKitDOMHTMLInputElementPrivate.h" +#include "WebKitDOMHTMLLIElementPrivate.h" +#include "WebKitDOMHTMLLabelElementPrivate.h" +#include "WebKitDOMHTMLLegendElementPrivate.h" +#include "WebKitDOMHTMLLinkElementPrivate.h" +#include "WebKitDOMHTMLMapElementPrivate.h" +#include "WebKitDOMHTMLMarqueeElementPrivate.h" +#include "WebKitDOMHTMLMenuElementPrivate.h" +#include "WebKitDOMHTMLMetaElementPrivate.h" +#include "WebKitDOMHTMLModElementPrivate.h" +#include "WebKitDOMHTMLOListElementPrivate.h" +#include "WebKitDOMHTMLObjectElementPrivate.h" +#include "WebKitDOMHTMLOptGroupElementPrivate.h" +#include "WebKitDOMHTMLOptionElementPrivate.h" +#include "WebKitDOMHTMLParagraphElementPrivate.h" +#include "WebKitDOMHTMLParamElementPrivate.h" +#include "WebKitDOMHTMLPreElementPrivate.h" +#include "WebKitDOMHTMLQuoteElementPrivate.h" +#include "WebKitDOMHTMLScriptElementPrivate.h" +#include "WebKitDOMHTMLSelectElementPrivate.h" +#include "WebKitDOMHTMLStyleElementPrivate.h" +#include "WebKitDOMHTMLTableCaptionElementPrivate.h" +#include "WebKitDOMHTMLTableCellElementPrivate.h" +#include "WebKitDOMHTMLTableColElementPrivate.h" +#include "WebKitDOMHTMLTableElementPrivate.h" +#include "WebKitDOMHTMLTableRowElementPrivate.h" +#include "WebKitDOMHTMLTableSectionElementPrivate.h" +#include "WebKitDOMHTMLTextAreaElementPrivate.h" +#include "WebKitDOMHTMLTitleElementPrivate.h" +#include "WebKitDOMHTMLUListElementPrivate.h" + +namespace WebKit { + +using namespace WebCore; +using namespace WebCore::HTMLNames; + +// macro(TagName, ElementName) + +#define FOR_EACH_HTML_TAG(macro) \ + macro(a, Anchor) \ + macro(applet, Applet) \ + macro(area, Area) \ + macro(base, Base) \ + macro(blockquote, Quote) \ + macro(body, Body) \ + macro(br, BR) \ + macro(button, Button) \ + macro(canvas, Canvas) \ + macro(caption, TableCaption) \ + macro(col, TableCol) \ + macro(del, Mod) \ + macro(dir, Directory) \ + macro(div, Div) \ + macro(dl, DList) \ + macro(embed, Embed) \ + macro(fieldset, FieldSet) \ + macro(font, Font) \ + macro(form, Form) \ + macro(frame, Frame) \ + macro(frameset, FrameSet) \ + macro(h1, Heading) \ + macro(head, Head) \ + macro(hr, HR) \ + macro(html, Html) \ + macro(iframe, IFrame) \ + macro(img, Image) \ + macro(input, Input) \ + macro(label, Label) \ + macro(legend, Legend) \ + macro(li, LI) \ + macro(link, Link) \ + macro(map, Map) \ + macro(marquee, Marquee) \ + macro(menu, Menu) \ + macro(meta, Meta) \ + macro(object, Object) \ + macro(ol, OList) \ + macro(optgroup, OptGroup) \ + macro(option, Option) \ + macro(p, Paragraph) \ + macro(param, Param) \ + macro(pre, Pre) \ + macro(q, Quote) \ + macro(script, Script) \ + macro(select, Select) \ + macro(style, Style) \ + macro(table, Table) \ + macro(tbody, TableSection) \ + macro(td, TableCell) \ + macro(textarea, TextArea) \ + macro(title, Title) \ + macro(tr, TableRow) \ + macro(ul, UList) \ + macro(colgroup, TableCol) \ + macro(h2, Heading) \ + macro(h3, Heading) \ + macro(h4, Heading) \ + macro(h5, Heading) \ + macro(h6, Heading) \ + macro(image, Image) \ + macro(ins, Mod) \ + macro(listing, Pre) \ + macro(tfoot, TableSection) \ + macro(th, TableCell) \ + macro(thead, TableSection) \ + macro(xmp, Pre) + +#define DEFINE_HTML_WRAPPER(TagName, ElementName) \ + static WebKitDOMHTMLElement* TagName##Wrapper(HTMLElement* element) \ + { \ + return WEBKIT_DOM_HTML_ELEMENT(wrapHTML##ElementName##Element(static_cast<HTML##ElementName##Element*>(element))); \ + } + FOR_EACH_HTML_TAG(DEFINE_HTML_WRAPPER) +#undef DEFINE_HTML_WRAPPER + +typedef WebKitDOMHTMLElement* (*HTMLElementWrapFunction)(HTMLElement*); + +WebKitDOMHTMLElement* wrap(HTMLElement* element) +{ + static HashMap<const QualifiedName::QualifiedNameImpl*, HTMLElementWrapFunction> map; + if (map.isEmpty()) { +#define ADD_HTML_WRAPPER(TagName, ElementName) map.set(TagName##Tag.impl(), TagName##Wrapper); + FOR_EACH_HTML_TAG(ADD_HTML_WRAPPER) +#undef ADD_HTML_WRAPPER + } + + if (HTMLElementWrapFunction wrapFunction = map.get(element->tagQName().impl())) + return wrapFunction(element); + + return wrapHTMLElement(element); +} + +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.h new file mode 100644 index 000000000..8cbc5245b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2013 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. ``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 + * 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. +*/ + +#ifndef WebKitDOMHTMLPrivate_h +#define WebKitDOMHTMLPrivate_h + +#include <webkitdom/webkitdomdefines.h> + +namespace WebCore { +class HTMLElement; +} + +namespace WebKit { +WebKitDOMHTMLElement* wrap(WebCore::HTMLElement*); +} + +#endif // WebKitDOMHTMLPrivate_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp new file mode 100644 index 000000000..ccd115f07 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp @@ -0,0 +1,171 @@ +/* + * 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 "WebKitDOMHTMLQuoteElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLQuoteElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLQuoteElement* kit(WebCore::HTMLQuoteElement* obj) +{ + return WEBKIT_DOM_HTML_QUOTE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLQuoteElement* core(WebKitDOMHTMLQuoteElement* request) +{ + return request ? static_cast<WebCore::HTMLQuoteElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLQuoteElement* wrapHTMLQuoteElement(WebCore::HTMLQuoteElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_QUOTE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_quote_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLQuoteElement* coreTarget = static_cast<WebCore::HTMLQuoteElement*>(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_html_quote_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLQuoteElement* coreTarget = static_cast<WebCore::HTMLQuoteElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_quote_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLQuoteElement* coreTarget = static_cast<WebCore::HTMLQuoteElement*>(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_html_quote_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_quote_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_quote_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLQuoteElement, webkit_dom_html_quote_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CITE, +}; + +static void webkit_dom_html_quote_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLQuoteElement* self = WEBKIT_DOM_HTML_QUOTE_ELEMENT(object); + + switch (propertyId) { + case PROP_CITE: + webkit_dom_html_quote_element_set_cite(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_quote_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLQuoteElement* self = WEBKIT_DOM_HTML_QUOTE_ELEMENT(object); + + switch (propertyId) { + case PROP_CITE: + g_value_take_string(value, webkit_dom_html_quote_element_get_cite(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_quote_element_class_init(WebKitDOMHTMLQuoteElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_quote_element_set_property; + gobjectClass->get_property = webkit_dom_html_quote_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CITE, + g_param_spec_string( + "cite", + "HTMLQuoteElement:cite", + "read-write gchar* HTMLQuoteElement:cite", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_quote_element_init(WebKitDOMHTMLQuoteElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_quote_element_get_cite(WebKitDOMHTMLQuoteElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT(self), 0); + WebCore::HTMLQuoteElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::citeAttr)); + return result; +} + +void webkit_dom_html_quote_element_set_cite(WebKitDOMHTMLQuoteElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLQuoteElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::citeAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.h new file mode 100644 index 000000000..89c08808d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLQuoteElement_h +#define WebKitDOMHTMLQuoteElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT (webkit_dom_html_quote_element_get_type()) +#define WEBKIT_DOM_HTML_QUOTE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT, WebKitDOMHTMLQuoteElement)) +#define WEBKIT_DOM_HTML_QUOTE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT, WebKitDOMHTMLQuoteElementClass) +#define WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT)) +#define WEBKIT_DOM_HTML_QUOTE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT, WebKitDOMHTMLQuoteElementClass)) + +struct _WebKitDOMHTMLQuoteElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLQuoteElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_quote_element_get_type(void); + +/** + * webkit_dom_html_quote_element_get_cite: + * @self: A #WebKitDOMHTMLQuoteElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_quote_element_get_cite(WebKitDOMHTMLQuoteElement* self); + +/** + * webkit_dom_html_quote_element_set_cite: + * @self: A #WebKitDOMHTMLQuoteElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_quote_element_set_cite(WebKitDOMHTMLQuoteElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLQuoteElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElementPrivate.h new file mode 100644 index 000000000..e785c942d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLQuoteElementPrivate_h +#define WebKitDOMHTMLQuoteElementPrivate_h + +#include <WebCore/HTMLQuoteElement.h> +#include <webkitdom/WebKitDOMHTMLQuoteElement.h> + +namespace WebKit { +WebKitDOMHTMLQuoteElement* wrapHTMLQuoteElement(WebCore::HTMLQuoteElement*); +WebKitDOMHTMLQuoteElement* kit(WebCore::HTMLQuoteElement*); +WebCore::HTMLQuoteElement* core(WebKitDOMHTMLQuoteElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLQuoteElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp new file mode 100644 index 000000000..1e900aa71 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp @@ -0,0 +1,383 @@ +/* + * 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 "WebKitDOMHTMLScriptElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLScriptElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLScriptElement* kit(WebCore::HTMLScriptElement* obj) +{ + return WEBKIT_DOM_HTML_SCRIPT_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLScriptElement* core(WebKitDOMHTMLScriptElement* request) +{ + return request ? static_cast<WebCore::HTMLScriptElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLScriptElement* wrapHTMLScriptElement(WebCore::HTMLScriptElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_SCRIPT_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_script_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLScriptElement* coreTarget = static_cast<WebCore::HTMLScriptElement*>(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_html_script_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLScriptElement* coreTarget = static_cast<WebCore::HTMLScriptElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_script_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLScriptElement* coreTarget = static_cast<WebCore::HTMLScriptElement*>(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_html_script_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_script_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_script_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLScriptElement, webkit_dom_html_script_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_TEXT, + PROP_HTML_FOR, + PROP_EVENT, + PROP_CHARSET, + PROP_DEFER, + PROP_SRC, + PROP_TYPE, +}; + +static void webkit_dom_html_script_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLScriptElement* self = WEBKIT_DOM_HTML_SCRIPT_ELEMENT(object); + + switch (propertyId) { + case PROP_TEXT: + webkit_dom_html_script_element_set_text(self, g_value_get_string(value)); + break; + case PROP_HTML_FOR: + webkit_dom_html_script_element_set_html_for(self, g_value_get_string(value)); + break; + case PROP_EVENT: + webkit_dom_html_script_element_set_event(self, g_value_get_string(value)); + break; + case PROP_CHARSET: + webkit_dom_html_script_element_set_charset(self, g_value_get_string(value)); + break; + case PROP_DEFER: + webkit_dom_html_script_element_set_defer(self, g_value_get_boolean(value)); + break; + case PROP_SRC: + webkit_dom_html_script_element_set_src(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_script_element_set_type_attr(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_script_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLScriptElement* self = WEBKIT_DOM_HTML_SCRIPT_ELEMENT(object); + + switch (propertyId) { + case PROP_TEXT: + g_value_take_string(value, webkit_dom_html_script_element_get_text(self)); + break; + case PROP_HTML_FOR: + g_value_take_string(value, webkit_dom_html_script_element_get_html_for(self)); + break; + case PROP_EVENT: + g_value_take_string(value, webkit_dom_html_script_element_get_event(self)); + break; + case PROP_CHARSET: + g_value_take_string(value, webkit_dom_html_script_element_get_charset(self)); + break; + case PROP_DEFER: + g_value_set_boolean(value, webkit_dom_html_script_element_get_defer(self)); + break; + case PROP_SRC: + g_value_take_string(value, webkit_dom_html_script_element_get_src(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_script_element_get_type_attr(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_script_element_class_init(WebKitDOMHTMLScriptElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_script_element_set_property; + gobjectClass->get_property = webkit_dom_html_script_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TEXT, + g_param_spec_string( + "text", + "HTMLScriptElement:text", + "read-write gchar* HTMLScriptElement:text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HTML_FOR, + g_param_spec_string( + "html-for", + "HTMLScriptElement:html-for", + "read-write gchar* HTMLScriptElement:html-for", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_EVENT, + g_param_spec_string( + "event", + "HTMLScriptElement:event", + "read-write gchar* HTMLScriptElement:event", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHARSET, + g_param_spec_string( + "charset", + "HTMLScriptElement:charset", + "read-write gchar* HTMLScriptElement:charset", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DEFER, + g_param_spec_boolean( + "defer", + "HTMLScriptElement:defer", + "read-write gboolean HTMLScriptElement:defer", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SRC, + g_param_spec_string( + "src", + "HTMLScriptElement:src", + "read-write gchar* HTMLScriptElement:src", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLScriptElement:type", + "read-write gchar* HTMLScriptElement:type", + "", + WEBKIT_PARAM_READWRITE)); +} + +static void webkit_dom_html_script_element_init(WebKitDOMHTMLScriptElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_script_element_get_text(WebKitDOMHTMLScriptElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self), 0); + WebCore::HTMLScriptElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->text()); + return result; +} + +void webkit_dom_html_script_element_set_text(WebKitDOMHTMLScriptElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLScriptElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setText(convertedValue); +} + +gchar* webkit_dom_html_script_element_get_html_for(WebKitDOMHTMLScriptElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self), 0); + WebCore::HTMLScriptElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::forAttr)); + return result; +} + +void webkit_dom_html_script_element_set_html_for(WebKitDOMHTMLScriptElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLScriptElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::forAttr, convertedValue); +} + +gchar* webkit_dom_html_script_element_get_event(WebKitDOMHTMLScriptElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self), 0); + WebCore::HTMLScriptElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::eventAttr)); + return result; +} + +void webkit_dom_html_script_element_set_event(WebKitDOMHTMLScriptElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLScriptElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::eventAttr, convertedValue); +} + +gchar* webkit_dom_html_script_element_get_charset(WebKitDOMHTMLScriptElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self), 0); + WebCore::HTMLScriptElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charsetAttr)); + return result; +} + +void webkit_dom_html_script_element_set_charset(WebKitDOMHTMLScriptElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLScriptElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charsetAttr, convertedValue); +} + +gboolean webkit_dom_html_script_element_get_defer(WebKitDOMHTMLScriptElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self), FALSE); + WebCore::HTMLScriptElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::deferAttr); + return result; +} + +void webkit_dom_html_script_element_set_defer(WebKitDOMHTMLScriptElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self)); + WebCore::HTMLScriptElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::deferAttr, value); +} + +gchar* webkit_dom_html_script_element_get_src(WebKitDOMHTMLScriptElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self), 0); + WebCore::HTMLScriptElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getURLAttribute(WebCore::HTMLNames::srcAttr)); + return result; +} + +void webkit_dom_html_script_element_set_src(WebKitDOMHTMLScriptElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLScriptElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::srcAttr, convertedValue); +} + +gchar* webkit_dom_html_script_element_get_type_attr(WebKitDOMHTMLScriptElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self), 0); + WebCore::HTMLScriptElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_script_element_set_type_attr(WebKitDOMHTMLScriptElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLScriptElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h new file mode 100644 index 000000000..6b98c474a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h @@ -0,0 +1,180 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLScriptElement_h +#define WebKitDOMHTMLScriptElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT (webkit_dom_html_script_element_get_type()) +#define WEBKIT_DOM_HTML_SCRIPT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT, WebKitDOMHTMLScriptElement)) +#define WEBKIT_DOM_HTML_SCRIPT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT, WebKitDOMHTMLScriptElementClass) +#define WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT)) +#define WEBKIT_DOM_HTML_SCRIPT_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT, WebKitDOMHTMLScriptElementClass)) + +struct _WebKitDOMHTMLScriptElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLScriptElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_script_element_get_type(void); + +/** + * webkit_dom_html_script_element_get_text: + * @self: A #WebKitDOMHTMLScriptElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_script_element_get_text(WebKitDOMHTMLScriptElement* self); + +/** + * webkit_dom_html_script_element_set_text: + * @self: A #WebKitDOMHTMLScriptElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_script_element_set_text(WebKitDOMHTMLScriptElement* self, const gchar* value); + +/** + * webkit_dom_html_script_element_get_html_for: + * @self: A #WebKitDOMHTMLScriptElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_script_element_get_html_for(WebKitDOMHTMLScriptElement* self); + +/** + * webkit_dom_html_script_element_set_html_for: + * @self: A #WebKitDOMHTMLScriptElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_script_element_set_html_for(WebKitDOMHTMLScriptElement* self, const gchar* value); + +/** + * webkit_dom_html_script_element_get_event: + * @self: A #WebKitDOMHTMLScriptElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_script_element_get_event(WebKitDOMHTMLScriptElement* self); + +/** + * webkit_dom_html_script_element_set_event: + * @self: A #WebKitDOMHTMLScriptElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_script_element_set_event(WebKitDOMHTMLScriptElement* self, const gchar* value); + +/** + * webkit_dom_html_script_element_get_charset: + * @self: A #WebKitDOMHTMLScriptElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_script_element_get_charset(WebKitDOMHTMLScriptElement* self); + +/** + * webkit_dom_html_script_element_set_charset: + * @self: A #WebKitDOMHTMLScriptElement + * @value: A #gchar + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_html_script_element_set_charset(WebKitDOMHTMLScriptElement* self, const gchar* value); + +/** + * webkit_dom_html_script_element_get_defer: + * @self: A #WebKitDOMHTMLScriptElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_script_element_get_defer(WebKitDOMHTMLScriptElement* self); + +/** + * webkit_dom_html_script_element_set_defer: + * @self: A #WebKitDOMHTMLScriptElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_script_element_set_defer(WebKitDOMHTMLScriptElement* self, gboolean value); + +/** + * webkit_dom_html_script_element_get_src: + * @self: A #WebKitDOMHTMLScriptElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_script_element_get_src(WebKitDOMHTMLScriptElement* self); + +/** + * webkit_dom_html_script_element_set_src: + * @self: A #WebKitDOMHTMLScriptElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_script_element_set_src(WebKitDOMHTMLScriptElement* self, const gchar* value); + +/** + * webkit_dom_html_script_element_get_type_attr: + * @self: A #WebKitDOMHTMLScriptElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_script_element_get_type_attr(WebKitDOMHTMLScriptElement* self); + +/** + * webkit_dom_html_script_element_set_type_attr: + * @self: A #WebKitDOMHTMLScriptElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_script_element_set_type_attr(WebKitDOMHTMLScriptElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLScriptElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElementPrivate.h new file mode 100644 index 000000000..83b7ba339 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLScriptElementPrivate_h +#define WebKitDOMHTMLScriptElementPrivate_h + +#include <WebCore/HTMLScriptElement.h> +#include <webkitdom/WebKitDOMHTMLScriptElement.h> + +namespace WebKit { +WebKitDOMHTMLScriptElement* wrapHTMLScriptElement(WebCore::HTMLScriptElement*); +WebKitDOMHTMLScriptElement* kit(WebCore::HTMLScriptElement*); +WebCore::HTMLScriptElement* core(WebKitDOMHTMLScriptElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLScriptElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp new file mode 100644 index 000000000..e3fd35345 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp @@ -0,0 +1,568 @@ +/* + * 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 "WebKitDOMHTMLSelectElement.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/HTMLNames.h> +#include <WebCore/HTMLOptGroupElement.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLOptionsCollectionPrivate.h" +#include "WebKitDOMHTMLSelectElementPrivate.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLSelectElement* kit(WebCore::HTMLSelectElement* obj) +{ + return WEBKIT_DOM_HTML_SELECT_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLSelectElement* core(WebKitDOMHTMLSelectElement* request) +{ + return request ? static_cast<WebCore::HTMLSelectElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLSelectElement* wrapHTMLSelectElement(WebCore::HTMLSelectElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_SELECT_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_select_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLSelectElement* coreTarget = static_cast<WebCore::HTMLSelectElement*>(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_html_select_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLSelectElement* coreTarget = static_cast<WebCore::HTMLSelectElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_select_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLSelectElement* coreTarget = static_cast<WebCore::HTMLSelectElement*>(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_html_select_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_select_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_select_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLSelectElement, webkit_dom_html_select_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_AUTOFOCUS, + PROP_DISABLED, + PROP_FORM, + PROP_MULTIPLE, + PROP_NAME, + PROP_SIZE, + PROP_TYPE, + PROP_OPTIONS, + PROP_LENGTH, + PROP_SELECTED_INDEX, + PROP_VALUE, + PROP_WILL_VALIDATE, +}; + +static void webkit_dom_html_select_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLSelectElement* self = WEBKIT_DOM_HTML_SELECT_ELEMENT(object); + + switch (propertyId) { + case PROP_AUTOFOCUS: + webkit_dom_html_select_element_set_autofocus(self, g_value_get_boolean(value)); + break; + case PROP_DISABLED: + webkit_dom_html_select_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_MULTIPLE: + webkit_dom_html_select_element_set_multiple(self, g_value_get_boolean(value)); + break; + case PROP_NAME: + webkit_dom_html_select_element_set_name(self, g_value_get_string(value)); + break; + case PROP_SIZE: + webkit_dom_html_select_element_set_size(self, g_value_get_long(value)); + break; + case PROP_LENGTH: + webkit_dom_html_select_element_set_length(self, g_value_get_ulong(value), nullptr); + break; + case PROP_SELECTED_INDEX: + webkit_dom_html_select_element_set_selected_index(self, g_value_get_long(value)); + break; + case PROP_VALUE: + webkit_dom_html_select_element_set_value(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_select_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLSelectElement* self = WEBKIT_DOM_HTML_SELECT_ELEMENT(object); + + switch (propertyId) { + case PROP_AUTOFOCUS: + g_value_set_boolean(value, webkit_dom_html_select_element_get_autofocus(self)); + break; + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_select_element_get_disabled(self)); + break; + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_select_element_get_form(self)); + break; + case PROP_MULTIPLE: + g_value_set_boolean(value, webkit_dom_html_select_element_get_multiple(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_select_element_get_name(self)); + break; + case PROP_SIZE: + g_value_set_long(value, webkit_dom_html_select_element_get_size(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_select_element_get_select_type(self)); + break; + case PROP_OPTIONS: + g_value_set_object(value, webkit_dom_html_select_element_get_options(self)); + break; + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_html_select_element_get_length(self)); + break; + case PROP_SELECTED_INDEX: + g_value_set_long(value, webkit_dom_html_select_element_get_selected_index(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_html_select_element_get_value(self)); + break; + case PROP_WILL_VALIDATE: + g_value_set_boolean(value, webkit_dom_html_select_element_get_will_validate(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_select_element_class_init(WebKitDOMHTMLSelectElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_select_element_set_property; + gobjectClass->get_property = webkit_dom_html_select_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_AUTOFOCUS, + g_param_spec_boolean( + "autofocus", + "HTMLSelectElement:autofocus", + "read-write gboolean HTMLSelectElement:autofocus", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLSelectElement:disabled", + "read-write gboolean HTMLSelectElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLSelectElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLSelectElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_MULTIPLE, + g_param_spec_boolean( + "multiple", + "HTMLSelectElement:multiple", + "read-write gboolean HTMLSelectElement:multiple", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLSelectElement:name", + "read-write gchar* HTMLSelectElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SIZE, + g_param_spec_long( + "size", + "HTMLSelectElement:size", + "read-write glong HTMLSelectElement:size", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLSelectElement:type", + "read-only gchar* HTMLSelectElement:type", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OPTIONS, + g_param_spec_object( + "options", + "HTMLSelectElement:options", + "read-only WebKitDOMHTMLOptionsCollection* HTMLSelectElement:options", + WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "HTMLSelectElement:length", + "read-write gulong HTMLSelectElement:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SELECTED_INDEX, + g_param_spec_long( + "selected-index", + "HTMLSelectElement:selected-index", + "read-write glong HTMLSelectElement:selected-index", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "HTMLSelectElement:value", + "read-write gchar* HTMLSelectElement:value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WILL_VALIDATE, + g_param_spec_boolean( + "will-validate", + "HTMLSelectElement:will-validate", + "read-only gboolean HTMLSelectElement:will-validate", + FALSE, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_html_select_element_init(WebKitDOMHTMLSelectElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMNode* webkit_dom_html_select_element_item(WebKitDOMHTMLSelectElement* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->item(index)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_html_select_element_named_item(WebKitDOMHTMLSelectElement* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + g_return_val_if_fail(name, 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->namedItem(convertedName)); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_select_element_add(WebKitDOMHTMLSelectElement* self, WebKitDOMHTMLElement* element, WebKitDOMHTMLElement* before, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(element)); + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(before)); + g_return_if_fail(!error || !*error); + WebCore::HTMLSelectElement* item = WebKit::core(self); + WebCore::HTMLElement* convertedElement = WebKit::core(element); + WebCore::HTMLElement* convertedBefore = WebKit::core(before); + Variant<RefPtr<WebCore::HTMLOptionElement>, RefPtr<WebCore::HTMLOptGroupElement>> variantElement; + if (is<WebCore::HTMLOptionElement>(convertedElement)) + variantElement = &downcast<WebCore::HTMLOptionElement>(*convertedElement); + else if (is<WebCore::HTMLOptGroupElement>(convertedElement)) + variantElement = &downcast<WebCore::HTMLOptGroupElement>(*convertedElement); + else { + WebCore::ExceptionCodeDescription ecdesc(WebCore::TypeError); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return; + } + + auto exception = item->add(WTFMove(variantElement), WebCore::HTMLSelectElement::HTMLElementOrInt(convertedBefore)); + if (exception.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(exception.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_html_select_element_remove(WebKitDOMHTMLSelectElement* self, glong index) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + WebCore::HTMLSelectElement* item = WebKit::core(self); + item->remove(index); +} + +gboolean webkit_dom_html_select_element_get_autofocus(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), FALSE); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::autofocusAttr); + return result; +} + +void webkit_dom_html_select_element_set_autofocus(WebKitDOMHTMLSelectElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + WebCore::HTMLSelectElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::autofocusAttr, value); +} + +gboolean webkit_dom_html_select_element_get_disabled(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), FALSE); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr); + return result; +} + +void webkit_dom_html_select_element_set_disabled(WebKitDOMHTMLSelectElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + WebCore::HTMLSelectElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_select_element_get_form(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +gboolean webkit_dom_html_select_element_get_multiple(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), FALSE); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gboolean result = item->multiple(); + return result; +} + +void webkit_dom_html_select_element_set_multiple(WebKitDOMHTMLSelectElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + WebCore::HTMLSelectElement* item = WebKit::core(self); + item->setMultiple(value); +} + +gchar* webkit_dom_html_select_element_get_name(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_select_element_set_name(WebKitDOMHTMLSelectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLSelectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +glong webkit_dom_html_select_element_get_size(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + glong result = item->size(); + return result; +} + +void webkit_dom_html_select_element_set_size(WebKitDOMHTMLSelectElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + WebCore::HTMLSelectElement* item = WebKit::core(self); + item->setSize(value); +} + +gchar* webkit_dom_html_select_element_get_select_type(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->type()); + return result; +} + +WebKitDOMHTMLOptionsCollection* webkit_dom_html_select_element_get_options(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLOptionsCollection> gobjectResult = WTF::getPtr(item->options()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_html_select_element_get_length(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + +void webkit_dom_html_select_element_set_length(WebKitDOMHTMLSelectElement* self, gulong value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + g_return_if_fail(!error || !*error); + WebCore::HTMLSelectElement* item = WebKit::core(self); + auto result = item->setLength(value); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +glong webkit_dom_html_select_element_get_selected_index(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + glong result = item->selectedIndex(); + return result; +} + +void webkit_dom_html_select_element_set_selected_index(WebKitDOMHTMLSelectElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + WebCore::HTMLSelectElement* item = WebKit::core(self); + item->setSelectedIndex(value); +} + +gchar* webkit_dom_html_select_element_get_value(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), 0); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->value()); + return result; +} + +void webkit_dom_html_select_element_set_value(WebKitDOMHTMLSelectElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLSelectElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setValue(convertedValue); +} + +gboolean webkit_dom_html_select_element_get_will_validate(WebKitDOMHTMLSelectElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(self), FALSE); + WebCore::HTMLSelectElement* item = WebKit::core(self); + gboolean result = item->willValidate(); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.h new file mode 100644 index 000000000..de8f32456 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.h @@ -0,0 +1,274 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLSelectElement_h +#define WebKitDOMHTMLSelectElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT (webkit_dom_html_select_element_get_type()) +#define WEBKIT_DOM_HTML_SELECT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT, WebKitDOMHTMLSelectElement)) +#define WEBKIT_DOM_HTML_SELECT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT, WebKitDOMHTMLSelectElementClass) +#define WEBKIT_DOM_IS_HTML_SELECT_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_SELECT_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT)) +#define WEBKIT_DOM_HTML_SELECT_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT, WebKitDOMHTMLSelectElementClass)) + +struct _WebKitDOMHTMLSelectElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLSelectElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_select_element_get_type(void); + +/** + * webkit_dom_html_select_element_item: + * @self: A #WebKitDOMHTMLSelectElement + * @index: A #gulong + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_html_select_element_item(WebKitDOMHTMLSelectElement* self, gulong index); + +/** + * webkit_dom_html_select_element_named_item: + * @self: A #WebKitDOMHTMLSelectElement + * @name: A #gchar + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_html_select_element_named_item(WebKitDOMHTMLSelectElement* self, const gchar* name); + +/** + * webkit_dom_html_select_element_add: + * @self: A #WebKitDOMHTMLSelectElement + * @element: A #WebKitDOMHTMLElement + * @before: A #WebKitDOMHTMLElement + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_add(WebKitDOMHTMLSelectElement* self, WebKitDOMHTMLElement* element, WebKitDOMHTMLElement* before, GError** error); + +/** + * webkit_dom_html_select_element_remove: + * @self: A #WebKitDOMHTMLSelectElement + * @index: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_remove(WebKitDOMHTMLSelectElement* self, glong index); + +/** + * webkit_dom_html_select_element_get_autofocus: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_select_element_get_autofocus(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_autofocus: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_autofocus(WebKitDOMHTMLSelectElement* self, gboolean value); + +/** + * webkit_dom_html_select_element_get_disabled: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_select_element_get_disabled(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_disabled: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_disabled(WebKitDOMHTMLSelectElement* self, gboolean value); + +/** + * webkit_dom_html_select_element_get_form: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_select_element_get_form(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_get_multiple: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_select_element_get_multiple(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_multiple: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_multiple(WebKitDOMHTMLSelectElement* self, gboolean value); + +/** + * webkit_dom_html_select_element_get_name: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_select_element_get_name(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_name: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_name(WebKitDOMHTMLSelectElement* self, const gchar* value); + +/** + * webkit_dom_html_select_element_get_size: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_select_element_get_size(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_size: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_size(WebKitDOMHTMLSelectElement* self, glong value); + +/** + * webkit_dom_html_select_element_get_select_type: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_select_element_get_select_type(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_get_options: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: (transfer full): A #WebKitDOMHTMLOptionsCollection +**/ +WEBKIT_API WebKitDOMHTMLOptionsCollection* +webkit_dom_html_select_element_get_options(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_get_length: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_html_select_element_get_length(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_length: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #gulong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_length(WebKitDOMHTMLSelectElement* self, gulong value, GError** error); + +/** + * webkit_dom_html_select_element_get_selected_index: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_select_element_get_selected_index(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_selected_index: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_selected_index(WebKitDOMHTMLSelectElement* self, glong value); + +/** + * webkit_dom_html_select_element_get_value: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_select_element_get_value(WebKitDOMHTMLSelectElement* self); + +/** + * webkit_dom_html_select_element_set_value: + * @self: A #WebKitDOMHTMLSelectElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_select_element_set_value(WebKitDOMHTMLSelectElement* self, const gchar* value); + +/** + * webkit_dom_html_select_element_get_will_validate: + * @self: A #WebKitDOMHTMLSelectElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_select_element_get_will_validate(WebKitDOMHTMLSelectElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLSelectElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElementPrivate.h new file mode 100644 index 000000000..75fd05e3c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLSelectElementPrivate_h +#define WebKitDOMHTMLSelectElementPrivate_h + +#include <WebCore/HTMLSelectElement.h> +#include <webkitdom/WebKitDOMHTMLSelectElement.h> + +namespace WebKit { +WebKitDOMHTMLSelectElement* wrapHTMLSelectElement(WebCore::HTMLSelectElement*); +WebKitDOMHTMLSelectElement* kit(WebCore::HTMLSelectElement*); +WebCore::HTMLSelectElement* core(WebKitDOMHTMLSelectElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLSelectElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp new file mode 100644 index 000000000..b5c2add9e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp @@ -0,0 +1,263 @@ +/* + * 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 "WebKitDOMHTMLStyleElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLStyleElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMStyleSheetPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLStyleElement* kit(WebCore::HTMLStyleElement* obj) +{ + return WEBKIT_DOM_HTML_STYLE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLStyleElement* core(WebKitDOMHTMLStyleElement* request) +{ + return request ? static_cast<WebCore::HTMLStyleElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLStyleElement* wrapHTMLStyleElement(WebCore::HTMLStyleElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_STYLE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_style_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLStyleElement* coreTarget = static_cast<WebCore::HTMLStyleElement*>(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_html_style_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLStyleElement* coreTarget = static_cast<WebCore::HTMLStyleElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_style_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLStyleElement* coreTarget = static_cast<WebCore::HTMLStyleElement*>(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_html_style_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_style_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_style_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLStyleElement, webkit_dom_html_style_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_DISABLED, + PROP_MEDIA, + PROP_TYPE, + PROP_SHEET, +}; + +static void webkit_dom_html_style_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLStyleElement* self = WEBKIT_DOM_HTML_STYLE_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + webkit_dom_html_style_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_MEDIA: + webkit_dom_html_style_element_set_media(self, g_value_get_string(value)); + break; + case PROP_TYPE: + webkit_dom_html_style_element_set_type_attr(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_style_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLStyleElement* self = WEBKIT_DOM_HTML_STYLE_ELEMENT(object); + + switch (propertyId) { + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_style_element_get_disabled(self)); + break; + case PROP_MEDIA: + g_value_take_string(value, webkit_dom_html_style_element_get_media(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_style_element_get_type_attr(self)); + break; + case PROP_SHEET: + g_value_set_object(value, webkit_dom_html_style_element_get_sheet(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_style_element_class_init(WebKitDOMHTMLStyleElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_style_element_set_property; + gobjectClass->get_property = webkit_dom_html_style_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLStyleElement:disabled", + "read-write gboolean HTMLStyleElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_MEDIA, + g_param_spec_string( + "media", + "HTMLStyleElement:media", + "read-write gchar* HTMLStyleElement:media", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLStyleElement:type", + "read-write gchar* HTMLStyleElement:type", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SHEET, + g_param_spec_object( + "sheet", + "HTMLStyleElement:sheet", + "read-only WebKitDOMStyleSheet* HTMLStyleElement:sheet", + WEBKIT_DOM_TYPE_STYLE_SHEET, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_html_style_element_init(WebKitDOMHTMLStyleElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_style_element_get_disabled(WebKitDOMHTMLStyleElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(self), FALSE); + WebCore::HTMLStyleElement* item = WebKit::core(self); + gboolean result = item->disabled(); + return result; +} + +void webkit_dom_html_style_element_set_disabled(WebKitDOMHTMLStyleElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(self)); + WebCore::HTMLStyleElement* item = WebKit::core(self); + item->setDisabled(value); +} + +gchar* webkit_dom_html_style_element_get_media(WebKitDOMHTMLStyleElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(self), 0); + WebCore::HTMLStyleElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::mediaAttr)); + return result; +} + +void webkit_dom_html_style_element_set_media(WebKitDOMHTMLStyleElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLStyleElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::mediaAttr, convertedValue); +} + +gchar* webkit_dom_html_style_element_get_type_attr(WebKitDOMHTMLStyleElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(self), 0); + WebCore::HTMLStyleElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_style_element_set_type_attr(WebKitDOMHTMLStyleElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLStyleElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + +WebKitDOMStyleSheet* webkit_dom_html_style_element_get_sheet(WebKitDOMHTMLStyleElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(self), 0); + WebCore::HTMLStyleElement* item = WebKit::core(self); + RefPtr<WebCore::StyleSheet> gobjectResult = WTF::getPtr(item->sheet()); + return WebKit::kit(gobjectResult.get()); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.h new file mode 100644 index 000000000..998ec2ca9 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.h @@ -0,0 +1,116 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLStyleElement_h +#define WebKitDOMHTMLStyleElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT (webkit_dom_html_style_element_get_type()) +#define WEBKIT_DOM_HTML_STYLE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT, WebKitDOMHTMLStyleElement)) +#define WEBKIT_DOM_HTML_STYLE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT, WebKitDOMHTMLStyleElementClass) +#define WEBKIT_DOM_IS_HTML_STYLE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_STYLE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT)) +#define WEBKIT_DOM_HTML_STYLE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT, WebKitDOMHTMLStyleElementClass)) + +struct _WebKitDOMHTMLStyleElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLStyleElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_style_element_get_type(void); + +/** + * webkit_dom_html_style_element_get_disabled: + * @self: A #WebKitDOMHTMLStyleElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_style_element_get_disabled(WebKitDOMHTMLStyleElement* self); + +/** + * webkit_dom_html_style_element_set_disabled: + * @self: A #WebKitDOMHTMLStyleElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_style_element_set_disabled(WebKitDOMHTMLStyleElement* self, gboolean value); + +/** + * webkit_dom_html_style_element_get_media: + * @self: A #WebKitDOMHTMLStyleElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_style_element_get_media(WebKitDOMHTMLStyleElement* self); + +/** + * webkit_dom_html_style_element_set_media: + * @self: A #WebKitDOMHTMLStyleElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_style_element_set_media(WebKitDOMHTMLStyleElement* self, const gchar* value); + +/** + * webkit_dom_html_style_element_get_type_attr: + * @self: A #WebKitDOMHTMLStyleElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_style_element_get_type_attr(WebKitDOMHTMLStyleElement* self); + +/** + * webkit_dom_html_style_element_set_type_attr: + * @self: A #WebKitDOMHTMLStyleElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_style_element_set_type_attr(WebKitDOMHTMLStyleElement* self, const gchar* value); + +/** + * webkit_dom_html_style_element_get_sheet: + * @self: A #WebKitDOMHTMLStyleElement + * + * Returns: (transfer full): A #WebKitDOMStyleSheet +**/ +WEBKIT_API WebKitDOMStyleSheet* +webkit_dom_html_style_element_get_sheet(WebKitDOMHTMLStyleElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLStyleElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElementPrivate.h new file mode 100644 index 000000000..8efea4cab --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLStyleElementPrivate_h +#define WebKitDOMHTMLStyleElementPrivate_h + +#include <WebCore/HTMLStyleElement.h> +#include <webkitdom/WebKitDOMHTMLStyleElement.h> + +namespace WebKit { +WebKitDOMHTMLStyleElement* wrapHTMLStyleElement(WebCore::HTMLStyleElement*); +WebKitDOMHTMLStyleElement* kit(WebCore::HTMLStyleElement*); +WebCore::HTMLStyleElement* core(WebKitDOMHTMLStyleElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLStyleElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp new file mode 100644 index 000000000..7077a2ecc --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp @@ -0,0 +1,171 @@ +/* + * 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 "WebKitDOMHTMLTableCaptionElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLTableCaptionElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTableCaptionElement* kit(WebCore::HTMLTableCaptionElement* obj) +{ + return WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTableCaptionElement* core(WebKitDOMHTMLTableCaptionElement* request) +{ + return request ? static_cast<WebCore::HTMLTableCaptionElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTableCaptionElement* wrapHTMLTableCaptionElement(WebCore::HTMLTableCaptionElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_table_caption_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTableCaptionElement* coreTarget = static_cast<WebCore::HTMLTableCaptionElement*>(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_html_table_caption_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableCaptionElement* coreTarget = static_cast<WebCore::HTMLTableCaptionElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_table_caption_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableCaptionElement* coreTarget = static_cast<WebCore::HTMLTableCaptionElement*>(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_html_table_caption_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_table_caption_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_table_caption_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTableCaptionElement, webkit_dom_html_table_caption_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, +}; + +static void webkit_dom_html_table_caption_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableCaptionElement* self = WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_table_caption_element_set_align(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_caption_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableCaptionElement* self = WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_table_caption_element_get_align(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_caption_element_class_init(WebKitDOMHTMLTableCaptionElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_table_caption_element_set_property; + gobjectClass->get_property = webkit_dom_html_table_caption_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLTableCaptionElement:align", + "read-write gchar* HTMLTableCaptionElement:align", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_table_caption_element_init(WebKitDOMHTMLTableCaptionElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_table_caption_element_get_align(WebKitDOMHTMLTableCaptionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CAPTION_ELEMENT(self), 0); + WebCore::HTMLTableCaptionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_table_caption_element_set_align(WebKitDOMHTMLTableCaptionElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CAPTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCaptionElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.h new file mode 100644 index 000000000..4e92d6e69 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTableCaptionElement_h +#define WebKitDOMHTMLTableCaptionElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT (webkit_dom_html_table_caption_element_get_type()) +#define WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT, WebKitDOMHTMLTableCaptionElement)) +#define WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT, WebKitDOMHTMLTableCaptionElementClass) +#define WEBKIT_DOM_IS_HTML_TABLE_CAPTION_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TABLE_CAPTION_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT)) +#define WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT, WebKitDOMHTMLTableCaptionElementClass)) + +struct _WebKitDOMHTMLTableCaptionElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTableCaptionElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_table_caption_element_get_type(void); + +/** + * webkit_dom_html_table_caption_element_get_align: + * @self: A #WebKitDOMHTMLTableCaptionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_caption_element_get_align(WebKitDOMHTMLTableCaptionElement* self); + +/** + * webkit_dom_html_table_caption_element_set_align: + * @self: A #WebKitDOMHTMLTableCaptionElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_caption_element_set_align(WebKitDOMHTMLTableCaptionElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTableCaptionElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElementPrivate.h new file mode 100644 index 000000000..2bd64ba12 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTableCaptionElementPrivate_h +#define WebKitDOMHTMLTableCaptionElementPrivate_h + +#include <WebCore/HTMLTableCaptionElement.h> +#include <webkitdom/WebKitDOMHTMLTableCaptionElement.h> + +namespace WebKit { +WebKitDOMHTMLTableCaptionElement* wrapHTMLTableCaptionElement(WebCore::HTMLTableCaptionElement*); +WebKitDOMHTMLTableCaptionElement* kit(WebCore::HTMLTableCaptionElement*); +WebCore::HTMLTableCaptionElement* core(WebKitDOMHTMLTableCaptionElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTableCaptionElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp new file mode 100644 index 000000000..80c19f06e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp @@ -0,0 +1,656 @@ +/* + * 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 "WebKitDOMHTMLTableCellElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLTableCellElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTableCellElement* kit(WebCore::HTMLTableCellElement* obj) +{ + return WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTableCellElement* core(WebKitDOMHTMLTableCellElement* request) +{ + return request ? static_cast<WebCore::HTMLTableCellElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTableCellElement* wrapHTMLTableCellElement(WebCore::HTMLTableCellElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_table_cell_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTableCellElement* coreTarget = static_cast<WebCore::HTMLTableCellElement*>(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_html_table_cell_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableCellElement* coreTarget = static_cast<WebCore::HTMLTableCellElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_table_cell_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableCellElement* coreTarget = static_cast<WebCore::HTMLTableCellElement*>(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_html_table_cell_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_table_cell_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_table_cell_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTableCellElement, webkit_dom_html_table_cell_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CELL_INDEX, + PROP_ALIGN, + PROP_AXIS, + PROP_BG_COLOR, + PROP_CH, + PROP_CH_OFF, + PROP_COL_SPAN, + PROP_ROW_SPAN, + PROP_HEADERS, + PROP_HEIGHT, + PROP_NO_WRAP, + PROP_V_ALIGN, + PROP_WIDTH, + PROP_ABBR, + PROP_SCOPE, +}; + +static void webkit_dom_html_table_cell_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableCellElement* self = WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_table_cell_element_set_align(self, g_value_get_string(value)); + break; + case PROP_AXIS: + webkit_dom_html_table_cell_element_set_axis(self, g_value_get_string(value)); + break; + case PROP_BG_COLOR: + webkit_dom_html_table_cell_element_set_bg_color(self, g_value_get_string(value)); + break; + case PROP_CH: + webkit_dom_html_table_cell_element_set_ch(self, g_value_get_string(value)); + break; + case PROP_CH_OFF: + webkit_dom_html_table_cell_element_set_ch_off(self, g_value_get_string(value)); + break; + case PROP_COL_SPAN: + webkit_dom_html_table_cell_element_set_col_span(self, g_value_get_long(value)); + break; + case PROP_ROW_SPAN: + webkit_dom_html_table_cell_element_set_row_span(self, g_value_get_long(value)); + break; + case PROP_HEADERS: + webkit_dom_html_table_cell_element_set_headers(self, g_value_get_string(value)); + break; + case PROP_HEIGHT: + webkit_dom_html_table_cell_element_set_height(self, g_value_get_string(value)); + break; + case PROP_NO_WRAP: + webkit_dom_html_table_cell_element_set_no_wrap(self, g_value_get_boolean(value)); + break; + case PROP_V_ALIGN: + webkit_dom_html_table_cell_element_set_v_align(self, g_value_get_string(value)); + break; + case PROP_WIDTH: + webkit_dom_html_table_cell_element_set_width(self, g_value_get_string(value)); + break; + case PROP_ABBR: + webkit_dom_html_table_cell_element_set_abbr(self, g_value_get_string(value)); + break; + case PROP_SCOPE: + webkit_dom_html_table_cell_element_set_scope(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_cell_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableCellElement* self = WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT(object); + + switch (propertyId) { + case PROP_CELL_INDEX: + g_value_set_long(value, webkit_dom_html_table_cell_element_get_cell_index(self)); + break; + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_align(self)); + break; + case PROP_AXIS: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_axis(self)); + break; + case PROP_BG_COLOR: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_bg_color(self)); + break; + case PROP_CH: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_ch(self)); + break; + case PROP_CH_OFF: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_ch_off(self)); + break; + case PROP_COL_SPAN: + g_value_set_long(value, webkit_dom_html_table_cell_element_get_col_span(self)); + break; + case PROP_ROW_SPAN: + g_value_set_long(value, webkit_dom_html_table_cell_element_get_row_span(self)); + break; + case PROP_HEADERS: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_headers(self)); + break; + case PROP_HEIGHT: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_height(self)); + break; + case PROP_NO_WRAP: + g_value_set_boolean(value, webkit_dom_html_table_cell_element_get_no_wrap(self)); + break; + case PROP_V_ALIGN: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_v_align(self)); + break; + case PROP_WIDTH: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_width(self)); + break; + case PROP_ABBR: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_abbr(self)); + break; + case PROP_SCOPE: + g_value_take_string(value, webkit_dom_html_table_cell_element_get_scope(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_cell_element_class_init(WebKitDOMHTMLTableCellElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_table_cell_element_set_property; + gobjectClass->get_property = webkit_dom_html_table_cell_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CELL_INDEX, + g_param_spec_long( + "cell-index", + "HTMLTableCellElement:cell-index", + "read-only glong HTMLTableCellElement:cell-index", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLTableCellElement:align", + "read-write gchar* HTMLTableCellElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_AXIS, + g_param_spec_string( + "axis", + "HTMLTableCellElement:axis", + "read-write gchar* HTMLTableCellElement:axis", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BG_COLOR, + g_param_spec_string( + "bg-color", + "HTMLTableCellElement:bg-color", + "read-write gchar* HTMLTableCellElement:bg-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH, + g_param_spec_string( + "ch", + "HTMLTableCellElement:ch", + "read-write gchar* HTMLTableCellElement:ch", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH_OFF, + g_param_spec_string( + "ch-off", + "HTMLTableCellElement:ch-off", + "read-write gchar* HTMLTableCellElement:ch-off", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_COL_SPAN, + g_param_spec_long( + "col-span", + "HTMLTableCellElement:col-span", + "read-write glong HTMLTableCellElement:col-span", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ROW_SPAN, + g_param_spec_long( + "row-span", + "HTMLTableCellElement:row-span", + "read-write glong HTMLTableCellElement:row-span", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEADERS, + g_param_spec_string( + "headers", + "HTMLTableCellElement:headers", + "read-write gchar* HTMLTableCellElement:headers", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_HEIGHT, + g_param_spec_string( + "height", + "HTMLTableCellElement:height", + "read-write gchar* HTMLTableCellElement:height", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NO_WRAP, + g_param_spec_boolean( + "no-wrap", + "HTMLTableCellElement:no-wrap", + "read-write gboolean HTMLTableCellElement:no-wrap", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_V_ALIGN, + g_param_spec_string( + "v-align", + "HTMLTableCellElement:v-align", + "read-write gchar* HTMLTableCellElement:v-align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_string( + "width", + "HTMLTableCellElement:width", + "read-write gchar* HTMLTableCellElement:width", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ABBR, + g_param_spec_string( + "abbr", + "HTMLTableCellElement:abbr", + "read-write gchar* HTMLTableCellElement:abbr", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SCOPE, + g_param_spec_string( + "scope", + "HTMLTableCellElement:scope", + "read-write gchar* HTMLTableCellElement:scope", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_table_cell_element_init(WebKitDOMHTMLTableCellElement* request) +{ + UNUSED_PARAM(request); +} + +glong webkit_dom_html_table_cell_element_get_cell_index(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + glong result = item->cellIndex(); + return result; +} + +gchar* webkit_dom_html_table_cell_element_get_align(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_align(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_axis(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::axisAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_axis(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::axisAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_bg_color(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_bg_color(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_ch(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_ch(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_ch_off(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_ch_off(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr, convertedValue); +} + +glong webkit_dom_html_table_cell_element_get_col_span(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + glong result = item->colSpanForBindings(); + return result; +} + +void webkit_dom_html_table_cell_element_set_col_span(WebKitDOMHTMLTableCellElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + item->setColSpanForBindings(value); +} + +glong webkit_dom_html_table_cell_element_get_row_span(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + glong result = item->rowSpanForBindings(); + return result; +} + +void webkit_dom_html_table_cell_element_set_row_span(WebKitDOMHTMLTableCellElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + item->setRowSpanForBindings(value); +} + +gchar* webkit_dom_html_table_cell_element_get_headers(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::headersAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_headers(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::headersAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_height(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::heightAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_height(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::heightAttr, convertedValue); +} + +gboolean webkit_dom_html_table_cell_element_get_no_wrap(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), FALSE); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::nowrapAttr); + return result; +} + +void webkit_dom_html_table_cell_element_set_no_wrap(WebKitDOMHTMLTableCellElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::nowrapAttr, value); +} + +gchar* webkit_dom_html_table_cell_element_get_v_align(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valignAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_v_align(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valignAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_width(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::widthAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_width(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::widthAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_abbr(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::abbrAttr)); + return result; +} + +void webkit_dom_html_table_cell_element_set_abbr(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::abbrAttr, convertedValue); +} + +gchar* webkit_dom_html_table_cell_element_get_scope(WebKitDOMHTMLTableCellElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self), 0); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->scope()); + return result; +} + +void webkit_dom_html_table_cell_element_set_scope(WebKitDOMHTMLTableCellElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setScope(convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.h new file mode 100644 index 000000000..81cff15f2 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.h @@ -0,0 +1,314 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTableCellElement_h +#define WebKitDOMHTMLTableCellElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT (webkit_dom_html_table_cell_element_get_type()) +#define WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT, WebKitDOMHTMLTableCellElement)) +#define WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT, WebKitDOMHTMLTableCellElementClass) +#define WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT)) +#define WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT, WebKitDOMHTMLTableCellElementClass)) + +struct _WebKitDOMHTMLTableCellElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTableCellElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_table_cell_element_get_type(void); + +/** + * webkit_dom_html_table_cell_element_get_cell_index: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_table_cell_element_get_cell_index(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_get_align: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_align(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_align: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_align(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_axis: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_axis(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_axis: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_axis(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_bg_color: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_bg_color(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_bg_color: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_bg_color(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_ch: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_ch(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_ch: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_ch(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_ch_off: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_ch_off(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_ch_off: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_ch_off(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_col_span: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_table_cell_element_get_col_span(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_col_span: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_col_span(WebKitDOMHTMLTableCellElement* self, glong value); + +/** + * webkit_dom_html_table_cell_element_get_row_span: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_table_cell_element_get_row_span(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_row_span: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_row_span(WebKitDOMHTMLTableCellElement* self, glong value); + +/** + * webkit_dom_html_table_cell_element_get_headers: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_headers(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_headers: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_headers(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_height: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_height(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_height: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_height(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_no_wrap: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_table_cell_element_get_no_wrap(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_no_wrap: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_no_wrap(WebKitDOMHTMLTableCellElement* self, gboolean value); + +/** + * webkit_dom_html_table_cell_element_get_v_align: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_v_align(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_v_align: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_v_align(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_width: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_width(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_width: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_width(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_abbr: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_abbr(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_abbr: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_abbr(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +/** + * webkit_dom_html_table_cell_element_get_scope: + * @self: A #WebKitDOMHTMLTableCellElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_cell_element_get_scope(WebKitDOMHTMLTableCellElement* self); + +/** + * webkit_dom_html_table_cell_element_set_scope: + * @self: A #WebKitDOMHTMLTableCellElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_cell_element_set_scope(WebKitDOMHTMLTableCellElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTableCellElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElementPrivate.h new file mode 100644 index 000000000..cdab24e41 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTableCellElementPrivate_h +#define WebKitDOMHTMLTableCellElementPrivate_h + +#include <WebCore/HTMLTableCellElement.h> +#include <webkitdom/WebKitDOMHTMLTableCellElement.h> + +namespace WebKit { +WebKitDOMHTMLTableCellElement* wrapHTMLTableCellElement(WebCore::HTMLTableCellElement*); +WebKitDOMHTMLTableCellElement* kit(WebCore::HTMLTableCellElement*); +WebCore::HTMLTableCellElement* core(WebKitDOMHTMLTableCellElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTableCellElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp new file mode 100644 index 000000000..614337c61 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp @@ -0,0 +1,349 @@ +/* + * 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 "WebKitDOMHTMLTableColElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLTableColElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTableColElement* kit(WebCore::HTMLTableColElement* obj) +{ + return WEBKIT_DOM_HTML_TABLE_COL_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTableColElement* core(WebKitDOMHTMLTableColElement* request) +{ + return request ? static_cast<WebCore::HTMLTableColElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTableColElement* wrapHTMLTableColElement(WebCore::HTMLTableColElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TABLE_COL_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_table_col_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTableColElement* coreTarget = static_cast<WebCore::HTMLTableColElement*>(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_html_table_col_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableColElement* coreTarget = static_cast<WebCore::HTMLTableColElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_table_col_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableColElement* coreTarget = static_cast<WebCore::HTMLTableColElement*>(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_html_table_col_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_table_col_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_table_col_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTableColElement, webkit_dom_html_table_col_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, + PROP_CH, + PROP_CH_OFF, + PROP_SPAN, + PROP_V_ALIGN, + PROP_WIDTH, +}; + +static void webkit_dom_html_table_col_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableColElement* self = WEBKIT_DOM_HTML_TABLE_COL_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_table_col_element_set_align(self, g_value_get_string(value)); + break; + case PROP_CH: + webkit_dom_html_table_col_element_set_ch(self, g_value_get_string(value)); + break; + case PROP_CH_OFF: + webkit_dom_html_table_col_element_set_ch_off(self, g_value_get_string(value)); + break; + case PROP_SPAN: + webkit_dom_html_table_col_element_set_span(self, g_value_get_long(value)); + break; + case PROP_V_ALIGN: + webkit_dom_html_table_col_element_set_v_align(self, g_value_get_string(value)); + break; + case PROP_WIDTH: + webkit_dom_html_table_col_element_set_width(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_col_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableColElement* self = WEBKIT_DOM_HTML_TABLE_COL_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_table_col_element_get_align(self)); + break; + case PROP_CH: + g_value_take_string(value, webkit_dom_html_table_col_element_get_ch(self)); + break; + case PROP_CH_OFF: + g_value_take_string(value, webkit_dom_html_table_col_element_get_ch_off(self)); + break; + case PROP_SPAN: + g_value_set_long(value, webkit_dom_html_table_col_element_get_span(self)); + break; + case PROP_V_ALIGN: + g_value_take_string(value, webkit_dom_html_table_col_element_get_v_align(self)); + break; + case PROP_WIDTH: + g_value_take_string(value, webkit_dom_html_table_col_element_get_width(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_col_element_class_init(WebKitDOMHTMLTableColElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_table_col_element_set_property; + gobjectClass->get_property = webkit_dom_html_table_col_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLTableColElement:align", + "read-write gchar* HTMLTableColElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH, + g_param_spec_string( + "ch", + "HTMLTableColElement:ch", + "read-write gchar* HTMLTableColElement:ch", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH_OFF, + g_param_spec_string( + "ch-off", + "HTMLTableColElement:ch-off", + "read-write gchar* HTMLTableColElement:ch-off", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SPAN, + g_param_spec_long( + "span", + "HTMLTableColElement:span", + "read-write glong HTMLTableColElement:span", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_V_ALIGN, + g_param_spec_string( + "v-align", + "HTMLTableColElement:v-align", + "read-write gchar* HTMLTableColElement:v-align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_string( + "width", + "HTMLTableColElement:width", + "read-write gchar* HTMLTableColElement:width", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_table_col_element_init(WebKitDOMHTMLTableColElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_table_col_element_get_align(WebKitDOMHTMLTableColElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self), 0); + WebCore::HTMLTableColElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_table_col_element_set_align(WebKitDOMHTMLTableColElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableColElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_table_col_element_get_ch(WebKitDOMHTMLTableColElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self), 0); + WebCore::HTMLTableColElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charAttr)); + return result; +} + +void webkit_dom_html_table_col_element_set_ch(WebKitDOMHTMLTableColElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableColElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charAttr, convertedValue); +} + +gchar* webkit_dom_html_table_col_element_get_ch_off(WebKitDOMHTMLTableColElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self), 0); + WebCore::HTMLTableColElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr)); + return result; +} + +void webkit_dom_html_table_col_element_set_ch_off(WebKitDOMHTMLTableColElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableColElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr, convertedValue); +} + +glong webkit_dom_html_table_col_element_get_span(WebKitDOMHTMLTableColElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self), 0); + WebCore::HTMLTableColElement* item = WebKit::core(self); + glong result = item->span(); + return result; +} + +void webkit_dom_html_table_col_element_set_span(WebKitDOMHTMLTableColElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self)); + WebCore::HTMLTableColElement* item = WebKit::core(self); + item->setSpan(value); +} + +gchar* webkit_dom_html_table_col_element_get_v_align(WebKitDOMHTMLTableColElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self), 0); + WebCore::HTMLTableColElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valignAttr)); + return result; +} + +void webkit_dom_html_table_col_element_set_v_align(WebKitDOMHTMLTableColElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableColElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valignAttr, convertedValue); +} + +gchar* webkit_dom_html_table_col_element_get_width(WebKitDOMHTMLTableColElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self), 0); + WebCore::HTMLTableColElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::widthAttr)); + return result; +} + +void webkit_dom_html_table_col_element_set_width(WebKitDOMHTMLTableColElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableColElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::widthAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.h new file mode 100644 index 000000000..5739a2007 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.h @@ -0,0 +1,161 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTableColElement_h +#define WebKitDOMHTMLTableColElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT (webkit_dom_html_table_col_element_get_type()) +#define WEBKIT_DOM_HTML_TABLE_COL_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT, WebKitDOMHTMLTableColElement)) +#define WEBKIT_DOM_HTML_TABLE_COL_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT, WebKitDOMHTMLTableColElementClass) +#define WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT)) +#define WEBKIT_DOM_HTML_TABLE_COL_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT, WebKitDOMHTMLTableColElementClass)) + +struct _WebKitDOMHTMLTableColElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTableColElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_table_col_element_get_type(void); + +/** + * webkit_dom_html_table_col_element_get_align: + * @self: A #WebKitDOMHTMLTableColElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_col_element_get_align(WebKitDOMHTMLTableColElement* self); + +/** + * webkit_dom_html_table_col_element_set_align: + * @self: A #WebKitDOMHTMLTableColElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_col_element_set_align(WebKitDOMHTMLTableColElement* self, const gchar* value); + +/** + * webkit_dom_html_table_col_element_get_ch: + * @self: A #WebKitDOMHTMLTableColElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_col_element_get_ch(WebKitDOMHTMLTableColElement* self); + +/** + * webkit_dom_html_table_col_element_set_ch: + * @self: A #WebKitDOMHTMLTableColElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_col_element_set_ch(WebKitDOMHTMLTableColElement* self, const gchar* value); + +/** + * webkit_dom_html_table_col_element_get_ch_off: + * @self: A #WebKitDOMHTMLTableColElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_col_element_get_ch_off(WebKitDOMHTMLTableColElement* self); + +/** + * webkit_dom_html_table_col_element_set_ch_off: + * @self: A #WebKitDOMHTMLTableColElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_col_element_set_ch_off(WebKitDOMHTMLTableColElement* self, const gchar* value); + +/** + * webkit_dom_html_table_col_element_get_span: + * @self: A #WebKitDOMHTMLTableColElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_table_col_element_get_span(WebKitDOMHTMLTableColElement* self); + +/** + * webkit_dom_html_table_col_element_set_span: + * @self: A #WebKitDOMHTMLTableColElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_table_col_element_set_span(WebKitDOMHTMLTableColElement* self, glong value); + +/** + * webkit_dom_html_table_col_element_get_v_align: + * @self: A #WebKitDOMHTMLTableColElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_col_element_get_v_align(WebKitDOMHTMLTableColElement* self); + +/** + * webkit_dom_html_table_col_element_set_v_align: + * @self: A #WebKitDOMHTMLTableColElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_col_element_set_v_align(WebKitDOMHTMLTableColElement* self, const gchar* value); + +/** + * webkit_dom_html_table_col_element_get_width: + * @self: A #WebKitDOMHTMLTableColElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_col_element_get_width(WebKitDOMHTMLTableColElement* self); + +/** + * webkit_dom_html_table_col_element_set_width: + * @self: A #WebKitDOMHTMLTableColElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_col_element_set_width(WebKitDOMHTMLTableColElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTableColElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElementPrivate.h new file mode 100644 index 000000000..e0a3cf847 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTableColElementPrivate_h +#define WebKitDOMHTMLTableColElementPrivate_h + +#include <WebCore/HTMLTableColElement.h> +#include <webkitdom/WebKitDOMHTMLTableColElement.h> + +namespace WebKit { +WebKitDOMHTMLTableColElement* wrapHTMLTableColElement(WebCore::HTMLTableColElement*); +WebKitDOMHTMLTableColElement* kit(WebCore::HTMLTableColElement*); +WebCore::HTMLTableColElement* core(WebKitDOMHTMLTableColElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTableColElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp new file mode 100644 index 000000000..fd3eee95a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp @@ -0,0 +1,666 @@ +/* + * 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 "WebKitDOMHTMLTableElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLTableCaptionElementPrivate.h" +#include "WebKitDOMHTMLTableElementPrivate.h" +#include "WebKitDOMHTMLTableSectionElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTableElement* kit(WebCore::HTMLTableElement* obj) +{ + return WEBKIT_DOM_HTML_TABLE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTableElement* core(WebKitDOMHTMLTableElement* request) +{ + return request ? static_cast<WebCore::HTMLTableElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTableElement* wrapHTMLTableElement(WebCore::HTMLTableElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TABLE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_table_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTableElement* coreTarget = static_cast<WebCore::HTMLTableElement*>(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_html_table_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableElement* coreTarget = static_cast<WebCore::HTMLTableElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_table_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableElement* coreTarget = static_cast<WebCore::HTMLTableElement*>(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_html_table_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_table_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_table_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTableElement, webkit_dom_html_table_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_CAPTION, + PROP_T_HEAD, + PROP_T_FOOT, + PROP_ROWS, + PROP_T_BODIES, + PROP_ALIGN, + PROP_BG_COLOR, + PROP_BORDER, + PROP_CELL_PADDING, + PROP_CELL_SPACING, + PROP_RULES, + PROP_SUMMARY, + PROP_WIDTH, +}; + +static void webkit_dom_html_table_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableElement* self = WEBKIT_DOM_HTML_TABLE_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_table_element_set_align(self, g_value_get_string(value)); + break; + case PROP_BG_COLOR: + webkit_dom_html_table_element_set_bg_color(self, g_value_get_string(value)); + break; + case PROP_BORDER: + webkit_dom_html_table_element_set_border(self, g_value_get_string(value)); + break; + case PROP_CELL_PADDING: + webkit_dom_html_table_element_set_cell_padding(self, g_value_get_string(value)); + break; + case PROP_CELL_SPACING: + webkit_dom_html_table_element_set_cell_spacing(self, g_value_get_string(value)); + break; + case PROP_RULES: + webkit_dom_html_table_element_set_rules(self, g_value_get_string(value)); + break; + case PROP_SUMMARY: + webkit_dom_html_table_element_set_summary(self, g_value_get_string(value)); + break; + case PROP_WIDTH: + webkit_dom_html_table_element_set_width(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableElement* self = WEBKIT_DOM_HTML_TABLE_ELEMENT(object); + + switch (propertyId) { + case PROP_CAPTION: + g_value_set_object(value, webkit_dom_html_table_element_get_caption(self)); + break; + case PROP_T_HEAD: + g_value_set_object(value, webkit_dom_html_table_element_get_t_head(self)); + break; + case PROP_T_FOOT: + g_value_set_object(value, webkit_dom_html_table_element_get_t_foot(self)); + break; + case PROP_ROWS: + g_value_set_object(value, webkit_dom_html_table_element_get_rows(self)); + break; + case PROP_T_BODIES: + g_value_set_object(value, webkit_dom_html_table_element_get_t_bodies(self)); + break; + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_table_element_get_align(self)); + break; + case PROP_BG_COLOR: + g_value_take_string(value, webkit_dom_html_table_element_get_bg_color(self)); + break; + case PROP_BORDER: + g_value_take_string(value, webkit_dom_html_table_element_get_border(self)); + break; + case PROP_CELL_PADDING: + g_value_take_string(value, webkit_dom_html_table_element_get_cell_padding(self)); + break; + case PROP_CELL_SPACING: + g_value_take_string(value, webkit_dom_html_table_element_get_cell_spacing(self)); + break; + case PROP_RULES: + g_value_take_string(value, webkit_dom_html_table_element_get_rules(self)); + break; + case PROP_SUMMARY: + g_value_take_string(value, webkit_dom_html_table_element_get_summary(self)); + break; + case PROP_WIDTH: + g_value_take_string(value, webkit_dom_html_table_element_get_width(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_element_class_init(WebKitDOMHTMLTableElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_table_element_set_property; + gobjectClass->get_property = webkit_dom_html_table_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_CAPTION, + g_param_spec_object( + "caption", + "HTMLTableElement:caption", + "read-only WebKitDOMHTMLTableCaptionElement* HTMLTableElement:caption", + WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_T_HEAD, + g_param_spec_object( + "t-head", + "HTMLTableElement:t-head", + "read-only WebKitDOMHTMLTableSectionElement* HTMLTableElement:t-head", + WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_T_FOOT, + g_param_spec_object( + "t-foot", + "HTMLTableElement:t-foot", + "read-only WebKitDOMHTMLTableSectionElement* HTMLTableElement:t-foot", + WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ROWS, + g_param_spec_object( + "rows", + "HTMLTableElement:rows", + "read-only WebKitDOMHTMLCollection* HTMLTableElement:rows", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_T_BODIES, + g_param_spec_object( + "t-bodies", + "HTMLTableElement:t-bodies", + "read-only WebKitDOMHTMLCollection* HTMLTableElement:t-bodies", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLTableElement:align", + "read-write gchar* HTMLTableElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BG_COLOR, + g_param_spec_string( + "bg-color", + "HTMLTableElement:bg-color", + "read-write gchar* HTMLTableElement:bg-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BORDER, + g_param_spec_string( + "border", + "HTMLTableElement:border", + "read-write gchar* HTMLTableElement:border", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CELL_PADDING, + g_param_spec_string( + "cell-padding", + "HTMLTableElement:cell-padding", + "read-write gchar* HTMLTableElement:cell-padding", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CELL_SPACING, + g_param_spec_string( + "cell-spacing", + "HTMLTableElement:cell-spacing", + "read-write gchar* HTMLTableElement:cell-spacing", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_RULES, + g_param_spec_string( + "rules", + "HTMLTableElement:rules", + "read-write gchar* HTMLTableElement:rules", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SUMMARY, + g_param_spec_string( + "summary", + "HTMLTableElement:summary", + "read-write gchar* HTMLTableElement:summary", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WIDTH, + g_param_spec_string( + "width", + "HTMLTableElement:width", + "read-write gchar* HTMLTableElement:width", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_table_element_init(WebKitDOMHTMLTableElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLElement* webkit_dom_html_table_element_create_t_head(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLElement> gobjectResult = WTF::getPtr(item->createTHead()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_table_element_delete_t_head(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + WebCore::HTMLTableElement* item = WebKit::core(self); + item->deleteTHead(); +} + +WebKitDOMHTMLElement* webkit_dom_html_table_element_create_t_foot(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLElement> gobjectResult = WTF::getPtr(item->createTFoot()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_table_element_delete_t_foot(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + WebCore::HTMLTableElement* item = WebKit::core(self); + item->deleteTFoot(); +} + +WebKitDOMHTMLElement* webkit_dom_html_table_element_create_caption(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLElement> gobjectResult = WTF::getPtr(item->createCaption()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_table_element_delete_caption(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + WebCore::HTMLTableElement* item = WebKit::core(self); + item->deleteCaption(); +} + +WebKitDOMHTMLElement* webkit_dom_html_table_element_insert_row(WebKitDOMHTMLTableElement* self, glong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + auto result = item->insertRow(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +void webkit_dom_html_table_element_delete_row(WebKitDOMHTMLTableElement* self, glong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(!error || !*error); + WebCore::HTMLTableElement* item = WebKit::core(self); + auto result = item->deleteRow(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMHTMLTableCaptionElement* webkit_dom_html_table_element_get_caption(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLTableCaptionElement> gobjectResult = WTF::getPtr(item->caption()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_table_element_set_caption(WebKitDOMHTMLTableElement* self, WebKitDOMHTMLTableCaptionElement* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CAPTION_ELEMENT(value)); + g_return_if_fail(!error || !*error); + WebCore::HTMLTableElement* item = WebKit::core(self); + WebCore::HTMLTableCaptionElement* convertedValue = WebKit::core(value); + auto result = item->setCaption(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMHTMLTableSectionElement* webkit_dom_html_table_element_get_t_head(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLTableSectionElement> gobjectResult = WTF::getPtr(item->tHead()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_table_element_set_t_head(WebKitDOMHTMLTableElement* self, WebKitDOMHTMLTableSectionElement* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(value)); + g_return_if_fail(!error || !*error); + WebCore::HTMLTableElement* item = WebKit::core(self); + WebCore::HTMLTableSectionElement* convertedValue = WebKit::core(value); + auto result = item->setTHead(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMHTMLTableSectionElement* webkit_dom_html_table_element_get_t_foot(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLTableSectionElement> gobjectResult = WTF::getPtr(item->tFoot()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_html_table_element_set_t_foot(WebKitDOMHTMLTableElement* self, WebKitDOMHTMLTableSectionElement* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(value)); + g_return_if_fail(!error || !*error); + WebCore::HTMLTableElement* item = WebKit::core(self); + WebCore::HTMLTableSectionElement* convertedValue = WebKit::core(value); + auto result = item->setTFoot(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMHTMLCollection* webkit_dom_html_table_element_get_rows(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->rows()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMHTMLCollection* webkit_dom_html_table_element_get_t_bodies(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->tBodies()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_table_element_get_align(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_table_element_set_align(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_table_element_get_bg_color(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr)); + return result; +} + +void webkit_dom_html_table_element_set_bg_color(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr, convertedValue); +} + +gchar* webkit_dom_html_table_element_get_border(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::borderAttr)); + return result; +} + +void webkit_dom_html_table_element_set_border(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::borderAttr, convertedValue); +} + +gchar* webkit_dom_html_table_element_get_cell_padding(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::cellpaddingAttr)); + return result; +} + +void webkit_dom_html_table_element_set_cell_padding(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::cellpaddingAttr, convertedValue); +} + +gchar* webkit_dom_html_table_element_get_cell_spacing(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::cellspacingAttr)); + return result; +} + +void webkit_dom_html_table_element_set_cell_spacing(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::cellspacingAttr, convertedValue); +} + +gchar* webkit_dom_html_table_element_get_rules(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::rulesAttr)); + return result; +} + +void webkit_dom_html_table_element_set_rules(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::rulesAttr, convertedValue); +} + +gchar* webkit_dom_html_table_element_get_summary(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::summaryAttr)); + return result; +} + +void webkit_dom_html_table_element_set_summary(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::summaryAttr, convertedValue); +} + +gchar* webkit_dom_html_table_element_get_width(WebKitDOMHTMLTableElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self), 0); + WebCore::HTMLTableElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::widthAttr)); + return result; +} + +void webkit_dom_html_table_element_set_width(WebKitDOMHTMLTableElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::widthAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.h new file mode 100644 index 000000000..9f2d9f5b1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.h @@ -0,0 +1,344 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTableElement_h +#define WebKitDOMHTMLTableElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT (webkit_dom_html_table_element_get_type()) +#define WEBKIT_DOM_HTML_TABLE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT, WebKitDOMHTMLTableElement)) +#define WEBKIT_DOM_HTML_TABLE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT, WebKitDOMHTMLTableElementClass) +#define WEBKIT_DOM_IS_HTML_TABLE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TABLE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT)) +#define WEBKIT_DOM_HTML_TABLE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT, WebKitDOMHTMLTableElementClass)) + +struct _WebKitDOMHTMLTableElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTableElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_table_element_get_type(void); + +/** + * webkit_dom_html_table_element_create_t_head: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer none): A #WebKitDOMHTMLElement +**/ +WEBKIT_API WebKitDOMHTMLElement* +webkit_dom_html_table_element_create_t_head(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_delete_t_head: + * @self: A #WebKitDOMHTMLTableElement + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_delete_t_head(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_create_t_foot: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer none): A #WebKitDOMHTMLElement +**/ +WEBKIT_API WebKitDOMHTMLElement* +webkit_dom_html_table_element_create_t_foot(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_delete_t_foot: + * @self: A #WebKitDOMHTMLTableElement + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_delete_t_foot(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_create_caption: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer none): A #WebKitDOMHTMLElement +**/ +WEBKIT_API WebKitDOMHTMLElement* +webkit_dom_html_table_element_create_caption(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_delete_caption: + * @self: A #WebKitDOMHTMLTableElement + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_delete_caption(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_insert_row: + * @self: A #WebKitDOMHTMLTableElement + * @index: A #glong + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMHTMLElement +**/ +WEBKIT_API WebKitDOMHTMLElement* +webkit_dom_html_table_element_insert_row(WebKitDOMHTMLTableElement* self, glong index, GError** error); + +/** + * webkit_dom_html_table_element_delete_row: + * @self: A #WebKitDOMHTMLTableElement + * @index: A #glong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_delete_row(WebKitDOMHTMLTableElement* self, glong index, GError** error); + +/** + * webkit_dom_html_table_element_get_caption: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer none): A #WebKitDOMHTMLTableCaptionElement +**/ +WEBKIT_API WebKitDOMHTMLTableCaptionElement* +webkit_dom_html_table_element_get_caption(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_caption: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #WebKitDOMHTMLTableCaptionElement + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_caption(WebKitDOMHTMLTableElement* self, WebKitDOMHTMLTableCaptionElement* value, GError** error); + +/** + * webkit_dom_html_table_element_get_t_head: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer none): A #WebKitDOMHTMLTableSectionElement +**/ +WEBKIT_API WebKitDOMHTMLTableSectionElement* +webkit_dom_html_table_element_get_t_head(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_t_head: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #WebKitDOMHTMLTableSectionElement + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_t_head(WebKitDOMHTMLTableElement* self, WebKitDOMHTMLTableSectionElement* value, GError** error); + +/** + * webkit_dom_html_table_element_get_t_foot: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer none): A #WebKitDOMHTMLTableSectionElement +**/ +WEBKIT_API WebKitDOMHTMLTableSectionElement* +webkit_dom_html_table_element_get_t_foot(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_t_foot: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #WebKitDOMHTMLTableSectionElement + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_t_foot(WebKitDOMHTMLTableElement* self, WebKitDOMHTMLTableSectionElement* value, GError** error); + +/** + * webkit_dom_html_table_element_get_rows: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_html_table_element_get_rows(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_get_t_bodies: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_html_table_element_get_t_bodies(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_get_align: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_align(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_align: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_align(WebKitDOMHTMLTableElement* self, const gchar* value); + +/** + * webkit_dom_html_table_element_get_bg_color: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_bg_color(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_bg_color: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_bg_color(WebKitDOMHTMLTableElement* self, const gchar* value); + +/** + * webkit_dom_html_table_element_get_border: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_border(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_border: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_border(WebKitDOMHTMLTableElement* self, const gchar* value); + +/** + * webkit_dom_html_table_element_get_cell_padding: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_cell_padding(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_cell_padding: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_cell_padding(WebKitDOMHTMLTableElement* self, const gchar* value); + +/** + * webkit_dom_html_table_element_get_cell_spacing: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_cell_spacing(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_cell_spacing: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_cell_spacing(WebKitDOMHTMLTableElement* self, const gchar* value); + +/** + * webkit_dom_html_table_element_get_rules: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_rules(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_rules: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_rules(WebKitDOMHTMLTableElement* self, const gchar* value); + +/** + * webkit_dom_html_table_element_get_summary: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_summary(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_summary: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_summary(WebKitDOMHTMLTableElement* self, const gchar* value); + +/** + * webkit_dom_html_table_element_get_width: + * @self: A #WebKitDOMHTMLTableElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_element_get_width(WebKitDOMHTMLTableElement* self); + +/** + * webkit_dom_html_table_element_set_width: + * @self: A #WebKitDOMHTMLTableElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_element_set_width(WebKitDOMHTMLTableElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTableElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElementPrivate.h new file mode 100644 index 000000000..4088dd53c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTableElementPrivate_h +#define WebKitDOMHTMLTableElementPrivate_h + +#include <WebCore/HTMLTableElement.h> +#include <webkitdom/WebKitDOMHTMLTableElement.h> + +namespace WebKit { +WebKitDOMHTMLTableElement* wrapHTMLTableElement(WebCore::HTMLTableElement*); +WebKitDOMHTMLTableElement* kit(WebCore::HTMLTableElement*); +WebCore::HTMLTableElement* core(WebKitDOMHTMLTableElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTableElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp new file mode 100644 index 000000000..8abd64a32 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp @@ -0,0 +1,414 @@ +/* + * 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 "WebKitDOMHTMLTableRowElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLTableRowElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTableRowElement* kit(WebCore::HTMLTableRowElement* obj) +{ + return WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTableRowElement* core(WebKitDOMHTMLTableRowElement* request) +{ + return request ? static_cast<WebCore::HTMLTableRowElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTableRowElement* wrapHTMLTableRowElement(WebCore::HTMLTableRowElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_table_row_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTableRowElement* coreTarget = static_cast<WebCore::HTMLTableRowElement*>(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_html_table_row_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableRowElement* coreTarget = static_cast<WebCore::HTMLTableRowElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_table_row_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableRowElement* coreTarget = static_cast<WebCore::HTMLTableRowElement*>(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_html_table_row_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_table_row_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_table_row_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTableRowElement, webkit_dom_html_table_row_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ROW_INDEX, + PROP_SECTION_ROW_INDEX, + PROP_CELLS, + PROP_ALIGN, + PROP_BG_COLOR, + PROP_CH, + PROP_CH_OFF, + PROP_V_ALIGN, +}; + +static void webkit_dom_html_table_row_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableRowElement* self = WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_table_row_element_set_align(self, g_value_get_string(value)); + break; + case PROP_BG_COLOR: + webkit_dom_html_table_row_element_set_bg_color(self, g_value_get_string(value)); + break; + case PROP_CH: + webkit_dom_html_table_row_element_set_ch(self, g_value_get_string(value)); + break; + case PROP_CH_OFF: + webkit_dom_html_table_row_element_set_ch_off(self, g_value_get_string(value)); + break; + case PROP_V_ALIGN: + webkit_dom_html_table_row_element_set_v_align(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_row_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableRowElement* self = WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT(object); + + switch (propertyId) { + case PROP_ROW_INDEX: + g_value_set_long(value, webkit_dom_html_table_row_element_get_row_index(self)); + break; + case PROP_SECTION_ROW_INDEX: + g_value_set_long(value, webkit_dom_html_table_row_element_get_section_row_index(self)); + break; + case PROP_CELLS: + g_value_set_object(value, webkit_dom_html_table_row_element_get_cells(self)); + break; + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_table_row_element_get_align(self)); + break; + case PROP_BG_COLOR: + g_value_take_string(value, webkit_dom_html_table_row_element_get_bg_color(self)); + break; + case PROP_CH: + g_value_take_string(value, webkit_dom_html_table_row_element_get_ch(self)); + break; + case PROP_CH_OFF: + g_value_take_string(value, webkit_dom_html_table_row_element_get_ch_off(self)); + break; + case PROP_V_ALIGN: + g_value_take_string(value, webkit_dom_html_table_row_element_get_v_align(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_row_element_class_init(WebKitDOMHTMLTableRowElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_table_row_element_set_property; + gobjectClass->get_property = webkit_dom_html_table_row_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ROW_INDEX, + g_param_spec_long( + "row-index", + "HTMLTableRowElement:row-index", + "read-only glong HTMLTableRowElement:row-index", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SECTION_ROW_INDEX, + g_param_spec_long( + "section-row-index", + "HTMLTableRowElement:section-row-index", + "read-only glong HTMLTableRowElement:section-row-index", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CELLS, + g_param_spec_object( + "cells", + "HTMLTableRowElement:cells", + "read-only WebKitDOMHTMLCollection* HTMLTableRowElement:cells", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLTableRowElement:align", + "read-write gchar* HTMLTableRowElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_BG_COLOR, + g_param_spec_string( + "bg-color", + "HTMLTableRowElement:bg-color", + "read-write gchar* HTMLTableRowElement:bg-color", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH, + g_param_spec_string( + "ch", + "HTMLTableRowElement:ch", + "read-write gchar* HTMLTableRowElement:ch", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH_OFF, + g_param_spec_string( + "ch-off", + "HTMLTableRowElement:ch-off", + "read-write gchar* HTMLTableRowElement:ch-off", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_V_ALIGN, + g_param_spec_string( + "v-align", + "HTMLTableRowElement:v-align", + "read-write gchar* HTMLTableRowElement:v-align", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_table_row_element_init(WebKitDOMHTMLTableRowElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLElement* webkit_dom_html_table_row_element_insert_cell(WebKitDOMHTMLTableRowElement* self, glong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + auto result = item->insertCell(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +void webkit_dom_html_table_row_element_delete_cell(WebKitDOMHTMLTableRowElement* self, glong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self)); + g_return_if_fail(!error || !*error); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + auto result = item->deleteCell(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +glong webkit_dom_html_table_row_element_get_row_index(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + glong result = item->rowIndex(); + return result; +} + +glong webkit_dom_html_table_row_element_get_section_row_index(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + glong result = item->sectionRowIndex(); + return result; +} + +WebKitDOMHTMLCollection* webkit_dom_html_table_row_element_get_cells(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->cells()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_table_row_element_get_align(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_table_row_element_set_align(WebKitDOMHTMLTableRowElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_table_row_element_get_bg_color(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr)); + return result; +} + +void webkit_dom_html_table_row_element_set_bg_color(WebKitDOMHTMLTableRowElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::bgcolorAttr, convertedValue); +} + +gchar* webkit_dom_html_table_row_element_get_ch(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charAttr)); + return result; +} + +void webkit_dom_html_table_row_element_set_ch(WebKitDOMHTMLTableRowElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charAttr, convertedValue); +} + +gchar* webkit_dom_html_table_row_element_get_ch_off(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr)); + return result; +} + +void webkit_dom_html_table_row_element_set_ch_off(WebKitDOMHTMLTableRowElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr, convertedValue); +} + +gchar* webkit_dom_html_table_row_element_get_v_align(WebKitDOMHTMLTableRowElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self), 0); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valignAttr)); + return result; +} + +void webkit_dom_html_table_row_element_set_v_align(WebKitDOMHTMLTableRowElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableRowElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valignAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.h new file mode 100644 index 000000000..03791f6c4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.h @@ -0,0 +1,191 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTableRowElement_h +#define WebKitDOMHTMLTableRowElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT (webkit_dom_html_table_row_element_get_type()) +#define WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT, WebKitDOMHTMLTableRowElement)) +#define WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT, WebKitDOMHTMLTableRowElementClass) +#define WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT)) +#define WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT, WebKitDOMHTMLTableRowElementClass)) + +struct _WebKitDOMHTMLTableRowElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTableRowElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_table_row_element_get_type(void); + +/** + * webkit_dom_html_table_row_element_insert_cell: + * @self: A #WebKitDOMHTMLTableRowElement + * @index: A #glong + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMHTMLElement +**/ +WEBKIT_API WebKitDOMHTMLElement* +webkit_dom_html_table_row_element_insert_cell(WebKitDOMHTMLTableRowElement* self, glong index, GError** error); + +/** + * webkit_dom_html_table_row_element_delete_cell: + * @self: A #WebKitDOMHTMLTableRowElement + * @index: A #glong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_table_row_element_delete_cell(WebKitDOMHTMLTableRowElement* self, glong index, GError** error); + +/** + * webkit_dom_html_table_row_element_get_row_index: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_table_row_element_get_row_index(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_get_section_row_index: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_table_row_element_get_section_row_index(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_get_cells: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_html_table_row_element_get_cells(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_get_align: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_row_element_get_align(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_set_align: + * @self: A #WebKitDOMHTMLTableRowElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_row_element_set_align(WebKitDOMHTMLTableRowElement* self, const gchar* value); + +/** + * webkit_dom_html_table_row_element_get_bg_color: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_row_element_get_bg_color(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_set_bg_color: + * @self: A #WebKitDOMHTMLTableRowElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_row_element_set_bg_color(WebKitDOMHTMLTableRowElement* self, const gchar* value); + +/** + * webkit_dom_html_table_row_element_get_ch: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_row_element_get_ch(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_set_ch: + * @self: A #WebKitDOMHTMLTableRowElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_row_element_set_ch(WebKitDOMHTMLTableRowElement* self, const gchar* value); + +/** + * webkit_dom_html_table_row_element_get_ch_off: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_row_element_get_ch_off(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_set_ch_off: + * @self: A #WebKitDOMHTMLTableRowElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_row_element_set_ch_off(WebKitDOMHTMLTableRowElement* self, const gchar* value); + +/** + * webkit_dom_html_table_row_element_get_v_align: + * @self: A #WebKitDOMHTMLTableRowElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_row_element_get_v_align(WebKitDOMHTMLTableRowElement* self); + +/** + * webkit_dom_html_table_row_element_set_v_align: + * @self: A #WebKitDOMHTMLTableRowElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_row_element_set_v_align(WebKitDOMHTMLTableRowElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTableRowElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElementPrivate.h new file mode 100644 index 000000000..d3f43124d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTableRowElementPrivate_h +#define WebKitDOMHTMLTableRowElementPrivate_h + +#include <WebCore/HTMLTableRowElement.h> +#include <webkitdom/WebKitDOMHTMLTableRowElement.h> + +namespace WebKit { +WebKitDOMHTMLTableRowElement* wrapHTMLTableRowElement(WebCore::HTMLTableRowElement*); +WebKitDOMHTMLTableRowElement* kit(WebCore::HTMLTableRowElement*); +WebCore::HTMLTableRowElement* core(WebKitDOMHTMLTableRowElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTableRowElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp new file mode 100644 index 000000000..f64d67cc9 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp @@ -0,0 +1,331 @@ +/* + * 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 "WebKitDOMHTMLTableSectionElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLElementPrivate.h" +#include "WebKitDOMHTMLTableSectionElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTableSectionElement* kit(WebCore::HTMLTableSectionElement* obj) +{ + return WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTableSectionElement* core(WebKitDOMHTMLTableSectionElement* request) +{ + return request ? static_cast<WebCore::HTMLTableSectionElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTableSectionElement* wrapHTMLTableSectionElement(WebCore::HTMLTableSectionElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_table_section_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTableSectionElement* coreTarget = static_cast<WebCore::HTMLTableSectionElement*>(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_html_table_section_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableSectionElement* coreTarget = static_cast<WebCore::HTMLTableSectionElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_table_section_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTableSectionElement* coreTarget = static_cast<WebCore::HTMLTableSectionElement*>(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_html_table_section_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_table_section_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_table_section_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTableSectionElement, webkit_dom_html_table_section_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_ALIGN, + PROP_CH, + PROP_CH_OFF, + PROP_V_ALIGN, + PROP_ROWS, +}; + +static void webkit_dom_html_table_section_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableSectionElement* self = WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + webkit_dom_html_table_section_element_set_align(self, g_value_get_string(value)); + break; + case PROP_CH: + webkit_dom_html_table_section_element_set_ch(self, g_value_get_string(value)); + break; + case PROP_CH_OFF: + webkit_dom_html_table_section_element_set_ch_off(self, g_value_get_string(value)); + break; + case PROP_V_ALIGN: + webkit_dom_html_table_section_element_set_v_align(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_section_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTableSectionElement* self = WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT(object); + + switch (propertyId) { + case PROP_ALIGN: + g_value_take_string(value, webkit_dom_html_table_section_element_get_align(self)); + break; + case PROP_CH: + g_value_take_string(value, webkit_dom_html_table_section_element_get_ch(self)); + break; + case PROP_CH_OFF: + g_value_take_string(value, webkit_dom_html_table_section_element_get_ch_off(self)); + break; + case PROP_V_ALIGN: + g_value_take_string(value, webkit_dom_html_table_section_element_get_v_align(self)); + break; + case PROP_ROWS: + g_value_set_object(value, webkit_dom_html_table_section_element_get_rows(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_table_section_element_class_init(WebKitDOMHTMLTableSectionElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_table_section_element_set_property; + gobjectClass->get_property = webkit_dom_html_table_section_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ALIGN, + g_param_spec_string( + "align", + "HTMLTableSectionElement:align", + "read-write gchar* HTMLTableSectionElement:align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH, + g_param_spec_string( + "ch", + "HTMLTableSectionElement:ch", + "read-write gchar* HTMLTableSectionElement:ch", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_CH_OFF, + g_param_spec_string( + "ch-off", + "HTMLTableSectionElement:ch-off", + "read-write gchar* HTMLTableSectionElement:ch-off", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_V_ALIGN, + g_param_spec_string( + "v-align", + "HTMLTableSectionElement:v-align", + "read-write gchar* HTMLTableSectionElement:v-align", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ROWS, + g_param_spec_object( + "rows", + "HTMLTableSectionElement:rows", + "read-only WebKitDOMHTMLCollection* HTMLTableSectionElement:rows", + WEBKIT_DOM_TYPE_HTML_COLLECTION, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_html_table_section_element_init(WebKitDOMHTMLTableSectionElement* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMHTMLElement* webkit_dom_html_table_section_element_insert_row(WebKitDOMHTMLTableSectionElement* self, glong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + auto result = item->insertRow(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +void webkit_dom_html_table_section_element_delete_row(WebKitDOMHTMLTableSectionElement* self, glong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self)); + g_return_if_fail(!error || !*error); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + auto result = item->deleteRow(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_html_table_section_element_get_align(WebKitDOMHTMLTableSectionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self), 0); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::alignAttr)); + return result; +} + +void webkit_dom_html_table_section_element_set_align(WebKitDOMHTMLTableSectionElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::alignAttr, convertedValue); +} + +gchar* webkit_dom_html_table_section_element_get_ch(WebKitDOMHTMLTableSectionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self), 0); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charAttr)); + return result; +} + +void webkit_dom_html_table_section_element_set_ch(WebKitDOMHTMLTableSectionElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charAttr, convertedValue); +} + +gchar* webkit_dom_html_table_section_element_get_ch_off(WebKitDOMHTMLTableSectionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self), 0); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr)); + return result; +} + +void webkit_dom_html_table_section_element_set_ch_off(WebKitDOMHTMLTableSectionElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::charoffAttr, convertedValue); +} + +gchar* webkit_dom_html_table_section_element_get_v_align(WebKitDOMHTMLTableSectionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self), 0); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valignAttr)); + return result; +} + +void webkit_dom_html_table_section_element_set_v_align(WebKitDOMHTMLTableSectionElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valignAttr, convertedValue); +} + +WebKitDOMHTMLCollection* webkit_dom_html_table_section_element_get_rows(WebKitDOMHTMLTableSectionElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(self), 0); + WebCore::HTMLTableSectionElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLCollection> gobjectResult = WTF::getPtr(item->rows()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.h new file mode 100644 index 000000000..b0f7b3b21 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.h @@ -0,0 +1,155 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTableSectionElement_h +#define WebKitDOMHTMLTableSectionElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT (webkit_dom_html_table_section_element_get_type()) +#define WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT, WebKitDOMHTMLTableSectionElement)) +#define WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT, WebKitDOMHTMLTableSectionElementClass) +#define WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT)) +#define WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT, WebKitDOMHTMLTableSectionElementClass)) + +struct _WebKitDOMHTMLTableSectionElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTableSectionElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_table_section_element_get_type(void); + +/** + * webkit_dom_html_table_section_element_insert_row: + * @self: A #WebKitDOMHTMLTableSectionElement + * @index: A #glong + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMHTMLElement +**/ +WEBKIT_API WebKitDOMHTMLElement* +webkit_dom_html_table_section_element_insert_row(WebKitDOMHTMLTableSectionElement* self, glong index, GError** error); + +/** + * webkit_dom_html_table_section_element_delete_row: + * @self: A #WebKitDOMHTMLTableSectionElement + * @index: A #glong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_html_table_section_element_delete_row(WebKitDOMHTMLTableSectionElement* self, glong index, GError** error); + +/** + * webkit_dom_html_table_section_element_get_align: + * @self: A #WebKitDOMHTMLTableSectionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_section_element_get_align(WebKitDOMHTMLTableSectionElement* self); + +/** + * webkit_dom_html_table_section_element_set_align: + * @self: A #WebKitDOMHTMLTableSectionElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_section_element_set_align(WebKitDOMHTMLTableSectionElement* self, const gchar* value); + +/** + * webkit_dom_html_table_section_element_get_ch: + * @self: A #WebKitDOMHTMLTableSectionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_section_element_get_ch(WebKitDOMHTMLTableSectionElement* self); + +/** + * webkit_dom_html_table_section_element_set_ch: + * @self: A #WebKitDOMHTMLTableSectionElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_section_element_set_ch(WebKitDOMHTMLTableSectionElement* self, const gchar* value); + +/** + * webkit_dom_html_table_section_element_get_ch_off: + * @self: A #WebKitDOMHTMLTableSectionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_section_element_get_ch_off(WebKitDOMHTMLTableSectionElement* self); + +/** + * webkit_dom_html_table_section_element_set_ch_off: + * @self: A #WebKitDOMHTMLTableSectionElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_section_element_set_ch_off(WebKitDOMHTMLTableSectionElement* self, const gchar* value); + +/** + * webkit_dom_html_table_section_element_get_v_align: + * @self: A #WebKitDOMHTMLTableSectionElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_table_section_element_get_v_align(WebKitDOMHTMLTableSectionElement* self); + +/** + * webkit_dom_html_table_section_element_set_v_align: + * @self: A #WebKitDOMHTMLTableSectionElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_table_section_element_set_v_align(WebKitDOMHTMLTableSectionElement* self, const gchar* value); + +/** + * webkit_dom_html_table_section_element_get_rows: + * @self: A #WebKitDOMHTMLTableSectionElement + * + * Returns: (transfer full): A #WebKitDOMHTMLCollection +**/ +WEBKIT_API WebKitDOMHTMLCollection* +webkit_dom_html_table_section_element_get_rows(WebKitDOMHTMLTableSectionElement* self); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTableSectionElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElementPrivate.h new file mode 100644 index 000000000..09f67ea4f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTableSectionElementPrivate_h +#define WebKitDOMHTMLTableSectionElementPrivate_h + +#include <WebCore/HTMLTableSectionElement.h> +#include <webkitdom/WebKitDOMHTMLTableSectionElement.h> + +namespace WebKit { +WebKitDOMHTMLTableSectionElement* wrapHTMLTableSectionElement(WebCore::HTMLTableSectionElement*); +WebKitDOMHTMLTableSectionElement* kit(WebCore::HTMLTableSectionElement*); +WebCore::HTMLTableSectionElement* core(WebKitDOMHTMLTableSectionElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTableSectionElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp new file mode 100644 index 000000000..adfbaa06a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp @@ -0,0 +1,575 @@ +/* + * 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 "WebKitDOMHTMLTextAreaElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLFormElementPrivate.h" +#include "WebKitDOMHTMLTextAreaElementPrivate.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTextAreaElement* kit(WebCore::HTMLTextAreaElement* obj) +{ + return WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTextAreaElement* core(WebKitDOMHTMLTextAreaElement* request) +{ + return request ? static_cast<WebCore::HTMLTextAreaElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTextAreaElement* wrapHTMLTextAreaElement(WebCore::HTMLTextAreaElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_text_area_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTextAreaElement* coreTarget = static_cast<WebCore::HTMLTextAreaElement*>(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_html_text_area_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTextAreaElement* coreTarget = static_cast<WebCore::HTMLTextAreaElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_text_area_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTextAreaElement* coreTarget = static_cast<WebCore::HTMLTextAreaElement*>(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_html_text_area_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_text_area_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_text_area_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTextAreaElement, webkit_dom_html_text_area_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_AUTOFOCUS, + PROP_DISABLED, + PROP_FORM, + PROP_NAME, + PROP_READ_ONLY, + PROP_ROWS, + PROP_COLS, + PROP_TYPE, + PROP_DEFAULT_VALUE, + PROP_VALUE, + PROP_WILL_VALIDATE, + PROP_SELECTION_START, + PROP_SELECTION_END, +}; + +static void webkit_dom_html_text_area_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTextAreaElement* self = WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT(object); + + switch (propertyId) { + case PROP_AUTOFOCUS: + webkit_dom_html_text_area_element_set_autofocus(self, g_value_get_boolean(value)); + break; + case PROP_DISABLED: + webkit_dom_html_text_area_element_set_disabled(self, g_value_get_boolean(value)); + break; + case PROP_NAME: + webkit_dom_html_text_area_element_set_name(self, g_value_get_string(value)); + break; + case PROP_READ_ONLY: + webkit_dom_html_text_area_element_set_read_only(self, g_value_get_boolean(value)); + break; + case PROP_ROWS: + webkit_dom_html_text_area_element_set_rows(self, g_value_get_long(value)); + break; + case PROP_COLS: + webkit_dom_html_text_area_element_set_cols(self, g_value_get_long(value)); + break; + case PROP_DEFAULT_VALUE: + webkit_dom_html_text_area_element_set_default_value(self, g_value_get_string(value)); + break; + case PROP_VALUE: + webkit_dom_html_text_area_element_set_value(self, g_value_get_string(value)); + break; + case PROP_SELECTION_START: + webkit_dom_html_text_area_element_set_selection_start(self, g_value_get_long(value)); + break; + case PROP_SELECTION_END: + webkit_dom_html_text_area_element_set_selection_end(self, g_value_get_long(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_text_area_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTextAreaElement* self = WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT(object); + + switch (propertyId) { + case PROP_AUTOFOCUS: + g_value_set_boolean(value, webkit_dom_html_text_area_element_get_autofocus(self)); + break; + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_html_text_area_element_get_disabled(self)); + break; + case PROP_FORM: + g_value_set_object(value, webkit_dom_html_text_area_element_get_form(self)); + break; + case PROP_NAME: + g_value_take_string(value, webkit_dom_html_text_area_element_get_name(self)); + break; + case PROP_READ_ONLY: + g_value_set_boolean(value, webkit_dom_html_text_area_element_get_read_only(self)); + break; + case PROP_ROWS: + g_value_set_long(value, webkit_dom_html_text_area_element_get_rows(self)); + break; + case PROP_COLS: + g_value_set_long(value, webkit_dom_html_text_area_element_get_cols(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_text_area_element_get_area_type(self)); + break; + case PROP_DEFAULT_VALUE: + g_value_take_string(value, webkit_dom_html_text_area_element_get_default_value(self)); + break; + case PROP_VALUE: + g_value_take_string(value, webkit_dom_html_text_area_element_get_value(self)); + break; + case PROP_WILL_VALIDATE: + g_value_set_boolean(value, webkit_dom_html_text_area_element_get_will_validate(self)); + break; + case PROP_SELECTION_START: + g_value_set_long(value, webkit_dom_html_text_area_element_get_selection_start(self)); + break; + case PROP_SELECTION_END: + g_value_set_long(value, webkit_dom_html_text_area_element_get_selection_end(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_text_area_element_class_init(WebKitDOMHTMLTextAreaElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_text_area_element_set_property; + gobjectClass->get_property = webkit_dom_html_text_area_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_AUTOFOCUS, + g_param_spec_boolean( + "autofocus", + "HTMLTextAreaElement:autofocus", + "read-write gboolean HTMLTextAreaElement:autofocus", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "HTMLTextAreaElement:disabled", + "read-write gboolean HTMLTextAreaElement:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_FORM, + g_param_spec_object( + "form", + "HTMLTextAreaElement:form", + "read-only WebKitDOMHTMLFormElement* HTMLTextAreaElement:form", + WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NAME, + g_param_spec_string( + "name", + "HTMLTextAreaElement:name", + "read-write gchar* HTMLTextAreaElement:name", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_READ_ONLY, + g_param_spec_boolean( + "read-only", + "HTMLTextAreaElement:read-only", + "read-write gboolean HTMLTextAreaElement:read-only", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_ROWS, + g_param_spec_long( + "rows", + "HTMLTextAreaElement:rows", + "read-write glong HTMLTextAreaElement:rows", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_COLS, + g_param_spec_long( + "cols", + "HTMLTextAreaElement:cols", + "read-write glong HTMLTextAreaElement:cols", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLTextAreaElement:type", + "read-only gchar* HTMLTextAreaElement:type", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_DEFAULT_VALUE, + g_param_spec_string( + "default-value", + "HTMLTextAreaElement:default-value", + "read-write gchar* HTMLTextAreaElement:default-value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_VALUE, + g_param_spec_string( + "value", + "HTMLTextAreaElement:value", + "read-write gchar* HTMLTextAreaElement:value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_WILL_VALIDATE, + g_param_spec_boolean( + "will-validate", + "HTMLTextAreaElement:will-validate", + "read-only gboolean HTMLTextAreaElement:will-validate", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SELECTION_START, + g_param_spec_long( + "selection-start", + "HTMLTextAreaElement:selection-start", + "read-write glong HTMLTextAreaElement:selection-start", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_SELECTION_END, + g_param_spec_long( + "selection-end", + "HTMLTextAreaElement:selection-end", + "read-write glong HTMLTextAreaElement:selection-end", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READWRITE)); +} + +static void webkit_dom_html_text_area_element_init(WebKitDOMHTMLTextAreaElement* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_html_text_area_element_select(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->select(); +} + +void webkit_dom_html_text_area_element_set_selection_range(WebKitDOMHTMLTextAreaElement* self, glong start, glong end, const gchar* direction) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + g_return_if_fail(direction); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + WTF::String convertedDirection = WTF::String::fromUTF8(direction); + item->setSelectionRange(start, end, convertedDirection); +} + +gboolean webkit_dom_html_text_area_element_get_autofocus(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), FALSE); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::autofocusAttr); + return result; +} + +void webkit_dom_html_text_area_element_set_autofocus(WebKitDOMHTMLTextAreaElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::autofocusAttr, value); +} + +gboolean webkit_dom_html_text_area_element_get_disabled(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), FALSE); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::disabledAttr); + return result; +} + +void webkit_dom_html_text_area_element_set_disabled(WebKitDOMHTMLTextAreaElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::disabledAttr, value); +} + +WebKitDOMHTMLFormElement* webkit_dom_html_text_area_element_get_form(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + RefPtr<WebCore::HTMLFormElement> gobjectResult = WTF::getPtr(item->form()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_html_text_area_element_get_name(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->getNameAttribute()); + return result; +} + +void webkit_dom_html_text_area_element_set_name(WebKitDOMHTMLTextAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::nameAttr, convertedValue); +} + +gboolean webkit_dom_html_text_area_element_get_read_only(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), FALSE); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::readonlyAttr); + return result; +} + +void webkit_dom_html_text_area_element_set_read_only(WebKitDOMHTMLTextAreaElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::readonlyAttr, value); +} + +glong webkit_dom_html_text_area_element_get_rows(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + glong result = item->rows(); + return result; +} + +void webkit_dom_html_text_area_element_set_rows(WebKitDOMHTMLTextAreaElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->setRows(value); +} + +glong webkit_dom_html_text_area_element_get_cols(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + glong result = item->cols(); + return result; +} + +void webkit_dom_html_text_area_element_set_cols(WebKitDOMHTMLTextAreaElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->setCols(value); +} + +gchar* webkit_dom_html_text_area_element_get_area_type(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->type()); + return result; +} + +gchar* webkit_dom_html_text_area_element_get_default_value(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->defaultValue()); + return result; +} + +void webkit_dom_html_text_area_element_set_default_value(WebKitDOMHTMLTextAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setDefaultValue(convertedValue); +} + +gchar* webkit_dom_html_text_area_element_get_value(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->value()); + return result; +} + +void webkit_dom_html_text_area_element_set_value(WebKitDOMHTMLTextAreaElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setValue(convertedValue); +} + +gboolean webkit_dom_html_text_area_element_get_will_validate(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), FALSE); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + gboolean result = item->willValidate(); + return result; +} + +glong webkit_dom_html_text_area_element_get_selection_start(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + glong result = item->selectionStart(); + return result; +} + +void webkit_dom_html_text_area_element_set_selection_start(WebKitDOMHTMLTextAreaElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->setSelectionStart(value); +} + +glong webkit_dom_html_text_area_element_get_selection_end(WebKitDOMHTMLTextAreaElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self), 0); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + glong result = item->selectionEnd(); + return result; +} + +void webkit_dom_html_text_area_element_set_selection_end(WebKitDOMHTMLTextAreaElement* self, glong value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); + item->setSelectionEnd(value); +} + +gboolean webkit_dom_html_text_area_element_is_edited(WebKitDOMHTMLTextAreaElement* area) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(area), FALSE); + + return WebKit::core(area)->lastChangeWasUserEdit(); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h new file mode 100644 index 000000000..b887e54b9 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h @@ -0,0 +1,287 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTextAreaElement_h +#define WebKitDOMHTMLTextAreaElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT (webkit_dom_html_text_area_element_get_type()) +#define WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT, WebKitDOMHTMLTextAreaElement)) +#define WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT, WebKitDOMHTMLTextAreaElementClass) +#define WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT)) +#define WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT, WebKitDOMHTMLTextAreaElementClass)) + +struct _WebKitDOMHTMLTextAreaElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTextAreaElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_text_area_element_get_type(void); + +/** + * webkit_dom_html_text_area_element_select: + * @self: A #WebKitDOMHTMLTextAreaElement + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_select(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_selection_range: + * @self: A #WebKitDOMHTMLTextAreaElement + * @start: A #glong + * @end: A #glong + * @direction: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_selection_range(WebKitDOMHTMLTextAreaElement* self, glong start, glong end, const gchar* direction); + +/** + * webkit_dom_html_text_area_element_get_autofocus: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_text_area_element_get_autofocus(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_autofocus: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_autofocus(WebKitDOMHTMLTextAreaElement* self, gboolean value); + +/** + * webkit_dom_html_text_area_element_get_disabled: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_text_area_element_get_disabled(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_disabled: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_disabled(WebKitDOMHTMLTextAreaElement* self, gboolean value); + +/** + * webkit_dom_html_text_area_element_get_form: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: (transfer none): A #WebKitDOMHTMLFormElement +**/ +WEBKIT_API WebKitDOMHTMLFormElement* +webkit_dom_html_text_area_element_get_form(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_get_name: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_text_area_element_get_name(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_name: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_name(WebKitDOMHTMLTextAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_text_area_element_get_read_only: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_text_area_element_get_read_only(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_read_only: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_read_only(WebKitDOMHTMLTextAreaElement* self, gboolean value); + +/** + * webkit_dom_html_text_area_element_get_rows: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_text_area_element_get_rows(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_rows: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_rows(WebKitDOMHTMLTextAreaElement* self, glong value); + +/** + * webkit_dom_html_text_area_element_get_cols: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_text_area_element_get_cols(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_cols: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_cols(WebKitDOMHTMLTextAreaElement* self, glong value); + +/** + * webkit_dom_html_text_area_element_get_area_type: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_text_area_element_get_area_type(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_get_default_value: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_text_area_element_get_default_value(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_default_value: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_default_value(WebKitDOMHTMLTextAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_text_area_element_get_value: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_text_area_element_get_value(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_value: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_value(WebKitDOMHTMLTextAreaElement* self, const gchar* value); + +/** + * webkit_dom_html_text_area_element_get_will_validate: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_text_area_element_get_will_validate(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_get_selection_start: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_text_area_element_get_selection_start(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_selection_start: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_selection_start(WebKitDOMHTMLTextAreaElement* self, glong value); + +/** + * webkit_dom_html_text_area_element_get_selection_end: + * @self: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_html_text_area_element_get_selection_end(WebKitDOMHTMLTextAreaElement* self); + +/** + * webkit_dom_html_text_area_element_set_selection_end: + * @self: A #WebKitDOMHTMLTextAreaElement + * @value: A #glong + * +**/ +WEBKIT_API void +webkit_dom_html_text_area_element_set_selection_end(WebKitDOMHTMLTextAreaElement* self, glong value); + +/** + * webkit_dom_html_text_area_element_is_edited: + * @input: A #WebKitDOMHTMLTextAreaElement + * + * Returns: A #gboolean + */ +WEBKIT_API gboolean webkit_dom_html_text_area_element_is_edited(WebKitDOMHTMLTextAreaElement* input); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTextAreaElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElementPrivate.h new file mode 100644 index 000000000..c3f1ebccd --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTextAreaElementPrivate_h +#define WebKitDOMHTMLTextAreaElementPrivate_h + +#include <WebCore/HTMLTextAreaElement.h> +#include <webkitdom/WebKitDOMHTMLTextAreaElement.h> + +namespace WebKit { +WebKitDOMHTMLTextAreaElement* wrapHTMLTextAreaElement(WebCore::HTMLTextAreaElement*); +WebKitDOMHTMLTextAreaElement* kit(WebCore::HTMLTextAreaElement*); +WebCore::HTMLTextAreaElement* core(WebKitDOMHTMLTextAreaElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTextAreaElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp new file mode 100644 index 000000000..96d63fed2 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp @@ -0,0 +1,170 @@ +/* + * 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 "WebKitDOMHTMLTitleElement.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 "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLTitleElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLTitleElement* kit(WebCore::HTMLTitleElement* obj) +{ + return WEBKIT_DOM_HTML_TITLE_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLTitleElement* core(WebKitDOMHTMLTitleElement* request) +{ + return request ? static_cast<WebCore::HTMLTitleElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLTitleElement* wrapHTMLTitleElement(WebCore::HTMLTitleElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_TITLE_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_title_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLTitleElement* coreTarget = static_cast<WebCore::HTMLTitleElement*>(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_html_title_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTitleElement* coreTarget = static_cast<WebCore::HTMLTitleElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_title_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLTitleElement* coreTarget = static_cast<WebCore::HTMLTitleElement*>(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_html_title_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_title_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_title_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLTitleElement, webkit_dom_html_title_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_TEXT, +}; + +static void webkit_dom_html_title_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTitleElement* self = WEBKIT_DOM_HTML_TITLE_ELEMENT(object); + + switch (propertyId) { + case PROP_TEXT: + webkit_dom_html_title_element_set_text(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_title_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLTitleElement* self = WEBKIT_DOM_HTML_TITLE_ELEMENT(object); + + switch (propertyId) { + case PROP_TEXT: + g_value_take_string(value, webkit_dom_html_title_element_get_text(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_title_element_class_init(WebKitDOMHTMLTitleElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_title_element_set_property; + gobjectClass->get_property = webkit_dom_html_title_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TEXT, + g_param_spec_string( + "text", + "HTMLTitleElement:text", + "read-write gchar* HTMLTitleElement:text", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_title_element_init(WebKitDOMHTMLTitleElement* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_html_title_element_get_text(WebKitDOMHTMLTitleElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_TITLE_ELEMENT(self), 0); + WebCore::HTMLTitleElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->text()); + return result; +} + +void webkit_dom_html_title_element_set_text(WebKitDOMHTMLTitleElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_TITLE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTitleElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setText(convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.h new file mode 100644 index 000000000..4e00a8d53 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLTitleElement_h +#define WebKitDOMHTMLTitleElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT (webkit_dom_html_title_element_get_type()) +#define WEBKIT_DOM_HTML_TITLE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT, WebKitDOMHTMLTitleElement)) +#define WEBKIT_DOM_HTML_TITLE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT, WebKitDOMHTMLTitleElementClass) +#define WEBKIT_DOM_IS_HTML_TITLE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_TITLE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT)) +#define WEBKIT_DOM_HTML_TITLE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT, WebKitDOMHTMLTitleElementClass)) + +struct _WebKitDOMHTMLTitleElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLTitleElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_title_element_get_type(void); + +/** + * webkit_dom_html_title_element_get_text: + * @self: A #WebKitDOMHTMLTitleElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_title_element_get_text(WebKitDOMHTMLTitleElement* self); + +/** + * webkit_dom_html_title_element_set_text: + * @self: A #WebKitDOMHTMLTitleElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_title_element_set_text(WebKitDOMHTMLTitleElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLTitleElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElementPrivate.h new file mode 100644 index 000000000..7e5281f97 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLTitleElementPrivate_h +#define WebKitDOMHTMLTitleElementPrivate_h + +#include <WebCore/HTMLTitleElement.h> +#include <webkitdom/WebKitDOMHTMLTitleElement.h> + +namespace WebKit { +WebKitDOMHTMLTitleElement* wrapHTMLTitleElement(WebCore::HTMLTitleElement*); +WebKitDOMHTMLTitleElement* kit(WebCore::HTMLTitleElement*); +WebCore::HTMLTitleElement* core(WebKitDOMHTMLTitleElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLTitleElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp new file mode 100644 index 000000000..8d12ed300 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp @@ -0,0 +1,205 @@ +/* + * 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 "WebKitDOMHTMLUListElement.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/HTMLNames.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMHTMLUListElementPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMHTMLUListElement* kit(WebCore::HTMLUListElement* obj) +{ + return WEBKIT_DOM_HTML_U_LIST_ELEMENT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::HTMLUListElement* core(WebKitDOMHTMLUListElement* request) +{ + return request ? static_cast<WebCore::HTMLUListElement*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMHTMLUListElement* wrapHTMLUListElement(WebCore::HTMLUListElement* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_HTML_U_LIST_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_html_u_list_element_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::HTMLUListElement* coreTarget = static_cast<WebCore::HTMLUListElement*>(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_html_u_list_element_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLUListElement* coreTarget = static_cast<WebCore::HTMLUListElement*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_html_u_list_element_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::HTMLUListElement* coreTarget = static_cast<WebCore::HTMLUListElement*>(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_html_u_list_element_dispatch_event; + iface->add_event_listener = webkit_dom_html_u_list_element_add_event_listener; + iface->remove_event_listener = webkit_dom_html_u_list_element_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMHTMLUListElement, webkit_dom_html_u_list_element, WEBKIT_DOM_TYPE_HTML_ELEMENT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_COMPACT, + PROP_TYPE, +}; + +static void webkit_dom_html_u_list_element_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLUListElement* self = WEBKIT_DOM_HTML_U_LIST_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + webkit_dom_html_u_list_element_set_compact(self, g_value_get_boolean(value)); + break; + case PROP_TYPE: + webkit_dom_html_u_list_element_set_type_attr(self, g_value_get_string(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_u_list_element_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMHTMLUListElement* self = WEBKIT_DOM_HTML_U_LIST_ELEMENT(object); + + switch (propertyId) { + case PROP_COMPACT: + g_value_set_boolean(value, webkit_dom_html_u_list_element_get_compact(self)); + break; + case PROP_TYPE: + g_value_take_string(value, webkit_dom_html_u_list_element_get_type_attr(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_html_u_list_element_class_init(WebKitDOMHTMLUListElementClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->set_property = webkit_dom_html_u_list_element_set_property; + gobjectClass->get_property = webkit_dom_html_u_list_element_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_COMPACT, + g_param_spec_boolean( + "compact", + "HTMLUListElement:compact", + "read-write gboolean HTMLUListElement:compact", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "HTMLUListElement:type", + "read-write gchar* HTMLUListElement:type", + "", + WEBKIT_PARAM_READWRITE)); + +} + +static void webkit_dom_html_u_list_element_init(WebKitDOMHTMLUListElement* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_html_u_list_element_get_compact(WebKitDOMHTMLUListElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT(self), FALSE); + WebCore::HTMLUListElement* item = WebKit::core(self); + gboolean result = item->hasAttributeWithoutSynchronization(WebCore::HTMLNames::compactAttr); + return result; +} + +void webkit_dom_html_u_list_element_set_compact(WebKitDOMHTMLUListElement* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT(self)); + WebCore::HTMLUListElement* item = WebKit::core(self); + item->setBooleanAttribute(WebCore::HTMLNames::compactAttr, value); +} + +gchar* webkit_dom_html_u_list_element_get_type_attr(WebKitDOMHTMLUListElement* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT(self), 0); + WebCore::HTMLUListElement* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::typeAttr)); + return result; +} + +void webkit_dom_html_u_list_element_set_type_attr(WebKitDOMHTMLUListElement* self, const gchar* value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLUListElement* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.h new file mode 100644 index 000000000..389c7965f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.h @@ -0,0 +1,89 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMHTMLUListElement_h +#define WebKitDOMHTMLUListElement_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT (webkit_dom_html_u_list_element_get_type()) +#define WEBKIT_DOM_HTML_U_LIST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT, WebKitDOMHTMLUListElement)) +#define WEBKIT_DOM_HTML_U_LIST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT, WebKitDOMHTMLUListElementClass) +#define WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT)) +#define WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT)) +#define WEBKIT_DOM_HTML_U_LIST_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT, WebKitDOMHTMLUListElementClass)) + +struct _WebKitDOMHTMLUListElement { + WebKitDOMHTMLElement parent_instance; +}; + +struct _WebKitDOMHTMLUListElementClass { + WebKitDOMHTMLElementClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_html_u_list_element_get_type(void); + +/** + * webkit_dom_html_u_list_element_get_compact: + * @self: A #WebKitDOMHTMLUListElement + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_html_u_list_element_get_compact(WebKitDOMHTMLUListElement* self); + +/** + * webkit_dom_html_u_list_element_set_compact: + * @self: A #WebKitDOMHTMLUListElement + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_html_u_list_element_set_compact(WebKitDOMHTMLUListElement* self, gboolean value); + +/** + * webkit_dom_html_u_list_element_get_type_attr: + * @self: A #WebKitDOMHTMLUListElement + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_html_u_list_element_get_type_attr(WebKitDOMHTMLUListElement* self); + +/** + * webkit_dom_html_u_list_element_set_type_attr: + * @self: A #WebKitDOMHTMLUListElement + * @value: A #gchar + * +**/ +WEBKIT_API void +webkit_dom_html_u_list_element_set_type_attr(WebKitDOMHTMLUListElement* self, const gchar* value); + +G_END_DECLS + +#endif /* WebKitDOMHTMLUListElement_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElementPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElementPrivate.h new file mode 100644 index 000000000..bf689521f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElementPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMHTMLUListElementPrivate_h +#define WebKitDOMHTMLUListElementPrivate_h + +#include <WebCore/HTMLUListElement.h> +#include <webkitdom/WebKitDOMHTMLUListElement.h> + +namespace WebKit { +WebKitDOMHTMLUListElement* wrapHTMLUListElement(WebCore::HTMLUListElement*); +WebKitDOMHTMLUListElement* kit(WebCore::HTMLUListElement*); +WebCore::HTMLUListElement* core(WebKitDOMHTMLUListElement*); +} // namespace WebKit + +#endif /* WebKitDOMHTMLUListElementPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp new file mode 100644 index 000000000..4c28c113d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp @@ -0,0 +1,271 @@ +/* + * 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 "WebKitDOMKeyboardEvent.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMKeyboardEventPrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMKeyboardEvent* kit(WebCore::KeyboardEvent* obj) +{ + return WEBKIT_DOM_KEYBOARD_EVENT(kit(static_cast<WebCore::Event*>(obj))); +} + +WebCore::KeyboardEvent* core(WebKitDOMKeyboardEvent* request) +{ + return request ? static_cast<WebCore::KeyboardEvent*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMKeyboardEvent* wrapKeyboardEvent(WebCore::KeyboardEvent* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_KEYBOARD_EVENT(g_object_new(WEBKIT_DOM_TYPE_KEYBOARD_EVENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMKeyboardEvent, webkit_dom_keyboard_event, WEBKIT_DOM_TYPE_UI_EVENT) + +enum { + PROP_0, + PROP_KEY_IDENTIFIER, + PROP_KEY_LOCATION, + PROP_CTRL_KEY, + PROP_SHIFT_KEY, + PROP_ALT_KEY, + PROP_META_KEY, + PROP_ALT_GRAPH_KEY, +}; + +static void webkit_dom_keyboard_event_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMKeyboardEvent* self = WEBKIT_DOM_KEYBOARD_EVENT(object); + + switch (propertyId) { + case PROP_KEY_IDENTIFIER: + g_value_take_string(value, webkit_dom_keyboard_event_get_key_identifier(self)); + break; + case PROP_KEY_LOCATION: + g_value_set_ulong(value, webkit_dom_keyboard_event_get_key_location(self)); + break; + case PROP_CTRL_KEY: + g_value_set_boolean(value, webkit_dom_keyboard_event_get_ctrl_key(self)); + break; + case PROP_SHIFT_KEY: + g_value_set_boolean(value, webkit_dom_keyboard_event_get_shift_key(self)); + break; + case PROP_ALT_KEY: + g_value_set_boolean(value, webkit_dom_keyboard_event_get_alt_key(self)); + break; + case PROP_META_KEY: + g_value_set_boolean(value, webkit_dom_keyboard_event_get_meta_key(self)); + break; + case PROP_ALT_GRAPH_KEY: + g_value_set_boolean(value, webkit_dom_keyboard_event_get_alt_graph_key(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_keyboard_event_class_init(WebKitDOMKeyboardEventClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_keyboard_event_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_KEY_IDENTIFIER, + g_param_spec_string( + "key-identifier", + "KeyboardEvent:key-identifier", + "read-only gchar* KeyboardEvent:key-identifier", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_KEY_LOCATION, + g_param_spec_ulong( + "key-location", + "KeyboardEvent:key-location", + "read-only gulong KeyboardEvent:key-location", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CTRL_KEY, + g_param_spec_boolean( + "ctrl-key", + "KeyboardEvent:ctrl-key", + "read-only gboolean KeyboardEvent:ctrl-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SHIFT_KEY, + g_param_spec_boolean( + "shift-key", + "KeyboardEvent:shift-key", + "read-only gboolean KeyboardEvent:shift-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALT_KEY, + g_param_spec_boolean( + "alt-key", + "KeyboardEvent:alt-key", + "read-only gboolean KeyboardEvent:alt-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_META_KEY, + g_param_spec_boolean( + "meta-key", + "KeyboardEvent:meta-key", + "read-only gboolean KeyboardEvent:meta-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALT_GRAPH_KEY, + g_param_spec_boolean( + "alt-graph-key", + "KeyboardEvent:alt-graph-key", + "read-only gboolean KeyboardEvent:alt-graph-key", + FALSE, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_keyboard_event_init(WebKitDOMKeyboardEvent* request) +{ + UNUSED_PARAM(request); +} + +gboolean webkit_dom_keyboard_event_get_modifier_state(WebKitDOMKeyboardEvent* self, const gchar* keyIdentifierArg) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), FALSE); + g_return_val_if_fail(keyIdentifierArg, FALSE); + WebCore::KeyboardEvent* item = WebKit::core(self); + WTF::String convertedKeyIdentifierArg = WTF::String::fromUTF8(keyIdentifierArg); + gboolean result = item->getModifierState(convertedKeyIdentifierArg); + return result; +} + +void webkit_dom_keyboard_event_init_keyboard_event(WebKitDOMKeyboardEvent* self, const gchar* type, gboolean canBubble, gboolean cancelable, WebKitDOMDOMWindow* view, const gchar* keyIdentifier, gulong location, gboolean ctrlKey, gboolean altKey, gboolean shiftKey, gboolean metaKey, gboolean altGraphKey) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self)); + g_return_if_fail(type); + g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(view)); + g_return_if_fail(keyIdentifier); + WebCore::KeyboardEvent* item = WebKit::core(self); + WTF::String convertedType = WTF::String::fromUTF8(type); + WebCore::DOMWindow* convertedView = WebKit::core(view); + WTF::String convertedKeyIdentifier = WTF::String::fromUTF8(keyIdentifier); + item->initKeyboardEvent(convertedType, canBubble, cancelable, convertedView, convertedKeyIdentifier, location, ctrlKey, altKey, shiftKey, metaKey, altGraphKey); +} + +gchar* webkit_dom_keyboard_event_get_key_identifier(WebKitDOMKeyboardEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), 0); + WebCore::KeyboardEvent* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->keyIdentifier()); + return result; +} + +gulong webkit_dom_keyboard_event_get_key_location(WebKitDOMKeyboardEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), 0); + WebCore::KeyboardEvent* item = WebKit::core(self); + gulong result = item->location(); + return result; +} + +gboolean webkit_dom_keyboard_event_get_ctrl_key(WebKitDOMKeyboardEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), FALSE); + WebCore::KeyboardEvent* item = WebKit::core(self); + gboolean result = item->ctrlKey(); + return result; +} + +gboolean webkit_dom_keyboard_event_get_shift_key(WebKitDOMKeyboardEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), FALSE); + WebCore::KeyboardEvent* item = WebKit::core(self); + gboolean result = item->shiftKey(); + return result; +} + +gboolean webkit_dom_keyboard_event_get_alt_key(WebKitDOMKeyboardEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), FALSE); + WebCore::KeyboardEvent* item = WebKit::core(self); + gboolean result = item->altKey(); + return result; +} + +gboolean webkit_dom_keyboard_event_get_meta_key(WebKitDOMKeyboardEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), FALSE); + WebCore::KeyboardEvent* item = WebKit::core(self); + gboolean result = item->metaKey(); + return result; +} + +gboolean webkit_dom_keyboard_event_get_alt_graph_key(WebKitDOMKeyboardEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_KEYBOARD_EVENT(self), FALSE); + WebCore::KeyboardEvent* item = WebKit::core(self); + gboolean result = item->altGraphKey(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.h new file mode 100644 index 000000000..fc7d1dd23 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.h @@ -0,0 +1,165 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMKeyboardEvent_h +#define WebKitDOMKeyboardEvent_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMUIEvent.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_KEYBOARD_EVENT (webkit_dom_keyboard_event_get_type()) +#define WEBKIT_DOM_KEYBOARD_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_KEYBOARD_EVENT, WebKitDOMKeyboardEvent)) +#define WEBKIT_DOM_KEYBOARD_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_KEYBOARD_EVENT, WebKitDOMKeyboardEventClass) +#define WEBKIT_DOM_IS_KEYBOARD_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_KEYBOARD_EVENT)) +#define WEBKIT_DOM_IS_KEYBOARD_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_KEYBOARD_EVENT)) +#define WEBKIT_DOM_KEYBOARD_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_KEYBOARD_EVENT, WebKitDOMKeyboardEventClass)) + +/** + * WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_STANDARD: + */ +#define WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_STANDARD 0x00 + +/** + * WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_LEFT: + */ +#define WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_LEFT 0x01 + +/** + * WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_RIGHT: + */ +#define WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_RIGHT 0x02 + +/** + * WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_NUMPAD: + */ +#define WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_NUMPAD 0x03 + +struct _WebKitDOMKeyboardEvent { + WebKitDOMUIEvent parent_instance; +}; + +struct _WebKitDOMKeyboardEventClass { + WebKitDOMUIEventClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_keyboard_event_get_type(void); + +/** + * webkit_dom_keyboard_event_get_modifier_state: + * @self: A #WebKitDOMKeyboardEvent + * @keyIdentifierArg: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_keyboard_event_get_modifier_state(WebKitDOMKeyboardEvent* self, const gchar* keyIdentifierArg); + +/** + * webkit_dom_keyboard_event_init_keyboard_event: + * @self: A #WebKitDOMKeyboardEvent + * @type: A #gchar + * @canBubble: A #gboolean + * @cancelable: A #gboolean + * @view: A #WebKitDOMDOMWindow + * @keyIdentifier: A #gchar + * @location: A #gulong + * @ctrlKey: A #gboolean + * @altKey: A #gboolean + * @shiftKey: A #gboolean + * @metaKey: A #gboolean + * @altGraphKey: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_keyboard_event_init_keyboard_event(WebKitDOMKeyboardEvent* self, const gchar* type, gboolean canBubble, gboolean cancelable, WebKitDOMDOMWindow* view, const gchar* keyIdentifier, gulong location, gboolean ctrlKey, gboolean altKey, gboolean shiftKey, gboolean metaKey, gboolean altGraphKey); + +/** + * webkit_dom_keyboard_event_get_key_identifier: + * @self: A #WebKitDOMKeyboardEvent + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_keyboard_event_get_key_identifier(WebKitDOMKeyboardEvent* self); + +/** + * webkit_dom_keyboard_event_get_key_location: + * @self: A #WebKitDOMKeyboardEvent + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_keyboard_event_get_key_location(WebKitDOMKeyboardEvent* self); + +/** + * webkit_dom_keyboard_event_get_ctrl_key: + * @self: A #WebKitDOMKeyboardEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_keyboard_event_get_ctrl_key(WebKitDOMKeyboardEvent* self); + +/** + * webkit_dom_keyboard_event_get_shift_key: + * @self: A #WebKitDOMKeyboardEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_keyboard_event_get_shift_key(WebKitDOMKeyboardEvent* self); + +/** + * webkit_dom_keyboard_event_get_alt_key: + * @self: A #WebKitDOMKeyboardEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_keyboard_event_get_alt_key(WebKitDOMKeyboardEvent* self); + +/** + * webkit_dom_keyboard_event_get_meta_key: + * @self: A #WebKitDOMKeyboardEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_keyboard_event_get_meta_key(WebKitDOMKeyboardEvent* self); + +/** + * webkit_dom_keyboard_event_get_alt_graph_key: + * @self: A #WebKitDOMKeyboardEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_keyboard_event_get_alt_graph_key(WebKitDOMKeyboardEvent* self); + +G_END_DECLS + +#endif /* WebKitDOMKeyboardEvent_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEventPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEventPrivate.h new file mode 100644 index 000000000..6f6fc16e5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEventPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMKeyboardEventPrivate_h +#define WebKitDOMKeyboardEventPrivate_h + +#include <WebCore/KeyboardEvent.h> +#include <webkitdom/WebKitDOMKeyboardEvent.h> + +namespace WebKit { +WebKitDOMKeyboardEvent* wrapKeyboardEvent(WebCore::KeyboardEvent*); +WebKitDOMKeyboardEvent* kit(WebCore::KeyboardEvent*); +WebCore::KeyboardEvent* core(WebKitDOMKeyboardEvent*); +} // namespace WebKit + +#endif /* WebKitDOMKeyboardEventPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp new file mode 100644 index 000000000..ad573b6b5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp @@ -0,0 +1,235 @@ +/* + * 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 "WebKitDOMMediaList.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMMediaListPrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_MEDIA_LIST_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_MEDIA_LIST, WebKitDOMMediaListPrivate) + +typedef struct _WebKitDOMMediaListPrivate { + RefPtr<WebCore::MediaList> coreObject; +} WebKitDOMMediaListPrivate; + +namespace WebKit { + +WebKitDOMMediaList* kit(WebCore::MediaList* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_MEDIA_LIST(ret); + + return wrapMediaList(obj); +} + +WebCore::MediaList* core(WebKitDOMMediaList* request) +{ + return request ? static_cast<WebCore::MediaList*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMMediaList* wrapMediaList(WebCore::MediaList* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_MEDIA_LIST(g_object_new(WEBKIT_DOM_TYPE_MEDIA_LIST, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMMediaList, webkit_dom_media_list, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_MEDIA_TEXT, + PROP_LENGTH, +}; + +static void webkit_dom_media_list_finalize(GObject* object) +{ + WebKitDOMMediaListPrivate* priv = WEBKIT_DOM_MEDIA_LIST_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMMediaListPrivate(); + G_OBJECT_CLASS(webkit_dom_media_list_parent_class)->finalize(object); +} + +static void webkit_dom_media_list_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMMediaList* self = WEBKIT_DOM_MEDIA_LIST(object); + + switch (propertyId) { + case PROP_MEDIA_TEXT: + webkit_dom_media_list_set_media_text(self, g_value_get_string(value), nullptr); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_media_list_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMMediaList* self = WEBKIT_DOM_MEDIA_LIST(object); + + switch (propertyId) { + case PROP_MEDIA_TEXT: + g_value_take_string(value, webkit_dom_media_list_get_media_text(self)); + break; + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_media_list_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_media_list_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_media_list_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMMediaListPrivate* priv = WEBKIT_DOM_MEDIA_LIST_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::MediaList*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_media_list_class_init(WebKitDOMMediaListClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMMediaListPrivate)); + gobjectClass->constructor = webkit_dom_media_list_constructor; + gobjectClass->finalize = webkit_dom_media_list_finalize; + gobjectClass->set_property = webkit_dom_media_list_set_property; + gobjectClass->get_property = webkit_dom_media_list_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_MEDIA_TEXT, + g_param_spec_string( + "media-text", + "MediaList:media-text", + "read-write gchar* MediaList:media-text", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "MediaList:length", + "read-only gulong MediaList:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_media_list_init(WebKitDOMMediaList* request) +{ + WebKitDOMMediaListPrivate* priv = WEBKIT_DOM_MEDIA_LIST_GET_PRIVATE(request); + new (priv) WebKitDOMMediaListPrivate(); +} + +gchar* webkit_dom_media_list_item(WebKitDOMMediaList* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MEDIA_LIST(self), 0); + WebCore::MediaList* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->item(index)); + return result; +} + +void webkit_dom_media_list_delete_medium(WebKitDOMMediaList* self, const gchar* oldMedium, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_MEDIA_LIST(self)); + g_return_if_fail(oldMedium); + g_return_if_fail(!error || !*error); + WebCore::MediaList* item = WebKit::core(self); + WTF::String convertedOldMedium = WTF::String::fromUTF8(oldMedium); + auto result = item->deleteMedium(convertedOldMedium); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_media_list_append_medium(WebKitDOMMediaList* self, const gchar* newMedium, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_MEDIA_LIST(self)); + g_return_if_fail(newMedium); + g_return_if_fail(!error || !*error); + WebCore::MediaList* item = WebKit::core(self); + WTF::String convertedNewMedium = WTF::String::fromUTF8(newMedium); + auto result = item->appendMedium(convertedNewMedium); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gchar* webkit_dom_media_list_get_media_text(WebKitDOMMediaList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MEDIA_LIST(self), 0); + WebCore::MediaList* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->mediaText()); + return result; +} + +void webkit_dom_media_list_set_media_text(WebKitDOMMediaList* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_MEDIA_LIST(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::MediaList* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setMediaText(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gulong webkit_dom_media_list_get_length(WebKitDOMMediaList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MEDIA_LIST(self), 0); + WebCore::MediaList* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.h new file mode 100644 index 000000000..71f6f5aac --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.h @@ -0,0 +1,111 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMMediaList_h +#define WebKitDOMMediaList_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_MEDIA_LIST (webkit_dom_media_list_get_type()) +#define WEBKIT_DOM_MEDIA_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_MEDIA_LIST, WebKitDOMMediaList)) +#define WEBKIT_DOM_MEDIA_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_MEDIA_LIST, WebKitDOMMediaListClass) +#define WEBKIT_DOM_IS_MEDIA_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_MEDIA_LIST)) +#define WEBKIT_DOM_IS_MEDIA_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_MEDIA_LIST)) +#define WEBKIT_DOM_MEDIA_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_MEDIA_LIST, WebKitDOMMediaListClass)) + +struct _WebKitDOMMediaList { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMMediaListClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_media_list_get_type(void); + +/** + * webkit_dom_media_list_item: + * @self: A #WebKitDOMMediaList + * @index: A #gulong + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_media_list_item(WebKitDOMMediaList* self, gulong index); + +/** + * webkit_dom_media_list_delete_medium: + * @self: A #WebKitDOMMediaList + * @oldMedium: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_media_list_delete_medium(WebKitDOMMediaList* self, const gchar* oldMedium, GError** error); + +/** + * webkit_dom_media_list_append_medium: + * @self: A #WebKitDOMMediaList + * @newMedium: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_media_list_append_medium(WebKitDOMMediaList* self, const gchar* newMedium, GError** error); + +/** + * webkit_dom_media_list_get_media_text: + * @self: A #WebKitDOMMediaList + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_media_list_get_media_text(WebKitDOMMediaList* self); + +/** + * webkit_dom_media_list_set_media_text: + * @self: A #WebKitDOMMediaList + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_media_list_set_media_text(WebKitDOMMediaList* self, const gchar* value, GError** error); + +/** + * webkit_dom_media_list_get_length: + * @self: A #WebKitDOMMediaList + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_media_list_get_length(WebKitDOMMediaList* self); + +G_END_DECLS + +#endif /* WebKitDOMMediaList_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaListPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaListPrivate.h new file mode 100644 index 000000000..d26579181 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaListPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMMediaListPrivate_h +#define WebKitDOMMediaListPrivate_h + +#include <WebCore/MediaList.h> +#include <webkitdom/WebKitDOMMediaList.h> + +namespace WebKit { +WebKitDOMMediaList* wrapMediaList(WebCore::MediaList*); +WebKitDOMMediaList* kit(WebCore::MediaList*); +WebCore::MediaList* core(WebKitDOMMediaList*); +} // namespace WebKit + +#endif /* WebKitDOMMediaListPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp new file mode 100644 index 000000000..edc1b8293 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp @@ -0,0 +1,469 @@ +/* + * 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 "WebKitDOMMouseEvent.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTargetPrivate.h" +#include "WebKitDOMMouseEventPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMMouseEvent* kit(WebCore::MouseEvent* obj) +{ + return WEBKIT_DOM_MOUSE_EVENT(kit(static_cast<WebCore::Event*>(obj))); +} + +WebCore::MouseEvent* core(WebKitDOMMouseEvent* request) +{ + return request ? static_cast<WebCore::MouseEvent*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMMouseEvent* wrapMouseEvent(WebCore::MouseEvent* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_MOUSE_EVENT(g_object_new(WEBKIT_DOM_TYPE_MOUSE_EVENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMMouseEvent, webkit_dom_mouse_event, WEBKIT_DOM_TYPE_UI_EVENT) + +enum { + PROP_0, + PROP_SCREEN_X, + PROP_SCREEN_Y, + PROP_CLIENT_X, + PROP_CLIENT_Y, + PROP_CTRL_KEY, + PROP_SHIFT_KEY, + PROP_ALT_KEY, + PROP_META_KEY, + PROP_BUTTON, + PROP_RELATED_TARGET, + PROP_OFFSET_X, + PROP_OFFSET_Y, + PROP_X, + PROP_Y, + PROP_FROM_ELEMENT, + PROP_TO_ELEMENT, +}; + +static void webkit_dom_mouse_event_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMMouseEvent* self = WEBKIT_DOM_MOUSE_EVENT(object); + + switch (propertyId) { + case PROP_SCREEN_X: + g_value_set_long(value, webkit_dom_mouse_event_get_screen_x(self)); + break; + case PROP_SCREEN_Y: + g_value_set_long(value, webkit_dom_mouse_event_get_screen_y(self)); + break; + case PROP_CLIENT_X: + g_value_set_long(value, webkit_dom_mouse_event_get_client_x(self)); + break; + case PROP_CLIENT_Y: + g_value_set_long(value, webkit_dom_mouse_event_get_client_y(self)); + break; + case PROP_CTRL_KEY: + g_value_set_boolean(value, webkit_dom_mouse_event_get_ctrl_key(self)); + break; + case PROP_SHIFT_KEY: + g_value_set_boolean(value, webkit_dom_mouse_event_get_shift_key(self)); + break; + case PROP_ALT_KEY: + g_value_set_boolean(value, webkit_dom_mouse_event_get_alt_key(self)); + break; + case PROP_META_KEY: + g_value_set_boolean(value, webkit_dom_mouse_event_get_meta_key(self)); + break; + case PROP_BUTTON: + g_value_set_uint(value, webkit_dom_mouse_event_get_button(self)); + break; + case PROP_RELATED_TARGET: + g_value_set_object(value, webkit_dom_mouse_event_get_related_target(self)); + break; + case PROP_OFFSET_X: + g_value_set_long(value, webkit_dom_mouse_event_get_offset_x(self)); + break; + case PROP_OFFSET_Y: + g_value_set_long(value, webkit_dom_mouse_event_get_offset_y(self)); + break; + case PROP_X: + g_value_set_long(value, webkit_dom_mouse_event_get_x(self)); + break; + case PROP_Y: + g_value_set_long(value, webkit_dom_mouse_event_get_y(self)); + break; + case PROP_FROM_ELEMENT: + g_value_set_object(value, webkit_dom_mouse_event_get_from_element(self)); + break; + case PROP_TO_ELEMENT: + g_value_set_object(value, webkit_dom_mouse_event_get_to_element(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_mouse_event_class_init(WebKitDOMMouseEventClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_mouse_event_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_SCREEN_X, + g_param_spec_long( + "screen-x", + "MouseEvent:screen-x", + "read-only glong MouseEvent: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", + "MouseEvent:screen-y", + "read-only glong MouseEvent:screen-y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLIENT_X, + g_param_spec_long( + "client-x", + "MouseEvent:client-x", + "read-only glong MouseEvent:client-x", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CLIENT_Y, + g_param_spec_long( + "client-y", + "MouseEvent:client-y", + "read-only glong MouseEvent:client-y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CTRL_KEY, + g_param_spec_boolean( + "ctrl-key", + "MouseEvent:ctrl-key", + "read-only gboolean MouseEvent:ctrl-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SHIFT_KEY, + g_param_spec_boolean( + "shift-key", + "MouseEvent:shift-key", + "read-only gboolean MouseEvent:shift-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_ALT_KEY, + g_param_spec_boolean( + "alt-key", + "MouseEvent:alt-key", + "read-only gboolean MouseEvent:alt-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_META_KEY, + g_param_spec_boolean( + "meta-key", + "MouseEvent:meta-key", + "read-only gboolean MouseEvent:meta-key", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_BUTTON, + g_param_spec_uint( + "button", + "MouseEvent:button", + "read-only gushort MouseEvent:button", + 0, G_MAXUINT, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_RELATED_TARGET, + g_param_spec_object( + "related-target", + "MouseEvent:related-target", + "read-only WebKitDOMEventTarget* MouseEvent:related-target", + WEBKIT_DOM_TYPE_EVENT_TARGET, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OFFSET_X, + g_param_spec_long( + "offset-x", + "MouseEvent:offset-x", + "read-only glong MouseEvent:offset-x", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OFFSET_Y, + g_param_spec_long( + "offset-y", + "MouseEvent:offset-y", + "read-only glong MouseEvent:offset-y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_X, + g_param_spec_long( + "x", + "MouseEvent:x", + "read-only glong MouseEvent:x", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_Y, + g_param_spec_long( + "y", + "MouseEvent:y", + "read-only glong MouseEvent:y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FROM_ELEMENT, + g_param_spec_object( + "from-element", + "MouseEvent:from-element", + "read-only WebKitDOMNode* MouseEvent:from-element", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TO_ELEMENT, + g_param_spec_object( + "to-element", + "MouseEvent:to-element", + "read-only WebKitDOMNode* MouseEvent:to-element", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_mouse_event_init(WebKitDOMMouseEvent* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_mouse_event_init_mouse_event(WebKitDOMMouseEvent* self, const gchar* type, gboolean canBubble, gboolean cancelable, WebKitDOMDOMWindow* view, glong detail, glong screenX, glong screenY, glong clientX, glong clientY, gboolean ctrlKey, gboolean altKey, gboolean shiftKey, gboolean metaKey, gushort button, WebKitDOMEventTarget* relatedTarget) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self)); + g_return_if_fail(type); + g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(view)); + g_return_if_fail(WEBKIT_DOM_IS_EVENT_TARGET(relatedTarget)); + WebCore::MouseEvent* item = WebKit::core(self); + WTF::String convertedType = WTF::String::fromUTF8(type); + WebCore::DOMWindow* convertedView = WebKit::core(view); + WebCore::EventTarget* convertedRelatedTarget = WebKit::core(relatedTarget); + item->initMouseEvent(convertedType, canBubble, cancelable, convertedView, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, convertedRelatedTarget); +} + +glong webkit_dom_mouse_event_get_screen_x(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->screenX(); + return result; +} + +glong webkit_dom_mouse_event_get_screen_y(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->screenY(); + return result; +} + +glong webkit_dom_mouse_event_get_client_x(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->clientX(); + return result; +} + +glong webkit_dom_mouse_event_get_client_y(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->clientY(); + return result; +} + +gboolean webkit_dom_mouse_event_get_ctrl_key(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), FALSE); + WebCore::MouseEvent* item = WebKit::core(self); + gboolean result = item->ctrlKey(); + return result; +} + +gboolean webkit_dom_mouse_event_get_shift_key(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), FALSE); + WebCore::MouseEvent* item = WebKit::core(self); + gboolean result = item->shiftKey(); + return result; +} + +gboolean webkit_dom_mouse_event_get_alt_key(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), FALSE); + WebCore::MouseEvent* item = WebKit::core(self); + gboolean result = item->altKey(); + return result; +} + +gboolean webkit_dom_mouse_event_get_meta_key(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), FALSE); + WebCore::MouseEvent* item = WebKit::core(self); + gboolean result = item->metaKey(); + return result; +} + +gushort webkit_dom_mouse_event_get_button(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + gushort result = item->button(); + return result; +} + +WebKitDOMEventTarget* webkit_dom_mouse_event_get_related_target(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + RefPtr<WebCore::EventTarget> gobjectResult = WTF::getPtr(item->relatedTarget()); + return WebKit::kit(gobjectResult.get()); +} + +glong webkit_dom_mouse_event_get_offset_x(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->offsetX(); + return result; +} + +glong webkit_dom_mouse_event_get_offset_y(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->offsetY(); + return result; +} + +glong webkit_dom_mouse_event_get_x(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->x(); + return result; +} + +glong webkit_dom_mouse_event_get_y(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + glong result = item->y(); + return result; +} + +WebKitDOMNode* webkit_dom_mouse_event_get_from_element(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->fromElement()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_mouse_event_get_to_element(WebKitDOMMouseEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_MOUSE_EVENT(self), 0); + WebCore::MouseEvent* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->toElement()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.h new file mode 100644 index 000000000..1212afed7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.h @@ -0,0 +1,220 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMMouseEvent_h +#define WebKitDOMMouseEvent_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMUIEvent.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_MOUSE_EVENT (webkit_dom_mouse_event_get_type()) +#define WEBKIT_DOM_MOUSE_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_MOUSE_EVENT, WebKitDOMMouseEvent)) +#define WEBKIT_DOM_MOUSE_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_MOUSE_EVENT, WebKitDOMMouseEventClass) +#define WEBKIT_DOM_IS_MOUSE_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_MOUSE_EVENT)) +#define WEBKIT_DOM_IS_MOUSE_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_MOUSE_EVENT)) +#define WEBKIT_DOM_MOUSE_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_MOUSE_EVENT, WebKitDOMMouseEventClass)) + +struct _WebKitDOMMouseEvent { + WebKitDOMUIEvent parent_instance; +}; + +struct _WebKitDOMMouseEventClass { + WebKitDOMUIEventClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_mouse_event_get_type(void); + +/** + * webkit_dom_mouse_event_init_mouse_event: + * @self: A #WebKitDOMMouseEvent + * @type: A #gchar + * @canBubble: A #gboolean + * @cancelable: A #gboolean + * @view: A #WebKitDOMDOMWindow + * @detail: A #glong + * @screenX: A #glong + * @screenY: A #glong + * @clientX: A #glong + * @clientY: A #glong + * @ctrlKey: A #gboolean + * @altKey: A #gboolean + * @shiftKey: A #gboolean + * @metaKey: A #gboolean + * @button: A #gushort + * @relatedTarget: A #WebKitDOMEventTarget + * +**/ +WEBKIT_API void +webkit_dom_mouse_event_init_mouse_event(WebKitDOMMouseEvent* self, const gchar* type, gboolean canBubble, gboolean cancelable, WebKitDOMDOMWindow* view, glong detail, glong screenX, glong screenY, glong clientX, glong clientY, gboolean ctrlKey, gboolean altKey, gboolean shiftKey, gboolean metaKey, gushort button, WebKitDOMEventTarget* relatedTarget); + +/** + * webkit_dom_mouse_event_get_screen_x: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_screen_x(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_screen_y: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_screen_y(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_client_x: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_client_x(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_client_y: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_client_y(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_ctrl_key: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_mouse_event_get_ctrl_key(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_shift_key: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_mouse_event_get_shift_key(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_alt_key: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_mouse_event_get_alt_key(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_meta_key: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_mouse_event_get_meta_key(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_button: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #gushort +**/ +WEBKIT_API gushort +webkit_dom_mouse_event_get_button(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_related_target: + * @self: A #WebKitDOMMouseEvent + * + * Returns: (transfer full): A #WebKitDOMEventTarget +**/ +WEBKIT_API WebKitDOMEventTarget* +webkit_dom_mouse_event_get_related_target(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_offset_x: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_offset_x(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_offset_y: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_offset_y(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_x: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_x(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_y: + * @self: A #WebKitDOMMouseEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_mouse_event_get_y(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_from_element: + * @self: A #WebKitDOMMouseEvent + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_mouse_event_get_from_element(WebKitDOMMouseEvent* self); + +/** + * webkit_dom_mouse_event_get_to_element: + * @self: A #WebKitDOMMouseEvent + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_mouse_event_get_to_element(WebKitDOMMouseEvent* self); + +G_END_DECLS + +#endif /* WebKitDOMMouseEvent_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEventPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEventPrivate.h new file mode 100644 index 000000000..e4ac9210e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEventPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMMouseEventPrivate_h +#define WebKitDOMMouseEventPrivate_h + +#include <WebCore/MouseEvent.h> +#include <webkitdom/WebKitDOMMouseEvent.h> + +namespace WebKit { +WebKitDOMMouseEvent* wrapMouseEvent(WebCore::MouseEvent*); +WebKitDOMMouseEvent* kit(WebCore::MouseEvent*); +WebCore::MouseEvent* core(WebKitDOMMouseEvent*); +} // namespace WebKit + +#endif /* WebKitDOMMouseEventPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp new file mode 100644 index 000000000..a82f1efa1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp @@ -0,0 +1,241 @@ +/* + * 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 "WebKitDOMNamedNodeMap.h" + +#include "ConvertToUTF8String.h" +#include "DOMObjectCache.h" +#include "WebKitDOMNamedNodeMapPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include <WebCore/Attr.h> +#include <WebCore/CSSImportRule.h> +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_NAMED_NODE_MAP_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_NAMED_NODE_MAP, WebKitDOMNamedNodeMapPrivate) + +typedef struct _WebKitDOMNamedNodeMapPrivate { + RefPtr<WebCore::NamedNodeMap> coreObject; +} WebKitDOMNamedNodeMapPrivate; + +namespace WebKit { + +WebKitDOMNamedNodeMap* kit(WebCore::NamedNodeMap* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_NAMED_NODE_MAP(ret); + + return wrapNamedNodeMap(obj); +} + +WebCore::NamedNodeMap* core(WebKitDOMNamedNodeMap* request) +{ + return request ? static_cast<WebCore::NamedNodeMap*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMNamedNodeMap* wrapNamedNodeMap(WebCore::NamedNodeMap* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_NAMED_NODE_MAP(g_object_new(WEBKIT_DOM_TYPE_NAMED_NODE_MAP, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMNamedNodeMap, webkit_dom_named_node_map, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_LENGTH, +}; + +static void webkit_dom_named_node_map_finalize(GObject* object) +{ + WebKitDOMNamedNodeMapPrivate* priv = WEBKIT_DOM_NAMED_NODE_MAP_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMNamedNodeMapPrivate(); + G_OBJECT_CLASS(webkit_dom_named_node_map_parent_class)->finalize(object); +} + +static void webkit_dom_named_node_map_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMNamedNodeMap* self = WEBKIT_DOM_NAMED_NODE_MAP(object); + + switch (propertyId) { + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_named_node_map_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_named_node_map_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_named_node_map_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMNamedNodeMapPrivate* priv = WEBKIT_DOM_NAMED_NODE_MAP_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::NamedNodeMap*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_named_node_map_class_init(WebKitDOMNamedNodeMapClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMNamedNodeMapPrivate)); + gobjectClass->constructor = webkit_dom_named_node_map_constructor; + gobjectClass->finalize = webkit_dom_named_node_map_finalize; + gobjectClass->get_property = webkit_dom_named_node_map_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "NamedNodeMap:length", + "read-only gulong NamedNodeMap:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_named_node_map_init(WebKitDOMNamedNodeMap* request) +{ + WebKitDOMNamedNodeMapPrivate* priv = WEBKIT_DOM_NAMED_NODE_MAP_GET_PRIVATE(request); + new (priv) WebKitDOMNamedNodeMapPrivate(); +} + +WebKitDOMNode* webkit_dom_named_node_map_get_named_item(WebKitDOMNamedNodeMap* self, const gchar* name) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NAMED_NODE_MAP(self), 0); + g_return_val_if_fail(name, 0); + WebCore::NamedNodeMap* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->getNamedItem(convertedName)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_named_node_map_set_named_item(WebKitDOMNamedNodeMap* self, WebKitDOMNode* node, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NAMED_NODE_MAP(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(node), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::NamedNodeMap* item = WebKit::core(self); + WebCore::Node* convertedNode = WebKit::core(node); + if (!is<WebCore::Attr>(*convertedNode)) { + WebCore::ExceptionCodeDescription ecdesc(WebCore::TypeError); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + auto result = item->setNamedItem(downcast<WebCore::Attr>(*convertedNode)); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().get()); +} + +WebKitDOMNode* webkit_dom_named_node_map_remove_named_item(WebKitDOMNamedNodeMap* self, const gchar* name, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NAMED_NODE_MAP(self), 0); + g_return_val_if_fail(name, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::NamedNodeMap* item = WebKit::core(self); + WTF::String convertedName = WTF::String::fromUTF8(name); + auto result = item->removeNamedItem(convertedName); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMNode* webkit_dom_named_node_map_item(WebKitDOMNamedNodeMap* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NAMED_NODE_MAP(self), 0); + WebCore::NamedNodeMap* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->item(index)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_named_node_map_get_named_item_ns(WebKitDOMNamedNodeMap* self, const gchar* namespaceURI, const gchar* localName) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NAMED_NODE_MAP(self), 0); + g_return_val_if_fail(namespaceURI, 0); + g_return_val_if_fail(localName, 0); + WebCore::NamedNodeMap* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->getNamedItemNS(convertedNamespaceURI, convertedLocalName)); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_named_node_map_set_named_item_ns(WebKitDOMNamedNodeMap* self, WebKitDOMNode* node, GError** error) +{ + return webkit_dom_named_node_map_set_named_item(self, node, error); +} + +WebKitDOMNode* webkit_dom_named_node_map_remove_named_item_ns(WebKitDOMNamedNodeMap* self, const gchar* namespaceURI, const gchar* localName, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NAMED_NODE_MAP(self), 0); + g_return_val_if_fail(namespaceURI, 0); + g_return_val_if_fail(localName, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::NamedNodeMap* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + WTF::String convertedLocalName = WTF::String::fromUTF8(localName); + auto result = item->removeNamedItemNS(convertedNamespaceURI, convertedLocalName); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +gulong webkit_dom_named_node_map_get_length(WebKitDOMNamedNodeMap* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NAMED_NODE_MAP(self), 0); + WebCore::NamedNodeMap* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.h new file mode 100644 index 000000000..4cfc8be38 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.h @@ -0,0 +1,138 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMNamedNodeMap_h +#define WebKitDOMNamedNodeMap_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_NAMED_NODE_MAP (webkit_dom_named_node_map_get_type()) +#define WEBKIT_DOM_NAMED_NODE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_NAMED_NODE_MAP, WebKitDOMNamedNodeMap)) +#define WEBKIT_DOM_NAMED_NODE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_NAMED_NODE_MAP, WebKitDOMNamedNodeMapClass) +#define WEBKIT_DOM_IS_NAMED_NODE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_NAMED_NODE_MAP)) +#define WEBKIT_DOM_IS_NAMED_NODE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_NAMED_NODE_MAP)) +#define WEBKIT_DOM_NAMED_NODE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_NAMED_NODE_MAP, WebKitDOMNamedNodeMapClass)) + +struct _WebKitDOMNamedNodeMap { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMNamedNodeMapClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_named_node_map_get_type(void); + +/** + * webkit_dom_named_node_map_get_named_item: + * @self: A #WebKitDOMNamedNodeMap + * @name: A #gchar + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_named_node_map_get_named_item(WebKitDOMNamedNodeMap* self, const gchar* name); + +/** + * webkit_dom_named_node_map_set_named_item: + * @self: A #WebKitDOMNamedNodeMap + * @node: A #WebKitDOMNode + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_named_node_map_set_named_item(WebKitDOMNamedNodeMap* self, WebKitDOMNode* node, GError** error); + +/** + * webkit_dom_named_node_map_remove_named_item: + * @self: A #WebKitDOMNamedNodeMap + * @name: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_named_node_map_remove_named_item(WebKitDOMNamedNodeMap* self, const gchar* name, GError** error); + +/** + * webkit_dom_named_node_map_item: + * @self: A #WebKitDOMNamedNodeMap + * @index: A #gulong + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_named_node_map_item(WebKitDOMNamedNodeMap* self, gulong index); + +/** + * webkit_dom_named_node_map_get_named_item_ns: + * @self: A #WebKitDOMNamedNodeMap + * @namespaceURI: A #gchar + * @localName: A #gchar + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_named_node_map_get_named_item_ns(WebKitDOMNamedNodeMap* self, const gchar* namespaceURI, const gchar* localName); + +/** + * webkit_dom_named_node_map_set_named_item_ns: + * @self: A #WebKitDOMNamedNodeMap + * @node: A #WebKitDOMNode + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_named_node_map_set_named_item_ns(WebKitDOMNamedNodeMap* self, WebKitDOMNode* node, GError** error); + +/** + * webkit_dom_named_node_map_remove_named_item_ns: + * @self: A #WebKitDOMNamedNodeMap + * @namespaceURI: A #gchar + * @localName: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_named_node_map_remove_named_item_ns(WebKitDOMNamedNodeMap* self, const gchar* namespaceURI, const gchar* localName, GError** error); + +/** + * webkit_dom_named_node_map_get_length: + * @self: A #WebKitDOMNamedNodeMap + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_named_node_map_get_length(WebKitDOMNamedNodeMap* self); + +G_END_DECLS + +#endif /* WebKitDOMNamedNodeMap_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMapPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMapPrivate.h new file mode 100644 index 000000000..0975cd360 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMapPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMNamedNodeMapPrivate_h +#define WebKitDOMNamedNodeMapPrivate_h + +#include <WebCore/NamedNodeMap.h> +#include <webkitdom/WebKitDOMNamedNodeMap.h> + +namespace WebKit { +WebKitDOMNamedNodeMap* wrapNamedNodeMap(WebCore::NamedNodeMap*); +WebKitDOMNamedNodeMap* kit(WebCore::NamedNodeMap*); +WebCore::NamedNodeMap* core(WebKitDOMNamedNodeMap*); +} // namespace WebKit + +#endif /* WebKitDOMNamedNodeMapPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp new file mode 100644 index 000000000..639445ed4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp @@ -0,0 +1,700 @@ +/* + * 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 "WebKitDOMNode.h" + +#include "ConvertToUTF8String.h" +#include "DOMObjectCache.h" +#include "GObjectEventListener.h" +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMElementPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include <WebCore/CSSImportRule.h> +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include <WebCore/SVGTests.h> +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_NODE_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_NODE, WebKitDOMNodePrivate) + +typedef struct _WebKitDOMNodePrivate { + RefPtr<WebCore::Node> coreObject; +} WebKitDOMNodePrivate; + +namespace WebKit { + +WebKitDOMNode* kit(WebCore::Node* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_NODE(ret); + + return wrap(obj); +} + +WebCore::Node* core(WebKitDOMNode* request) +{ + return request ? static_cast<WebCore::Node*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMNode* wrapNode(WebCore::Node* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_NODE(g_object_new(WEBKIT_DOM_TYPE_NODE, "core-object", coreObject, nullptr)); +} + +} + +static gboolean webkit_dom_node_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::Node* coreTarget = static_cast<WebCore::Node*>(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_node_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Node* coreTarget = static_cast<WebCore::Node*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_node_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Node* coreTarget = static_cast<WebCore::Node*>(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_node_dispatch_event; + iface->add_event_listener = webkit_dom_node_add_event_listener; + iface->remove_event_listener = webkit_dom_node_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMNode, webkit_dom_node, WEBKIT_DOM_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_NODE_NAME, + PROP_NODE_VALUE, + PROP_NODE_TYPE, + PROP_PARENT_NODE, + PROP_CHILD_NODES, + PROP_FIRST_CHILD, + PROP_LAST_CHILD, + PROP_PREVIOUS_SIBLING, + PROP_NEXT_SIBLING, + PROP_OWNER_DOCUMENT, + PROP_BASE_URI, + PROP_TEXT_CONTENT, + PROP_PARENT_ELEMENT, +}; + +static void webkit_dom_node_finalize(GObject* object) +{ + WebKitDOMNodePrivate* priv = WEBKIT_DOM_NODE_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMNodePrivate(); + G_OBJECT_CLASS(webkit_dom_node_parent_class)->finalize(object); +} + +static void webkit_dom_node_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMNode* self = WEBKIT_DOM_NODE(object); + + switch (propertyId) { + case PROP_NODE_VALUE: + webkit_dom_node_set_node_value(self, g_value_get_string(value), nullptr); + break; + case PROP_TEXT_CONTENT: + webkit_dom_node_set_text_content(self, g_value_get_string(value), nullptr); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_node_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMNode* self = WEBKIT_DOM_NODE(object); + + switch (propertyId) { + case PROP_NODE_NAME: + g_value_take_string(value, webkit_dom_node_get_node_name(self)); + break; + case PROP_NODE_VALUE: + g_value_take_string(value, webkit_dom_node_get_node_value(self)); + break; + case PROP_NODE_TYPE: + g_value_set_uint(value, webkit_dom_node_get_node_type(self)); + break; + case PROP_PARENT_NODE: + g_value_set_object(value, webkit_dom_node_get_parent_node(self)); + break; + case PROP_CHILD_NODES: + g_value_set_object(value, webkit_dom_node_get_child_nodes(self)); + break; + case PROP_FIRST_CHILD: + g_value_set_object(value, webkit_dom_node_get_first_child(self)); + break; + case PROP_LAST_CHILD: + g_value_set_object(value, webkit_dom_node_get_last_child(self)); + break; + case PROP_PREVIOUS_SIBLING: + g_value_set_object(value, webkit_dom_node_get_previous_sibling(self)); + break; + case PROP_NEXT_SIBLING: + g_value_set_object(value, webkit_dom_node_get_next_sibling(self)); + break; + case PROP_OWNER_DOCUMENT: + g_value_set_object(value, webkit_dom_node_get_owner_document(self)); + break; + case PROP_BASE_URI: + g_value_take_string(value, webkit_dom_node_get_base_uri(self)); + break; + case PROP_TEXT_CONTENT: + g_value_take_string(value, webkit_dom_node_get_text_content(self)); + break; + case PROP_PARENT_ELEMENT: + g_value_set_object(value, webkit_dom_node_get_parent_element(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_node_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_node_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMNodePrivate* priv = WEBKIT_DOM_NODE_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::Node*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_node_class_init(WebKitDOMNodeClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMNodePrivate)); + gobjectClass->constructor = webkit_dom_node_constructor; + gobjectClass->finalize = webkit_dom_node_finalize; + gobjectClass->set_property = webkit_dom_node_set_property; + gobjectClass->get_property = webkit_dom_node_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_NODE_NAME, + g_param_spec_string( + "node-name", + "Node:node-name", + "read-only gchar* Node:node-name", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NODE_VALUE, + g_param_spec_string( + "node-value", + "Node:node-value", + "read-write gchar* Node:node-value", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_NODE_TYPE, + g_param_spec_uint( + "node-type", + "Node:node-type", + "read-only gushort Node:node-type", + 0, G_MAXUINT, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PARENT_NODE, + g_param_spec_object( + "parent-node", + "Node:parent-node", + "read-only WebKitDOMNode* Node:parent-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHILD_NODES, + g_param_spec_object( + "child-nodes", + "Node:child-nodes", + "read-only WebKitDOMNodeList* Node:child-nodes", + WEBKIT_DOM_TYPE_NODE_LIST, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FIRST_CHILD, + g_param_spec_object( + "first-child", + "Node:first-child", + "read-only WebKitDOMNode* Node:first-child", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LAST_CHILD, + g_param_spec_object( + "last-child", + "Node:last-child", + "read-only WebKitDOMNode* Node:last-child", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PREVIOUS_SIBLING, + g_param_spec_object( + "previous-sibling", + "Node:previous-sibling", + "read-only WebKitDOMNode* Node:previous-sibling", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NEXT_SIBLING, + g_param_spec_object( + "next-sibling", + "Node:next-sibling", + "read-only WebKitDOMNode* Node:next-sibling", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_OWNER_DOCUMENT, + g_param_spec_object( + "owner-document", + "Node:owner-document", + "read-only WebKitDOMDocument* Node:owner-document", + WEBKIT_DOM_TYPE_DOCUMENT, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_BASE_URI, + g_param_spec_string( + "base-uri", + "Node:base-uri", + "read-only gchar* Node:base-uri", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TEXT_CONTENT, + g_param_spec_string( + "text-content", + "Node:text-content", + "read-write gchar* Node:text-content", + "", + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_PARENT_ELEMENT, + g_param_spec_object( + "parent-element", + "Node:parent-element", + "read-only WebKitDOMElement* Node:parent-element", + WEBKIT_DOM_TYPE_ELEMENT, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_node_init(WebKitDOMNode* request) +{ + WebKitDOMNodePrivate* priv = WEBKIT_DOM_NODE_GET_PRIVATE(request); + new (priv) WebKitDOMNodePrivate(); +} + +WebKitDOMNode* webkit_dom_node_insert_before(WebKitDOMNode* self, WebKitDOMNode* newChild, WebKitDOMNode* refChild, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(newChild), 0); + g_return_val_if_fail(!refChild || WEBKIT_DOM_IS_NODE(refChild), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedNewChild = WebKit::core(newChild); + WebCore::Node* convertedRefChild = WebKit::core(refChild); + auto result = item->insertBefore(*convertedNewChild, convertedRefChild); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return newChild; +} + +WebKitDOMNode* webkit_dom_node_replace_child(WebKitDOMNode* self, WebKitDOMNode* newChild, WebKitDOMNode* oldChild, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(newChild), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(oldChild), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedNewChild = WebKit::core(newChild); + WebCore::Node* convertedOldChild = WebKit::core(oldChild); + auto result = item->replaceChild(*convertedNewChild, *convertedOldChild); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return oldChild; +} + +WebKitDOMNode* webkit_dom_node_remove_child(WebKitDOMNode* self, WebKitDOMNode* oldChild, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(oldChild), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedOldChild = WebKit::core(oldChild); + auto result = item->removeChild(*convertedOldChild); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return oldChild; +} + +WebKitDOMNode* webkit_dom_node_append_child(WebKitDOMNode* self, WebKitDOMNode* newChild, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(newChild), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedNewChild = WebKit::core(newChild); + auto result = item->appendChild(*convertedNewChild); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return newChild; +} + +gboolean webkit_dom_node_has_child_nodes(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), FALSE); + WebCore::Node* item = WebKit::core(self); + gboolean result = item->hasChildNodes(); + return result; +} + +WebKitDOMNode* webkit_dom_node_clone_node_with_error(WebKitDOMNode* self, gboolean deep, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Node* item = WebKit::core(self); + auto result = item->cloneNodeForBindings(deep); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +void webkit_dom_node_normalize(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_NODE(self)); + WebCore::Node* item = WebKit::core(self); + item->normalize(); +} + +gboolean webkit_dom_node_is_supported(WebKitDOMNode* self, const gchar* feature, const gchar* version) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), FALSE); + g_return_val_if_fail(feature, FALSE); + g_return_val_if_fail(version, FALSE); + WTF::String convertedFeature = WTF::String::fromUTF8(feature); + WTF::String convertedVersion = WTF::String::fromUTF8(version); + return WebCore::SVGTests::hasFeatureForLegacyBindings(convertedFeature, convertedVersion); +} + +gboolean webkit_dom_node_is_same_node(WebKitDOMNode* self, WebKitDOMNode* other) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), FALSE); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(other), FALSE); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedOther = WebKit::core(other); + gboolean result = item->isSameNode(convertedOther); + return result; +} + +gboolean webkit_dom_node_is_equal_node(WebKitDOMNode* self, WebKitDOMNode* other) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), FALSE); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(other), FALSE); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedOther = WebKit::core(other); + gboolean result = item->isEqualNode(convertedOther); + return result; +} + +gchar* webkit_dom_node_lookup_prefix(WebKitDOMNode* self, const gchar* namespaceURI) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(namespaceURI, 0); + WebCore::Node* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + gchar* result = convertToUTF8String(item->lookupPrefix(convertedNamespaceURI)); + return result; +} + +gchar* webkit_dom_node_lookup_namespace_uri(WebKitDOMNode* self, const gchar* prefix) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(prefix, 0); + WebCore::Node* item = WebKit::core(self); + WTF::String convertedPrefix = WTF::String::fromUTF8(prefix); + gchar* result = convertToUTF8String(item->lookupNamespaceURI(convertedPrefix)); + return result; +} + +gboolean webkit_dom_node_is_default_namespace(WebKitDOMNode* self, const gchar* namespaceURI) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), FALSE); + g_return_val_if_fail(namespaceURI, FALSE); + WebCore::Node* item = WebKit::core(self); + WTF::String convertedNamespaceURI = WTF::String::fromUTF8(namespaceURI); + gboolean result = item->isDefaultNamespace(convertedNamespaceURI); + return result; +} + +gushort webkit_dom_node_compare_document_position(WebKitDOMNode* self, WebKitDOMNode* other) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(other), 0); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedOther = WebKit::core(other); + gushort result = item->compareDocumentPosition(*convertedOther); + return result; +} + +gboolean webkit_dom_node_contains(WebKitDOMNode* self, WebKitDOMNode* other) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), FALSE); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(other), FALSE); + WebCore::Node* item = WebKit::core(self); + WebCore::Node* convertedOther = WebKit::core(other); + gboolean result = item->contains(convertedOther); + return result; +} + +gchar* webkit_dom_node_get_node_name(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->nodeName()); + return result; +} + +gchar* webkit_dom_node_get_node_value(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->nodeValue()); + return result; +} + +void webkit_dom_node_set_node_value(WebKitDOMNode* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_NODE(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Node* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setNodeValue(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gushort webkit_dom_node_get_node_type(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + gushort result = item->nodeType(); + return result; +} + +WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->parentNode()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNodeList* webkit_dom_node_get_child_nodes(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::NodeList> gobjectResult = WTF::getPtr(item->childNodes()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_node_get_first_child(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->firstChild()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_node_get_last_child(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->lastChild()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_node_get_previous_sibling(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->previousSibling()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_node_get_next_sibling(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->nextSibling()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMDocument* webkit_dom_node_get_owner_document(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::Document> gobjectResult = WTF::getPtr(item->ownerDocument()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_node_get_base_uri(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->baseURI()); + return result; +} + +gchar* webkit_dom_node_get_text_content(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->textContent()); + return result; +} + +void webkit_dom_node_set_text_content(WebKitDOMNode* self, const gchar* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_NODE(self)); + g_return_if_fail(value); + g_return_if_fail(!error || !*error); + WebCore::Node* item = WebKit::core(self); + WTF::String convertedValue = WTF::String::fromUTF8(value); + auto result = item->setTextContent(convertedValue); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMElement* webkit_dom_node_get_parent_element(WebKitDOMNode* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(self), 0); + WebCore::Node* item = WebKit::core(self); + RefPtr<WebCore::Element> gobjectResult = WTF::getPtr(item->parentElement()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.h new file mode 100644 index 000000000..c54c8a738 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.h @@ -0,0 +1,432 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMNode_h +#define WebKitDOMNode_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_NODE (webkit_dom_node_get_type()) +#define WEBKIT_DOM_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_NODE, WebKitDOMNode)) +#define WEBKIT_DOM_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_NODE, WebKitDOMNodeClass) +#define WEBKIT_DOM_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_NODE)) +#define WEBKIT_DOM_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_NODE)) +#define WEBKIT_DOM_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_NODE, WebKitDOMNodeClass)) + +/** + * WEBKIT_DOM_NODE_ELEMENT_NODE: + */ +#define WEBKIT_DOM_NODE_ELEMENT_NODE 1 + +/** + * WEBKIT_DOM_NODE_ATTRIBUTE_NODE: + */ +#define WEBKIT_DOM_NODE_ATTRIBUTE_NODE 2 + +/** + * WEBKIT_DOM_NODE_TEXT_NODE: + */ +#define WEBKIT_DOM_NODE_TEXT_NODE 3 + +/** + * WEBKIT_DOM_NODE_CDATA_SECTION_NODE: + */ +#define WEBKIT_DOM_NODE_CDATA_SECTION_NODE 4 + +/** + * WEBKIT_DOM_NODE_ENTITY_REFERENCE_NODE: + */ +#define WEBKIT_DOM_NODE_ENTITY_REFERENCE_NODE 5 + +/** + * WEBKIT_DOM_NODE_ENTITY_NODE: + */ +#define WEBKIT_DOM_NODE_ENTITY_NODE 6 + +/** + * WEBKIT_DOM_NODE_PROCESSING_INSTRUCTION_NODE: + */ +#define WEBKIT_DOM_NODE_PROCESSING_INSTRUCTION_NODE 7 + +/** + * WEBKIT_DOM_NODE_COMMENT_NODE: + */ +#define WEBKIT_DOM_NODE_COMMENT_NODE 8 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_NODE: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_NODE 9 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_TYPE_NODE: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_TYPE_NODE 10 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_FRAGMENT_NODE: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_FRAGMENT_NODE 11 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_POSITION_DISCONNECTED: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_POSITION_DISCONNECTED 0x01 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_POSITION_PRECEDING: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_POSITION_PRECEDING 0x02 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_POSITION_FOLLOWING: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_POSITION_FOLLOWING 0x04 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_POSITION_CONTAINS: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_POSITION_CONTAINS 0x08 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_POSITION_CONTAINED_BY: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_POSITION_CONTAINED_BY 0x10 + +/** + * WEBKIT_DOM_NODE_DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: + */ +#define WEBKIT_DOM_NODE_DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 0x20 + +struct _WebKitDOMNode { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMNodeClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_node_get_type(void); + +/** + * webkit_dom_node_insert_before: + * @self: A #WebKitDOMNode + * @newChild: A #WebKitDOMNode + * @refChild: (allow-none): A #WebKitDOMNode + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_insert_before(WebKitDOMNode* self, WebKitDOMNode* newChild, WebKitDOMNode* refChild, GError** error); + +/** + * webkit_dom_node_replace_child: + * @self: A #WebKitDOMNode + * @newChild: A #WebKitDOMNode + * @oldChild: A #WebKitDOMNode + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_replace_child(WebKitDOMNode* self, WebKitDOMNode* newChild, WebKitDOMNode* oldChild, GError** error); + +/** + * webkit_dom_node_remove_child: + * @self: A #WebKitDOMNode + * @oldChild: A #WebKitDOMNode + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_remove_child(WebKitDOMNode* self, WebKitDOMNode* oldChild, GError** error); + +/** + * webkit_dom_node_append_child: + * @self: A #WebKitDOMNode + * @newChild: A #WebKitDOMNode + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_append_child(WebKitDOMNode* self, WebKitDOMNode* newChild, GError** error); + +/** + * webkit_dom_node_has_child_nodes: + * @self: A #WebKitDOMNode + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_node_has_child_nodes(WebKitDOMNode* self); + +/** + * webkit_dom_node_clone_node_with_error: + * @self: A #WebKitDOMNode + * @deep: A #gboolean + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode + * + * Since: 2.14 +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_clone_node_with_error(WebKitDOMNode* self, gboolean deep, GError** error); + +/** + * webkit_dom_node_normalize: + * @self: A #WebKitDOMNode + * +**/ +WEBKIT_API void +webkit_dom_node_normalize(WebKitDOMNode* self); + +/** + * webkit_dom_node_is_supported: + * @self: A #WebKitDOMNode + * @feature: A #gchar + * @version: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_node_is_supported(WebKitDOMNode* self, const gchar* feature, const gchar* version); + +/** + * webkit_dom_node_is_same_node: + * @self: A #WebKitDOMNode + * @other: A #WebKitDOMNode + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_node_is_same_node(WebKitDOMNode* self, WebKitDOMNode* other); + +/** + * webkit_dom_node_is_equal_node: + * @self: A #WebKitDOMNode + * @other: A #WebKitDOMNode + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_node_is_equal_node(WebKitDOMNode* self, WebKitDOMNode* other); + +/** + * webkit_dom_node_lookup_prefix: + * @self: A #WebKitDOMNode + * @namespaceURI: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_node_lookup_prefix(WebKitDOMNode* self, const gchar* namespaceURI); + +/** + * webkit_dom_node_lookup_namespace_uri: + * @self: A #WebKitDOMNode + * @prefix: A #gchar + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_node_lookup_namespace_uri(WebKitDOMNode* self, const gchar* prefix); + +/** + * webkit_dom_node_is_default_namespace: + * @self: A #WebKitDOMNode + * @namespaceURI: A #gchar + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_node_is_default_namespace(WebKitDOMNode* self, const gchar* namespaceURI); + +/** + * webkit_dom_node_compare_document_position: + * @self: A #WebKitDOMNode + * @other: A #WebKitDOMNode + * + * Returns: A #gushort +**/ +WEBKIT_API gushort +webkit_dom_node_compare_document_position(WebKitDOMNode* self, WebKitDOMNode* other); + +/** + * webkit_dom_node_contains: + * @self: A #WebKitDOMNode + * @other: A #WebKitDOMNode + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_node_contains(WebKitDOMNode* self, WebKitDOMNode* other); + +/** + * webkit_dom_node_get_node_name: + * @self: A #WebKitDOMNode + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_node_get_node_name(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_node_value: + * @self: A #WebKitDOMNode + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_node_get_node_value(WebKitDOMNode* self); + +/** + * webkit_dom_node_set_node_value: + * @self: A #WebKitDOMNode + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_node_set_node_value(WebKitDOMNode* self, const gchar* value, GError** error); + +/** + * webkit_dom_node_get_node_type: + * @self: A #WebKitDOMNode + * + * Returns: A #gushort +**/ +WEBKIT_API gushort +webkit_dom_node_get_node_type(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_parent_node: + * @self: A #WebKitDOMNode + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_get_parent_node(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_child_nodes: + * @self: A #WebKitDOMNode + * + * Returns: (transfer full): A #WebKitDOMNodeList +**/ +WEBKIT_API WebKitDOMNodeList* +webkit_dom_node_get_child_nodes(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_first_child: + * @self: A #WebKitDOMNode + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_get_first_child(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_last_child: + * @self: A #WebKitDOMNode + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_get_last_child(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_previous_sibling: + * @self: A #WebKitDOMNode + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_get_previous_sibling(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_next_sibling: + * @self: A #WebKitDOMNode + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_get_next_sibling(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_owner_document: + * @self: A #WebKitDOMNode + * + * Returns: (transfer none): A #WebKitDOMDocument +**/ +WEBKIT_API WebKitDOMDocument* +webkit_dom_node_get_owner_document(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_base_uri: + * @self: A #WebKitDOMNode + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_node_get_base_uri(WebKitDOMNode* self); + +/** + * webkit_dom_node_get_text_content: + * @self: A #WebKitDOMNode + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_node_get_text_content(WebKitDOMNode* self); + +/** + * webkit_dom_node_set_text_content: + * @self: A #WebKitDOMNode + * @value: A #gchar + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_node_set_text_content(WebKitDOMNode* self, const gchar* value, GError** error); + +/** + * webkit_dom_node_get_parent_element: + * @self: A #WebKitDOMNode + * + * Returns: (transfer none): A #WebKitDOMElement +**/ +WEBKIT_API WebKitDOMElement* +webkit_dom_node_get_parent_element(WebKitDOMNode* self); + +G_END_DECLS + +#endif /* WebKitDOMNode_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.cpp new file mode 100644 index 000000000..8fe6ec55c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.cpp @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "WebKitDOMNodeFilter.h" + +#include "GObjectNodeFilterCondition.h" +#include <WebCore/NativeNodeFilter.h> +#include "WebKitDOMNode.h" +#include "WebKitDOMNodeFilterPrivate.h" +#include <wtf/HashMap.h> +#include <wtf/NeverDestroyed.h> + +typedef WebKitDOMNodeFilterIface WebKitDOMNodeFilterInterface; + +G_DEFINE_INTERFACE(WebKitDOMNodeFilter, webkit_dom_node_filter, G_TYPE_OBJECT) + +static void webkit_dom_node_filter_default_init(WebKitDOMNodeFilterIface*) +{ +} + +gshort webkit_dom_node_filter_accept_node(WebKitDOMNodeFilter* filter, WebKitDOMNode* node) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_FILTER(filter), WEBKIT_DOM_NODE_FILTER_REJECT); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(node), WEBKIT_DOM_NODE_FILTER_REJECT); + + return WEBKIT_DOM_NODE_FILTER_GET_IFACE(filter)->accept_node(filter, node); +} + +namespace WebKit { + +static HashMap<WebCore::NodeFilter*, WebKitDOMNodeFilter*>& nodeFilterMap() +{ + static NeverDestroyed<HashMap<WebCore::NodeFilter*, WebKitDOMNodeFilter*>> nodeFilterMap; + return nodeFilterMap; +} + +static void nodeFilterObjectDestroyedCallback(gpointer coreNodeFilter, GObject* nodeFilter) +{ + WebKitDOMNodeFilter* filter = nodeFilterMap().take(static_cast<WebCore::NodeFilter*>(coreNodeFilter)); + UNUSED_PARAM(nodeFilter); + ASSERT_UNUSED(filter, reinterpret_cast<GObject*>(filter) == nodeFilter); +} + +WebKitDOMNodeFilter* kit(WebCore::NodeFilter* coreNodeFilter) +{ + if (!coreNodeFilter) + return nullptr; + + return nodeFilterMap().get(coreNodeFilter); +} + +RefPtr<WebCore::NodeFilter> core(WebKitDOMNodeFilter* nodeFilter) +{ + if (!nodeFilter) + return nullptr; + + RefPtr<WebCore::NodeFilter> coreNodeFilter = static_cast<WebCore::NodeFilter*>(g_object_get_data(G_OBJECT(nodeFilter), "webkit-core-node-filter")); + if (!coreNodeFilter) { + coreNodeFilter = WebCore::NativeNodeFilter::create(WebKit::GObjectNodeFilterCondition::create(nodeFilter)); + nodeFilterMap().add(coreNodeFilter.get(), nodeFilter); + g_object_weak_ref(G_OBJECT(nodeFilter), nodeFilterObjectDestroyedCallback, coreNodeFilter.get()); + g_object_set_data(G_OBJECT(nodeFilter), "webkit-core-node-filter", coreNodeFilter.get()); + } + return coreNodeFilter.release(); +} + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.h new file mode 100644 index 000000000..2d88f8fb6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.h @@ -0,0 +1,210 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WebKitDOMNodeFilter_h +#define WebKitDOMNodeFilter_h + +#include <glib-object.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_NODE_FILTER (webkit_dom_node_filter_get_type ()) +#define WEBKIT_DOM_NODE_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEBKIT_DOM_TYPE_NODE_FILTER, WebKitDOMNodeFilter)) +#define WEBKIT_DOM_NODE_FILTER_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), WEBKIT_DOM_TYPE_NODE_FILTER, WebKitDOMNodeFilterIface)) +#define WEBKIT_DOM_IS_NODE_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEBKIT_DOM_TYPE_NODE_FILTER)) +#define WEBKIT_DOM_NODE_FILTER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), WEBKIT_DOM_TYPE_NODE_FILTER, WebKitDOMNodeFilterIface)) + +/** + * WEBKIT_DOM_NODE_FILTER_ACCEPT: + * + * Accept the node. Use this macro as return value of webkit_dom_node_filter_accept_node() + * implementation to accept the given #WebKitDOMNode + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_ACCEPT 1 + +/** + * WEBKIT_DOM_NODE_FILTER_REJECT: + * + * Reject the node. Use this macro as return value of webkit_dom_node_filter_accept_node() + * implementation to reject the given #WebKitDOMNode. The children of the given node will + * be rejected too. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_REJECT 2 + +/** + * WEBKIT_DOM_NODE_FILTER_SKIP: + * + * Skip the node. Use this macro as return value of webkit_dom_node_filter_accept_node() + * implementation to skip the given #WebKitDOMNode. The children of the given node will + * not be skipped. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SKIP 3 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_ALL: + * + * Show all nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_ALL 0xFFFFFFFF + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_ELEMENT: + * + * Show #WebKitDOMElement nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_ELEMENT 0x00000001 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_ATTRIBUTE: + * + * Show #WebKitDOMAttr nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_ATTRIBUTE 0x00000002 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_TEXT: + * + * Show #WebKitDOMText nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_TEXT 0x00000004 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_CDATA_SECTION: + * + * Show #WebKitDOMCDataSection nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_CDATA_SECTION 0x00000008 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY_REFERENCE: + * + * Show #WebKitDOMEntityReference nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY_REFERENCE 0x00000010 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY: + * + * Show #WebKitDOMEntity nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY 0x00000020 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_PROCESSING_INSTRUCTION: + * + * Show #WebKitDOMProcessingInstruction nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_PROCESSING_INSTRUCTION 0x00000040 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_COMMENT: + * + * Show #WebKitDOMComment nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_COMMENT 0x00000080 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT: + * + * Show #WebKitDOMDocument nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT 0x00000100 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_TYPE: + * + * Show #WebKitDOMDocumentType nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_TYPE 0x00000200 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_FRAGMENT: + * + * Show #WebKitDOMDocumentFragment nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_FRAGMENT 0x00000400 + +/** + * WEBKIT_DOM_NODE_FILTER_SHOW_NOTATION: + * + * Show #WebKitDOMNotation nodes. + * + * Since: 2.6 + */ +#define WEBKIT_DOM_NODE_FILTER_SHOW_NOTATION 0x00000800 + +struct _WebKitDOMNodeFilterIface { + GTypeInterface gIface; + + /* virtual table */ + gshort (* accept_node)(WebKitDOMNodeFilter *filter, + WebKitDOMNode *node); + + void (*_webkitdom_reserved0) (void); + void (*_webkitdom_reserved1) (void); + void (*_webkitdom_reserved2) (void); + void (*_webkitdom_reserved3) (void); +}; + + +WEBKIT_API GType webkit_dom_node_filter_get_type(void) G_GNUC_CONST; + +/** + * webkit_dom_node_filter_accept_node: + * @filter: A #WebKitDOMNodeFilter + * @node: A #WebKitDOMNode + * + * Returns: a #gshort + */ +WEBKIT_API gshort webkit_dom_node_filter_accept_node(WebKitDOMNodeFilter *filter, + WebKitDOMNode *node); + +G_END_DECLS + +#endif /* WebKitDOMNodeFilter_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilterPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilterPrivate.h new file mode 100644 index 000000000..6bb139b95 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilterPrivate.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * 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. + */ + +#ifndef WebKitDOMNodeFilterPrivate_h +#define WebKitDOMNodeFilterPrivate_h + +#include <webkitdom/WebKitDOMNodeFilter.h> + +namespace WebCore { +class NodeFilter; +} + +namespace WebKit { +WebKitDOMNodeFilter* kit(WebCore::NodeFilter*); +RefPtr<WebCore::NodeFilter> core(WebKitDOMNodeFilter*); +} // namespace WebKit + +#endif /* WebKitDOMNodeFilterPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp new file mode 100644 index 000000000..ea74a0a37 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp @@ -0,0 +1,265 @@ +/* + * 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 "WebKitDOMNodeIterator.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMNodeFilterPrivate.h" +#include "WebKitDOMNodeIteratorPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_NODE_ITERATOR_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_NODE_ITERATOR, WebKitDOMNodeIteratorPrivate) + +typedef struct _WebKitDOMNodeIteratorPrivate { + RefPtr<WebCore::NodeIterator> coreObject; +} WebKitDOMNodeIteratorPrivate; + +namespace WebKit { + +WebKitDOMNodeIterator* kit(WebCore::NodeIterator* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_NODE_ITERATOR(ret); + + return wrapNodeIterator(obj); +} + +WebCore::NodeIterator* core(WebKitDOMNodeIterator* request) +{ + return request ? static_cast<WebCore::NodeIterator*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMNodeIterator* wrapNodeIterator(WebCore::NodeIterator* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_NODE_ITERATOR(g_object_new(WEBKIT_DOM_TYPE_NODE_ITERATOR, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMNodeIterator, webkit_dom_node_iterator, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_ROOT, + PROP_WHAT_TO_SHOW, + PROP_FILTER, + PROP_REFERENCE_NODE, + PROP_POINTER_BEFORE_REFERENCE_NODE, +}; + +static void webkit_dom_node_iterator_finalize(GObject* object) +{ + WebKitDOMNodeIteratorPrivate* priv = WEBKIT_DOM_NODE_ITERATOR_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMNodeIteratorPrivate(); + G_OBJECT_CLASS(webkit_dom_node_iterator_parent_class)->finalize(object); +} + +static void webkit_dom_node_iterator_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMNodeIterator* self = WEBKIT_DOM_NODE_ITERATOR(object); + + switch (propertyId) { + case PROP_ROOT: + g_value_set_object(value, webkit_dom_node_iterator_get_root(self)); + break; + case PROP_WHAT_TO_SHOW: + g_value_set_ulong(value, webkit_dom_node_iterator_get_what_to_show(self)); + break; + case PROP_FILTER: + g_value_set_object(value, webkit_dom_node_iterator_get_filter(self)); + break; + case PROP_REFERENCE_NODE: + g_value_set_object(value, webkit_dom_node_iterator_get_reference_node(self)); + break; + case PROP_POINTER_BEFORE_REFERENCE_NODE: + g_value_set_boolean(value, webkit_dom_node_iterator_get_pointer_before_reference_node(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_node_iterator_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_node_iterator_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMNodeIteratorPrivate* priv = WEBKIT_DOM_NODE_ITERATOR_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::NodeIterator*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_node_iterator_class_init(WebKitDOMNodeIteratorClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMNodeIteratorPrivate)); + gobjectClass->constructor = webkit_dom_node_iterator_constructor; + gobjectClass->finalize = webkit_dom_node_iterator_finalize; + gobjectClass->get_property = webkit_dom_node_iterator_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ROOT, + g_param_spec_object( + "root", + "NodeIterator:root", + "read-only WebKitDOMNode* NodeIterator:root", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WHAT_TO_SHOW, + g_param_spec_ulong( + "what-to-show", + "NodeIterator:what-to-show", + "read-only gulong NodeIterator:what-to-show", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FILTER, + g_param_spec_object( + "filter", + "NodeIterator:filter", + "read-only WebKitDOMNodeFilter* NodeIterator:filter", + WEBKIT_DOM_TYPE_NODE_FILTER, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_REFERENCE_NODE, + g_param_spec_object( + "reference-node", + "NodeIterator:reference-node", + "read-only WebKitDOMNode* NodeIterator:reference-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_POINTER_BEFORE_REFERENCE_NODE, + g_param_spec_boolean( + "pointer-before-reference-node", + "NodeIterator:pointer-before-reference-node", + "read-only gboolean NodeIterator:pointer-before-reference-node", + FALSE, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_node_iterator_init(WebKitDOMNodeIterator* request) +{ + WebKitDOMNodeIteratorPrivate* priv = WEBKIT_DOM_NODE_ITERATOR_GET_PRIVATE(request); + new (priv) WebKitDOMNodeIteratorPrivate(); +} + +WebKitDOMNode* webkit_dom_node_iterator_next_node(WebKitDOMNodeIterator* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self), 0); + UNUSED_PARAM(error); + WebCore::NodeIterator* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->nextNode()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_node_iterator_previous_node(WebKitDOMNodeIterator* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self), 0); + UNUSED_PARAM(error); + WebCore::NodeIterator* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->previousNode()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_node_iterator_detach(WebKitDOMNodeIterator* self) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self)); + WebCore::NodeIterator* item = WebKit::core(self); + item->detach(); +} + +WebKitDOMNode* webkit_dom_node_iterator_get_root(WebKitDOMNodeIterator* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self), 0); + WebCore::NodeIterator* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->root()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_node_iterator_get_what_to_show(WebKitDOMNodeIterator* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self), 0); + WebCore::NodeIterator* item = WebKit::core(self); + gulong result = item->whatToShow(); + return result; +} + +WebKitDOMNodeFilter* webkit_dom_node_iterator_get_filter(WebKitDOMNodeIterator* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self), 0); + WebCore::NodeIterator* item = WebKit::core(self); + RefPtr<WebCore::NodeFilter> gobjectResult = WTF::getPtr(item->filter()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_node_iterator_get_reference_node(WebKitDOMNodeIterator* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self), 0); + WebCore::NodeIterator* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->referenceNode()); + return WebKit::kit(gobjectResult.get()); +} + +gboolean webkit_dom_node_iterator_get_pointer_before_reference_node(WebKitDOMNodeIterator* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_ITERATOR(self), FALSE); + WebCore::NodeIterator* item = WebKit::core(self); + gboolean result = item->pointerBeforeReferenceNode(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.h new file mode 100644 index 000000000..6c793c712 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.h @@ -0,0 +1,126 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMNodeIterator_h +#define WebKitDOMNodeIterator_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_NODE_ITERATOR (webkit_dom_node_iterator_get_type()) +#define WEBKIT_DOM_NODE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_NODE_ITERATOR, WebKitDOMNodeIterator)) +#define WEBKIT_DOM_NODE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_NODE_ITERATOR, WebKitDOMNodeIteratorClass) +#define WEBKIT_DOM_IS_NODE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_NODE_ITERATOR)) +#define WEBKIT_DOM_IS_NODE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_NODE_ITERATOR)) +#define WEBKIT_DOM_NODE_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_NODE_ITERATOR, WebKitDOMNodeIteratorClass)) + +struct _WebKitDOMNodeIterator { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMNodeIteratorClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_node_iterator_get_type(void); + +/** + * webkit_dom_node_iterator_next_node: + * @self: A #WebKitDOMNodeIterator + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_iterator_next_node(WebKitDOMNodeIterator* self, GError** error); + +/** + * webkit_dom_node_iterator_previous_node: + * @self: A #WebKitDOMNodeIterator + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_iterator_previous_node(WebKitDOMNodeIterator* self, GError** error); + +/** + * webkit_dom_node_iterator_detach: + * @self: A #WebKitDOMNodeIterator + * +**/ +WEBKIT_API void +webkit_dom_node_iterator_detach(WebKitDOMNodeIterator* self); + +/** + * webkit_dom_node_iterator_get_root: + * @self: A #WebKitDOMNodeIterator + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_iterator_get_root(WebKitDOMNodeIterator* self); + +/** + * webkit_dom_node_iterator_get_what_to_show: + * @self: A #WebKitDOMNodeIterator + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_node_iterator_get_what_to_show(WebKitDOMNodeIterator* self); + +/** + * webkit_dom_node_iterator_get_filter: + * @self: A #WebKitDOMNodeIterator + * + * Returns: (transfer full): A #WebKitDOMNodeFilter +**/ +WEBKIT_API WebKitDOMNodeFilter* +webkit_dom_node_iterator_get_filter(WebKitDOMNodeIterator* self); + +/** + * webkit_dom_node_iterator_get_reference_node: + * @self: A #WebKitDOMNodeIterator + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_iterator_get_reference_node(WebKitDOMNodeIterator* self); + +/** + * webkit_dom_node_iterator_get_pointer_before_reference_node: + * @self: A #WebKitDOMNodeIterator + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_node_iterator_get_pointer_before_reference_node(WebKitDOMNodeIterator* self); + +G_END_DECLS + +#endif /* WebKitDOMNodeIterator_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIteratorPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIteratorPrivate.h new file mode 100644 index 000000000..e9ca6f104 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIteratorPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMNodeIteratorPrivate_h +#define WebKitDOMNodeIteratorPrivate_h + +#include <WebCore/NodeIterator.h> +#include <webkitdom/WebKitDOMNodeIterator.h> + +namespace WebKit { +WebKitDOMNodeIterator* wrapNodeIterator(WebCore::NodeIterator*); +WebKitDOMNodeIterator* kit(WebCore::NodeIterator*); +WebCore::NodeIterator* core(WebKitDOMNodeIterator*); +} // namespace WebKit + +#endif /* WebKitDOMNodeIteratorPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp new file mode 100644 index 000000000..9dd2ba4b1 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp @@ -0,0 +1,153 @@ +/* + * 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 "WebKitDOMNodeList.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMNodeListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_NODE_LIST_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_NODE_LIST, WebKitDOMNodeListPrivate) + +typedef struct _WebKitDOMNodeListPrivate { + RefPtr<WebCore::NodeList> coreObject; +} WebKitDOMNodeListPrivate; + +namespace WebKit { + +WebKitDOMNodeList* kit(WebCore::NodeList* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_NODE_LIST(ret); + + return wrapNodeList(obj); +} + +WebCore::NodeList* core(WebKitDOMNodeList* request) +{ + return request ? static_cast<WebCore::NodeList*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMNodeList* wrapNodeList(WebCore::NodeList* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_NODE_LIST(g_object_new(WEBKIT_DOM_TYPE_NODE_LIST, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMNodeList, webkit_dom_node_list, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_LENGTH, +}; + +static void webkit_dom_node_list_finalize(GObject* object) +{ + WebKitDOMNodeListPrivate* priv = WEBKIT_DOM_NODE_LIST_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMNodeListPrivate(); + G_OBJECT_CLASS(webkit_dom_node_list_parent_class)->finalize(object); +} + +static void webkit_dom_node_list_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMNodeList* self = WEBKIT_DOM_NODE_LIST(object); + + switch (propertyId) { + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_node_list_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_node_list_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_node_list_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMNodeListPrivate* priv = WEBKIT_DOM_NODE_LIST_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::NodeList*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_node_list_class_init(WebKitDOMNodeListClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMNodeListPrivate)); + gobjectClass->constructor = webkit_dom_node_list_constructor; + gobjectClass->finalize = webkit_dom_node_list_finalize; + gobjectClass->get_property = webkit_dom_node_list_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "NodeList:length", + "read-only gulong NodeList:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_node_list_init(WebKitDOMNodeList* request) +{ + WebKitDOMNodeListPrivate* priv = WEBKIT_DOM_NODE_LIST_GET_PRIVATE(request); + new (priv) WebKitDOMNodeListPrivate(); +} + +WebKitDOMNode* webkit_dom_node_list_item(WebKitDOMNodeList* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_LIST(self), 0); + WebCore::NodeList* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->item(index)); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_node_list_get_length(WebKitDOMNodeList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NODE_LIST(self), 0); + WebCore::NodeList* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.h new file mode 100644 index 000000000..ca3ee263c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.h @@ -0,0 +1,72 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMNodeList_h +#define WebKitDOMNodeList_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_NODE_LIST (webkit_dom_node_list_get_type()) +#define WEBKIT_DOM_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_NODE_LIST, WebKitDOMNodeList)) +#define WEBKIT_DOM_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_NODE_LIST, WebKitDOMNodeListClass) +#define WEBKIT_DOM_IS_NODE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_NODE_LIST)) +#define WEBKIT_DOM_IS_NODE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_NODE_LIST)) +#define WEBKIT_DOM_NODE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_NODE_LIST, WebKitDOMNodeListClass)) + +struct _WebKitDOMNodeList { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMNodeListClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_node_list_get_type(void); + +/** + * webkit_dom_node_list_item: + * @self: A #WebKitDOMNodeList + * @index: A #gulong + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_node_list_item(WebKitDOMNodeList* self, gulong index); + +/** + * webkit_dom_node_list_get_length: + * @self: A #WebKitDOMNodeList + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_node_list_get_length(WebKitDOMNodeList* self); + +G_END_DECLS + +#endif /* WebKitDOMNodeList_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeListPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeListPrivate.h new file mode 100644 index 000000000..cde616992 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeListPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMNodeListPrivate_h +#define WebKitDOMNodeListPrivate_h + +#include <WebCore/NodeList.h> +#include <webkitdom/WebKitDOMNodeList.h> + +namespace WebKit { +WebKitDOMNodeList* wrapNodeList(WebCore::NodeList*); +WebKitDOMNodeList* kit(WebCore::NodeList*); +WebCore::NodeList* core(WebKitDOMNodeList*); +} // namespace WebKit + +#endif /* WebKitDOMNodeListPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h new file mode 100644 index 000000000..8d0beb9e6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMNodePrivate_h +#define WebKitDOMNodePrivate_h + +#include <WebCore/Node.h> +#include <webkitdom/WebKitDOMNode.h> + +namespace WebKit { +WebKitDOMNode* wrapNode(WebCore::Node*); +WebKitDOMNode* kit(WebCore::Node*); +WebCore::Node* core(WebKitDOMNode*); +} // namespace WebKit + +#endif /* WebKitDOMNodePrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp new file mode 100644 index 000000000..352c6580c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net> + * Copyright (C) 2008 Martin Soto <soto@freedesktop.org> + * Copyright (C) 2008 Alp Toker <alp@atoker.com> + * Copyright (C) 2008 Apple Inc. + * Copyright (C) 2009 Igalia S.L. + */ +#include "config.h" +#include "WebKitDOMObject.h" + +enum { + PROP_0, + PROP_CORE_OBJECT +}; + +G_DEFINE_TYPE(WebKitDOMObject, webkit_dom_object, G_TYPE_OBJECT) + +static void webkit_dom_object_init(WebKitDOMObject*) +{ +} + +static void webkitDOMObjectSetProperty(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + switch (propertyId) { + case PROP_CORE_OBJECT: + WEBKIT_DOM_OBJECT(object)->coreObject = g_value_get_pointer(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_object_class_init(WebKitDOMObjectClass* klass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); + gobjectClass->set_property = webkitDOMObjectSetProperty; + + g_object_class_install_property( + gobjectClass, + PROP_CORE_OBJECT, + g_param_spec_pointer( + "core-object", + "Core Object", + "The WebCore object the WebKitDOMObject wraps", + static_cast<GParamFlags>(G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB))); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h new file mode 100644 index 000000000..9b7b867b4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net> + * Copyright (C) 2008 Martin Soto <soto@freedesktop.org> + * Copyright (C) 2008 Alp Toker <alp@atoker.com> + * Copyright (C) 2008 Apple Inc. + * Copyright (C) 2009 Igalia S.L. + * + * 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. + */ + + +#ifndef WebKitDOMObject_h +#define WebKitDOMObject_h + +#include <glib-object.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_OBJECT (webkit_dom_object_get_type()) +#define WEBKIT_DOM_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_OBJECT, WebKitDOMObject)) +#define WEBKIT_DOM_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_OBJECT, WebKitDOMObjectClass)) +#define WEBKIT_DOM_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_OBJECT)) +#define WEBKIT_DOM_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_OBJECT)) +#define WEBKIT_DOM_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_OBJECT, WebKitDOMObjectClass)) + +typedef struct _WebKitDOMObjectPrivate WebKitDOMObjectPrivate; + +struct _WebKitDOMObject { + GObject parentInstance; + + gpointer coreObject; +}; + +struct _WebKitDOMObjectClass { + GObjectClass parentClass; +}; + +WEBKIT_API GType +webkit_dom_object_get_type(void); + +G_END_DECLS + +#endif /* WebKitDOMObject_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h new file mode 100644 index 000000000..02b11a6bf --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * 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. + */ + + +#ifndef WebKitDOMObjectPrivate_h +#define WebKitDOMObjectPrivate_h + +#include <webkitdom/WebKitDOMObject.h> + +struct _WebKitDOMObject { + GObject parent; +}; + +struct _WebKitDOMObjectClass { + GObjectClass parent_class; + + void (* wrap) (WebKitDOMObject*, void* coreObject); +}; + +void webkitDOMObjectWrap(WebKitDOMObject*, void* coreObject); + +#endif /* WebKitDOMObject_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp new file mode 100644 index 000000000..3869f8551 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp @@ -0,0 +1,163 @@ +/* + * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) + * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2007 Samuel Weinig <sam@webkit.org> + * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net> + * Copyright (C) 2008 Martin Soto <soto@freedesktop.org> + * Copyright (C) 2009-2013 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "WebKitDOMPrivate.h" + +#include <WebCore/Blob.h> +#include "DOMObjectCache.h" +#include <WebCore/Element.h> +#include <WebCore/Event.h> +#include <WebCore/EventTarget.h> +#include <WebCore/File.h> +#include <WebCore/HTMLElement.h> +#include <WebCore/HTMLNames.h> +#include <WebCore/KeyboardEvent.h> +#include <WebCore/MouseEvent.h> +#include <WebCore/StyleSheet.h> +#include <WebCore/UIEvent.h> +#include "WebKitDOMAttrPrivate.h" +#include "WebKitDOMBlobPrivate.h" +#include "WebKitDOMCDATASectionPrivate.h" +#include "WebKitDOMCSSStyleSheetPrivate.h" +#include "WebKitDOMCommentPrivate.h" +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMDocumentFragmentPrivate.h" +#include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMDocumentTypePrivate.h" +#include "WebKitDOMElementPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTargetPrivate.h" +#include "WebKitDOMFilePrivate.h" +#include "WebKitDOMHTMLCollectionPrivate.h" +#include "WebKitDOMHTMLDocumentPrivate.h" +#include "WebKitDOMHTMLOptionsCollectionPrivate.h" +#include "WebKitDOMHTMLPrivate.h" +#include "WebKitDOMKeyboardEventPrivate.h" +#include "WebKitDOMMouseEventPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMProcessingInstructionPrivate.h" +#include "WebKitDOMStyleSheetPrivate.h" +#include "WebKitDOMTextPrivate.h" +#include "WebKitDOMUIEventPrivate.h" +#include "WebKitDOMWheelEventPrivate.h" + +namespace WebKit { + +using namespace WebCore; +using namespace WebCore::HTMLNames; + +WebKitDOMNode* wrap(Node* node) +{ + ASSERT(node); + ASSERT(node->nodeType()); + + switch (node->nodeType()) { + case Node::ELEMENT_NODE: + if (is<HTMLElement>(*node)) + return WEBKIT_DOM_NODE(wrap(downcast<HTMLElement>(node))); + return WEBKIT_DOM_NODE(wrapElement(downcast<Element>(node))); + case Node::ATTRIBUTE_NODE: + return WEBKIT_DOM_NODE(wrapAttr(static_cast<Attr*>(node))); + case Node::TEXT_NODE: + return WEBKIT_DOM_NODE(wrapText(downcast<Text>(node))); + case Node::CDATA_SECTION_NODE: + return WEBKIT_DOM_NODE(wrapCDATASection(static_cast<CDATASection*>(node))); + case Node::PROCESSING_INSTRUCTION_NODE: + return WEBKIT_DOM_NODE(wrapProcessingInstruction(static_cast<ProcessingInstruction*>(node))); + case Node::COMMENT_NODE: + return WEBKIT_DOM_NODE(wrapComment(static_cast<Comment*>(node))); + case Node::DOCUMENT_NODE: + if (is<HTMLDocument>(*node)) + return WEBKIT_DOM_NODE(wrapHTMLDocument(downcast<HTMLDocument>(node))); + return WEBKIT_DOM_NODE(wrapDocument(downcast<Document>(node))); + case Node::DOCUMENT_TYPE_NODE: + return WEBKIT_DOM_NODE(wrapDocumentType(static_cast<DocumentType*>(node))); + case Node::DOCUMENT_FRAGMENT_NODE: + return WEBKIT_DOM_NODE(wrapDocumentFragment(static_cast<DocumentFragment*>(node))); + } + + return wrapNode(node); +} + +WebKitDOMEvent* wrap(Event* event) +{ + ASSERT(event); + + if (event->isUIEvent()) { + if (event->isMouseEvent()) + return WEBKIT_DOM_EVENT(wrapMouseEvent(static_cast<MouseEvent*>(event))); + + if (event->isKeyboardEvent()) + return WEBKIT_DOM_EVENT(wrapKeyboardEvent(static_cast<KeyboardEvent*>(event))); + + if (event->eventInterface() == WheelEventInterfaceType) + return WEBKIT_DOM_EVENT(wrapWheelEvent(static_cast<WheelEvent*>(event))); + + return WEBKIT_DOM_EVENT(wrapUIEvent(static_cast<UIEvent*>(event))); + } + + return wrapEvent(event); +} + +WebKitDOMStyleSheet* wrap(StyleSheet* styleSheet) +{ + ASSERT(styleSheet); + + if (is<CSSStyleSheet>(*styleSheet)) + return WEBKIT_DOM_STYLE_SHEET(wrapCSSStyleSheet(downcast<CSSStyleSheet>(styleSheet))); + return wrapStyleSheet(styleSheet); +} + +WebKitDOMHTMLCollection* wrap(HTMLCollection* collection) +{ + ASSERT(collection); + + if (is<HTMLOptionsCollection>(*collection)) + return WEBKIT_DOM_HTML_COLLECTION(wrapHTMLOptionsCollection(downcast<HTMLOptionsCollection>(collection))); + return wrapHTMLCollection(collection); +} + +WebKitDOMEventTarget* wrap(EventTarget* eventTarget) +{ + ASSERT(eventTarget); + + if (Node* node = eventTarget->toNode()) + return WEBKIT_DOM_EVENT_TARGET(kit(node)); + + if (DOMWindow* window = eventTarget->toDOMWindow()) + return WEBKIT_DOM_EVENT_TARGET(kit(window)); + + return 0; +} + +WebKitDOMBlob* wrap(Blob* blob) +{ + ASSERT(blob); + + if (blob->isFile()) + return WEBKIT_DOM_BLOB(wrapFile(static_cast<File*>(blob))); + return wrapBlob(blob); +} + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h new file mode 100644 index 000000000..2e14942cb --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) + * Copyright (C) 2003, 2004, 2005, 2006, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2007 Samuel Weinig <sam@webkit.org> + * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net> + * Copyright (C) 2008 Martin Soto <soto@freedesktop.org> + * Copyright (C) 2009-2013 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WebKitDOMPrivate_h +#define WebKitDOMPrivate_h + +#include <webkitdom/webkitdomdefines.h> + +#define WEBKIT_PARAM_READABLE ((GParamFlags)(G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)) +#define WEBKIT_PARAM_READWRITE ((GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)) +#define WEBKIT_WARN_FEATURE_NOT_PRESENT(Feature) g_warning("WebKitGTK+ was not compiled with support for " Feature); + +namespace WebCore { +class Node; +class Event; +class StyleSheet; +class HTMLCollection; +class EventTarget; +class Blob; +} // namespace WebCore + +namespace WebKit { +WebKitDOMNode* wrap(WebCore::Node*); +WebKitDOMEvent* wrap(WebCore::Event*); +WebKitDOMStyleSheet* wrap(WebCore::StyleSheet*); +WebKitDOMHTMLCollection* wrap(WebCore::HTMLCollection*); +WebKitDOMEventTarget* wrap(WebCore::EventTarget*); +WebKitDOMBlob* wrap(WebCore::Blob*); +} // namespace WebKit + +#endif // WebKitDOMPrivate_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp new file mode 100644 index 000000000..121a81684 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp @@ -0,0 +1,169 @@ +/* + * 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 "WebKitDOMProcessingInstruction.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 "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMProcessingInstructionPrivate.h" +#include "WebKitDOMStyleSheetPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMProcessingInstruction* kit(WebCore::ProcessingInstruction* obj) +{ + return WEBKIT_DOM_PROCESSING_INSTRUCTION(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::ProcessingInstruction* core(WebKitDOMProcessingInstruction* request) +{ + return request ? static_cast<WebCore::ProcessingInstruction*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMProcessingInstruction* wrapProcessingInstruction(WebCore::ProcessingInstruction* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_PROCESSING_INSTRUCTION(g_object_new(WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_processing_instruction_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::ProcessingInstruction* coreTarget = static_cast<WebCore::ProcessingInstruction*>(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_processing_instruction_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::ProcessingInstruction* coreTarget = static_cast<WebCore::ProcessingInstruction*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_processing_instruction_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::ProcessingInstruction* coreTarget = static_cast<WebCore::ProcessingInstruction*>(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_processing_instruction_dispatch_event; + iface->add_event_listener = webkit_dom_processing_instruction_add_event_listener; + iface->remove_event_listener = webkit_dom_processing_instruction_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMProcessingInstruction, webkit_dom_processing_instruction, WEBKIT_DOM_TYPE_CHARACTER_DATA, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_TARGET, + PROP_SHEET, +}; + +static void webkit_dom_processing_instruction_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMProcessingInstruction* self = WEBKIT_DOM_PROCESSING_INSTRUCTION(object); + + switch (propertyId) { + case PROP_TARGET: + g_value_take_string(value, webkit_dom_processing_instruction_get_target(self)); + break; + case PROP_SHEET: + g_value_set_object(value, webkit_dom_processing_instruction_get_sheet(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_processing_instruction_class_init(WebKitDOMProcessingInstructionClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_processing_instruction_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TARGET, + g_param_spec_string( + "target", + "ProcessingInstruction:target", + "read-only gchar* ProcessingInstruction:target", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SHEET, + g_param_spec_object( + "sheet", + "ProcessingInstruction:sheet", + "read-only WebKitDOMStyleSheet* ProcessingInstruction:sheet", + WEBKIT_DOM_TYPE_STYLE_SHEET, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_processing_instruction_init(WebKitDOMProcessingInstruction* request) +{ + UNUSED_PARAM(request); +} + +gchar* webkit_dom_processing_instruction_get_target(WebKitDOMProcessingInstruction* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_PROCESSING_INSTRUCTION(self), 0); + WebCore::ProcessingInstruction* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->target()); + return result; +} + +WebKitDOMStyleSheet* webkit_dom_processing_instruction_get_sheet(WebKitDOMProcessingInstruction* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_PROCESSING_INSTRUCTION(self), 0); + WebCore::ProcessingInstruction* item = WebKit::core(self); + RefPtr<WebCore::StyleSheet> gobjectResult = WTF::getPtr(item->sheet()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.h new file mode 100644 index 000000000..0015dc846 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.h @@ -0,0 +1,71 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMProcessingInstruction_h +#define WebKitDOMProcessingInstruction_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMCharacterData.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION (webkit_dom_processing_instruction_get_type()) +#define WEBKIT_DOM_PROCESSING_INSTRUCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION, WebKitDOMProcessingInstruction)) +#define WEBKIT_DOM_PROCESSING_INSTRUCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION, WebKitDOMProcessingInstructionClass) +#define WEBKIT_DOM_IS_PROCESSING_INSTRUCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION)) +#define WEBKIT_DOM_IS_PROCESSING_INSTRUCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION)) +#define WEBKIT_DOM_PROCESSING_INSTRUCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION, WebKitDOMProcessingInstructionClass)) + +struct _WebKitDOMProcessingInstruction { + WebKitDOMCharacterData parent_instance; +}; + +struct _WebKitDOMProcessingInstructionClass { + WebKitDOMCharacterDataClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_processing_instruction_get_type(void); + +/** + * webkit_dom_processing_instruction_get_target: + * @self: A #WebKitDOMProcessingInstruction + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_processing_instruction_get_target(WebKitDOMProcessingInstruction* self); + +/** + * webkit_dom_processing_instruction_get_sheet: + * @self: A #WebKitDOMProcessingInstruction + * + * Returns: (transfer full): A #WebKitDOMStyleSheet +**/ +WEBKIT_API WebKitDOMStyleSheet* +webkit_dom_processing_instruction_get_sheet(WebKitDOMProcessingInstruction* self); + +G_END_DECLS + +#endif /* WebKitDOMProcessingInstruction_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstructionPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstructionPrivate.h new file mode 100644 index 000000000..be80733ba --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstructionPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMProcessingInstructionPrivate_h +#define WebKitDOMProcessingInstructionPrivate_h + +#include <WebCore/ProcessingInstruction.h> +#include <webkitdom/WebKitDOMProcessingInstruction.h> + +namespace WebKit { +WebKitDOMProcessingInstruction* wrapProcessingInstruction(WebCore::ProcessingInstruction*); +WebKitDOMProcessingInstruction* kit(WebCore::ProcessingInstruction*); +WebCore::ProcessingInstruction* core(WebKitDOMProcessingInstruction*); +} // namespace WebKit + +#endif /* WebKitDOMProcessingInstructionPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp new file mode 100644 index 000000000..cc5291a11 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp @@ -0,0 +1,638 @@ +/* + * 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 "WebKitDOMRange.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDocumentFragmentPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMRangePrivate.h" +#include "ConvertToUTF8String.h" +#include "WebKitDOMRangeUnstable.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_RANGE_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_RANGE, WebKitDOMRangePrivate) + +typedef struct _WebKitDOMRangePrivate { + RefPtr<WebCore::Range> coreObject; +} WebKitDOMRangePrivate; + +namespace WebKit { + +WebKitDOMRange* kit(WebCore::Range* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_RANGE(ret); + + return wrapRange(obj); +} + +WebCore::Range* core(WebKitDOMRange* request) +{ + return request ? static_cast<WebCore::Range*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMRange* wrapRange(WebCore::Range* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_RANGE(g_object_new(WEBKIT_DOM_TYPE_RANGE, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMRange, webkit_dom_range, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_START_CONTAINER, + PROP_START_OFFSET, + PROP_END_CONTAINER, + PROP_END_OFFSET, + PROP_COLLAPSED, + PROP_COMMON_ANCESTOR_CONTAINER, + PROP_TEXT, +}; + +static void webkit_dom_range_finalize(GObject* object) +{ + WebKitDOMRangePrivate* priv = WEBKIT_DOM_RANGE_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMRangePrivate(); + G_OBJECT_CLASS(webkit_dom_range_parent_class)->finalize(object); +} + +static void webkit_dom_range_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMRange* self = WEBKIT_DOM_RANGE(object); + + switch (propertyId) { + case PROP_START_CONTAINER: + g_value_set_object(value, webkit_dom_range_get_start_container(self, nullptr)); + break; + case PROP_START_OFFSET: + g_value_set_long(value, webkit_dom_range_get_start_offset(self, nullptr)); + break; + case PROP_END_CONTAINER: + g_value_set_object(value, webkit_dom_range_get_end_container(self, nullptr)); + break; + case PROP_END_OFFSET: + g_value_set_long(value, webkit_dom_range_get_end_offset(self, nullptr)); + break; + case PROP_COLLAPSED: + g_value_set_boolean(value, webkit_dom_range_get_collapsed(self, nullptr)); + break; + case PROP_COMMON_ANCESTOR_CONTAINER: + g_value_set_object(value, webkit_dom_range_get_common_ancestor_container(self, nullptr)); + break; + case PROP_TEXT: + g_value_take_string(value, webkit_dom_range_get_text(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_range_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_range_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMRangePrivate* priv = WEBKIT_DOM_RANGE_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::Range*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_range_class_init(WebKitDOMRangeClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMRangePrivate)); + gobjectClass->constructor = webkit_dom_range_constructor; + gobjectClass->finalize = webkit_dom_range_finalize; + gobjectClass->get_property = webkit_dom_range_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_START_CONTAINER, + g_param_spec_object( + "start-container", + "Range:start-container", + "read-only WebKitDOMNode* Range:start-container", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_START_OFFSET, + g_param_spec_long( + "start-offset", + "Range:start-offset", + "read-only glong Range:start-offset", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_END_CONTAINER, + g_param_spec_object( + "end-container", + "Range:end-container", + "read-only WebKitDOMNode* Range:end-container", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_END_OFFSET, + g_param_spec_long( + "end-offset", + "Range:end-offset", + "read-only glong Range:end-offset", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_COLLAPSED, + g_param_spec_boolean( + "collapsed", + "Range:collapsed", + "read-only gboolean Range:collapsed", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_COMMON_ANCESTOR_CONTAINER, + g_param_spec_object( + "common-ancestor-container", + "Range:common-ancestor-container", + "read-only WebKitDOMNode* Range:common-ancestor-container", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TEXT, + g_param_spec_string( + "text", + "Range:text", + "read-only gchar* Range:text", + "", + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_range_init(WebKitDOMRange* request) +{ + WebKitDOMRangePrivate* priv = WEBKIT_DOM_RANGE_GET_PRIVATE(request); + new (priv) WebKitDOMRangePrivate(); +} + +void webkit_dom_range_set_start(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->setStart(*convertedRefNode, offset); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_set_end(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->setEnd(*convertedRefNode, offset); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_set_start_before(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->setStartBefore(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_set_start_after(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->setStartAfter(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_set_end_before(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->setEndBefore(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_set_end_after(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->setEndAfter(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_collapse(WebKitDOMRange* self, gboolean toStart, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + item->collapse(toStart); +} + +void webkit_dom_range_select_node(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->selectNode(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_select_node_contents(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(refNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->selectNodeContents(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +gshort webkit_dom_range_compare_boundary_points(WebKitDOMRange* self, gushort how, WebKitDOMRange* sourceRange, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(sourceRange), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Range* item = WebKit::core(self); + WebCore::Range* convertedSourceRange = WebKit::core(sourceRange); + auto result = item->compareBoundaryPointsForBindings(how, *convertedSourceRange); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return 0; + } + return result.releaseReturnValue(); +} + +void webkit_dom_range_delete_contents(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + auto result = item->deleteContents(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMDocumentFragment* webkit_dom_range_extract_contents(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Range* item = WebKit::core(self); + auto result = item->extractContents(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +WebKitDOMDocumentFragment* webkit_dom_range_clone_contents(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Range* item = WebKit::core(self); + auto result = item->cloneContents(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +void webkit_dom_range_insert_node(WebKitDOMRange* self, WebKitDOMNode* newNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(newNode)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedNewNode = WebKit::core(newNode); + auto result = item->insertNode(*convertedNewNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +void webkit_dom_range_surround_contents(WebKitDOMRange* self, WebKitDOMNode* newParent, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(newParent)); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedNewParent = WebKit::core(newParent); + auto result = item->surroundContents(*convertedNewParent); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMRange* webkit_dom_range_clone_range(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + RefPtr<WebCore::Range> gobjectResult = WTF::getPtr(item->cloneRange()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_range_to_string(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->toString()); + return result; +} + +void webkit_dom_range_detach(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + item->detach(); +} + +WebKitDOMDocumentFragment* webkit_dom_range_create_contextual_fragment(WebKitDOMRange* self, const gchar* html, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + g_return_val_if_fail(html, 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Range* item = WebKit::core(self); + WTF::String convertedHtml = WTF::String::fromUTF8(html); + auto result = item->createContextualFragment(convertedHtml); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +gshort webkit_dom_range_compare_node(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(refNode), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->compareNode(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return 0; + } + return result.releaseReturnValue(); +} + +gboolean webkit_dom_range_intersects_node(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), FALSE); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(refNode), FALSE); + g_return_val_if_fail(!error || !*error, FALSE); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->intersectsNode(*convertedRefNode); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return false; + } + return result.releaseReturnValue(); +} + +gshort webkit_dom_range_compare_point(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(refNode), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->comparePoint(*convertedRefNode, offset); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return 0; + } + return result.releaseReturnValue(); +} + +gboolean webkit_dom_range_is_point_in_range(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), FALSE); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(refNode), FALSE); + g_return_val_if_fail(!error || !*error, FALSE); + WebCore::Range* item = WebKit::core(self); + WebCore::Node* convertedRefNode = WebKit::core(refNode); + auto result = item->isPointInRange(*convertedRefNode, offset); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return false; + } + return result.releaseReturnValue(); +} + +void webkit_dom_range_expand(WebKitDOMRange* self, const gchar* unit, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_RANGE(self)); + g_return_if_fail(unit); + g_return_if_fail(!error || !*error); + WebCore::Range* item = WebKit::core(self); + WTF::String convertedUnit = WTF::String::fromUTF8(unit); + auto result = item->expand(convertedUnit); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } +} + +WebKitDOMNode* webkit_dom_range_get_start_container(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->startContainer()); + return WebKit::kit(gobjectResult.get()); +} + +glong webkit_dom_range_get_start_offset(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + glong result = item->startOffset(); + return result; +} + +WebKitDOMNode* webkit_dom_range_get_end_container(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->endContainer()); + return WebKit::kit(gobjectResult.get()); +} + +glong webkit_dom_range_get_end_offset(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + glong result = item->endOffset(); + return result; +} + +gboolean webkit_dom_range_get_collapsed(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), FALSE); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + gboolean result = item->collapsed(); + return result; +} + +WebKitDOMNode* webkit_dom_range_get_common_ancestor_container(WebKitDOMRange* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + UNUSED_PARAM(error); + WebCore::Range* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->commonAncestorContainer()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_range_get_text(WebKitDOMRange* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_RANGE(self), 0); + WebCore::Range* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->text()); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h new file mode 100644 index 000000000..e63a6b44e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h @@ -0,0 +1,412 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMRange_h +#define WebKitDOMRange_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_RANGE (webkit_dom_range_get_type()) +#define WEBKIT_DOM_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_RANGE, WebKitDOMRange)) +#define WEBKIT_DOM_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_RANGE, WebKitDOMRangeClass) +#define WEBKIT_DOM_IS_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_RANGE)) +#define WEBKIT_DOM_IS_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_RANGE)) +#define WEBKIT_DOM_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_RANGE, WebKitDOMRangeClass)) + +/** + * WEBKIT_DOM_RANGE_START_TO_START: + */ +#define WEBKIT_DOM_RANGE_START_TO_START 0 + +/** + * WEBKIT_DOM_RANGE_START_TO_END: + */ +#define WEBKIT_DOM_RANGE_START_TO_END 1 + +/** + * WEBKIT_DOM_RANGE_END_TO_END: + */ +#define WEBKIT_DOM_RANGE_END_TO_END 2 + +/** + * WEBKIT_DOM_RANGE_END_TO_START: + */ +#define WEBKIT_DOM_RANGE_END_TO_START 3 + +/** + * WEBKIT_DOM_RANGE_NODE_BEFORE: + */ +#define WEBKIT_DOM_RANGE_NODE_BEFORE 0 + +/** + * WEBKIT_DOM_RANGE_NODE_AFTER: + */ +#define WEBKIT_DOM_RANGE_NODE_AFTER 1 + +/** + * WEBKIT_DOM_RANGE_NODE_BEFORE_AND_AFTER: + */ +#define WEBKIT_DOM_RANGE_NODE_BEFORE_AND_AFTER 2 + +/** + * WEBKIT_DOM_RANGE_NODE_INSIDE: + */ +#define WEBKIT_DOM_RANGE_NODE_INSIDE 3 + +struct _WebKitDOMRange { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMRangeClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_range_get_type(void); + +/** + * webkit_dom_range_set_start: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @offset: A #glong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_set_start(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error); + +/** + * webkit_dom_range_set_end: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @offset: A #glong + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_set_end(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error); + +/** + * webkit_dom_range_set_start_before: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_set_start_before(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_set_start_after: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_set_start_after(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_set_end_before: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_set_end_before(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_set_end_after: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_set_end_after(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_collapse: + * @self: A #WebKitDOMRange + * @toStart: A #gboolean + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_collapse(WebKitDOMRange* self, gboolean toStart, GError** error); + +/** + * webkit_dom_range_select_node: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_select_node(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_select_node_contents: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_select_node_contents(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_compare_boundary_points: + * @self: A #WebKitDOMRange + * @how: A #gushort + * @sourceRange: A #WebKitDOMRange + * @error: #GError + * + * Returns: A #gshort +**/ +WEBKIT_API gshort +webkit_dom_range_compare_boundary_points(WebKitDOMRange* self, gushort how, WebKitDOMRange* sourceRange, GError** error); + +/** + * webkit_dom_range_delete_contents: + * @self: A #WebKitDOMRange + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_delete_contents(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_extract_contents: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMDocumentFragment +**/ +WEBKIT_API WebKitDOMDocumentFragment* +webkit_dom_range_extract_contents(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_clone_contents: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMDocumentFragment +**/ +WEBKIT_API WebKitDOMDocumentFragment* +webkit_dom_range_clone_contents(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_insert_node: + * @self: A #WebKitDOMRange + * @newNode: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_insert_node(WebKitDOMRange* self, WebKitDOMNode* newNode, GError** error); + +/** + * webkit_dom_range_surround_contents: + * @self: A #WebKitDOMRange + * @newParent: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_surround_contents(WebKitDOMRange* self, WebKitDOMNode* newParent, GError** error); + +/** + * webkit_dom_range_clone_range: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMRange +**/ +WEBKIT_API WebKitDOMRange* +webkit_dom_range_clone_range(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_to_string: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_range_to_string(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_detach: + * @self: A #WebKitDOMRange + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_range_detach(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_create_contextual_fragment: + * @self: A #WebKitDOMRange + * @html: A #gchar + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMDocumentFragment +**/ +WEBKIT_API WebKitDOMDocumentFragment* +webkit_dom_range_create_contextual_fragment(WebKitDOMRange* self, const gchar* html, GError** error); + +/** + * webkit_dom_range_compare_node: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * + * Returns: A #gshort +**/ +WEBKIT_API gshort +webkit_dom_range_compare_node(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_intersects_node: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @error: #GError + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_range_intersects_node(WebKitDOMRange* self, WebKitDOMNode* refNode, GError** error); + +/** + * webkit_dom_range_compare_point: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @offset: A #glong + * @error: #GError + * + * Returns: A #gshort +**/ +WEBKIT_API gshort +webkit_dom_range_compare_point(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error); + +/** + * webkit_dom_range_is_point_in_range: + * @self: A #WebKitDOMRange + * @refNode: A #WebKitDOMNode + * @offset: A #glong + * @error: #GError + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_range_is_point_in_range(WebKitDOMRange* self, WebKitDOMNode* refNode, glong offset, GError** error); + +/** + * webkit_dom_range_get_start_container: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_range_get_start_container(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_get_start_offset: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_range_get_start_offset(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_get_end_container: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_range_get_end_container(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_get_end_offset: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_range_get_end_offset(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_get_collapsed: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_range_get_collapsed(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_get_common_ancestor_container: + * @self: A #WebKitDOMRange + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_range_get_common_ancestor_container(WebKitDOMRange* self, GError** error); + +/** + * webkit_dom_range_get_text: + * @self: A #WebKitDOMRange + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_range_get_text(WebKitDOMRange* self); + +/** + * webkit_dom_range_expand: + * @self: A #WebKitDOMRange + * @unit: A #gchar + * @error: #GError + * + * Since: 2.16 +**/ +WEBKIT_API void +webkit_dom_range_expand(WebKitDOMRange* self, const gchar* unit, GError** error); + +G_END_DECLS + +#endif /* WebKitDOMRange_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangePrivate.h new file mode 100644 index 000000000..b1774c0c7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangePrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMRangePrivate_h +#define WebKitDOMRangePrivate_h + +#include <WebCore/Range.h> +#include <webkitdom/WebKitDOMRange.h> + +namespace WebKit { +WebKitDOMRange* wrapRange(WebCore::Range*); +WebKitDOMRange* kit(WebCore::Range*); +WebCore::Range* core(WebKitDOMRange*); +} // namespace WebKit + +#endif /* WebKitDOMRangePrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangeUnstable.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangeUnstable.h new file mode 100644 index 000000000..26e6d2923 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangeUnstable.h @@ -0,0 +1,29 @@ +/* + * 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. + */ + +#ifndef WebKitDOMRangeUnstable_h +#define WebKitDOMRangeUnstable_h + +#ifdef WEBKIT_DOM_USE_UNSTABLE_API +#define __WEBKITDOM_H_INSIDE__ +#include <webkitdom/WebKitDOMRange.h> +#undef __WEBKITDOM_H_INSIDE__ +#endif /* WEBKIT_DOM_USE_UNSTABLE_API */ + +#endif /* WebKitDOMRangeUnstable_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp new file mode 100644 index 000000000..5970d25e5 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp @@ -0,0 +1,306 @@ +/* + * 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 "WebKitDOMStyleSheet.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMMediaListPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMStyleSheetPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_STYLE_SHEET_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_STYLE_SHEET, WebKitDOMStyleSheetPrivate) + +typedef struct _WebKitDOMStyleSheetPrivate { + RefPtr<WebCore::StyleSheet> coreObject; +} WebKitDOMStyleSheetPrivate; + +namespace WebKit { + +WebKitDOMStyleSheet* kit(WebCore::StyleSheet* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_STYLE_SHEET(ret); + + return wrap(obj); +} + +WebCore::StyleSheet* core(WebKitDOMStyleSheet* request) +{ + return request ? static_cast<WebCore::StyleSheet*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMStyleSheet* wrapStyleSheet(WebCore::StyleSheet* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_STYLE_SHEET(g_object_new(WEBKIT_DOM_TYPE_STYLE_SHEET, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMStyleSheet, webkit_dom_style_sheet, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_TYPE, + PROP_DISABLED, + PROP_OWNER_NODE, + PROP_PARENT_STYLE_SHEET, + PROP_HREF, + PROP_TITLE, + PROP_MEDIA, +}; + +static void webkit_dom_style_sheet_finalize(GObject* object) +{ + WebKitDOMStyleSheetPrivate* priv = WEBKIT_DOM_STYLE_SHEET_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMStyleSheetPrivate(); + G_OBJECT_CLASS(webkit_dom_style_sheet_parent_class)->finalize(object); +} + +static void webkit_dom_style_sheet_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) +{ + WebKitDOMStyleSheet* self = WEBKIT_DOM_STYLE_SHEET(object); + + switch (propertyId) { + case PROP_DISABLED: + webkit_dom_style_sheet_set_disabled(self, g_value_get_boolean(value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_style_sheet_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMStyleSheet* self = WEBKIT_DOM_STYLE_SHEET(object); + + switch (propertyId) { + case PROP_TYPE: + g_value_take_string(value, webkit_dom_style_sheet_get_content_type(self)); + break; + case PROP_DISABLED: + g_value_set_boolean(value, webkit_dom_style_sheet_get_disabled(self)); + break; + case PROP_OWNER_NODE: + g_value_set_object(value, webkit_dom_style_sheet_get_owner_node(self)); + break; + case PROP_PARENT_STYLE_SHEET: + g_value_set_object(value, webkit_dom_style_sheet_get_parent_style_sheet(self)); + break; + case PROP_HREF: + g_value_take_string(value, webkit_dom_style_sheet_get_href(self)); + break; + case PROP_TITLE: + g_value_take_string(value, webkit_dom_style_sheet_get_title(self)); + break; + case PROP_MEDIA: + g_value_set_object(value, webkit_dom_style_sheet_get_media(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_style_sheet_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_style_sheet_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMStyleSheetPrivate* priv = WEBKIT_DOM_STYLE_SHEET_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::StyleSheet*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_style_sheet_class_init(WebKitDOMStyleSheetClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMStyleSheetPrivate)); + gobjectClass->constructor = webkit_dom_style_sheet_constructor; + gobjectClass->finalize = webkit_dom_style_sheet_finalize; + gobjectClass->set_property = webkit_dom_style_sheet_set_property; + gobjectClass->get_property = webkit_dom_style_sheet_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_TYPE, + g_param_spec_string( + "type", + "StyleSheet:type", + "read-only gchar* StyleSheet:type", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_DISABLED, + g_param_spec_boolean( + "disabled", + "StyleSheet:disabled", + "read-write gboolean StyleSheet:disabled", + FALSE, + WEBKIT_PARAM_READWRITE)); + + g_object_class_install_property( + gobjectClass, + PROP_OWNER_NODE, + g_param_spec_object( + "owner-node", + "StyleSheet:owner-node", + "read-only WebKitDOMNode* StyleSheet:owner-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PARENT_STYLE_SHEET, + g_param_spec_object( + "parent-style-sheet", + "StyleSheet:parent-style-sheet", + "read-only WebKitDOMStyleSheet* StyleSheet:parent-style-sheet", + WEBKIT_DOM_TYPE_STYLE_SHEET, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_HREF, + g_param_spec_string( + "href", + "StyleSheet:href", + "read-only gchar* StyleSheet:href", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_TITLE, + g_param_spec_string( + "title", + "StyleSheet:title", + "read-only gchar* StyleSheet:title", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_MEDIA, + g_param_spec_object( + "media", + "StyleSheet:media", + "read-only WebKitDOMMediaList* StyleSheet:media", + WEBKIT_DOM_TYPE_MEDIA_LIST, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_style_sheet_init(WebKitDOMStyleSheet* request) +{ + WebKitDOMStyleSheetPrivate* priv = WEBKIT_DOM_STYLE_SHEET_GET_PRIVATE(request); + new (priv) WebKitDOMStyleSheetPrivate(); +} + +gchar* webkit_dom_style_sheet_get_content_type(WebKitDOMStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self), 0); + WebCore::StyleSheet* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->type()); + return result; +} + +gboolean webkit_dom_style_sheet_get_disabled(WebKitDOMStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self), FALSE); + WebCore::StyleSheet* item = WebKit::core(self); + gboolean result = item->disabled(); + return result; +} + +void webkit_dom_style_sheet_set_disabled(WebKitDOMStyleSheet* self, gboolean value) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self)); + WebCore::StyleSheet* item = WebKit::core(self); + item->setDisabled(value); +} + +WebKitDOMNode* webkit_dom_style_sheet_get_owner_node(WebKitDOMStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self), 0); + WebCore::StyleSheet* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->ownerNode()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMStyleSheet* webkit_dom_style_sheet_get_parent_style_sheet(WebKitDOMStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self), 0); + WebCore::StyleSheet* item = WebKit::core(self); + RefPtr<WebCore::StyleSheet> gobjectResult = WTF::getPtr(item->parentStyleSheet()); + return WebKit::kit(gobjectResult.get()); +} + +gchar* webkit_dom_style_sheet_get_href(WebKitDOMStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self), 0); + WebCore::StyleSheet* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->href()); + return result; +} + +gchar* webkit_dom_style_sheet_get_title(WebKitDOMStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self), 0); + WebCore::StyleSheet* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->title()); + return result; +} + +WebKitDOMMediaList* webkit_dom_style_sheet_get_media(WebKitDOMStyleSheet* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET(self), 0); + WebCore::StyleSheet* item = WebKit::core(self); + RefPtr<WebCore::MediaList> gobjectResult = WTF::getPtr(item->media()); + return WebKit::kit(gobjectResult.get()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.h new file mode 100644 index 000000000..3d82512d9 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.h @@ -0,0 +1,125 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMStyleSheet_h +#define WebKitDOMStyleSheet_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_STYLE_SHEET (webkit_dom_style_sheet_get_type()) +#define WEBKIT_DOM_STYLE_SHEET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_STYLE_SHEET, WebKitDOMStyleSheet)) +#define WEBKIT_DOM_STYLE_SHEET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_STYLE_SHEET, WebKitDOMStyleSheetClass) +#define WEBKIT_DOM_IS_STYLE_SHEET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_STYLE_SHEET)) +#define WEBKIT_DOM_IS_STYLE_SHEET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_STYLE_SHEET)) +#define WEBKIT_DOM_STYLE_SHEET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_STYLE_SHEET, WebKitDOMStyleSheetClass)) + +struct _WebKitDOMStyleSheet { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMStyleSheetClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_style_sheet_get_type(void); + +/** + * webkit_dom_style_sheet_get_content_type: + * @self: A #WebKitDOMStyleSheet + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_style_sheet_get_content_type(WebKitDOMStyleSheet* self); + +/** + * webkit_dom_style_sheet_get_disabled: + * @self: A #WebKitDOMStyleSheet + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_style_sheet_get_disabled(WebKitDOMStyleSheet* self); + +/** + * webkit_dom_style_sheet_set_disabled: + * @self: A #WebKitDOMStyleSheet + * @value: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_style_sheet_set_disabled(WebKitDOMStyleSheet* self, gboolean value); + +/** + * webkit_dom_style_sheet_get_owner_node: + * @self: A #WebKitDOMStyleSheet + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_style_sheet_get_owner_node(WebKitDOMStyleSheet* self); + +/** + * webkit_dom_style_sheet_get_parent_style_sheet: + * @self: A #WebKitDOMStyleSheet + * + * Returns: (transfer full): A #WebKitDOMStyleSheet +**/ +WEBKIT_API WebKitDOMStyleSheet* +webkit_dom_style_sheet_get_parent_style_sheet(WebKitDOMStyleSheet* self); + +/** + * webkit_dom_style_sheet_get_href: + * @self: A #WebKitDOMStyleSheet + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_style_sheet_get_href(WebKitDOMStyleSheet* self); + +/** + * webkit_dom_style_sheet_get_title: + * @self: A #WebKitDOMStyleSheet + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_style_sheet_get_title(WebKitDOMStyleSheet* self); + +/** + * webkit_dom_style_sheet_get_media: + * @self: A #WebKitDOMStyleSheet + * + * Returns: (transfer full): A #WebKitDOMMediaList +**/ +WEBKIT_API WebKitDOMMediaList* +webkit_dom_style_sheet_get_media(WebKitDOMStyleSheet* self); + +G_END_DECLS + +#endif /* WebKitDOMStyleSheet_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp new file mode 100644 index 000000000..433f622a4 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp @@ -0,0 +1,153 @@ +/* + * 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 "WebKitDOMStyleSheetList.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMPrivate.h" +#include "WebKitDOMStyleSheetListPrivate.h" +#include "WebKitDOMStyleSheetPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_STYLE_SHEET_LIST_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_STYLE_SHEET_LIST, WebKitDOMStyleSheetListPrivate) + +typedef struct _WebKitDOMStyleSheetListPrivate { + RefPtr<WebCore::StyleSheetList> coreObject; +} WebKitDOMStyleSheetListPrivate; + +namespace WebKit { + +WebKitDOMStyleSheetList* kit(WebCore::StyleSheetList* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_STYLE_SHEET_LIST(ret); + + return wrapStyleSheetList(obj); +} + +WebCore::StyleSheetList* core(WebKitDOMStyleSheetList* request) +{ + return request ? static_cast<WebCore::StyleSheetList*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMStyleSheetList* wrapStyleSheetList(WebCore::StyleSheetList* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_STYLE_SHEET_LIST(g_object_new(WEBKIT_DOM_TYPE_STYLE_SHEET_LIST, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMStyleSheetList, webkit_dom_style_sheet_list, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_LENGTH, +}; + +static void webkit_dom_style_sheet_list_finalize(GObject* object) +{ + WebKitDOMStyleSheetListPrivate* priv = WEBKIT_DOM_STYLE_SHEET_LIST_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMStyleSheetListPrivate(); + G_OBJECT_CLASS(webkit_dom_style_sheet_list_parent_class)->finalize(object); +} + +static void webkit_dom_style_sheet_list_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMStyleSheetList* self = WEBKIT_DOM_STYLE_SHEET_LIST(object); + + switch (propertyId) { + case PROP_LENGTH: + g_value_set_ulong(value, webkit_dom_style_sheet_list_get_length(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_style_sheet_list_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_style_sheet_list_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMStyleSheetListPrivate* priv = WEBKIT_DOM_STYLE_SHEET_LIST_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::StyleSheetList*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_style_sheet_list_class_init(WebKitDOMStyleSheetListClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMStyleSheetListPrivate)); + gobjectClass->constructor = webkit_dom_style_sheet_list_constructor; + gobjectClass->finalize = webkit_dom_style_sheet_list_finalize; + gobjectClass->get_property = webkit_dom_style_sheet_list_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_LENGTH, + g_param_spec_ulong( + "length", + "StyleSheetList:length", + "read-only gulong StyleSheetList:length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_style_sheet_list_init(WebKitDOMStyleSheetList* request) +{ + WebKitDOMStyleSheetListPrivate* priv = WEBKIT_DOM_STYLE_SHEET_LIST_GET_PRIVATE(request); + new (priv) WebKitDOMStyleSheetListPrivate(); +} + +WebKitDOMStyleSheet* webkit_dom_style_sheet_list_item(WebKitDOMStyleSheetList* self, gulong index) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET_LIST(self), 0); + WebCore::StyleSheetList* item = WebKit::core(self); + RefPtr<WebCore::StyleSheet> gobjectResult = WTF::getPtr(item->item(index)); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_style_sheet_list_get_length(WebKitDOMStyleSheetList* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_STYLE_SHEET_LIST(self), 0); + WebCore::StyleSheetList* item = WebKit::core(self); + gulong result = item->length(); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.h new file mode 100644 index 000000000..1be9da243 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.h @@ -0,0 +1,72 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMStyleSheetList_h +#define WebKitDOMStyleSheetList_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_STYLE_SHEET_LIST (webkit_dom_style_sheet_list_get_type()) +#define WEBKIT_DOM_STYLE_SHEET_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_STYLE_SHEET_LIST, WebKitDOMStyleSheetList)) +#define WEBKIT_DOM_STYLE_SHEET_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_STYLE_SHEET_LIST, WebKitDOMStyleSheetListClass) +#define WEBKIT_DOM_IS_STYLE_SHEET_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_STYLE_SHEET_LIST)) +#define WEBKIT_DOM_IS_STYLE_SHEET_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_STYLE_SHEET_LIST)) +#define WEBKIT_DOM_STYLE_SHEET_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_STYLE_SHEET_LIST, WebKitDOMStyleSheetListClass)) + +struct _WebKitDOMStyleSheetList { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMStyleSheetListClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_style_sheet_list_get_type(void); + +/** + * webkit_dom_style_sheet_list_item: + * @self: A #WebKitDOMStyleSheetList + * @index: A #gulong + * + * Returns: (transfer full): A #WebKitDOMStyleSheet +**/ +WEBKIT_API WebKitDOMStyleSheet* +webkit_dom_style_sheet_list_item(WebKitDOMStyleSheetList* self, gulong index); + +/** + * webkit_dom_style_sheet_list_get_length: + * @self: A #WebKitDOMStyleSheetList + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_style_sheet_list_get_length(WebKitDOMStyleSheetList* self); + +G_END_DECLS + +#endif /* WebKitDOMStyleSheetList_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetListPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetListPrivate.h new file mode 100644 index 000000000..70d528b30 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetListPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMStyleSheetListPrivate_h +#define WebKitDOMStyleSheetListPrivate_h + +#include <WebCore/StyleSheetList.h> +#include <webkitdom/WebKitDOMStyleSheetList.h> + +namespace WebKit { +WebKitDOMStyleSheetList* wrapStyleSheetList(WebCore::StyleSheetList*); +WebKitDOMStyleSheetList* kit(WebCore::StyleSheetList*); +WebCore::StyleSheetList* core(WebKitDOMStyleSheetList*); +} // namespace WebKit + +#endif /* WebKitDOMStyleSheetListPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetPrivate.h new file mode 100644 index 000000000..9cfe764de --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMStyleSheetPrivate_h +#define WebKitDOMStyleSheetPrivate_h + +#include <WebCore/StyleSheet.h> +#include <webkitdom/WebKitDOMStyleSheet.h> + +namespace WebKit { +WebKitDOMStyleSheet* wrapStyleSheet(WebCore::StyleSheet*); +WebKitDOMStyleSheet* kit(WebCore::StyleSheet*); +WebCore::StyleSheet* core(WebKitDOMStyleSheet*); +} // namespace WebKit + +#endif /* WebKitDOMStyleSheetPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp new file mode 100644 index 000000000..218f4023a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp @@ -0,0 +1,160 @@ +/* + * 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 "WebKitDOMText.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 "WebKitDOMEventPrivate.h" +#include "WebKitDOMEventTarget.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMTextPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMText* kit(WebCore::Text* obj) +{ + return WEBKIT_DOM_TEXT(kit(static_cast<WebCore::Node*>(obj))); +} + +WebCore::Text* core(WebKitDOMText* request) +{ + return request ? static_cast<WebCore::Text*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMText* wrapText(WebCore::Text* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_TEXT(g_object_new(WEBKIT_DOM_TYPE_TEXT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +static gboolean webkit_dom_text_dispatch_event(WebKitDOMEventTarget* target, WebKitDOMEvent* event, GError** error) +{ + WebCore::Event* coreEvent = WebKit::core(event); + if (!coreEvent) + return false; + WebCore::Text* coreTarget = static_cast<WebCore::Text*>(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_text_add_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Text* coreTarget = static_cast<WebCore::Text*>(WEBKIT_DOM_OBJECT(target)->coreObject); + return WebKit::GObjectEventListener::addEventListener(G_OBJECT(target), coreTarget, eventName, handler, useCapture); +} + +static gboolean webkit_dom_text_remove_event_listener(WebKitDOMEventTarget* target, const char* eventName, GClosure* handler, gboolean useCapture) +{ + WebCore::Text* coreTarget = static_cast<WebCore::Text*>(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_text_dispatch_event; + iface->add_event_listener = webkit_dom_text_add_event_listener; + iface->remove_event_listener = webkit_dom_text_remove_event_listener; +} + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMText, webkit_dom_text, WEBKIT_DOM_TYPE_CHARACTER_DATA, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkit_dom_event_target_init)) + +enum { + PROP_0, + PROP_WHOLE_TEXT, +}; + +static void webkit_dom_text_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMText* self = WEBKIT_DOM_TEXT(object); + + switch (propertyId) { + case PROP_WHOLE_TEXT: + g_value_take_string(value, webkit_dom_text_get_whole_text(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_text_class_init(WebKitDOMTextClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_text_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_WHOLE_TEXT, + g_param_spec_string( + "whole-text", + "Text:whole-text", + "read-only gchar* Text:whole-text", + "", + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_text_init(WebKitDOMText* request) +{ + UNUSED_PARAM(request); +} + +WebKitDOMText* webkit_dom_text_split_text(WebKitDOMText* self, gulong offset, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TEXT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::Text* item = WebKit::core(self); + auto result = item->splitText(offset); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + +gchar* webkit_dom_text_get_whole_text(WebKitDOMText* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TEXT(self), 0); + WebCore::Text* item = WebKit::core(self); + gchar* result = convertToUTF8String(item->wholeText()); + return result; +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.h new file mode 100644 index 000000000..54e62d5e0 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.h @@ -0,0 +1,73 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMText_h +#define WebKitDOMText_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMCharacterData.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_TEXT (webkit_dom_text_get_type()) +#define WEBKIT_DOM_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_TEXT, WebKitDOMText)) +#define WEBKIT_DOM_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_TEXT, WebKitDOMTextClass) +#define WEBKIT_DOM_IS_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_TEXT)) +#define WEBKIT_DOM_IS_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_TEXT)) +#define WEBKIT_DOM_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_TEXT, WebKitDOMTextClass)) + +struct _WebKitDOMText { + WebKitDOMCharacterData parent_instance; +}; + +struct _WebKitDOMTextClass { + WebKitDOMCharacterDataClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_text_get_type(void); + +/** + * webkit_dom_text_split_text: + * @self: A #WebKitDOMText + * @offset: A #gulong + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMText +**/ +WEBKIT_API WebKitDOMText* +webkit_dom_text_split_text(WebKitDOMText* self, gulong offset, GError** error); + +/** + * webkit_dom_text_get_whole_text: + * @self: A #WebKitDOMText + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_text_get_whole_text(WebKitDOMText* self); + +G_END_DECLS + +#endif /* WebKitDOMText_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextPrivate.h new file mode 100644 index 000000000..5b3e129b6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMTextPrivate_h +#define WebKitDOMTextPrivate_h + +#include <WebCore/Text.h> +#include <webkitdom/WebKitDOMText.h> + +namespace WebKit { +WebKitDOMText* wrapText(WebCore::Text*); +WebKitDOMText* kit(WebCore::Text*); +WebCore::Text* core(WebKitDOMText*); +} // namespace WebKit + +#endif /* WebKitDOMTextPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp new file mode 100644 index 000000000..8df30885f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp @@ -0,0 +1,288 @@ +/* + * 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 "WebKitDOMTreeWalker.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMNodeFilterPrivate.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMTreeWalkerPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_TREE_WALKER_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_TREE_WALKER, WebKitDOMTreeWalkerPrivate) + +typedef struct _WebKitDOMTreeWalkerPrivate { + RefPtr<WebCore::TreeWalker> coreObject; +} WebKitDOMTreeWalkerPrivate; + +namespace WebKit { + +WebKitDOMTreeWalker* kit(WebCore::TreeWalker* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_TREE_WALKER(ret); + + return wrapTreeWalker(obj); +} + +WebCore::TreeWalker* core(WebKitDOMTreeWalker* request) +{ + return request ? static_cast<WebCore::TreeWalker*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMTreeWalker* wrapTreeWalker(WebCore::TreeWalker* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_TREE_WALKER(g_object_new(WEBKIT_DOM_TYPE_TREE_WALKER, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMTreeWalker, webkit_dom_tree_walker, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_ROOT, + PROP_WHAT_TO_SHOW, + PROP_FILTER, + PROP_CURRENT_NODE, +}; + +static void webkit_dom_tree_walker_finalize(GObject* object) +{ + WebKitDOMTreeWalkerPrivate* priv = WEBKIT_DOM_TREE_WALKER_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMTreeWalkerPrivate(); + G_OBJECT_CLASS(webkit_dom_tree_walker_parent_class)->finalize(object); +} + +static void webkit_dom_tree_walker_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMTreeWalker* self = WEBKIT_DOM_TREE_WALKER(object); + + switch (propertyId) { + case PROP_ROOT: + g_value_set_object(value, webkit_dom_tree_walker_get_root(self)); + break; + case PROP_WHAT_TO_SHOW: + g_value_set_ulong(value, webkit_dom_tree_walker_get_what_to_show(self)); + break; + case PROP_FILTER: + g_value_set_object(value, webkit_dom_tree_walker_get_filter(self)); + break; + case PROP_CURRENT_NODE: + g_value_set_object(value, webkit_dom_tree_walker_get_current_node(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_tree_walker_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_tree_walker_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMTreeWalkerPrivate* priv = WEBKIT_DOM_TREE_WALKER_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::TreeWalker*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_tree_walker_class_init(WebKitDOMTreeWalkerClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMTreeWalkerPrivate)); + gobjectClass->constructor = webkit_dom_tree_walker_constructor; + gobjectClass->finalize = webkit_dom_tree_walker_finalize; + gobjectClass->get_property = webkit_dom_tree_walker_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_ROOT, + g_param_spec_object( + "root", + "TreeWalker:root", + "read-only WebKitDOMNode* TreeWalker:root", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WHAT_TO_SHOW, + g_param_spec_ulong( + "what-to-show", + "TreeWalker:what-to-show", + "read-only gulong TreeWalker:what-to-show", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_FILTER, + g_param_spec_object( + "filter", + "TreeWalker:filter", + "read-only WebKitDOMNodeFilter* TreeWalker:filter", + WEBKIT_DOM_TYPE_NODE_FILTER, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CURRENT_NODE, + g_param_spec_object( + "current-node", + "TreeWalker:current-node", + "read-only WebKitDOMNode* TreeWalker:current-node", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_tree_walker_init(WebKitDOMTreeWalker* request) +{ + WebKitDOMTreeWalkerPrivate* priv = WEBKIT_DOM_TREE_WALKER_GET_PRIVATE(request); + new (priv) WebKitDOMTreeWalkerPrivate(); +} + +WebKitDOMNode* webkit_dom_tree_walker_parent_node(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->parentNode()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_first_child(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->firstChild()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_last_child(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->lastChild()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_previous_sibling(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->previousSibling()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_next_sibling(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->nextSibling()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_previous_node(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->previousNode()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_next_node(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->nextNode()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_get_root(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->root()); + return WebKit::kit(gobjectResult.get()); +} + +gulong webkit_dom_tree_walker_get_what_to_show(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + gulong result = item->whatToShow(); + return result; +} + +WebKitDOMNodeFilter* webkit_dom_tree_walker_get_filter(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::NodeFilter> gobjectResult = WTF::getPtr(item->filter()); + return WebKit::kit(gobjectResult.get()); +} + +WebKitDOMNode* webkit_dom_tree_walker_get_current_node(WebKitDOMTreeWalker* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self), 0); + WebCore::TreeWalker* item = WebKit::core(self); + RefPtr<WebCore::Node> gobjectResult = WTF::getPtr(item->currentNode()); + return WebKit::kit(gobjectResult.get()); +} + +void webkit_dom_tree_walker_set_current_node(WebKitDOMTreeWalker* self, WebKitDOMNode* value, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_TREE_WALKER(self)); + g_return_if_fail(WEBKIT_DOM_IS_NODE(value)); + UNUSED_PARAM(error); + WebCore::TreeWalker* item = WebKit::core(self); + WebCore::Node* convertedValue = WebKit::core(value); + item->setCurrentNode(*convertedValue); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.h new file mode 100644 index 000000000..86f960125 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.h @@ -0,0 +1,162 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMTreeWalker_h +#define WebKitDOMTreeWalker_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_TREE_WALKER (webkit_dom_tree_walker_get_type()) +#define WEBKIT_DOM_TREE_WALKER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_TREE_WALKER, WebKitDOMTreeWalker)) +#define WEBKIT_DOM_TREE_WALKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_TREE_WALKER, WebKitDOMTreeWalkerClass) +#define WEBKIT_DOM_IS_TREE_WALKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_TREE_WALKER)) +#define WEBKIT_DOM_IS_TREE_WALKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_TREE_WALKER)) +#define WEBKIT_DOM_TREE_WALKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_TREE_WALKER, WebKitDOMTreeWalkerClass)) + +struct _WebKitDOMTreeWalker { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMTreeWalkerClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_tree_walker_get_type(void); + +/** + * webkit_dom_tree_walker_parent_node: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_parent_node(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_first_child: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_first_child(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_last_child: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_last_child(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_previous_sibling: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_previous_sibling(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_next_sibling: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_next_sibling(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_previous_node: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_previous_node(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_next_node: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_next_node(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_get_root: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_get_root(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_get_what_to_show: + * @self: A #WebKitDOMTreeWalker + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_tree_walker_get_what_to_show(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_get_filter: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer full): A #WebKitDOMNodeFilter +**/ +WEBKIT_API WebKitDOMNodeFilter* +webkit_dom_tree_walker_get_filter(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_get_current_node: + * @self: A #WebKitDOMTreeWalker + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_tree_walker_get_current_node(WebKitDOMTreeWalker* self); + +/** + * webkit_dom_tree_walker_set_current_node: + * @self: A #WebKitDOMTreeWalker + * @value: A #WebKitDOMNode + * @error: #GError + * +**/ +WEBKIT_API void +webkit_dom_tree_walker_set_current_node(WebKitDOMTreeWalker* self, WebKitDOMNode* value, GError** error); + +G_END_DECLS + +#endif /* WebKitDOMTreeWalker_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalkerPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalkerPrivate.h new file mode 100644 index 000000000..6a17b26c8 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalkerPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMTreeWalkerPrivate_h +#define WebKitDOMTreeWalkerPrivate_h + +#include <WebCore/TreeWalker.h> +#include <webkitdom/WebKitDOMTreeWalker.h> + +namespace WebKit { +WebKitDOMTreeWalker* wrapTreeWalker(WebCore::TreeWalker*); +WebKitDOMTreeWalker* kit(WebCore::TreeWalker*); +WebCore::TreeWalker* core(WebKitDOMTreeWalker*); +} // namespace WebKit + +#endif /* WebKitDOMTreeWalkerPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp new file mode 100644 index 000000000..bf32a8794 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp @@ -0,0 +1,280 @@ +/* + * 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 "WebKitDOMUIEvent.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include <WebCore/KeyboardEvent.h> +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMUIEventPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMUIEvent* kit(WebCore::UIEvent* obj) +{ + return WEBKIT_DOM_UI_EVENT(kit(static_cast<WebCore::Event*>(obj))); +} + +WebCore::UIEvent* core(WebKitDOMUIEvent* request) +{ + return request ? static_cast<WebCore::UIEvent*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMUIEvent* wrapUIEvent(WebCore::UIEvent* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_UI_EVENT(g_object_new(WEBKIT_DOM_TYPE_UI_EVENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMUIEvent, webkit_dom_ui_event, WEBKIT_DOM_TYPE_EVENT) + +enum { + PROP_0, + PROP_VIEW, + PROP_DETAIL, + PROP_KEY_CODE, + PROP_CHAR_CODE, + PROP_LAYER_X, + PROP_LAYER_Y, + PROP_PAGE_X, + PROP_PAGE_Y, +}; + +static void webkit_dom_ui_event_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMUIEvent* self = WEBKIT_DOM_UI_EVENT(object); + + switch (propertyId) { + case PROP_VIEW: + g_value_set_object(value, webkit_dom_ui_event_get_view(self)); + break; + case PROP_DETAIL: + g_value_set_long(value, webkit_dom_ui_event_get_detail(self)); + break; + case PROP_KEY_CODE: + g_value_set_long(value, webkit_dom_ui_event_get_key_code(self)); + break; + case PROP_CHAR_CODE: + g_value_set_long(value, webkit_dom_ui_event_get_char_code(self)); + break; + case PROP_LAYER_X: + g_value_set_long(value, webkit_dom_ui_event_get_layer_x(self)); + break; + case PROP_LAYER_Y: + g_value_set_long(value, webkit_dom_ui_event_get_layer_y(self)); + break; + case PROP_PAGE_X: + g_value_set_long(value, webkit_dom_ui_event_get_page_x(self)); + break; + case PROP_PAGE_Y: + g_value_set_long(value, webkit_dom_ui_event_get_page_y(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_ui_event_class_init(WebKitDOMUIEventClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_ui_event_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_VIEW, + g_param_spec_object( + "view", + "UIEvent:view", + "read-only WebKitDOMDOMWindow* UIEvent:view", + WEBKIT_DOM_TYPE_DOM_WINDOW, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_DETAIL, + g_param_spec_long( + "detail", + "UIEvent:detail", + "read-only glong UIEvent:detail", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_KEY_CODE, + g_param_spec_long( + "key-code", + "UIEvent:key-code", + "read-only glong UIEvent:key-code", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_CHAR_CODE, + g_param_spec_long( + "char-code", + "UIEvent:char-code", + "read-only glong UIEvent:char-code", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LAYER_X, + g_param_spec_long( + "layer-x", + "UIEvent:layer-x", + "read-only glong UIEvent:layer-x", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_LAYER_Y, + g_param_spec_long( + "layer-y", + "UIEvent:layer-y", + "read-only glong UIEvent:layer-y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PAGE_X, + g_param_spec_long( + "page-x", + "UIEvent:page-x", + "read-only glong UIEvent:page-x", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_PAGE_Y, + g_param_spec_long( + "page-y", + "UIEvent:page-y", + "read-only glong UIEvent:page-y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_ui_event_init(WebKitDOMUIEvent* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_ui_event_init_ui_event(WebKitDOMUIEvent* self, const gchar* type, gboolean canBubble, gboolean cancelable, WebKitDOMDOMWindow* view, glong detail) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_UI_EVENT(self)); + g_return_if_fail(type); + g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(view)); + WebCore::UIEvent* item = WebKit::core(self); + WTF::String convertedType = WTF::String::fromUTF8(type); + WebCore::DOMWindow* convertedView = WebKit::core(view); + item->initUIEvent(convertedType, canBubble, cancelable, convertedView, detail); +} + +WebKitDOMDOMWindow* webkit_dom_ui_event_get_view(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + RefPtr<WebCore::DOMWindow> gobjectResult = WTF::getPtr(item->view()); + return WebKit::kit(gobjectResult.get()); +} + +glong webkit_dom_ui_event_get_detail(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + glong result = item->detail(); + return result; +} + +glong webkit_dom_ui_event_get_key_code(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + glong result = is<WebCore::KeyboardEvent>(*item) ? downcast<WebCore::KeyboardEvent>(*item).keyCode() : 0; + return result; +} + +glong webkit_dom_ui_event_get_char_code(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + glong result = is<WebCore::KeyboardEvent>(*item) ? downcast<WebCore::KeyboardEvent>(*item).charCode() : 0; + return result; +} + +glong webkit_dom_ui_event_get_layer_x(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + glong result = item->layerX(); + return result; +} + +glong webkit_dom_ui_event_get_layer_y(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + glong result = item->layerY(); + return result; +} + +glong webkit_dom_ui_event_get_page_x(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + glong result = item->pageX(); + return result; +} + +glong webkit_dom_ui_event_get_page_y(WebKitDOMUIEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_UI_EVENT(self), 0); + WebCore::UIEvent* item = WebKit::core(self); + glong result = item->pageY(); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.h new file mode 100644 index 000000000..7f03e6584 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.h @@ -0,0 +1,138 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMUIEvent_h +#define WebKitDOMUIEvent_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMEvent.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_UI_EVENT (webkit_dom_ui_event_get_type()) +#define WEBKIT_DOM_UI_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_UI_EVENT, WebKitDOMUIEvent)) +#define WEBKIT_DOM_UI_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_UI_EVENT, WebKitDOMUIEventClass) +#define WEBKIT_DOM_IS_UI_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_UI_EVENT)) +#define WEBKIT_DOM_IS_UI_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_UI_EVENT)) +#define WEBKIT_DOM_UI_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_UI_EVENT, WebKitDOMUIEventClass)) + +struct _WebKitDOMUIEvent { + WebKitDOMEvent parent_instance; +}; + +struct _WebKitDOMUIEventClass { + WebKitDOMEventClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_ui_event_get_type(void); + +/** + * webkit_dom_ui_event_init_ui_event: + * @self: A #WebKitDOMUIEvent + * @type: A #gchar + * @canBubble: A #gboolean + * @cancelable: A #gboolean + * @view: A #WebKitDOMDOMWindow + * @detail: A #glong + * +**/ +WEBKIT_API void +webkit_dom_ui_event_init_ui_event(WebKitDOMUIEvent* self, const gchar* type, gboolean canBubble, gboolean cancelable, WebKitDOMDOMWindow* view, glong detail); + +/** + * webkit_dom_ui_event_get_view: + * @self: A #WebKitDOMUIEvent + * + * Returns: (transfer full): A #WebKitDOMDOMWindow +**/ +WEBKIT_API WebKitDOMDOMWindow* +webkit_dom_ui_event_get_view(WebKitDOMUIEvent* self); + +/** + * webkit_dom_ui_event_get_detail: + * @self: A #WebKitDOMUIEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_ui_event_get_detail(WebKitDOMUIEvent* self); + +/** + * webkit_dom_ui_event_get_key_code: + * @self: A #WebKitDOMUIEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_ui_event_get_key_code(WebKitDOMUIEvent* self); + +/** + * webkit_dom_ui_event_get_char_code: + * @self: A #WebKitDOMUIEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_ui_event_get_char_code(WebKitDOMUIEvent* self); + +/** + * webkit_dom_ui_event_get_layer_x: + * @self: A #WebKitDOMUIEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_ui_event_get_layer_x(WebKitDOMUIEvent* self); + +/** + * webkit_dom_ui_event_get_layer_y: + * @self: A #WebKitDOMUIEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_ui_event_get_layer_y(WebKitDOMUIEvent* self); + +/** + * webkit_dom_ui_event_get_page_x: + * @self: A #WebKitDOMUIEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_ui_event_get_page_x(WebKitDOMUIEvent* self); + +/** + * webkit_dom_ui_event_get_page_y: + * @self: A #WebKitDOMUIEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_ui_event_get_page_y(WebKitDOMUIEvent* self); + +G_END_DECLS + +#endif /* WebKitDOMUIEvent_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEventPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEventPrivate.h new file mode 100644 index 000000000..87bed760f --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEventPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMUIEventPrivate_h +#define WebKitDOMUIEventPrivate_h + +#include <WebCore/UIEvent.h> +#include <webkitdom/WebKitDOMUIEvent.h> + +namespace WebKit { +WebKitDOMUIEvent* wrapUIEvent(WebCore::UIEvent*); +WebKitDOMUIEvent* kit(WebCore::UIEvent*); +WebCore::UIEvent* core(WebKitDOMUIEvent*); +} // namespace WebKit + +#endif /* WebKitDOMUIEventPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp new file mode 100644 index 000000000..9d42c3952 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp @@ -0,0 +1,162 @@ +/* + * 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 "WebKitDOMWheelEvent.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMDOMWindowPrivate.h" +#include "WebKitDOMEventPrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMWheelEventPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +namespace WebKit { + +WebKitDOMWheelEvent* kit(WebCore::WheelEvent* obj) +{ + return WEBKIT_DOM_WHEEL_EVENT(kit(static_cast<WebCore::Event*>(obj))); +} + +WebCore::WheelEvent* core(WebKitDOMWheelEvent* request) +{ + return request ? static_cast<WebCore::WheelEvent*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMWheelEvent* wrapWheelEvent(WebCore::WheelEvent* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_WHEEL_EVENT(g_object_new(WEBKIT_DOM_TYPE_WHEEL_EVENT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMWheelEvent, webkit_dom_wheel_event, WEBKIT_DOM_TYPE_MOUSE_EVENT) + +enum { + PROP_0, + PROP_WHEEL_DELTA_X, + PROP_WHEEL_DELTA_Y, + PROP_WHEEL_DELTA, +}; + +static void webkit_dom_wheel_event_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMWheelEvent* self = WEBKIT_DOM_WHEEL_EVENT(object); + + switch (propertyId) { + case PROP_WHEEL_DELTA_X: + g_value_set_long(value, webkit_dom_wheel_event_get_wheel_delta_x(self)); + break; + case PROP_WHEEL_DELTA_Y: + g_value_set_long(value, webkit_dom_wheel_event_get_wheel_delta_y(self)); + break; + case PROP_WHEEL_DELTA: + g_value_set_long(value, webkit_dom_wheel_event_get_wheel_delta(self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static void webkit_dom_wheel_event_class_init(WebKitDOMWheelEventClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + gobjectClass->get_property = webkit_dom_wheel_event_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_WHEEL_DELTA_X, + g_param_spec_long( + "wheel-delta-x", + "WheelEvent:wheel-delta-x", + "read-only glong WheelEvent:wheel-delta-x", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WHEEL_DELTA_Y, + g_param_spec_long( + "wheel-delta-y", + "WheelEvent:wheel-delta-y", + "read-only glong WheelEvent:wheel-delta-y", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_WHEEL_DELTA, + g_param_spec_long( + "wheel-delta", + "WheelEvent:wheel-delta", + "read-only glong WheelEvent:wheel-delta", + G_MINLONG, G_MAXLONG, 0, + WEBKIT_PARAM_READABLE)); +} + +static void webkit_dom_wheel_event_init(WebKitDOMWheelEvent* request) +{ + UNUSED_PARAM(request); +} + +void webkit_dom_wheel_event_init_wheel_event(WebKitDOMWheelEvent* self, glong wheelDeltaX, glong wheelDeltaY, WebKitDOMDOMWindow* view, glong screenX, glong screenY, glong clientX, glong clientY, gboolean ctrlKey, gboolean altKey, gboolean shiftKey, gboolean metaKey) +{ + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_WHEEL_EVENT(self)); + g_return_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(view)); + WebCore::WheelEvent* item = WebKit::core(self); + WebCore::DOMWindow* convertedView = WebKit::core(view); + item->initWheelEvent(wheelDeltaX, wheelDeltaY, convertedView, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey); +} + +glong webkit_dom_wheel_event_get_wheel_delta_x(WebKitDOMWheelEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_WHEEL_EVENT(self), 0); + WebCore::WheelEvent* item = WebKit::core(self); + glong result = item->wheelDeltaX(); + return result; +} + +glong webkit_dom_wheel_event_get_wheel_delta_y(WebKitDOMWheelEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_WHEEL_EVENT(self), 0); + WebCore::WheelEvent* item = WebKit::core(self); + glong result = item->wheelDeltaY(); + return result; +} + +glong webkit_dom_wheel_event_get_wheel_delta(WebKitDOMWheelEvent* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_WHEEL_EVENT(self), 0); + WebCore::WheelEvent* item = WebKit::core(self); + glong result = item->wheelDelta(); + return result; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.h new file mode 100644 index 000000000..fa2f485a0 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.h @@ -0,0 +1,99 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMWheelEvent_h +#define WebKitDOMWheelEvent_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMMouseEvent.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_WHEEL_EVENT (webkit_dom_wheel_event_get_type()) +#define WEBKIT_DOM_WHEEL_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_WHEEL_EVENT, WebKitDOMWheelEvent)) +#define WEBKIT_DOM_WHEEL_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_WHEEL_EVENT, WebKitDOMWheelEventClass) +#define WEBKIT_DOM_IS_WHEEL_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_WHEEL_EVENT)) +#define WEBKIT_DOM_IS_WHEEL_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_WHEEL_EVENT)) +#define WEBKIT_DOM_WHEEL_EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_WHEEL_EVENT, WebKitDOMWheelEventClass)) + +struct _WebKitDOMWheelEvent { + WebKitDOMMouseEvent parent_instance; +}; + +struct _WebKitDOMWheelEventClass { + WebKitDOMMouseEventClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_wheel_event_get_type(void); + +/** + * webkit_dom_wheel_event_init_wheel_event: + * @self: A #WebKitDOMWheelEvent + * @wheelDeltaX: A #glong + * @wheelDeltaY: A #glong + * @view: A #WebKitDOMDOMWindow + * @screenX: A #glong + * @screenY: A #glong + * @clientX: A #glong + * @clientY: A #glong + * @ctrlKey: A #gboolean + * @altKey: A #gboolean + * @shiftKey: A #gboolean + * @metaKey: A #gboolean + * +**/ +WEBKIT_API void +webkit_dom_wheel_event_init_wheel_event(WebKitDOMWheelEvent* self, glong wheelDeltaX, glong wheelDeltaY, WebKitDOMDOMWindow* view, glong screenX, glong screenY, glong clientX, glong clientY, gboolean ctrlKey, gboolean altKey, gboolean shiftKey, gboolean metaKey); + +/** + * webkit_dom_wheel_event_get_wheel_delta_x: + * @self: A #WebKitDOMWheelEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_wheel_event_get_wheel_delta_x(WebKitDOMWheelEvent* self); + +/** + * webkit_dom_wheel_event_get_wheel_delta_y: + * @self: A #WebKitDOMWheelEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_wheel_event_get_wheel_delta_y(WebKitDOMWheelEvent* self); + +/** + * webkit_dom_wheel_event_get_wheel_delta: + * @self: A #WebKitDOMWheelEvent + * + * Returns: A #glong +**/ +WEBKIT_API glong +webkit_dom_wheel_event_get_wheel_delta(WebKitDOMWheelEvent* self); + +G_END_DECLS + +#endif /* WebKitDOMWheelEvent_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEventPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEventPrivate.h new file mode 100644 index 000000000..06f01ee63 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEventPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMWheelEventPrivate_h +#define WebKitDOMWheelEventPrivate_h + +#include <WebCore/WheelEvent.h> +#include <webkitdom/WebKitDOMWheelEvent.h> + +namespace WebKit { +WebKitDOMWheelEvent* wrapWheelEvent(WebCore::WheelEvent*); +WebKitDOMWheelEvent* kit(WebCore::WheelEvent*); +WebCore::WheelEvent* core(WebKitDOMWheelEvent*); +} // namespace WebKit + +#endif /* WebKitDOMWheelEventPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp new file mode 100644 index 000000000..b1059374c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp @@ -0,0 +1,124 @@ +/* + * 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 "WebKitDOMXPathExpression.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMXPathExpressionPrivate.h" +#include "WebKitDOMXPathResultPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_XPATH_EXPRESSION_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_XPATH_EXPRESSION, WebKitDOMXPathExpressionPrivate) + +typedef struct _WebKitDOMXPathExpressionPrivate { + RefPtr<WebCore::XPathExpression> coreObject; +} WebKitDOMXPathExpressionPrivate; + +namespace WebKit { + +WebKitDOMXPathExpression* kit(WebCore::XPathExpression* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_XPATH_EXPRESSION(ret); + + return wrapXPathExpression(obj); +} + +WebCore::XPathExpression* core(WebKitDOMXPathExpression* request) +{ + return request ? static_cast<WebCore::XPathExpression*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMXPathExpression* wrapXPathExpression(WebCore::XPathExpression* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_XPATH_EXPRESSION(g_object_new(WEBKIT_DOM_TYPE_XPATH_EXPRESSION, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMXPathExpression, webkit_dom_xpath_expression, WEBKIT_DOM_TYPE_OBJECT) + +static void webkit_dom_xpath_expression_finalize(GObject* object) +{ + WebKitDOMXPathExpressionPrivate* priv = WEBKIT_DOM_XPATH_EXPRESSION_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMXPathExpressionPrivate(); + G_OBJECT_CLASS(webkit_dom_xpath_expression_parent_class)->finalize(object); +} + +static GObject* webkit_dom_xpath_expression_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_xpath_expression_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMXPathExpressionPrivate* priv = WEBKIT_DOM_XPATH_EXPRESSION_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::XPathExpression*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_xpath_expression_class_init(WebKitDOMXPathExpressionClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMXPathExpressionPrivate)); + gobjectClass->constructor = webkit_dom_xpath_expression_constructor; + gobjectClass->finalize = webkit_dom_xpath_expression_finalize; +} + +static void webkit_dom_xpath_expression_init(WebKitDOMXPathExpression* request) +{ + WebKitDOMXPathExpressionPrivate* priv = WEBKIT_DOM_XPATH_EXPRESSION_GET_PRIVATE(request); + new (priv) WebKitDOMXPathExpressionPrivate(); +} + +WebKitDOMXPathResult* webkit_dom_xpath_expression_evaluate(WebKitDOMXPathExpression* self, WebKitDOMNode* contextNode, gushort type, WebKitDOMXPathResult* inResult, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_EXPRESSION(self), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_NODE(contextNode), 0); + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(inResult), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::XPathExpression* item = WebKit::core(self); + WebCore::Node* convertedContextNode = WebKit::core(contextNode); + WebCore::XPathResult* convertedInResult = WebKit::core(inResult); + auto result = item->evaluate(convertedContextNode, type, convertedInResult); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue().ptr()); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.h new file mode 100644 index 000000000..ed7d3e035 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.h @@ -0,0 +1,66 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMXPathExpression_h +#define WebKitDOMXPathExpression_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_XPATH_EXPRESSION (webkit_dom_xpath_expression_get_type()) +#define WEBKIT_DOM_XPATH_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_XPATH_EXPRESSION, WebKitDOMXPathExpression)) +#define WEBKIT_DOM_XPATH_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_XPATH_EXPRESSION, WebKitDOMXPathExpressionClass) +#define WEBKIT_DOM_IS_XPATH_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_XPATH_EXPRESSION)) +#define WEBKIT_DOM_IS_XPATH_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_XPATH_EXPRESSION)) +#define WEBKIT_DOM_XPATH_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_XPATH_EXPRESSION, WebKitDOMXPathExpressionClass)) + +struct _WebKitDOMXPathExpression { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMXPathExpressionClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_xpath_expression_get_type(void); + +/** + * webkit_dom_xpath_expression_evaluate: + * @self: A #WebKitDOMXPathExpression + * @contextNode: A #WebKitDOMNode + * @type: A #gushort + * @inResult: A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: (transfer full): A #WebKitDOMXPathResult +**/ +WEBKIT_API WebKitDOMXPathResult* +webkit_dom_xpath_expression_evaluate(WebKitDOMXPathExpression* self, WebKitDOMNode* contextNode, gushort type, WebKitDOMXPathResult* inResult, GError** error); + +G_END_DECLS + +#endif /* WebKitDOMXPathExpression_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpressionPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpressionPrivate.h new file mode 100644 index 000000000..8c1c97c65 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpressionPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMXPathExpressionPrivate_h +#define WebKitDOMXPathExpressionPrivate_h + +#include <WebCore/XPathExpression.h> +#include <webkitdom/WebKitDOMXPathExpression.h> + +namespace WebKit { +WebKitDOMXPathExpression* wrapXPathExpression(WebCore::XPathExpression*); +WebKitDOMXPathExpression* kit(WebCore::XPathExpression*); +WebCore::XPathExpression* core(WebKitDOMXPathExpression*); +} // namespace WebKit + +#endif /* WebKitDOMXPathExpressionPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp new file mode 100644 index 000000000..c4be39a08 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "WebKitDOMXPathNSResolver.h" + +#include "DOMObjectCache.h" +#include "GObjectXPathNSResolver.h" +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMObject.h" +#include "WebKitDOMXPathNSResolverPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +typedef WebKitDOMXPathNSResolverIface WebKitDOMXPathNSResolverInterface; + +G_DEFINE_INTERFACE(WebKitDOMXPathNSResolver, webkit_dom_xpath_ns_resolver, G_TYPE_OBJECT) + +static void webkit_dom_xpath_ns_resolver_default_init(WebKitDOMXPathNSResolverIface*) +{ +} + +char* webkit_dom_xpath_ns_resolver_lookup_namespace_uri(WebKitDOMXPathNSResolver* resolver, const char* prefix) +{ + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_NS_RESOLVER(resolver), nullptr); + g_return_val_if_fail(prefix, nullptr); + + return WEBKIT_DOM_XPATH_NS_RESOLVER_GET_IFACE(resolver)->lookup_namespace_uri(resolver, prefix); +} + +// WebKitDOMNativeXPathNSResolver. +struct _WebKitDOMNativeXPathNSResolver { + WebKitDOMObject parent; +}; + +struct _WebKitDOMNativeXPathNSResolverClass { + WebKitDOMObjectClass parentClass; +}; + +typedef struct _WebKitDOMNativeXPathNSResolverPrivate { + RefPtr<WebCore::XPathNSResolver> coreObject; +} WebKitDOMNativeXPathNSResolverPrivate; + +#define WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER, WebKitDOMNativeXPathNSResolverPrivate) + +static void webkitDOMXPathNSResolverIfaceInit(WebKitDOMXPathNSResolverIface*); + +G_DEFINE_TYPE_WITH_CODE(WebKitDOMNativeXPathNSResolver, webkit_dom_native_xpath_ns_resolver, WEBKIT_DOM_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_XPATH_NS_RESOLVER, webkitDOMXPathNSResolverIfaceInit)) + +static void webkitDOMNativeXPathNSResolverFinalize(GObject* object) +{ + WebKitDOMNativeXPathNSResolverPrivate* priv = WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER_GET_PRIVATE(object); + priv->~WebKitDOMNativeXPathNSResolverPrivate(); + G_OBJECT_CLASS(webkit_dom_native_xpath_ns_resolver_parent_class)->finalize(object); +} + +static GObject* webkitDOMNativeXPathNSResolverConstructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_native_xpath_ns_resolver_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + WebKitDOMNativeXPathNSResolverPrivate* priv = WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::XPathNSResolver*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + return object; +} + +static void webkit_dom_native_xpath_ns_resolver_init(WebKitDOMNativeXPathNSResolver* resolver) +{ + WebKitDOMNativeXPathNSResolverPrivate* priv = WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER_GET_PRIVATE(resolver); + new (priv) WebKitDOMNativeXPathNSResolverPrivate(); +} + +static void webkit_dom_native_xpath_ns_resolver_class_init(WebKitDOMNativeXPathNSResolverClass* klass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMNativeXPathNSResolverPrivate)); + gobjectClass->constructor = webkitDOMNativeXPathNSResolverConstructor; + gobjectClass->finalize = webkitDOMNativeXPathNSResolverFinalize; +} + +static char* webkitDOMNativeXPathNSResolverLookupNamespaceURI(WebKitDOMXPathNSResolver* resolver, const char* prefix) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_NATIVE_XPATH_NS_RESOLVER(resolver), nullptr); + + return convertToUTF8String(WebKit::core(resolver)->lookupNamespaceURI(WTF::String::fromUTF8(prefix))); +} + +static void webkitDOMXPathNSResolverIfaceInit(WebKitDOMXPathNSResolverIface* iface) +{ + iface->lookup_namespace_uri = webkitDOMNativeXPathNSResolverLookupNamespaceURI; +} + +namespace WebKit { + +RefPtr<WebCore::XPathNSResolver> core(WebKitDOMXPathNSResolver* xPathNSResolver) +{ + if (!xPathNSResolver) + return nullptr; + + RefPtr<WebCore::XPathNSResolver> coreResolver; + if (WEBKIT_DOM_IS_NATIVE_XPATH_NS_RESOLVER(xPathNSResolver)) + coreResolver = core(WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER(xPathNSResolver)); + else + coreResolver = WebKit::GObjectXPathNSResolver::create(xPathNSResolver); + return coreResolver; +} + +WebKitDOMXPathNSResolver* kit(WebCore::XPathNSResolver* coreXPathNSResolver) +{ + if (!coreXPathNSResolver) + return nullptr; + + if (gpointer ret = DOMObjectCache::get(coreXPathNSResolver)) + return WEBKIT_DOM_XPATH_NS_RESOLVER(ret); + + return WEBKIT_DOM_XPATH_NS_RESOLVER(g_object_new(WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER, "core-object", coreXPathNSResolver, nullptr)); +} + +WebCore::XPathNSResolver* core(WebKitDOMNativeXPathNSResolver* xPathNSResolver) +{ + return xPathNSResolver ? static_cast<WebCore::XPathNSResolver*>(WEBKIT_DOM_OBJECT(xPathNSResolver)->coreObject) : nullptr; +} + +} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.h new file mode 100644 index 000000000..2c1646d7d --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef WebKitDOMXPathNSResolver_h +#define WebKitDOMXPathNSResolver_h + +#include <glib-object.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_XPATH_NS_RESOLVER (webkit_dom_xpath_ns_resolver_get_type ()) +#define WEBKIT_DOM_XPATH_NS_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEBKIT_DOM_TYPE_XPATH_NS_RESOLVER, WebKitDOMXPathNSResolver)) +#define WEBKIT_DOM_XPATH_NS_RESOLVER_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), WEBKIT_DOM_TYPE_XPATH_NS_RESOLVER, WebKitDOMXPathNSResolverIface)) +#define WEBKIT_DOM_IS_XPATH_NS_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEBKIT_DOM_TYPE_XPATH_NS_RESOLVER)) +#define WEBKIT_DOM_XPATH_NS_RESOLVER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), WEBKIT_DOM_TYPE_XPATH_NS_RESOLVER, WebKitDOMXPathNSResolverIface)) + +struct _WebKitDOMXPathNSResolverIface { + GTypeInterface gIface; + + /* virtual table */ + gchar *(* lookup_namespace_uri)(WebKitDOMXPathNSResolver *resolver, + const gchar *prefix); + + void (*_webkitdom_reserved0) (void); + void (*_webkitdom_reserved1) (void); + void (*_webkitdom_reserved2) (void); + void (*_webkitdom_reserved3) (void); +}; + + +WEBKIT_API GType webkit_dom_xpath_ns_resolver_get_type(void) G_GNUC_CONST; + +/** + * webkit_dom_xpath_ns_resolver_lookup_namespace_uri: + * @resolver: A #WebKitDOMXPathNSResolver + * @prefix: The prefix to lookup + * + * Returns: (transfer full): a #gchar + */ +WEBKIT_API gchar *webkit_dom_xpath_ns_resolver_lookup_namespace_uri(WebKitDOMXPathNSResolver *resolver, + const gchar *prefix); + +G_END_DECLS + +#endif /* WebKitDOMXPathNSResolver_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolverPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolverPrivate.h new file mode 100644 index 000000000..1e298a2e7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolverPrivate.h @@ -0,0 +1,42 @@ +/* + * 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. + */ + +#ifndef WebKitDOMXPathNSResolverPrivate_h +#define WebKitDOMXPathNSResolverPrivate_h + +#include <WebCore/XPathNSResolver.h> +#include <webkitdom/WebKitDOMXPathNSResolver.h> + +#define WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER (webkit_dom_native_xpath_ns_resolver_get_type()) +#define WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER, WebKitDOMNativeXPathNSResolver)) +#define WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER, WebKitDOMNativeXPathNSResolverClass) +#define WEBKIT_DOM_IS_NATIVE_XPATH_NS_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER)) +#define WEBKIT_DOM_IS_NATIVE_XPATH_NS_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER)) +#define WEBKIT_DOM_NATIVE_XPATH_NS_RESOLVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_NATIVE_XPATH_NS_RESOLVER, WebKitDOMNativeXPathNSResolverClass)) + +typedef struct _WebKitDOMNativeXPathNSResolver WebKitDOMNativeXPathNSResolver; +typedef struct _WebKitDOMNativeXPathNSResolverClass WebKitDOMNativeXPathNSResolverClass; + +namespace WebKit { +RefPtr<WebCore::XPathNSResolver> core(WebKitDOMXPathNSResolver*); +WebKitDOMXPathNSResolver* kit(WebCore::XPathNSResolver*); +WebCore::XPathNSResolver* core(WebKitDOMNativeXPathNSResolver*); +} // namespace WebKit + +#endif /* WebKitDOMXPathNSResolverPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp new file mode 100644 index 000000000..91cbbc96e --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp @@ -0,0 +1,338 @@ +/* + * 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 "WebKitDOMXPathResult.h" + +#include <WebCore/CSSImportRule.h> +#include "DOMObjectCache.h" +#include <WebCore/Document.h> +#include <WebCore/ExceptionCode.h> +#include <WebCore/ExceptionCodeDescription.h> +#include <WebCore/JSMainThreadExecState.h> +#include "WebKitDOMNodePrivate.h" +#include "WebKitDOMPrivate.h" +#include "WebKitDOMXPathResultPrivate.h" +#include "ConvertToUTF8String.h" +#include <wtf/GetPtr.h> +#include <wtf/RefPtr.h> + +#define WEBKIT_DOM_XPATH_RESULT_GET_PRIVATE(obj) G_TYPE_INSTANCE_GET_PRIVATE(obj, WEBKIT_DOM_TYPE_XPATH_RESULT, WebKitDOMXPathResultPrivate) + +typedef struct _WebKitDOMXPathResultPrivate { + RefPtr<WebCore::XPathResult> coreObject; +} WebKitDOMXPathResultPrivate; + +namespace WebKit { + +WebKitDOMXPathResult* kit(WebCore::XPathResult* obj) +{ + if (!obj) + return 0; + + if (gpointer ret = DOMObjectCache::get(obj)) + return WEBKIT_DOM_XPATH_RESULT(ret); + + return wrapXPathResult(obj); +} + +WebCore::XPathResult* core(WebKitDOMXPathResult* request) +{ + return request ? static_cast<WebCore::XPathResult*>(WEBKIT_DOM_OBJECT(request)->coreObject) : 0; +} + +WebKitDOMXPathResult* wrapXPathResult(WebCore::XPathResult* coreObject) +{ + ASSERT(coreObject); + return WEBKIT_DOM_XPATH_RESULT(g_object_new(WEBKIT_DOM_TYPE_XPATH_RESULT, "core-object", coreObject, nullptr)); +} + +} // namespace WebKit + +G_DEFINE_TYPE(WebKitDOMXPathResult, webkit_dom_xpath_result, WEBKIT_DOM_TYPE_OBJECT) + +enum { + PROP_0, + PROP_RESULT_TYPE, + PROP_NUMBER_VALUE, + PROP_STRING_VALUE, + PROP_BOOLEAN_VALUE, + PROP_SINGLE_NODE_VALUE, + PROP_INVALID_ITERATOR_STATE, + PROP_SNAPSHOT_LENGTH, +}; + +static void webkit_dom_xpath_result_finalize(GObject* object) +{ + WebKitDOMXPathResultPrivate* priv = WEBKIT_DOM_XPATH_RESULT_GET_PRIVATE(object); + + WebKit::DOMObjectCache::forget(priv->coreObject.get()); + + priv->~WebKitDOMXPathResultPrivate(); + G_OBJECT_CLASS(webkit_dom_xpath_result_parent_class)->finalize(object); +} + +static void webkit_dom_xpath_result_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) +{ + WebKitDOMXPathResult* self = WEBKIT_DOM_XPATH_RESULT(object); + + switch (propertyId) { + case PROP_RESULT_TYPE: + g_value_set_uint(value, webkit_dom_xpath_result_get_result_type(self)); + break; + case PROP_NUMBER_VALUE: + g_value_set_double(value, webkit_dom_xpath_result_get_number_value(self, nullptr)); + break; + case PROP_STRING_VALUE: + g_value_take_string(value, webkit_dom_xpath_result_get_string_value(self, nullptr)); + break; + case PROP_BOOLEAN_VALUE: + g_value_set_boolean(value, webkit_dom_xpath_result_get_boolean_value(self, nullptr)); + break; + case PROP_SINGLE_NODE_VALUE: + g_value_set_object(value, webkit_dom_xpath_result_get_single_node_value(self, nullptr)); + break; + case PROP_INVALID_ITERATOR_STATE: + g_value_set_boolean(value, webkit_dom_xpath_result_get_invalid_iterator_state(self)); + break; + case PROP_SNAPSHOT_LENGTH: + g_value_set_ulong(value, webkit_dom_xpath_result_get_snapshot_length(self, nullptr)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); + break; + } +} + +static GObject* webkit_dom_xpath_result_constructor(GType type, guint constructPropertiesCount, GObjectConstructParam* constructProperties) +{ + GObject* object = G_OBJECT_CLASS(webkit_dom_xpath_result_parent_class)->constructor(type, constructPropertiesCount, constructProperties); + + WebKitDOMXPathResultPrivate* priv = WEBKIT_DOM_XPATH_RESULT_GET_PRIVATE(object); + priv->coreObject = static_cast<WebCore::XPathResult*>(WEBKIT_DOM_OBJECT(object)->coreObject); + WebKit::DOMObjectCache::put(priv->coreObject.get(), object); + + return object; +} + +static void webkit_dom_xpath_result_class_init(WebKitDOMXPathResultClass* requestClass) +{ + GObjectClass* gobjectClass = G_OBJECT_CLASS(requestClass); + g_type_class_add_private(gobjectClass, sizeof(WebKitDOMXPathResultPrivate)); + gobjectClass->constructor = webkit_dom_xpath_result_constructor; + gobjectClass->finalize = webkit_dom_xpath_result_finalize; + gobjectClass->get_property = webkit_dom_xpath_result_get_property; + + g_object_class_install_property( + gobjectClass, + PROP_RESULT_TYPE, + g_param_spec_uint( + "result-type", + "XPathResult:result-type", + "read-only gushort XPathResult:result-type", + 0, G_MAXUINT, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_NUMBER_VALUE, + g_param_spec_double( + "number-value", + "XPathResult:number-value", + "read-only gdouble XPathResult:number-value", + -G_MAXDOUBLE, G_MAXDOUBLE, 0, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_STRING_VALUE, + g_param_spec_string( + "string-value", + "XPathResult:string-value", + "read-only gchar* XPathResult:string-value", + "", + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_BOOLEAN_VALUE, + g_param_spec_boolean( + "boolean-value", + "XPathResult:boolean-value", + "read-only gboolean XPathResult:boolean-value", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SINGLE_NODE_VALUE, + g_param_spec_object( + "single-node-value", + "XPathResult:single-node-value", + "read-only WebKitDOMNode* XPathResult:single-node-value", + WEBKIT_DOM_TYPE_NODE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_INVALID_ITERATOR_STATE, + g_param_spec_boolean( + "invalid-iterator-state", + "XPathResult:invalid-iterator-state", + "read-only gboolean XPathResult:invalid-iterator-state", + FALSE, + WEBKIT_PARAM_READABLE)); + + g_object_class_install_property( + gobjectClass, + PROP_SNAPSHOT_LENGTH, + g_param_spec_ulong( + "snapshot-length", + "XPathResult:snapshot-length", + "read-only gulong XPathResult:snapshot-length", + 0, G_MAXULONG, 0, + WEBKIT_PARAM_READABLE)); + +} + +static void webkit_dom_xpath_result_init(WebKitDOMXPathResult* request) +{ + WebKitDOMXPathResultPrivate* priv = WEBKIT_DOM_XPATH_RESULT_GET_PRIVATE(request); + new (priv) WebKitDOMXPathResultPrivate(); +} + +WebKitDOMNode* webkit_dom_xpath_result_iterate_next(WebKitDOMXPathResult* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::XPathResult* item = WebKit::core(self); + auto result = item->iterateNext(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +WebKitDOMNode* webkit_dom_xpath_result_snapshot_item(WebKitDOMXPathResult* self, gulong index, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::XPathResult* item = WebKit::core(self); + auto result = item->snapshotItem(index); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +gushort webkit_dom_xpath_result_get_result_type(WebKitDOMXPathResult* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), 0); + WebCore::XPathResult* item = WebKit::core(self); + gushort result = item->resultType(); + return result; +} + +gdouble webkit_dom_xpath_result_get_number_value(WebKitDOMXPathResult* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::XPathResult* item = WebKit::core(self); + auto result = item->numberValue(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return 0; + } + return result.releaseReturnValue(); +} + +gchar* webkit_dom_xpath_result_get_string_value(WebKitDOMXPathResult* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::XPathResult* item = WebKit::core(self); + auto result = item->stringValue(); + if (result.hasException()) + return nullptr; + return convertToUTF8String(result.releaseReturnValue()); +} + +gboolean webkit_dom_xpath_result_get_boolean_value(WebKitDOMXPathResult* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), FALSE); + g_return_val_if_fail(!error || !*error, FALSE); + WebCore::XPathResult* item = WebKit::core(self); + auto result = item->booleanValue(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return false; + } + return result.releaseReturnValue(); +} + +WebKitDOMNode* webkit_dom_xpath_result_get_single_node_value(WebKitDOMXPathResult* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::XPathResult* item = WebKit::core(self); + auto result = item->singleNodeValue(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + return nullptr; + } + return WebKit::kit(result.releaseReturnValue()); +} + +gboolean webkit_dom_xpath_result_get_invalid_iterator_state(WebKitDOMXPathResult* self) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), FALSE); + WebCore::XPathResult* item = WebKit::core(self); + gboolean result = item->invalidIteratorState(); + return result; +} + +gulong webkit_dom_xpath_result_get_snapshot_length(WebKitDOMXPathResult* self, GError** error) +{ + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_XPATH_RESULT(self), 0); + g_return_val_if_fail(!error || !*error, 0); + WebCore::XPathResult* item = WebKit::core(self); + auto result = item->snapshotLength(); + if (result.hasException()) { + WebCore::ExceptionCodeDescription ecdesc(result.releaseException().code()); + g_set_error_literal(error, g_quark_from_string("WEBKIT_DOM"), ecdesc.code, ecdesc.name); + } + return result.releaseReturnValue(); +} + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.h new file mode 100644 index 000000000..7703f8619 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.h @@ -0,0 +1,192 @@ +/* + * 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. + */ + +#if !defined(__WEBKITDOM_H_INSIDE__) && !defined(BUILDING_WEBKIT) +#error "Only <webkitdom/webkitdom.h> can be included directly." +#endif + +#ifndef WebKitDOMXPathResult_h +#define WebKitDOMXPathResult_h + +#include <glib-object.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/webkitdomdefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_DOM_TYPE_XPATH_RESULT (webkit_dom_xpath_result_get_type()) +#define WEBKIT_DOM_XPATH_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_DOM_TYPE_XPATH_RESULT, WebKitDOMXPathResult)) +#define WEBKIT_DOM_XPATH_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_DOM_TYPE_XPATH_RESULT, WebKitDOMXPathResultClass) +#define WEBKIT_DOM_IS_XPATH_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_DOM_TYPE_XPATH_RESULT)) +#define WEBKIT_DOM_IS_XPATH_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_DOM_TYPE_XPATH_RESULT)) +#define WEBKIT_DOM_XPATH_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_DOM_TYPE_XPATH_RESULT, WebKitDOMXPathResultClass)) + +/** + * WEBKIT_DOM_XPATH_RESULT_ANY_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_ANY_TYPE 0 + +/** + * WEBKIT_DOM_XPATH_RESULT_NUMBER_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_NUMBER_TYPE 1 + +/** + * WEBKIT_DOM_XPATH_RESULT_STRING_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_STRING_TYPE 2 + +/** + * WEBKIT_DOM_XPATH_RESULT_BOOLEAN_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_BOOLEAN_TYPE 3 + +/** + * WEBKIT_DOM_XPATH_RESULT_UNORDERED_NODE_ITERATOR_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_UNORDERED_NODE_ITERATOR_TYPE 4 + +/** + * WEBKIT_DOM_XPATH_RESULT_ORDERED_NODE_ITERATOR_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_ORDERED_NODE_ITERATOR_TYPE 5 + +/** + * WEBKIT_DOM_XPATH_RESULT_UNORDERED_NODE_SNAPSHOT_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_UNORDERED_NODE_SNAPSHOT_TYPE 6 + +/** + * WEBKIT_DOM_XPATH_RESULT_ORDERED_NODE_SNAPSHOT_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_ORDERED_NODE_SNAPSHOT_TYPE 7 + +/** + * WEBKIT_DOM_XPATH_RESULT_ANY_UNORDERED_NODE_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_ANY_UNORDERED_NODE_TYPE 8 + +/** + * WEBKIT_DOM_XPATH_RESULT_FIRST_ORDERED_NODE_TYPE: + */ +#define WEBKIT_DOM_XPATH_RESULT_FIRST_ORDERED_NODE_TYPE 9 + +struct _WebKitDOMXPathResult { + WebKitDOMObject parent_instance; +}; + +struct _WebKitDOMXPathResultClass { + WebKitDOMObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_dom_xpath_result_get_type(void); + +/** + * webkit_dom_xpath_result_iterate_next: + * @self: A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_xpath_result_iterate_next(WebKitDOMXPathResult* self, GError** error); + +/** + * webkit_dom_xpath_result_snapshot_item: + * @self: A #WebKitDOMXPathResult + * @index: A #gulong + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_xpath_result_snapshot_item(WebKitDOMXPathResult* self, gulong index, GError** error); + +/** + * webkit_dom_xpath_result_get_result_type: + * @self: A #WebKitDOMXPathResult + * + * Returns: A #gushort +**/ +WEBKIT_API gushort +webkit_dom_xpath_result_get_result_type(WebKitDOMXPathResult* self); + +/** + * webkit_dom_xpath_result_get_number_value: + * @self: A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: A #gdouble +**/ +WEBKIT_API gdouble +webkit_dom_xpath_result_get_number_value(WebKitDOMXPathResult* self, GError** error); + +/** + * webkit_dom_xpath_result_get_string_value: + * @self: A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: A #gchar +**/ +WEBKIT_API gchar* +webkit_dom_xpath_result_get_string_value(WebKitDOMXPathResult* self, GError** error); + +/** + * webkit_dom_xpath_result_get_boolean_value: + * @self: A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_xpath_result_get_boolean_value(WebKitDOMXPathResult* self, GError** error); + +/** + * webkit_dom_xpath_result_get_single_node_value: + * @self: A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: (transfer none): A #WebKitDOMNode +**/ +WEBKIT_API WebKitDOMNode* +webkit_dom_xpath_result_get_single_node_value(WebKitDOMXPathResult* self, GError** error); + +/** + * webkit_dom_xpath_result_get_invalid_iterator_state: + * @self: A #WebKitDOMXPathResult + * + * Returns: A #gboolean +**/ +WEBKIT_API gboolean +webkit_dom_xpath_result_get_invalid_iterator_state(WebKitDOMXPathResult* self); + +/** + * webkit_dom_xpath_result_get_snapshot_length: + * @self: A #WebKitDOMXPathResult + * @error: #GError + * + * Returns: A #gulong +**/ +WEBKIT_API gulong +webkit_dom_xpath_result_get_snapshot_length(WebKitDOMXPathResult* self, GError** error); + +G_END_DECLS + +#endif /* WebKitDOMXPathResult_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResultPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResultPrivate.h new file mode 100644 index 000000000..f72b5ae26 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResultPrivate.h @@ -0,0 +1,32 @@ +/* + * 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. + */ + +#ifndef WebKitDOMXPathResultPrivate_h +#define WebKitDOMXPathResultPrivate_h + +#include <WebCore/XPathResult.h> +#include <webkitdom/WebKitDOMXPathResult.h> + +namespace WebKit { +WebKitDOMXPathResult* wrapXPathResult(WebCore::XPathResult*); +WebKitDOMXPathResult* kit(WebCore::XPathResult*); +WebCore::XPathResult* core(WebKitDOMXPathResult*); +} // namespace WebKit + +#endif /* WebKitDOMXPathResultPrivate_h */ diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt new file mode 100644 index 000000000..0aa21f14b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt @@ -0,0 +1,3203 @@ +<SECTION> +<FILE>WebKitDOMEventTarget</FILE> +<TITLE>WebKitDOMEventTarget</TITLE> + +webkit_dom_event_target_dispatch_event +webkit_dom_event_target_add_event_listener +webkit_dom_event_target_remove_event_listener +webkit_dom_event_target_add_event_listener_with_closure +webkit_dom_event_target_remove_event_listener_with_closure + +<SUBSECTION Standard> +WebKitDOMEventTargetIface +WEBKIT_DOM_TYPE_EVENT_TARGET +WEBKIT_DOM_EVENT_TARGET +WEBKIT_DOM_IS_EVENT_TARGET +WEBKIT_DOM_EVENT_TARGET_CLASS +WEBKIT_DOM_EVENT_TARGET_GET_IFACE + +<SUBSECTION Private> +webkit_dom_event_target_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMNodeFilter</FILE> +<TITLE>WebKitDOMNodeFilter</TITLE> + +WEBKIT_DOM_NODE_FILTER_ACCEPT +WEBKIT_DOM_NODE_FILTER_REJECT +WEBKIT_DOM_NODE_FILTER_SHOW_ALL +WEBKIT_DOM_NODE_FILTER_SHOW_ATTRIBUTE +WEBKIT_DOM_NODE_FILTER_SHOW_CDATA_SECTION +WEBKIT_DOM_NODE_FILTER_SHOW_COMMENT +WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT +WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_FRAGMENT +WEBKIT_DOM_NODE_FILTER_SHOW_DOCUMENT_TYPE +WEBKIT_DOM_NODE_FILTER_SHOW_ELEMENT +WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY +WEBKIT_DOM_NODE_FILTER_SHOW_ENTITY_REFERENCE +WEBKIT_DOM_NODE_FILTER_SHOW_NOTATION +WEBKIT_DOM_NODE_FILTER_SHOW_PROCESSING_INSTRUCTION +WEBKIT_DOM_NODE_FILTER_SHOW_TEXT +WEBKIT_DOM_NODE_FILTER_SKIP +webkit_dom_node_filter_accept_node + +<SUBSECTION Standard> +WebKitDOMNodeFilterIface +WEBKIT_DOM_TYPE_NODE_FILTER +WEBKIT_DOM_NODE_FILTER +WEBKIT_DOM_IS_NODE_FILTER +WEBKIT_DOM_NODE_FILTER_CLASS +WEBKIT_DOM_NODE_FILTER_GET_IFACE + +<SUBSECTION Private> +webkit_dom_node_filter_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMObject</FILE> +<TITLE>WebKitDOMObject</TITLE> +WebKitDOMObject + + + +<SUBSECTION Standard> +WebKitDOMObjectClass +WEBKIT_DOM_TYPE_OBJECT +WEBKIT_DOM_OBJECT +WEBKIT_DOM_IS_OBJECT +WEBKIT_DOM_OBJECT_CLASS +WEBKIT_DOM_IS_OBJECT_CLASS +WEBKIT_DOM_OBJECT_GET_CLASS + +<SUBSECTION Private> +WebKitDOMObjectPrivate +webkit_dom_object_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMXPathNSResolver</FILE> +<TITLE>WebKitDOMXPathNSResolver</TITLE> + +webkit_dom_xpath_ns_resolver_lookup_namespace_uri + +<SUBSECTION Standard> +WebKitDOMXPathNSResolverIface +WEBKIT_DOM_TYPE_XPATH_NS_RESOLVER +WEBKIT_DOM_XPATH_NS_RESOLVER +WEBKIT_DOM_IS_XPATH_NS_RESOLVER +WEBKIT_DOM_XPATH_NS_RESOLVER_CLASS +WEBKIT_DOM_XPATH_NS_RESOLVER_GET_IFACE + +<SUBSECTION Private> +webkit_dom_xpath_ns_resolver_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMCSSRule</FILE> +<TITLE>WebKitDOMCSSRule</TITLE> +WebKitDOMCSSRule + +WEBKIT_DOM_CSS_RULE_UNKNOWN_RULE +WEBKIT_DOM_CSS_RULE_STYLE_RULE +WEBKIT_DOM_CSS_RULE_CHARSET_RULE +WEBKIT_DOM_CSS_RULE_IMPORT_RULE +WEBKIT_DOM_CSS_RULE_MEDIA_RULE +WEBKIT_DOM_CSS_RULE_FONT_FACE_RULE +WEBKIT_DOM_CSS_RULE_PAGE_RULE +webkit_dom_css_rule_get_rule_type +webkit_dom_css_rule_get_css_text +webkit_dom_css_rule_set_css_text +webkit_dom_css_rule_get_parent_style_sheet +webkit_dom_css_rule_get_parent_rule + +<SUBSECTION Standard> +WebKitDOMCSSRuleClass +WEBKIT_DOM_TYPE_CSS_RULE +WEBKIT_DOM_CSS_RULE +WEBKIT_DOM_IS_CSS_RULE +WEBKIT_DOM_CSS_RULE_CLASS +WEBKIT_DOM_IS_CSS_RULE_CLASS +WEBKIT_DOM_CSS_RULE_GET_CLASS + +<SUBSECTION Private> +webkit_dom_css_rule_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMCSSRuleList</FILE> +<TITLE>WebKitDOMCSSRuleList</TITLE> +WebKitDOMCSSRuleList + +webkit_dom_css_rule_list_item +webkit_dom_css_rule_list_get_length + +<SUBSECTION Standard> +WebKitDOMCSSRuleListClass +WEBKIT_DOM_TYPE_CSS_RULE_LIST +WEBKIT_DOM_CSS_RULE_LIST +WEBKIT_DOM_IS_CSS_RULE_LIST +WEBKIT_DOM_CSS_RULE_LIST_CLASS +WEBKIT_DOM_IS_CSS_RULE_LIST_CLASS +WEBKIT_DOM_CSS_RULE_LIST_GET_CLASS + +<SUBSECTION Private> +webkit_dom_css_rule_list_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMCSSStyleDeclaration</FILE> +<TITLE>WebKitDOMCSSStyleDeclaration</TITLE> +WebKitDOMCSSStyleDeclaration + +webkit_dom_css_style_declaration_get_property_value +webkit_dom_css_style_declaration_remove_property +webkit_dom_css_style_declaration_get_property_priority +webkit_dom_css_style_declaration_set_property +webkit_dom_css_style_declaration_item +webkit_dom_css_style_declaration_get_property_shorthand +webkit_dom_css_style_declaration_is_property_implicit +webkit_dom_css_style_declaration_get_css_text +webkit_dom_css_style_declaration_set_css_text +webkit_dom_css_style_declaration_get_length +webkit_dom_css_style_declaration_get_parent_rule + +<SUBSECTION Standard> +WebKitDOMCSSStyleDeclarationClass +WEBKIT_DOM_TYPE_CSS_STYLE_DECLARATION +WEBKIT_DOM_CSS_STYLE_DECLARATION +WEBKIT_DOM_IS_CSS_STYLE_DECLARATION +WEBKIT_DOM_CSS_STYLE_DECLARATION_CLASS +WEBKIT_DOM_IS_CSS_STYLE_DECLARATION_CLASS +WEBKIT_DOM_CSS_STYLE_DECLARATION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_css_style_declaration_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMCSSStyleSheet</FILE> +<TITLE>WebKitDOMCSSStyleSheet</TITLE> +WebKitDOMCSSStyleSheet + +webkit_dom_css_style_sheet_insert_rule +webkit_dom_css_style_sheet_delete_rule +webkit_dom_css_style_sheet_add_rule +webkit_dom_css_style_sheet_remove_rule +webkit_dom_css_style_sheet_get_owner_rule +webkit_dom_css_style_sheet_get_css_rules +webkit_dom_css_style_sheet_get_rules + +<SUBSECTION Standard> +WebKitDOMCSSStyleSheetClass +WEBKIT_DOM_TYPE_CSS_STYLE_SHEET +WEBKIT_DOM_CSS_STYLE_SHEET +WEBKIT_DOM_IS_CSS_STYLE_SHEET +WEBKIT_DOM_CSS_STYLE_SHEET_CLASS +WEBKIT_DOM_IS_CSS_STYLE_SHEET_CLASS +WEBKIT_DOM_CSS_STYLE_SHEET_GET_CLASS + +<SUBSECTION Private> +webkit_dom_css_style_sheet_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMCSSValue</FILE> +<TITLE>WebKitDOMCSSValue</TITLE> +WebKitDOMCSSValue + +WEBKIT_DOM_CSS_VALUE_CSS_INHERIT +WEBKIT_DOM_CSS_VALUE_CSS_PRIMITIVE_VALUE +WEBKIT_DOM_CSS_VALUE_CSS_VALUE_LIST +WEBKIT_DOM_CSS_VALUE_CSS_CUSTOM +webkit_dom_css_value_get_css_text +webkit_dom_css_value_set_css_text +webkit_dom_css_value_get_css_value_type + +<SUBSECTION Standard> +WebKitDOMCSSValueClass +WEBKIT_DOM_TYPE_CSS_VALUE +WEBKIT_DOM_CSS_VALUE +WEBKIT_DOM_IS_CSS_VALUE +WEBKIT_DOM_CSS_VALUE_CLASS +WEBKIT_DOM_IS_CSS_VALUE_CLASS +WEBKIT_DOM_CSS_VALUE_GET_CLASS + +<SUBSECTION Private> +webkit_dom_css_value_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMMediaList</FILE> +<TITLE>WebKitDOMMediaList</TITLE> +WebKitDOMMediaList + +webkit_dom_media_list_item +webkit_dom_media_list_delete_medium +webkit_dom_media_list_append_medium +webkit_dom_media_list_get_media_text +webkit_dom_media_list_set_media_text +webkit_dom_media_list_get_length + +<SUBSECTION Standard> +WebKitDOMMediaListClass +WEBKIT_DOM_TYPE_MEDIA_LIST +WEBKIT_DOM_MEDIA_LIST +WEBKIT_DOM_IS_MEDIA_LIST +WEBKIT_DOM_MEDIA_LIST_CLASS +WEBKIT_DOM_IS_MEDIA_LIST_CLASS +WEBKIT_DOM_MEDIA_LIST_GET_CLASS + +<SUBSECTION Private> +webkit_dom_media_list_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMStyleSheet</FILE> +<TITLE>WebKitDOMStyleSheet</TITLE> +WebKitDOMStyleSheet + +webkit_dom_style_sheet_get_content_type +webkit_dom_style_sheet_get_disabled +webkit_dom_style_sheet_set_disabled +webkit_dom_style_sheet_get_owner_node +webkit_dom_style_sheet_get_parent_style_sheet +webkit_dom_style_sheet_get_href +webkit_dom_style_sheet_get_title +webkit_dom_style_sheet_get_media + +<SUBSECTION Standard> +WebKitDOMStyleSheetClass +WEBKIT_DOM_TYPE_STYLE_SHEET +WEBKIT_DOM_STYLE_SHEET +WEBKIT_DOM_IS_STYLE_SHEET +WEBKIT_DOM_STYLE_SHEET_CLASS +WEBKIT_DOM_IS_STYLE_SHEET_CLASS +WEBKIT_DOM_STYLE_SHEET_GET_CLASS + +<SUBSECTION Private> +webkit_dom_style_sheet_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMStyleSheetList</FILE> +<TITLE>WebKitDOMStyleSheetList</TITLE> +WebKitDOMStyleSheetList + +webkit_dom_style_sheet_list_item +webkit_dom_style_sheet_list_get_length + +<SUBSECTION Standard> +WebKitDOMStyleSheetListClass +WEBKIT_DOM_TYPE_STYLE_SHEET_LIST +WEBKIT_DOM_STYLE_SHEET_LIST +WEBKIT_DOM_IS_STYLE_SHEET_LIST +WEBKIT_DOM_STYLE_SHEET_LIST_CLASS +WEBKIT_DOM_IS_STYLE_SHEET_LIST_CLASS +WEBKIT_DOM_STYLE_SHEET_LIST_GET_CLASS + +<SUBSECTION Private> +webkit_dom_style_sheet_list_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMAttr</FILE> +<TITLE>WebKitDOMAttr</TITLE> +WebKitDOMAttr + +webkit_dom_attr_get_name +webkit_dom_attr_get_specified +webkit_dom_attr_get_value +webkit_dom_attr_set_value +webkit_dom_attr_get_owner_element +webkit_dom_attr_get_namespace_uri +webkit_dom_attr_get_prefix +webkit_dom_attr_get_local_name + +<SUBSECTION Standard> +WebKitDOMAttrClass +WEBKIT_DOM_TYPE_ATTR +WEBKIT_DOM_ATTR +WEBKIT_DOM_IS_ATTR +WEBKIT_DOM_ATTR_CLASS +WEBKIT_DOM_IS_ATTR_CLASS +WEBKIT_DOM_ATTR_GET_CLASS + +<SUBSECTION Private> +webkit_dom_attr_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMCDATASection</FILE> +<TITLE>WebKitDOMCDATASection</TITLE> +WebKitDOMCDATASection + + + +<SUBSECTION Standard> +WebKitDOMCDATASectionClass +WEBKIT_DOM_TYPE_CDATA_SECTION +WEBKIT_DOM_CDATA_SECTION +WEBKIT_DOM_IS_CDATA_SECTION +WEBKIT_DOM_CDATA_SECTION_CLASS +WEBKIT_DOM_IS_CDATA_SECTION_CLASS +WEBKIT_DOM_CDATA_SECTION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_cdata_section_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMCharacterData</FILE> +<TITLE>WebKitDOMCharacterData</TITLE> +WebKitDOMCharacterData + +webkit_dom_character_data_substring_data +webkit_dom_character_data_append_data +webkit_dom_character_data_insert_data +webkit_dom_character_data_delete_data +webkit_dom_character_data_replace_data +webkit_dom_character_data_get_data +webkit_dom_character_data_set_data +webkit_dom_character_data_get_length + +<SUBSECTION Standard> +WebKitDOMCharacterDataClass +WEBKIT_DOM_TYPE_CHARACTER_DATA +WEBKIT_DOM_CHARACTER_DATA +WEBKIT_DOM_IS_CHARACTER_DATA +WEBKIT_DOM_CHARACTER_DATA_CLASS +WEBKIT_DOM_IS_CHARACTER_DATA_CLASS +WEBKIT_DOM_CHARACTER_DATA_GET_CLASS + +<SUBSECTION Private> +webkit_dom_character_data_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMComment</FILE> +<TITLE>WebKitDOMComment</TITLE> +WebKitDOMComment + + + +<SUBSECTION Standard> +WebKitDOMCommentClass +WEBKIT_DOM_TYPE_COMMENT +WEBKIT_DOM_COMMENT +WEBKIT_DOM_IS_COMMENT +WEBKIT_DOM_COMMENT_CLASS +WEBKIT_DOM_IS_COMMENT_CLASS +WEBKIT_DOM_COMMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_comment_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMDOMImplementation</FILE> +<TITLE>WebKitDOMDOMImplementation</TITLE> +WebKitDOMDOMImplementation + +webkit_dom_dom_implementation_has_feature +webkit_dom_dom_implementation_create_document_type +webkit_dom_dom_implementation_create_document +webkit_dom_dom_implementation_create_css_style_sheet +webkit_dom_dom_implementation_create_html_document + +<SUBSECTION Standard> +WebKitDOMDOMImplementationClass +WEBKIT_DOM_TYPE_DOM_IMPLEMENTATION +WEBKIT_DOM_DOM_IMPLEMENTATION +WEBKIT_DOM_IS_DOM_IMPLEMENTATION +WEBKIT_DOM_DOM_IMPLEMENTATION_CLASS +WEBKIT_DOM_IS_DOM_IMPLEMENTATION_CLASS +WEBKIT_DOM_DOM_IMPLEMENTATION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_dom_implementation_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMDocument</FILE> +<TITLE>WebKitDOMDocument</TITLE> +WebKitDOMDocument + +webkit_dom_document_create_element +webkit_dom_document_create_document_fragment +webkit_dom_document_create_text_node +webkit_dom_document_create_comment +webkit_dom_document_create_cdata_section +webkit_dom_document_create_processing_instruction +webkit_dom_document_create_attribute +webkit_dom_document_get_elements_by_tag_name_as_html_collection +webkit_dom_document_import_node +webkit_dom_document_create_element_ns +webkit_dom_document_create_attribute_ns +webkit_dom_document_get_elements_by_tag_name_ns_as_html_collection +webkit_dom_document_adopt_node +webkit_dom_document_create_event +webkit_dom_document_create_range +webkit_dom_document_create_node_iterator +webkit_dom_document_create_tree_walker +webkit_dom_document_get_override_style +webkit_dom_document_create_expression +webkit_dom_document_create_ns_resolver +webkit_dom_document_evaluate +webkit_dom_document_exec_command +webkit_dom_document_query_command_enabled +webkit_dom_document_query_command_indeterm +webkit_dom_document_query_command_state +webkit_dom_document_query_command_supported +webkit_dom_document_query_command_value +webkit_dom_document_get_elements_by_name +webkit_dom_document_element_from_point +webkit_dom_document_create_css_style_declaration +webkit_dom_document_get_elements_by_class_name_as_html_collection +webkit_dom_document_has_focus +webkit_dom_document_get_element_by_id +webkit_dom_document_query_selector +webkit_dom_document_query_selector_all +webkit_dom_document_get_doctype +webkit_dom_document_get_implementation +webkit_dom_document_get_document_element +webkit_dom_document_get_input_encoding +webkit_dom_document_get_xml_encoding +webkit_dom_document_get_xml_version +webkit_dom_document_set_xml_version +webkit_dom_document_get_xml_standalone +webkit_dom_document_set_xml_standalone +webkit_dom_document_get_document_uri +webkit_dom_document_set_document_uri +webkit_dom_document_get_default_view +webkit_dom_document_get_style_sheets +webkit_dom_document_get_title +webkit_dom_document_set_title +webkit_dom_document_get_design_mode +webkit_dom_document_set_design_mode +webkit_dom_document_get_referrer +webkit_dom_document_get_domain +webkit_dom_document_get_url +webkit_dom_document_get_cookie +webkit_dom_document_set_cookie +webkit_dom_document_get_body +webkit_dom_document_set_body +webkit_dom_document_get_head +webkit_dom_document_get_images +webkit_dom_document_get_applets +webkit_dom_document_get_links +webkit_dom_document_get_forms +webkit_dom_document_get_anchors +webkit_dom_document_get_embeds +webkit_dom_document_get_plugins +webkit_dom_document_get_scripts +webkit_dom_document_get_last_modified +webkit_dom_document_get_charset +webkit_dom_document_set_charset +webkit_dom_document_get_ready_state +webkit_dom_document_get_character_set +webkit_dom_document_get_preferred_stylesheet_set +webkit_dom_document_get_selected_stylesheet_set +webkit_dom_document_set_selected_stylesheet_set +webkit_dom_document_get_active_element +webkit_dom_document_get_compat_mode +webkit_dom_document_get_elements_by_class_name +webkit_dom_document_get_elements_by_tag_name +webkit_dom_document_get_elements_by_tag_name_ns +webkit_dom_document_create_entity_reference +webkit_dom_document_get_default_charset +webkit_dom_document_caret_range_from_point +webkit_dom_document_webkit_cancel_fullscreen +webkit_dom_document_webkit_exit_fullscreen +webkit_dom_document_exit_pointer_lock +webkit_dom_document_get_content_type +webkit_dom_document_get_dir +webkit_dom_document_set_dir +webkit_dom_document_get_webkit_is_fullscreen +webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed +webkit_dom_document_get_webkit_current_fullscreen_element +webkit_dom_document_get_webkit_fullscreen_enabled +webkit_dom_document_get_webkit_fullscreen_element +webkit_dom_document_get_pointer_lock_element +webkit_dom_document_get_visibility_state +webkit_dom_document_get_hidden +webkit_dom_document_get_current_script +webkit_dom_document_get_origin +webkit_dom_document_get_scrolling_element +webkit_dom_document_get_children +webkit_dom_document_get_first_element_child +webkit_dom_document_get_last_element_child +webkit_dom_document_get_child_element_count + +<SUBSECTION Standard> +WebKitDOMDocumentClass +WEBKIT_DOM_TYPE_DOCUMENT +WEBKIT_DOM_DOCUMENT +WEBKIT_DOM_IS_DOCUMENT +WEBKIT_DOM_DOCUMENT_CLASS +WEBKIT_DOM_IS_DOCUMENT_CLASS +WEBKIT_DOM_DOCUMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_document_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMDocumentFragment</FILE> +<TITLE>WebKitDOMDocumentFragment</TITLE> +WebKitDOMDocumentFragment + +webkit_dom_document_fragment_get_element_by_id +webkit_dom_document_fragment_query_selector +webkit_dom_document_fragment_query_selector_all +webkit_dom_document_fragment_get_children +webkit_dom_document_fragment_get_first_element_child +webkit_dom_document_fragment_get_last_element_child +webkit_dom_document_fragment_get_child_element_count + +<SUBSECTION Standard> +WebKitDOMDocumentFragmentClass +WEBKIT_DOM_TYPE_DOCUMENT_FRAGMENT +WEBKIT_DOM_DOCUMENT_FRAGMENT +WEBKIT_DOM_IS_DOCUMENT_FRAGMENT +WEBKIT_DOM_DOCUMENT_FRAGMENT_CLASS +WEBKIT_DOM_IS_DOCUMENT_FRAGMENT_CLASS +WEBKIT_DOM_DOCUMENT_FRAGMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_document_fragment_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMDocumentType</FILE> +<TITLE>WebKitDOMDocumentType</TITLE> +WebKitDOMDocumentType + +webkit_dom_document_type_get_name +webkit_dom_document_type_get_entities +webkit_dom_document_type_get_notations +webkit_dom_document_type_get_internal_subset +webkit_dom_document_type_get_public_id +webkit_dom_document_type_get_system_id + +<SUBSECTION Standard> +WebKitDOMDocumentTypeClass +WEBKIT_DOM_TYPE_DOCUMENT_TYPE +WEBKIT_DOM_DOCUMENT_TYPE +WEBKIT_DOM_IS_DOCUMENT_TYPE +WEBKIT_DOM_DOCUMENT_TYPE_CLASS +WEBKIT_DOM_IS_DOCUMENT_TYPE_CLASS +WEBKIT_DOM_DOCUMENT_TYPE_GET_CLASS + +<SUBSECTION Private> +webkit_dom_document_type_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMElement</FILE> +<TITLE>WebKitDOMElement</TITLE> +WebKitDOMElement + +WEBKIT_DOM_ELEMENT_ALLOW_KEYBOARD_INPUT + +webkit_dom_element_get_attribute +webkit_dom_element_set_attribute +webkit_dom_element_remove_attribute +webkit_dom_element_get_attribute_node +webkit_dom_element_set_attribute_node +webkit_dom_element_remove_attribute_node +webkit_dom_element_get_elements_by_tag_name_as_html_collection +webkit_dom_element_has_attributes +webkit_dom_element_get_attribute_ns +webkit_dom_element_set_attribute_ns +webkit_dom_element_remove_attribute_ns +webkit_dom_element_get_elements_by_tag_name_ns_as_html_collection +webkit_dom_element_get_attribute_node_ns +webkit_dom_element_set_attribute_node_ns +webkit_dom_element_has_attribute +webkit_dom_element_has_attribute_ns +webkit_dom_element_focus +webkit_dom_element_blur +webkit_dom_element_scroll_into_view +webkit_dom_element_scroll_into_view_if_needed +webkit_dom_element_scroll_by_lines +webkit_dom_element_scroll_by_pages +webkit_dom_element_get_elements_by_class_name_as_html_collection +webkit_dom_element_query_selector +webkit_dom_element_query_selector_all +webkit_dom_element_get_tag_name +webkit_dom_element_get_attributes +webkit_dom_element_get_style +webkit_dom_element_get_id +webkit_dom_element_set_id +webkit_dom_element_get_namespace_uri +webkit_dom_element_get_prefix +webkit_dom_element_get_local_name +webkit_dom_element_get_offset_left +webkit_dom_element_get_offset_top +webkit_dom_element_get_offset_width +webkit_dom_element_get_offset_height +webkit_dom_element_get_client_left +webkit_dom_element_get_client_top +webkit_dom_element_get_client_width +webkit_dom_element_get_client_height +webkit_dom_element_get_scroll_left +webkit_dom_element_set_scroll_left +webkit_dom_element_get_scroll_top +webkit_dom_element_set_scroll_top +webkit_dom_element_get_scroll_width +webkit_dom_element_get_scroll_height +webkit_dom_element_get_offset_parent +webkit_dom_element_get_inner_html +webkit_dom_element_set_inner_html +webkit_dom_element_get_outer_html +webkit_dom_element_set_outer_html +webkit_dom_element_get_class_name +webkit_dom_element_set_class_name +webkit_dom_element_get_previous_element_sibling +webkit_dom_element_get_next_element_sibling +webkit_dom_element_get_children +webkit_dom_element_get_first_element_child +webkit_dom_element_get_last_element_child +webkit_dom_element_get_child_element_count +webkit_dom_element_get_elements_by_tag_name +webkit_dom_element_get_elements_by_tag_name_ns +webkit_dom_element_get_elements_by_class_name +webkit_dom_element_matches +webkit_dom_element_closest +webkit_dom_element_webkit_matches_selector +webkit_dom_element_webkit_request_fullscreen +webkit_dom_element_insert_adjacent_element +webkit_dom_element_insert_adjacent_html +webkit_dom_element_insert_adjacent_text +webkit_dom_element_request_pointer_lock +webkit_dom_element_remove +webkit_dom_element_get_class_list +webkit_dom_element_get_webkit_region_overset + + +<SUBSECTION Standard> +WebKitDOMElementClass +WEBKIT_DOM_TYPE_ELEMENT +WEBKIT_DOM_ELEMENT +WEBKIT_DOM_IS_ELEMENT +WEBKIT_DOM_ELEMENT_CLASS +WEBKIT_DOM_IS_ELEMENT_CLASS +WEBKIT_DOM_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMEvent</FILE> +<TITLE>WebKitDOMEvent</TITLE> +WebKitDOMEvent + +WEBKIT_DOM_EVENT_NONE +WEBKIT_DOM_EVENT_CAPTURING_PHASE +WEBKIT_DOM_EVENT_AT_TARGET +WEBKIT_DOM_EVENT_BUBBLING_PHASE +WEBKIT_DOM_EVENT_MOUSEDOWN +WEBKIT_DOM_EVENT_MOUSEUP +WEBKIT_DOM_EVENT_MOUSEOVER +WEBKIT_DOM_EVENT_MOUSEOUT +WEBKIT_DOM_EVENT_MOUSEMOVE +WEBKIT_DOM_EVENT_MOUSEDRAG +WEBKIT_DOM_EVENT_CLICK +WEBKIT_DOM_EVENT_DBLCLICK +WEBKIT_DOM_EVENT_KEYDOWN +WEBKIT_DOM_EVENT_KEYUP +WEBKIT_DOM_EVENT_KEYPRESS +WEBKIT_DOM_EVENT_DRAGDROP +WEBKIT_DOM_EVENT_FOCUS +WEBKIT_DOM_EVENT_BLUR +WEBKIT_DOM_EVENT_SELECT +WEBKIT_DOM_EVENT_CHANGE +webkit_dom_event_stop_propagation +webkit_dom_event_prevent_default +webkit_dom_event_init_event +webkit_dom_event_get_event_type +webkit_dom_event_get_target +webkit_dom_event_get_current_target +webkit_dom_event_get_event_phase +webkit_dom_event_get_bubbles +webkit_dom_event_get_cancelable +webkit_dom_event_get_time_stamp +webkit_dom_event_get_src_element +webkit_dom_event_get_return_value +webkit_dom_event_set_return_value +webkit_dom_event_get_cancel_bubble +webkit_dom_event_set_cancel_bubble + +<SUBSECTION Standard> +WebKitDOMEventClass +WEBKIT_DOM_TYPE_EVENT +WEBKIT_DOM_EVENT +WEBKIT_DOM_IS_EVENT +WEBKIT_DOM_EVENT_CLASS +WEBKIT_DOM_IS_EVENT_CLASS +WEBKIT_DOM_EVENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_event_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMKeyboardEvent</FILE> +<TITLE>WebKitDOMKeyboardEvent</TITLE> +WebKitDOMKeyboardEvent + +WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_STANDARD +WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_LEFT +WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_RIGHT +WEBKIT_DOM_KEYBOARD_EVENT_KEY_LOCATION_NUMPAD +webkit_dom_keyboard_event_get_modifier_state +webkit_dom_keyboard_event_init_keyboard_event +webkit_dom_keyboard_event_get_key_identifier +webkit_dom_keyboard_event_get_key_location +webkit_dom_keyboard_event_get_ctrl_key +webkit_dom_keyboard_event_get_shift_key +webkit_dom_keyboard_event_get_alt_key +webkit_dom_keyboard_event_get_meta_key +webkit_dom_keyboard_event_get_alt_graph_key + +<SUBSECTION Standard> +WebKitDOMKeyboardEventClass +WEBKIT_DOM_TYPE_KEYBOARD_EVENT +WEBKIT_DOM_KEYBOARD_EVENT +WEBKIT_DOM_IS_KEYBOARD_EVENT +WEBKIT_DOM_KEYBOARD_EVENT_CLASS +WEBKIT_DOM_IS_KEYBOARD_EVENT_CLASS +WEBKIT_DOM_KEYBOARD_EVENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_keyboard_event_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMMouseEvent</FILE> +<TITLE>WebKitDOMMouseEvent</TITLE> +WebKitDOMMouseEvent + +webkit_dom_mouse_event_init_mouse_event +webkit_dom_mouse_event_get_screen_x +webkit_dom_mouse_event_get_screen_y +webkit_dom_mouse_event_get_client_x +webkit_dom_mouse_event_get_client_y +webkit_dom_mouse_event_get_ctrl_key +webkit_dom_mouse_event_get_shift_key +webkit_dom_mouse_event_get_alt_key +webkit_dom_mouse_event_get_meta_key +webkit_dom_mouse_event_get_button +webkit_dom_mouse_event_get_related_target +webkit_dom_mouse_event_get_offset_x +webkit_dom_mouse_event_get_offset_y +webkit_dom_mouse_event_get_x +webkit_dom_mouse_event_get_y +webkit_dom_mouse_event_get_from_element +webkit_dom_mouse_event_get_to_element + +<SUBSECTION Standard> +WebKitDOMMouseEventClass +WEBKIT_DOM_TYPE_MOUSE_EVENT +WEBKIT_DOM_MOUSE_EVENT +WEBKIT_DOM_IS_MOUSE_EVENT +WEBKIT_DOM_MOUSE_EVENT_CLASS +WEBKIT_DOM_IS_MOUSE_EVENT_CLASS +WEBKIT_DOM_MOUSE_EVENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_mouse_event_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMNamedNodeMap</FILE> +<TITLE>WebKitDOMNamedNodeMap</TITLE> +WebKitDOMNamedNodeMap + +webkit_dom_named_node_map_get_named_item +webkit_dom_named_node_map_set_named_item +webkit_dom_named_node_map_remove_named_item +webkit_dom_named_node_map_item +webkit_dom_named_node_map_get_named_item_ns +webkit_dom_named_node_map_set_named_item_ns +webkit_dom_named_node_map_remove_named_item_ns +webkit_dom_named_node_map_get_length + +<SUBSECTION Standard> +WebKitDOMNamedNodeMapClass +WEBKIT_DOM_TYPE_NAMED_NODE_MAP +WEBKIT_DOM_NAMED_NODE_MAP +WEBKIT_DOM_IS_NAMED_NODE_MAP +WEBKIT_DOM_NAMED_NODE_MAP_CLASS +WEBKIT_DOM_IS_NAMED_NODE_MAP_CLASS +WEBKIT_DOM_NAMED_NODE_MAP_GET_CLASS + +<SUBSECTION Private> +webkit_dom_named_node_map_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMNode</FILE> +<TITLE>WebKitDOMNode</TITLE> +WebKitDOMNode + +WEBKIT_DOM_NODE_ELEMENT_NODE +WEBKIT_DOM_NODE_ATTRIBUTE_NODE +WEBKIT_DOM_NODE_TEXT_NODE +WEBKIT_DOM_NODE_CDATA_SECTION_NODE +WEBKIT_DOM_NODE_ENTITY_REFERENCE_NODE +WEBKIT_DOM_NODE_ENTITY_NODE +WEBKIT_DOM_NODE_PROCESSING_INSTRUCTION_NODE +WEBKIT_DOM_NODE_COMMENT_NODE +WEBKIT_DOM_NODE_DOCUMENT_NODE +WEBKIT_DOM_NODE_DOCUMENT_TYPE_NODE +WEBKIT_DOM_NODE_DOCUMENT_FRAGMENT_NODE +WEBKIT_DOM_NODE_DOCUMENT_POSITION_DISCONNECTED +WEBKIT_DOM_NODE_DOCUMENT_POSITION_PRECEDING +WEBKIT_DOM_NODE_DOCUMENT_POSITION_FOLLOWING +WEBKIT_DOM_NODE_DOCUMENT_POSITION_CONTAINS +WEBKIT_DOM_NODE_DOCUMENT_POSITION_CONTAINED_BY +WEBKIT_DOM_NODE_DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC +webkit_dom_node_insert_before +webkit_dom_node_replace_child +webkit_dom_node_remove_child +webkit_dom_node_append_child +webkit_dom_node_has_child_nodes +webkit_dom_node_clone_node_with_error +webkit_dom_node_normalize +webkit_dom_node_is_supported +webkit_dom_node_is_same_node +webkit_dom_node_is_equal_node +webkit_dom_node_lookup_prefix +webkit_dom_node_lookup_namespace_uri +webkit_dom_node_is_default_namespace +webkit_dom_node_compare_document_position +webkit_dom_node_contains +webkit_dom_node_get_node_name +webkit_dom_node_get_node_value +webkit_dom_node_set_node_value +webkit_dom_node_get_node_type +webkit_dom_node_get_parent_node +webkit_dom_node_get_child_nodes +webkit_dom_node_get_first_child +webkit_dom_node_get_last_child +webkit_dom_node_get_previous_sibling +webkit_dom_node_get_next_sibling +webkit_dom_node_get_owner_document +webkit_dom_node_get_base_uri +webkit_dom_node_get_text_content +webkit_dom_node_set_text_content +webkit_dom_node_get_parent_element +webkit_dom_node_clone_node +webkit_dom_node_get_namespace_uri +webkit_dom_node_get_prefix +webkit_dom_node_set_prefix +webkit_dom_node_get_local_name + +<SUBSECTION Standard> +WebKitDOMNodeClass +WEBKIT_DOM_TYPE_NODE +WEBKIT_DOM_NODE +WEBKIT_DOM_IS_NODE +WEBKIT_DOM_NODE_CLASS +WEBKIT_DOM_IS_NODE_CLASS +WEBKIT_DOM_NODE_GET_CLASS + +<SUBSECTION Private> +webkit_dom_node_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMNodeIterator</FILE> +<TITLE>WebKitDOMNodeIterator</TITLE> +WebKitDOMNodeIterator + +webkit_dom_node_iterator_next_node +webkit_dom_node_iterator_previous_node +webkit_dom_node_iterator_detach +webkit_dom_node_iterator_get_root +webkit_dom_node_iterator_get_what_to_show +webkit_dom_node_iterator_get_filter +webkit_dom_node_iterator_get_reference_node +webkit_dom_node_iterator_get_pointer_before_reference_node +webkit_dom_node_iterator_get_expand_entity_references + +<SUBSECTION Standard> +WebKitDOMNodeIteratorClass +WEBKIT_DOM_TYPE_NODE_ITERATOR +WEBKIT_DOM_NODE_ITERATOR +WEBKIT_DOM_IS_NODE_ITERATOR +WEBKIT_DOM_NODE_ITERATOR_CLASS +WEBKIT_DOM_IS_NODE_ITERATOR_CLASS +WEBKIT_DOM_NODE_ITERATOR_GET_CLASS + +<SUBSECTION Private> +webkit_dom_node_iterator_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMNodeList</FILE> +<TITLE>WebKitDOMNodeList</TITLE> +WebKitDOMNodeList + +webkit_dom_node_list_item +webkit_dom_node_list_get_length + +<SUBSECTION Standard> +WebKitDOMNodeListClass +WEBKIT_DOM_TYPE_NODE_LIST +WEBKIT_DOM_NODE_LIST +WEBKIT_DOM_IS_NODE_LIST +WEBKIT_DOM_NODE_LIST_CLASS +WEBKIT_DOM_IS_NODE_LIST_CLASS +WEBKIT_DOM_NODE_LIST_GET_CLASS + +<SUBSECTION Private> +webkit_dom_node_list_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMProcessingInstruction</FILE> +<TITLE>WebKitDOMProcessingInstruction</TITLE> +WebKitDOMProcessingInstruction + +webkit_dom_processing_instruction_get_target +webkit_dom_processing_instruction_get_sheet + +<SUBSECTION Standard> +WebKitDOMProcessingInstructionClass +WEBKIT_DOM_TYPE_PROCESSING_INSTRUCTION +WEBKIT_DOM_PROCESSING_INSTRUCTION +WEBKIT_DOM_IS_PROCESSING_INSTRUCTION +WEBKIT_DOM_PROCESSING_INSTRUCTION_CLASS +WEBKIT_DOM_IS_PROCESSING_INSTRUCTION_CLASS +WEBKIT_DOM_PROCESSING_INSTRUCTION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_processing_instruction_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMRange</FILE> +<TITLE>WebKitDOMRange</TITLE> +WebKitDOMRange + +WEBKIT_DOM_RANGE_START_TO_START +WEBKIT_DOM_RANGE_START_TO_END +WEBKIT_DOM_RANGE_END_TO_END +WEBKIT_DOM_RANGE_END_TO_START +WEBKIT_DOM_RANGE_NODE_BEFORE +WEBKIT_DOM_RANGE_NODE_AFTER +WEBKIT_DOM_RANGE_NODE_BEFORE_AND_AFTER +WEBKIT_DOM_RANGE_NODE_INSIDE +webkit_dom_range_set_start +webkit_dom_range_set_end +webkit_dom_range_set_start_before +webkit_dom_range_set_start_after +webkit_dom_range_set_end_before +webkit_dom_range_set_end_after +webkit_dom_range_collapse +webkit_dom_range_select_node +webkit_dom_range_select_node_contents +webkit_dom_range_compare_boundary_points +webkit_dom_range_delete_contents +webkit_dom_range_extract_contents +webkit_dom_range_clone_contents +webkit_dom_range_insert_node +webkit_dom_range_surround_contents +webkit_dom_range_clone_range +webkit_dom_range_to_string +webkit_dom_range_detach +webkit_dom_range_create_contextual_fragment +webkit_dom_range_compare_node +webkit_dom_range_intersects_node +webkit_dom_range_compare_point +webkit_dom_range_is_point_in_range +webkit_dom_range_get_start_container +webkit_dom_range_get_start_offset +webkit_dom_range_get_end_container +webkit_dom_range_get_end_offset +webkit_dom_range_get_collapsed +webkit_dom_range_get_common_ancestor_container +webkit_dom_range_get_text +webkit_dom_range_expand + +<SUBSECTION Standard> +WebKitDOMRangeClass +WEBKIT_DOM_TYPE_RANGE +WEBKIT_DOM_RANGE +WEBKIT_DOM_IS_RANGE +WEBKIT_DOM_RANGE_CLASS +WEBKIT_DOM_IS_RANGE_CLASS +WEBKIT_DOM_RANGE_GET_CLASS + +<SUBSECTION Private> +webkit_dom_range_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMText</FILE> +<TITLE>WebKitDOMText</TITLE> +WebKitDOMText + +webkit_dom_text_split_text +webkit_dom_text_get_whole_text +webkit_dom_text_replace_whole_text + +<SUBSECTION Standard> +WebKitDOMTextClass +WEBKIT_DOM_TYPE_TEXT +WEBKIT_DOM_TEXT +WEBKIT_DOM_IS_TEXT +WEBKIT_DOM_TEXT_CLASS +WEBKIT_DOM_IS_TEXT_CLASS +WEBKIT_DOM_TEXT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_text_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMTreeWalker</FILE> +<TITLE>WebKitDOMTreeWalker</TITLE> +WebKitDOMTreeWalker + +webkit_dom_tree_walker_parent_node +webkit_dom_tree_walker_first_child +webkit_dom_tree_walker_last_child +webkit_dom_tree_walker_previous_sibling +webkit_dom_tree_walker_next_sibling +webkit_dom_tree_walker_previous_node +webkit_dom_tree_walker_next_node +webkit_dom_tree_walker_get_root +webkit_dom_tree_walker_get_what_to_show +webkit_dom_tree_walker_get_filter +webkit_dom_tree_walker_get_current_node +webkit_dom_tree_walker_set_current_node +webkit_dom_tree_walker_get_expand_entity_references + +<SUBSECTION Standard> +WebKitDOMTreeWalkerClass +WEBKIT_DOM_TYPE_TREE_WALKER +WEBKIT_DOM_TREE_WALKER +WEBKIT_DOM_IS_TREE_WALKER +WEBKIT_DOM_TREE_WALKER_CLASS +WEBKIT_DOM_IS_TREE_WALKER_CLASS +WEBKIT_DOM_TREE_WALKER_GET_CLASS + +<SUBSECTION Private> +webkit_dom_tree_walker_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMUIEvent</FILE> +<TITLE>WebKitDOMUIEvent</TITLE> +WebKitDOMUIEvent + +webkit_dom_ui_event_init_ui_event +webkit_dom_ui_event_get_view +webkit_dom_ui_event_get_detail +webkit_dom_ui_event_get_key_code +webkit_dom_ui_event_get_char_code +webkit_dom_ui_event_get_layer_x +webkit_dom_ui_event_get_layer_y +webkit_dom_ui_event_get_page_x +webkit_dom_ui_event_get_page_y + +<SUBSECTION Standard> +WebKitDOMUIEventClass +WEBKIT_DOM_TYPE_UI_EVENT +WEBKIT_DOM_UI_EVENT +WEBKIT_DOM_IS_UI_EVENT +WEBKIT_DOM_UI_EVENT_CLASS +WEBKIT_DOM_IS_UI_EVENT_CLASS +WEBKIT_DOM_UI_EVENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_ui_event_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMWheelEvent</FILE> +<TITLE>WebKitDOMWheelEvent</TITLE> +WebKitDOMWheelEvent + +webkit_dom_wheel_event_init_wheel_event +webkit_dom_wheel_event_get_wheel_delta_x +webkit_dom_wheel_event_get_wheel_delta_y +webkit_dom_wheel_event_get_wheel_delta + +<SUBSECTION Standard> +WebKitDOMWheelEventClass +WEBKIT_DOM_TYPE_WHEEL_EVENT +WEBKIT_DOM_WHEEL_EVENT +WEBKIT_DOM_IS_WHEEL_EVENT +WEBKIT_DOM_WHEEL_EVENT_CLASS +WEBKIT_DOM_IS_WHEEL_EVENT_CLASS +WEBKIT_DOM_WHEEL_EVENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_wheel_event_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMBlob</FILE> +<TITLE>WebKitDOMBlob</TITLE> +WebKitDOMBlob + +webkit_dom_blob_get_size + +<SUBSECTION Standard> +WebKitDOMBlobClass +WEBKIT_DOM_TYPE_BLOB +WEBKIT_DOM_BLOB +WEBKIT_DOM_IS_BLOB +WEBKIT_DOM_BLOB_CLASS +WEBKIT_DOM_IS_BLOB_CLASS +WEBKIT_DOM_BLOB_GET_CLASS + +<SUBSECTION Private> +webkit_dom_blob_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMFile</FILE> +<TITLE>WebKitDOMFile</TITLE> +WebKitDOMFile + +webkit_dom_file_get_name + +<SUBSECTION Standard> +WebKitDOMFileClass +WEBKIT_DOM_TYPE_FILE +WEBKIT_DOM_FILE +WEBKIT_DOM_IS_FILE +WEBKIT_DOM_FILE_CLASS +WEBKIT_DOM_IS_FILE_CLASS +WEBKIT_DOM_FILE_GET_CLASS + +<SUBSECTION Private> +webkit_dom_file_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMFileList</FILE> +<TITLE>WebKitDOMFileList</TITLE> +WebKitDOMFileList + +webkit_dom_file_list_item +webkit_dom_file_list_get_length + +<SUBSECTION Standard> +WebKitDOMFileListClass +WEBKIT_DOM_TYPE_FILE_LIST +WEBKIT_DOM_FILE_LIST +WEBKIT_DOM_IS_FILE_LIST +WEBKIT_DOM_FILE_LIST_CLASS +WEBKIT_DOM_IS_FILE_LIST_CLASS +WEBKIT_DOM_FILE_LIST_GET_CLASS + +<SUBSECTION Private> +webkit_dom_file_list_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLAnchorElement</FILE> +<TITLE>WebKitDOMHTMLAnchorElement</TITLE> +WebKitDOMHTMLAnchorElement + +webkit_dom_html_anchor_element_get_charset +webkit_dom_html_anchor_element_set_charset +webkit_dom_html_anchor_element_get_coords +webkit_dom_html_anchor_element_set_coords +webkit_dom_html_anchor_element_get_hreflang +webkit_dom_html_anchor_element_set_hreflang +webkit_dom_html_anchor_element_get_name +webkit_dom_html_anchor_element_set_name +webkit_dom_html_anchor_element_get_rel +webkit_dom_html_anchor_element_set_rel +webkit_dom_html_anchor_element_get_rev +webkit_dom_html_anchor_element_set_rev +webkit_dom_html_anchor_element_get_shape +webkit_dom_html_anchor_element_set_shape +webkit_dom_html_anchor_element_get_target +webkit_dom_html_anchor_element_set_target +webkit_dom_html_anchor_element_get_type_attr +webkit_dom_html_anchor_element_set_type_attr +webkit_dom_html_anchor_element_get_text +webkit_dom_html_anchor_element_set_text +webkit_dom_html_anchor_element_get_href +webkit_dom_html_anchor_element_set_href +webkit_dom_html_anchor_element_get_protocol +webkit_dom_html_anchor_element_set_protocol +webkit_dom_html_anchor_element_get_host +webkit_dom_html_anchor_element_set_host +webkit_dom_html_anchor_element_get_hostname +webkit_dom_html_anchor_element_set_hostname +webkit_dom_html_anchor_element_get_port +webkit_dom_html_anchor_element_set_port +webkit_dom_html_anchor_element_get_pathname +webkit_dom_html_anchor_element_set_pathname +webkit_dom_html_anchor_element_get_search +webkit_dom_html_anchor_element_set_search +webkit_dom_html_anchor_element_get_hash +webkit_dom_html_anchor_element_set_hash + +<SUBSECTION Standard> +WebKitDOMHTMLAnchorElementClass +WEBKIT_DOM_TYPE_HTML_ANCHOR_ELEMENT +WEBKIT_DOM_HTML_ANCHOR_ELEMENT +WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT +WEBKIT_DOM_HTML_ANCHOR_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT_CLASS +WEBKIT_DOM_HTML_ANCHOR_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_anchor_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLAppletElement</FILE> +<TITLE>WebKitDOMHTMLAppletElement</TITLE> +WebKitDOMHTMLAppletElement + +webkit_dom_html_applet_element_get_align +webkit_dom_html_applet_element_set_align +webkit_dom_html_applet_element_get_alt +webkit_dom_html_applet_element_set_alt +webkit_dom_html_applet_element_get_archive +webkit_dom_html_applet_element_set_archive +webkit_dom_html_applet_element_get_code +webkit_dom_html_applet_element_set_code +webkit_dom_html_applet_element_get_code_base +webkit_dom_html_applet_element_set_code_base +webkit_dom_html_applet_element_get_height +webkit_dom_html_applet_element_set_height +webkit_dom_html_applet_element_get_hspace +webkit_dom_html_applet_element_set_hspace +webkit_dom_html_applet_element_get_name +webkit_dom_html_applet_element_set_name +webkit_dom_html_applet_element_get_object +webkit_dom_html_applet_element_set_object +webkit_dom_html_applet_element_get_vspace +webkit_dom_html_applet_element_set_vspace +webkit_dom_html_applet_element_get_width +webkit_dom_html_applet_element_set_width + +<SUBSECTION Standard> +WebKitDOMHTMLAppletElementClass +WEBKIT_DOM_TYPE_HTML_APPLET_ELEMENT +WEBKIT_DOM_HTML_APPLET_ELEMENT +WEBKIT_DOM_IS_HTML_APPLET_ELEMENT +WEBKIT_DOM_HTML_APPLET_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_APPLET_ELEMENT_CLASS +WEBKIT_DOM_HTML_APPLET_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_applet_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLAreaElement</FILE> +<TITLE>WebKitDOMHTMLAreaElement</TITLE> +WebKitDOMHTMLAreaElement + +webkit_dom_html_area_element_get_alt +webkit_dom_html_area_element_set_alt +webkit_dom_html_area_element_get_coords +webkit_dom_html_area_element_set_coords +webkit_dom_html_area_element_get_no_href +webkit_dom_html_area_element_set_no_href +webkit_dom_html_area_element_get_shape +webkit_dom_html_area_element_set_shape +webkit_dom_html_area_element_get_target +webkit_dom_html_area_element_set_target +webkit_dom_html_area_element_get_href +webkit_dom_html_area_element_set_href +webkit_dom_html_area_element_get_protocol +webkit_dom_html_area_element_set_protocol +webkit_dom_html_area_element_get_host +webkit_dom_html_area_element_set_host +webkit_dom_html_area_element_get_hostname +webkit_dom_html_area_element_set_hostname +webkit_dom_html_area_element_get_port +webkit_dom_html_area_element_set_port +webkit_dom_html_area_element_get_pathname +webkit_dom_html_area_element_set_pathname +webkit_dom_html_area_element_get_search +webkit_dom_html_area_element_set_search +webkit_dom_html_area_element_get_hash +webkit_dom_html_area_element_set_hash + +<SUBSECTION Standard> +WebKitDOMHTMLAreaElementClass +WEBKIT_DOM_TYPE_HTML_AREA_ELEMENT +WEBKIT_DOM_HTML_AREA_ELEMENT +WEBKIT_DOM_IS_HTML_AREA_ELEMENT +WEBKIT_DOM_HTML_AREA_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_AREA_ELEMENT_CLASS +WEBKIT_DOM_HTML_AREA_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_area_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLBRElement</FILE> +<TITLE>WebKitDOMHTMLBRElement</TITLE> +WebKitDOMHTMLBRElement + +webkit_dom_html_br_element_get_clear +webkit_dom_html_br_element_set_clear + +<SUBSECTION Standard> +WebKitDOMHTMLBRElementClass +WEBKIT_DOM_TYPE_HTML_BR_ELEMENT +WEBKIT_DOM_HTML_BR_ELEMENT +WEBKIT_DOM_IS_HTML_BR_ELEMENT +WEBKIT_DOM_HTML_BR_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_BR_ELEMENT_CLASS +WEBKIT_DOM_HTML_BR_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_br_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLBaseElement</FILE> +<TITLE>WebKitDOMHTMLBaseElement</TITLE> +WebKitDOMHTMLBaseElement + +webkit_dom_html_base_element_get_href +webkit_dom_html_base_element_set_href +webkit_dom_html_base_element_get_target +webkit_dom_html_base_element_set_target + +<SUBSECTION Standard> +WebKitDOMHTMLBaseElementClass +WEBKIT_DOM_TYPE_HTML_BASE_ELEMENT +WEBKIT_DOM_HTML_BASE_ELEMENT +WEBKIT_DOM_IS_HTML_BASE_ELEMENT +WEBKIT_DOM_HTML_BASE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_BASE_ELEMENT_CLASS +WEBKIT_DOM_HTML_BASE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_base_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLBodyElement</FILE> +<TITLE>WebKitDOMHTMLBodyElement</TITLE> +WebKitDOMHTMLBodyElement + +webkit_dom_html_body_element_get_a_link +webkit_dom_html_body_element_set_a_link +webkit_dom_html_body_element_get_background +webkit_dom_html_body_element_set_background +webkit_dom_html_body_element_get_bg_color +webkit_dom_html_body_element_set_bg_color +webkit_dom_html_body_element_get_link +webkit_dom_html_body_element_set_link +webkit_dom_html_body_element_get_text +webkit_dom_html_body_element_set_text +webkit_dom_html_body_element_get_v_link +webkit_dom_html_body_element_set_v_link + +<SUBSECTION Standard> +WebKitDOMHTMLBodyElementClass +WEBKIT_DOM_TYPE_HTML_BODY_ELEMENT +WEBKIT_DOM_HTML_BODY_ELEMENT +WEBKIT_DOM_IS_HTML_BODY_ELEMENT +WEBKIT_DOM_HTML_BODY_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_BODY_ELEMENT_CLASS +WEBKIT_DOM_HTML_BODY_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_body_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLButtonElement</FILE> +<TITLE>WebKitDOMHTMLButtonElement</TITLE> +WebKitDOMHTMLButtonElement + +webkit_dom_html_button_element_get_autofocus +webkit_dom_html_button_element_set_autofocus +webkit_dom_html_button_element_get_disabled +webkit_dom_html_button_element_set_disabled +webkit_dom_html_button_element_get_form +webkit_dom_html_button_element_get_button_type +webkit_dom_html_button_element_set_button_type +webkit_dom_html_button_element_get_name +webkit_dom_html_button_element_set_name +webkit_dom_html_button_element_get_value +webkit_dom_html_button_element_set_value +webkit_dom_html_button_element_get_will_validate + +<SUBSECTION Standard> +WebKitDOMHTMLButtonElementClass +WEBKIT_DOM_TYPE_HTML_BUTTON_ELEMENT +WEBKIT_DOM_HTML_BUTTON_ELEMENT +WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT +WEBKIT_DOM_HTML_BUTTON_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT_CLASS +WEBKIT_DOM_HTML_BUTTON_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_button_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLCanvasElement</FILE> +<TITLE>WebKitDOMHTMLCanvasElement</TITLE> +WebKitDOMHTMLCanvasElement + +webkit_dom_html_canvas_element_get_width +webkit_dom_html_canvas_element_set_width +webkit_dom_html_canvas_element_get_height +webkit_dom_html_canvas_element_set_height + +<SUBSECTION Standard> +WebKitDOMHTMLCanvasElementClass +WEBKIT_DOM_TYPE_HTML_CANVAS_ELEMENT +WEBKIT_DOM_HTML_CANVAS_ELEMENT +WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT +WEBKIT_DOM_HTML_CANVAS_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT_CLASS +WEBKIT_DOM_HTML_CANVAS_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_canvas_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLCollection</FILE> +<TITLE>WebKitDOMHTMLCollection</TITLE> +WebKitDOMHTMLCollection + +webkit_dom_html_collection_item +webkit_dom_html_collection_named_item +webkit_dom_html_collection_get_length + +<SUBSECTION Standard> +WebKitDOMHTMLCollectionClass +WEBKIT_DOM_TYPE_HTML_COLLECTION +WEBKIT_DOM_HTML_COLLECTION +WEBKIT_DOM_IS_HTML_COLLECTION +WEBKIT_DOM_HTML_COLLECTION_CLASS +WEBKIT_DOM_IS_HTML_COLLECTION_CLASS +WEBKIT_DOM_HTML_COLLECTION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_collection_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLDListElement</FILE> +<TITLE>WebKitDOMHTMLDListElement</TITLE> +WebKitDOMHTMLDListElement + +webkit_dom_html_d_list_element_get_compact +webkit_dom_html_d_list_element_set_compact + +<SUBSECTION Standard> +WebKitDOMHTMLDListElementClass +WEBKIT_DOM_TYPE_HTML_D_LIST_ELEMENT +WEBKIT_DOM_HTML_D_LIST_ELEMENT +WEBKIT_DOM_IS_HTML_D_LIST_ELEMENT +WEBKIT_DOM_HTML_D_LIST_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_D_LIST_ELEMENT_CLASS +WEBKIT_DOM_HTML_D_LIST_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_d_list_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLDirectoryElement</FILE> +<TITLE>WebKitDOMHTMLDirectoryElement</TITLE> +WebKitDOMHTMLDirectoryElement + +webkit_dom_html_directory_element_get_compact +webkit_dom_html_directory_element_set_compact + +<SUBSECTION Standard> +WebKitDOMHTMLDirectoryElementClass +WEBKIT_DOM_TYPE_HTML_DIRECTORY_ELEMENT +WEBKIT_DOM_HTML_DIRECTORY_ELEMENT +WEBKIT_DOM_IS_HTML_DIRECTORY_ELEMENT +WEBKIT_DOM_HTML_DIRECTORY_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_DIRECTORY_ELEMENT_CLASS +WEBKIT_DOM_HTML_DIRECTORY_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_directory_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLDivElement</FILE> +<TITLE>WebKitDOMHTMLDivElement</TITLE> +WebKitDOMHTMLDivElement + +webkit_dom_html_div_element_get_align +webkit_dom_html_div_element_set_align + +<SUBSECTION Standard> +WebKitDOMHTMLDivElementClass +WEBKIT_DOM_TYPE_HTML_DIV_ELEMENT +WEBKIT_DOM_HTML_DIV_ELEMENT +WEBKIT_DOM_IS_HTML_DIV_ELEMENT +WEBKIT_DOM_HTML_DIV_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_DIV_ELEMENT_CLASS +WEBKIT_DOM_HTML_DIV_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_div_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLDocument</FILE> +<TITLE>WebKitDOMHTMLDocument</TITLE> +WebKitDOMHTMLDocument + +webkit_dom_html_document_close +webkit_dom_html_document_clear +webkit_dom_html_document_capture_events +webkit_dom_html_document_release_events +webkit_dom_html_document_get_width +webkit_dom_html_document_get_height +webkit_dom_html_document_get_dir +webkit_dom_html_document_set_dir +webkit_dom_html_document_get_bg_color +webkit_dom_html_document_set_bg_color +webkit_dom_html_document_get_fg_color +webkit_dom_html_document_set_fg_color +webkit_dom_html_document_get_alink_color +webkit_dom_html_document_set_alink_color +webkit_dom_html_document_get_link_color +webkit_dom_html_document_set_link_color +webkit_dom_html_document_get_vlink_color +webkit_dom_html_document_set_vlink_color +webkit_dom_html_document_set_design_mode +webkit_dom_html_document_get_design_mode +webkit_dom_html_document_get_compat_mode +webkit_dom_html_document_get_scripts +webkit_dom_html_document_get_embeds +webkit_dom_html_document_get_plugins + +<SUBSECTION Standard> +WebKitDOMHTMLDocumentClass +WEBKIT_DOM_TYPE_HTML_DOCUMENT +WEBKIT_DOM_HTML_DOCUMENT +WEBKIT_DOM_IS_HTML_DOCUMENT +WEBKIT_DOM_HTML_DOCUMENT_CLASS +WEBKIT_DOM_IS_HTML_DOCUMENT_CLASS +WEBKIT_DOM_HTML_DOCUMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_document_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLElement</FILE> +<TITLE>WebKitDOMHTMLElement</TITLE> +WebKitDOMHTMLElement + +webkit_dom_html_element_click +webkit_dom_html_element_get_title +webkit_dom_html_element_set_title +webkit_dom_html_element_get_lang +webkit_dom_html_element_set_lang +webkit_dom_html_element_get_dir +webkit_dom_html_element_set_dir +webkit_dom_html_element_get_tab_index +webkit_dom_html_element_set_tab_index +webkit_dom_html_element_get_access_key +webkit_dom_html_element_set_access_key +webkit_dom_html_element_get_inner_text +webkit_dom_html_element_set_inner_text +webkit_dom_html_element_get_outer_text +webkit_dom_html_element_set_outer_text +webkit_dom_html_element_get_content_editable +webkit_dom_html_element_set_content_editable +webkit_dom_html_element_get_is_content_editable +webkit_dom_html_element_set_inner_html +webkit_dom_html_element_get_outer_html +webkit_dom_html_element_get_inner_html +webkit_dom_html_element_set_outer_html +webkit_dom_html_element_get_children +webkit_dom_html_element_get_translate +webkit_dom_html_element_set_translate +webkit_dom_html_element_get_draggable +webkit_dom_html_element_set_draggable +webkit_dom_html_element_get_webkitdropzone +webkit_dom_html_element_set_webkitdropzone +webkit_dom_html_element_get_hidden +webkit_dom_html_element_set_hidden +webkit_dom_html_element_get_spellcheck +webkit_dom_html_element_set_spellcheck + +<SUBSECTION Standard> +WebKitDOMHTMLElementClass +WEBKIT_DOM_TYPE_HTML_ELEMENT +WEBKIT_DOM_HTML_ELEMENT +WEBKIT_DOM_IS_HTML_ELEMENT +WEBKIT_DOM_HTML_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_ELEMENT_CLASS +WEBKIT_DOM_HTML_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLEmbedElement</FILE> +<TITLE>WebKitDOMHTMLEmbedElement</TITLE> +WebKitDOMHTMLEmbedElement + +webkit_dom_html_embed_element_get_align +webkit_dom_html_embed_element_set_align +webkit_dom_html_embed_element_get_height +webkit_dom_html_embed_element_set_height +webkit_dom_html_embed_element_get_name +webkit_dom_html_embed_element_set_name +webkit_dom_html_embed_element_get_src +webkit_dom_html_embed_element_set_src +webkit_dom_html_embed_element_get_type_attr +webkit_dom_html_embed_element_set_type_attr +webkit_dom_html_embed_element_get_width +webkit_dom_html_embed_element_set_width + +<SUBSECTION Standard> +WebKitDOMHTMLEmbedElementClass +WEBKIT_DOM_TYPE_HTML_EMBED_ELEMENT +WEBKIT_DOM_HTML_EMBED_ELEMENT +WEBKIT_DOM_IS_HTML_EMBED_ELEMENT +WEBKIT_DOM_HTML_EMBED_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_EMBED_ELEMENT_CLASS +WEBKIT_DOM_HTML_EMBED_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_embed_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLFieldSetElement</FILE> +<TITLE>WebKitDOMHTMLFieldSetElement</TITLE> +WebKitDOMHTMLFieldSetElement + +webkit_dom_html_field_set_element_get_form + +<SUBSECTION Standard> +WebKitDOMHTMLFieldSetElementClass +WEBKIT_DOM_TYPE_HTML_FIELD_SET_ELEMENT +WEBKIT_DOM_HTML_FIELD_SET_ELEMENT +WEBKIT_DOM_IS_HTML_FIELD_SET_ELEMENT +WEBKIT_DOM_HTML_FIELD_SET_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_FIELD_SET_ELEMENT_CLASS +WEBKIT_DOM_HTML_FIELD_SET_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_field_set_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLFontElement</FILE> +<TITLE>WebKitDOMHTMLFontElement</TITLE> +WebKitDOMHTMLFontElement + +webkit_dom_html_font_element_get_color +webkit_dom_html_font_element_set_color +webkit_dom_html_font_element_get_face +webkit_dom_html_font_element_set_face +webkit_dom_html_font_element_get_size +webkit_dom_html_font_element_set_size + +<SUBSECTION Standard> +WebKitDOMHTMLFontElementClass +WEBKIT_DOM_TYPE_HTML_FONT_ELEMENT +WEBKIT_DOM_HTML_FONT_ELEMENT +WEBKIT_DOM_IS_HTML_FONT_ELEMENT +WEBKIT_DOM_HTML_FONT_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_FONT_ELEMENT_CLASS +WEBKIT_DOM_HTML_FONT_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_font_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLFormElement</FILE> +<TITLE>WebKitDOMHTMLFormElement</TITLE> +WebKitDOMHTMLFormElement + +webkit_dom_html_form_element_submit +webkit_dom_html_form_element_reset +webkit_dom_html_form_element_get_accept_charset +webkit_dom_html_form_element_set_accept_charset +webkit_dom_html_form_element_get_action +webkit_dom_html_form_element_set_action +webkit_dom_html_form_element_get_enctype +webkit_dom_html_form_element_set_enctype +webkit_dom_html_form_element_get_encoding +webkit_dom_html_form_element_set_encoding +webkit_dom_html_form_element_get_method +webkit_dom_html_form_element_set_method +webkit_dom_html_form_element_get_name +webkit_dom_html_form_element_set_name +webkit_dom_html_form_element_get_target +webkit_dom_html_form_element_set_target +webkit_dom_html_form_element_get_elements +webkit_dom_html_form_element_get_length + +<SUBSECTION Standard> +WebKitDOMHTMLFormElementClass +WEBKIT_DOM_TYPE_HTML_FORM_ELEMENT +WEBKIT_DOM_HTML_FORM_ELEMENT +WEBKIT_DOM_IS_HTML_FORM_ELEMENT +WEBKIT_DOM_HTML_FORM_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_FORM_ELEMENT_CLASS +WEBKIT_DOM_HTML_FORM_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_form_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLFrameElement</FILE> +<TITLE>WebKitDOMHTMLFrameElement</TITLE> +WebKitDOMHTMLFrameElement + +webkit_dom_html_frame_element_get_frame_border +webkit_dom_html_frame_element_set_frame_border +webkit_dom_html_frame_element_get_long_desc +webkit_dom_html_frame_element_set_long_desc +webkit_dom_html_frame_element_get_margin_height +webkit_dom_html_frame_element_set_margin_height +webkit_dom_html_frame_element_get_margin_width +webkit_dom_html_frame_element_set_margin_width +webkit_dom_html_frame_element_get_name +webkit_dom_html_frame_element_set_name +webkit_dom_html_frame_element_get_no_resize +webkit_dom_html_frame_element_set_no_resize +webkit_dom_html_frame_element_get_scrolling +webkit_dom_html_frame_element_set_scrolling +webkit_dom_html_frame_element_get_src +webkit_dom_html_frame_element_set_src +webkit_dom_html_frame_element_get_content_document +webkit_dom_html_frame_element_get_content_window +webkit_dom_html_frame_element_get_width +webkit_dom_html_frame_element_get_height + +<SUBSECTION Standard> +WebKitDOMHTMLFrameElementClass +WEBKIT_DOM_TYPE_HTML_FRAME_ELEMENT +WEBKIT_DOM_HTML_FRAME_ELEMENT +WEBKIT_DOM_IS_HTML_FRAME_ELEMENT +WEBKIT_DOM_HTML_FRAME_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_FRAME_ELEMENT_CLASS +WEBKIT_DOM_HTML_FRAME_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_frame_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLFrameSetElement</FILE> +<TITLE>WebKitDOMHTMLFrameSetElement</TITLE> +WebKitDOMHTMLFrameSetElement + +webkit_dom_html_frame_set_element_get_cols +webkit_dom_html_frame_set_element_set_cols +webkit_dom_html_frame_set_element_get_rows +webkit_dom_html_frame_set_element_set_rows + +<SUBSECTION Standard> +WebKitDOMHTMLFrameSetElementClass +WEBKIT_DOM_TYPE_HTML_FRAME_SET_ELEMENT +WEBKIT_DOM_HTML_FRAME_SET_ELEMENT +WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT +WEBKIT_DOM_HTML_FRAME_SET_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_FRAME_SET_ELEMENT_CLASS +WEBKIT_DOM_HTML_FRAME_SET_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_frame_set_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLHRElement</FILE> +<TITLE>WebKitDOMHTMLHRElement</TITLE> +WebKitDOMHTMLHRElement + +webkit_dom_html_hr_element_get_align +webkit_dom_html_hr_element_set_align +webkit_dom_html_hr_element_get_no_shade +webkit_dom_html_hr_element_set_no_shade +webkit_dom_html_hr_element_get_size +webkit_dom_html_hr_element_set_size +webkit_dom_html_hr_element_get_width +webkit_dom_html_hr_element_set_width + +<SUBSECTION Standard> +WebKitDOMHTMLHRElementClass +WEBKIT_DOM_TYPE_HTML_HR_ELEMENT +WEBKIT_DOM_HTML_HR_ELEMENT +WEBKIT_DOM_IS_HTML_HR_ELEMENT +WEBKIT_DOM_HTML_HR_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_HR_ELEMENT_CLASS +WEBKIT_DOM_HTML_HR_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_hr_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLHeadElement</FILE> +<TITLE>WebKitDOMHTMLHeadElement</TITLE> +WebKitDOMHTMLHeadElement + +webkit_dom_html_head_element_get_profile +webkit_dom_html_head_element_set_profile + +<SUBSECTION Standard> +WebKitDOMHTMLHeadElementClass +WEBKIT_DOM_TYPE_HTML_HEAD_ELEMENT +WEBKIT_DOM_HTML_HEAD_ELEMENT +WEBKIT_DOM_IS_HTML_HEAD_ELEMENT +WEBKIT_DOM_HTML_HEAD_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_HEAD_ELEMENT_CLASS +WEBKIT_DOM_HTML_HEAD_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_head_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLHeadingElement</FILE> +<TITLE>WebKitDOMHTMLHeadingElement</TITLE> +WebKitDOMHTMLHeadingElement + +webkit_dom_html_heading_element_get_align +webkit_dom_html_heading_element_set_align + +<SUBSECTION Standard> +WebKitDOMHTMLHeadingElementClass +WEBKIT_DOM_TYPE_HTML_HEADING_ELEMENT +WEBKIT_DOM_HTML_HEADING_ELEMENT +WEBKIT_DOM_IS_HTML_HEADING_ELEMENT +WEBKIT_DOM_HTML_HEADING_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_HEADING_ELEMENT_CLASS +WEBKIT_DOM_HTML_HEADING_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_heading_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLHtmlElement</FILE> +<TITLE>WebKitDOMHTMLHtmlElement</TITLE> +WebKitDOMHTMLHtmlElement + +webkit_dom_html_html_element_get_version +webkit_dom_html_html_element_set_version + +<SUBSECTION Standard> +WebKitDOMHTMLHtmlElementClass +WEBKIT_DOM_TYPE_HTML_HTML_ELEMENT +WEBKIT_DOM_HTML_HTML_ELEMENT +WEBKIT_DOM_IS_HTML_HTML_ELEMENT +WEBKIT_DOM_HTML_HTML_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_HTML_ELEMENT_CLASS +WEBKIT_DOM_HTML_HTML_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_html_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLIFrameElement</FILE> +<TITLE>WebKitDOMHTMLIFrameElement</TITLE> +WebKitDOMHTMLIFrameElement + +webkit_dom_html_iframe_element_get_align +webkit_dom_html_iframe_element_set_align +webkit_dom_html_iframe_element_get_frame_border +webkit_dom_html_iframe_element_set_frame_border +webkit_dom_html_iframe_element_get_height +webkit_dom_html_iframe_element_set_height +webkit_dom_html_iframe_element_get_long_desc +webkit_dom_html_iframe_element_set_long_desc +webkit_dom_html_iframe_element_get_margin_height +webkit_dom_html_iframe_element_set_margin_height +webkit_dom_html_iframe_element_get_margin_width +webkit_dom_html_iframe_element_set_margin_width +webkit_dom_html_iframe_element_get_name +webkit_dom_html_iframe_element_set_name +webkit_dom_html_iframe_element_get_scrolling +webkit_dom_html_iframe_element_set_scrolling +webkit_dom_html_iframe_element_get_src +webkit_dom_html_iframe_element_set_src +webkit_dom_html_iframe_element_get_width +webkit_dom_html_iframe_element_set_width +webkit_dom_html_iframe_element_get_content_document +webkit_dom_html_iframe_element_get_content_window + +<SUBSECTION Standard> +WebKitDOMHTMLIFrameElementClass +WEBKIT_DOM_TYPE_HTML_IFRAME_ELEMENT +WEBKIT_DOM_HTML_IFRAME_ELEMENT +WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT +WEBKIT_DOM_HTML_IFRAME_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT_CLASS +WEBKIT_DOM_HTML_IFRAME_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_iframe_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLImageElement</FILE> +<TITLE>WebKitDOMHTMLImageElement</TITLE> +WebKitDOMHTMLImageElement + +webkit_dom_html_image_element_get_name +webkit_dom_html_image_element_set_name +webkit_dom_html_image_element_get_align +webkit_dom_html_image_element_set_align +webkit_dom_html_image_element_get_alt +webkit_dom_html_image_element_set_alt +webkit_dom_html_image_element_get_border +webkit_dom_html_image_element_set_border +webkit_dom_html_image_element_get_height +webkit_dom_html_image_element_set_height +webkit_dom_html_image_element_get_hspace +webkit_dom_html_image_element_set_hspace +webkit_dom_html_image_element_get_is_map +webkit_dom_html_image_element_set_is_map +webkit_dom_html_image_element_get_long_desc +webkit_dom_html_image_element_set_long_desc +webkit_dom_html_image_element_get_src +webkit_dom_html_image_element_set_src +webkit_dom_html_image_element_get_use_map +webkit_dom_html_image_element_set_use_map +webkit_dom_html_image_element_get_vspace +webkit_dom_html_image_element_set_vspace +webkit_dom_html_image_element_get_width +webkit_dom_html_image_element_set_width +webkit_dom_html_image_element_get_complete +webkit_dom_html_image_element_get_lowsrc +webkit_dom_html_image_element_set_lowsrc +webkit_dom_html_image_element_get_natural_height +webkit_dom_html_image_element_get_natural_width +webkit_dom_html_image_element_get_x +webkit_dom_html_image_element_get_y + +<SUBSECTION Standard> +WebKitDOMHTMLImageElementClass +WEBKIT_DOM_TYPE_HTML_IMAGE_ELEMENT +WEBKIT_DOM_HTML_IMAGE_ELEMENT +WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT +WEBKIT_DOM_HTML_IMAGE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT_CLASS +WEBKIT_DOM_HTML_IMAGE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_image_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLInputElement</FILE> +<TITLE>WebKitDOMHTMLInputElement</TITLE> +WebKitDOMHTMLInputElement + +webkit_dom_html_input_element_select +webkit_dom_html_input_element_get_accept +webkit_dom_html_input_element_set_accept +webkit_dom_html_input_element_get_alt +webkit_dom_html_input_element_set_alt +webkit_dom_html_input_element_get_autofocus +webkit_dom_html_input_element_set_autofocus +webkit_dom_html_input_element_get_default_checked +webkit_dom_html_input_element_set_default_checked +webkit_dom_html_input_element_get_checked +webkit_dom_html_input_element_set_checked +webkit_dom_html_input_element_get_disabled +webkit_dom_html_input_element_set_disabled +webkit_dom_html_input_element_get_form +webkit_dom_html_input_element_get_files +webkit_dom_html_input_element_set_files +webkit_dom_html_input_element_get_height +webkit_dom_html_input_element_set_height +webkit_dom_html_input_element_get_indeterminate +webkit_dom_html_input_element_set_indeterminate +webkit_dom_html_input_element_get_max_length +webkit_dom_html_input_element_set_max_length +webkit_dom_html_input_element_get_multiple +webkit_dom_html_input_element_set_multiple +webkit_dom_html_input_element_get_name +webkit_dom_html_input_element_set_name +webkit_dom_html_input_element_get_read_only +webkit_dom_html_input_element_set_read_only +webkit_dom_html_input_element_get_size +webkit_dom_html_input_element_set_size +webkit_dom_html_input_element_get_src +webkit_dom_html_input_element_set_src +webkit_dom_html_input_element_get_input_type +webkit_dom_html_input_element_set_input_type +webkit_dom_html_input_element_get_default_value +webkit_dom_html_input_element_set_default_value +webkit_dom_html_input_element_get_value +webkit_dom_html_input_element_set_value +webkit_dom_html_input_element_get_width +webkit_dom_html_input_element_set_width +webkit_dom_html_input_element_get_will_validate +webkit_dom_html_input_element_get_align +webkit_dom_html_input_element_set_align +webkit_dom_html_input_element_get_use_map +webkit_dom_html_input_element_set_use_map +webkit_dom_html_input_element_get_capture_type +webkit_dom_html_input_element_set_capture_type +webkit_dom_html_input_element_get_capture +webkit_dom_html_input_element_is_edited +webkit_dom_html_input_element_get_auto_filled +webkit_dom_html_input_element_set_auto_filled +webkit_dom_html_input_element_set_editing_value + +<SUBSECTION Standard> +WebKitDOMHTMLInputElementClass +WEBKIT_DOM_TYPE_HTML_INPUT_ELEMENT +WEBKIT_DOM_HTML_INPUT_ELEMENT +WEBKIT_DOM_IS_HTML_INPUT_ELEMENT +WEBKIT_DOM_HTML_INPUT_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_INPUT_ELEMENT_CLASS +WEBKIT_DOM_HTML_INPUT_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_input_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLLIElement</FILE> +<TITLE>WebKitDOMHTMLLIElement</TITLE> +WebKitDOMHTMLLIElement + +webkit_dom_html_li_element_get_type_attr +webkit_dom_html_li_element_set_type_attr +webkit_dom_html_li_element_get_value +webkit_dom_html_li_element_set_value + +<SUBSECTION Standard> +WebKitDOMHTMLLIElementClass +WEBKIT_DOM_TYPE_HTML_LI_ELEMENT +WEBKIT_DOM_HTML_LI_ELEMENT +WEBKIT_DOM_IS_HTML_LI_ELEMENT +WEBKIT_DOM_HTML_LI_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_LI_ELEMENT_CLASS +WEBKIT_DOM_HTML_LI_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_li_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLLabelElement</FILE> +<TITLE>WebKitDOMHTMLLabelElement</TITLE> +WebKitDOMHTMLLabelElement + +webkit_dom_html_label_element_get_form +webkit_dom_html_label_element_get_html_for +webkit_dom_html_label_element_set_html_for + +<SUBSECTION Standard> +WebKitDOMHTMLLabelElementClass +WEBKIT_DOM_TYPE_HTML_LABEL_ELEMENT +WEBKIT_DOM_HTML_LABEL_ELEMENT +WEBKIT_DOM_IS_HTML_LABEL_ELEMENT +WEBKIT_DOM_HTML_LABEL_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_LABEL_ELEMENT_CLASS +WEBKIT_DOM_HTML_LABEL_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_label_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLLegendElement</FILE> +<TITLE>WebKitDOMHTMLLegendElement</TITLE> +WebKitDOMHTMLLegendElement + +webkit_dom_html_legend_element_get_form +webkit_dom_html_legend_element_get_align +webkit_dom_html_legend_element_set_align + +<SUBSECTION Standard> +WebKitDOMHTMLLegendElementClass +WEBKIT_DOM_TYPE_HTML_LEGEND_ELEMENT +WEBKIT_DOM_HTML_LEGEND_ELEMENT +WEBKIT_DOM_IS_HTML_LEGEND_ELEMENT +WEBKIT_DOM_HTML_LEGEND_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_LEGEND_ELEMENT_CLASS +WEBKIT_DOM_HTML_LEGEND_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_legend_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLLinkElement</FILE> +<TITLE>WebKitDOMHTMLLinkElement</TITLE> +WebKitDOMHTMLLinkElement + +webkit_dom_html_link_element_get_disabled +webkit_dom_html_link_element_set_disabled +webkit_dom_html_link_element_get_charset +webkit_dom_html_link_element_set_charset +webkit_dom_html_link_element_get_href +webkit_dom_html_link_element_set_href +webkit_dom_html_link_element_get_hreflang +webkit_dom_html_link_element_set_hreflang +webkit_dom_html_link_element_get_media +webkit_dom_html_link_element_set_media +webkit_dom_html_link_element_get_rel +webkit_dom_html_link_element_set_rel +webkit_dom_html_link_element_get_rev +webkit_dom_html_link_element_set_rev +webkit_dom_html_link_element_get_target +webkit_dom_html_link_element_set_target +webkit_dom_html_link_element_get_type_attr +webkit_dom_html_link_element_set_type_attr +webkit_dom_html_link_element_get_sheet +webkit_dom_html_link_element_get_sizes +webkit_dom_html_link_element_set_sizes + +<SUBSECTION Standard> +WebKitDOMHTMLLinkElementClass +WEBKIT_DOM_TYPE_HTML_LINK_ELEMENT +WEBKIT_DOM_HTML_LINK_ELEMENT +WEBKIT_DOM_IS_HTML_LINK_ELEMENT +WEBKIT_DOM_HTML_LINK_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_LINK_ELEMENT_CLASS +WEBKIT_DOM_HTML_LINK_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_link_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLMapElement</FILE> +<TITLE>WebKitDOMHTMLMapElement</TITLE> +WebKitDOMHTMLMapElement + +webkit_dom_html_map_element_get_areas +webkit_dom_html_map_element_get_name +webkit_dom_html_map_element_set_name + +<SUBSECTION Standard> +WebKitDOMHTMLMapElementClass +WEBKIT_DOM_TYPE_HTML_MAP_ELEMENT +WEBKIT_DOM_HTML_MAP_ELEMENT +WEBKIT_DOM_IS_HTML_MAP_ELEMENT +WEBKIT_DOM_HTML_MAP_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_MAP_ELEMENT_CLASS +WEBKIT_DOM_HTML_MAP_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_map_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLMarqueeElement</FILE> +<TITLE>WebKitDOMHTMLMarqueeElement</TITLE> +WebKitDOMHTMLMarqueeElement + +webkit_dom_html_marquee_element_start +webkit_dom_html_marquee_element_stop + +<SUBSECTION Standard> +WebKitDOMHTMLMarqueeElementClass +WEBKIT_DOM_TYPE_HTML_MARQUEE_ELEMENT +WEBKIT_DOM_HTML_MARQUEE_ELEMENT +WEBKIT_DOM_IS_HTML_MARQUEE_ELEMENT +WEBKIT_DOM_HTML_MARQUEE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_MARQUEE_ELEMENT_CLASS +WEBKIT_DOM_HTML_MARQUEE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_marquee_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLMenuElement</FILE> +<TITLE>WebKitDOMHTMLMenuElement</TITLE> +WebKitDOMHTMLMenuElement + +webkit_dom_html_menu_element_get_compact +webkit_dom_html_menu_element_set_compact + +<SUBSECTION Standard> +WebKitDOMHTMLMenuElementClass +WEBKIT_DOM_TYPE_HTML_MENU_ELEMENT +WEBKIT_DOM_HTML_MENU_ELEMENT +WEBKIT_DOM_IS_HTML_MENU_ELEMENT +WEBKIT_DOM_HTML_MENU_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_MENU_ELEMENT_CLASS +WEBKIT_DOM_HTML_MENU_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_menu_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLMetaElement</FILE> +<TITLE>WebKitDOMHTMLMetaElement</TITLE> +WebKitDOMHTMLMetaElement + +webkit_dom_html_meta_element_get_content +webkit_dom_html_meta_element_set_content +webkit_dom_html_meta_element_get_http_equiv +webkit_dom_html_meta_element_set_http_equiv +webkit_dom_html_meta_element_get_name +webkit_dom_html_meta_element_set_name +webkit_dom_html_meta_element_get_scheme +webkit_dom_html_meta_element_set_scheme + +<SUBSECTION Standard> +WebKitDOMHTMLMetaElementClass +WEBKIT_DOM_TYPE_HTML_META_ELEMENT +WEBKIT_DOM_HTML_META_ELEMENT +WEBKIT_DOM_IS_HTML_META_ELEMENT +WEBKIT_DOM_HTML_META_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_META_ELEMENT_CLASS +WEBKIT_DOM_HTML_META_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_meta_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLModElement</FILE> +<TITLE>WebKitDOMHTMLModElement</TITLE> +WebKitDOMHTMLModElement + +webkit_dom_html_mod_element_get_cite +webkit_dom_html_mod_element_set_cite +webkit_dom_html_mod_element_get_date_time +webkit_dom_html_mod_element_set_date_time + +<SUBSECTION Standard> +WebKitDOMHTMLModElementClass +WEBKIT_DOM_TYPE_HTML_MOD_ELEMENT +WEBKIT_DOM_HTML_MOD_ELEMENT +WEBKIT_DOM_IS_HTML_MOD_ELEMENT +WEBKIT_DOM_HTML_MOD_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_MOD_ELEMENT_CLASS +WEBKIT_DOM_HTML_MOD_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_mod_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLOListElement</FILE> +<TITLE>WebKitDOMHTMLOListElement</TITLE> +WebKitDOMHTMLOListElement + +webkit_dom_html_o_list_element_get_compact +webkit_dom_html_o_list_element_set_compact +webkit_dom_html_o_list_element_get_start +webkit_dom_html_o_list_element_set_start +webkit_dom_html_o_list_element_get_type_attr +webkit_dom_html_o_list_element_set_type_attr + +<SUBSECTION Standard> +WebKitDOMHTMLOListElementClass +WEBKIT_DOM_TYPE_HTML_O_LIST_ELEMENT +WEBKIT_DOM_HTML_O_LIST_ELEMENT +WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT +WEBKIT_DOM_HTML_O_LIST_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT_CLASS +WEBKIT_DOM_HTML_O_LIST_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_o_list_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLObjectElement</FILE> +<TITLE>WebKitDOMHTMLObjectElement</TITLE> +WebKitDOMHTMLObjectElement + +webkit_dom_html_object_element_get_form +webkit_dom_html_object_element_get_code +webkit_dom_html_object_element_set_code +webkit_dom_html_object_element_get_align +webkit_dom_html_object_element_set_align +webkit_dom_html_object_element_get_archive +webkit_dom_html_object_element_set_archive +webkit_dom_html_object_element_get_border +webkit_dom_html_object_element_set_border +webkit_dom_html_object_element_get_code_base +webkit_dom_html_object_element_set_code_base +webkit_dom_html_object_element_get_code_type +webkit_dom_html_object_element_set_code_type +webkit_dom_html_object_element_get_data +webkit_dom_html_object_element_set_data +webkit_dom_html_object_element_get_declare +webkit_dom_html_object_element_set_declare +webkit_dom_html_object_element_get_height +webkit_dom_html_object_element_set_height +webkit_dom_html_object_element_get_hspace +webkit_dom_html_object_element_set_hspace +webkit_dom_html_object_element_get_name +webkit_dom_html_object_element_set_name +webkit_dom_html_object_element_get_standby +webkit_dom_html_object_element_set_standby +webkit_dom_html_object_element_get_type_attr +webkit_dom_html_object_element_set_type_attr +webkit_dom_html_object_element_get_use_map +webkit_dom_html_object_element_set_use_map +webkit_dom_html_object_element_get_vspace +webkit_dom_html_object_element_set_vspace +webkit_dom_html_object_element_get_width +webkit_dom_html_object_element_set_width +webkit_dom_html_object_element_get_content_document + +<SUBSECTION Standard> +WebKitDOMHTMLObjectElementClass +WEBKIT_DOM_TYPE_HTML_OBJECT_ELEMENT +WEBKIT_DOM_HTML_OBJECT_ELEMENT +WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT +WEBKIT_DOM_HTML_OBJECT_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT_CLASS +WEBKIT_DOM_HTML_OBJECT_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_object_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLOptGroupElement</FILE> +<TITLE>WebKitDOMHTMLOptGroupElement</TITLE> +WebKitDOMHTMLOptGroupElement + +webkit_dom_html_opt_group_element_get_disabled +webkit_dom_html_opt_group_element_set_disabled +webkit_dom_html_opt_group_element_get_label +webkit_dom_html_opt_group_element_set_label + +<SUBSECTION Standard> +WebKitDOMHTMLOptGroupElementClass +WEBKIT_DOM_TYPE_HTML_OPT_GROUP_ELEMENT +WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT +WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT +WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_OPT_GROUP_ELEMENT_CLASS +WEBKIT_DOM_HTML_OPT_GROUP_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_opt_group_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLOptionElement</FILE> +<TITLE>WebKitDOMHTMLOptionElement</TITLE> +WebKitDOMHTMLOptionElement + +webkit_dom_html_option_element_get_disabled +webkit_dom_html_option_element_set_disabled +webkit_dom_html_option_element_get_form +webkit_dom_html_option_element_get_label +webkit_dom_html_option_element_set_label +webkit_dom_html_option_element_get_default_selected +webkit_dom_html_option_element_set_default_selected +webkit_dom_html_option_element_get_selected +webkit_dom_html_option_element_set_selected +webkit_dom_html_option_element_get_value +webkit_dom_html_option_element_set_value +webkit_dom_html_option_element_get_text +webkit_dom_html_option_element_get_index + +<SUBSECTION Standard> +WebKitDOMHTMLOptionElementClass +WEBKIT_DOM_TYPE_HTML_OPTION_ELEMENT +WEBKIT_DOM_HTML_OPTION_ELEMENT +WEBKIT_DOM_IS_HTML_OPTION_ELEMENT +WEBKIT_DOM_HTML_OPTION_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_OPTION_ELEMENT_CLASS +WEBKIT_DOM_HTML_OPTION_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_option_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLOptionsCollection</FILE> +<TITLE>WebKitDOMHTMLOptionsCollection</TITLE> +WebKitDOMHTMLOptionsCollection + +webkit_dom_html_options_collection_named_item +webkit_dom_html_options_collection_get_selected_index +webkit_dom_html_options_collection_set_selected_index +webkit_dom_html_options_collection_get_length + +<SUBSECTION Standard> +WebKitDOMHTMLOptionsCollectionClass +WEBKIT_DOM_TYPE_HTML_OPTIONS_COLLECTION +WEBKIT_DOM_HTML_OPTIONS_COLLECTION +WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION +WEBKIT_DOM_HTML_OPTIONS_COLLECTION_CLASS +WEBKIT_DOM_IS_HTML_OPTIONS_COLLECTION_CLASS +WEBKIT_DOM_HTML_OPTIONS_COLLECTION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_options_collection_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLParagraphElement</FILE> +<TITLE>WebKitDOMHTMLParagraphElement</TITLE> +WebKitDOMHTMLParagraphElement + +webkit_dom_html_paragraph_element_get_align +webkit_dom_html_paragraph_element_set_align + +<SUBSECTION Standard> +WebKitDOMHTMLParagraphElementClass +WEBKIT_DOM_TYPE_HTML_PARAGRAPH_ELEMENT +WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT +WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT +WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT_CLASS +WEBKIT_DOM_HTML_PARAGRAPH_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_paragraph_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLParamElement</FILE> +<TITLE>WebKitDOMHTMLParamElement</TITLE> +WebKitDOMHTMLParamElement + +webkit_dom_html_param_element_get_name +webkit_dom_html_param_element_set_name +webkit_dom_html_param_element_get_type_attr +webkit_dom_html_param_element_set_type_attr +webkit_dom_html_param_element_get_value +webkit_dom_html_param_element_set_value +webkit_dom_html_param_element_get_value_type +webkit_dom_html_param_element_set_value_type + +<SUBSECTION Standard> +WebKitDOMHTMLParamElementClass +WEBKIT_DOM_TYPE_HTML_PARAM_ELEMENT +WEBKIT_DOM_HTML_PARAM_ELEMENT +WEBKIT_DOM_IS_HTML_PARAM_ELEMENT +WEBKIT_DOM_HTML_PARAM_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_PARAM_ELEMENT_CLASS +WEBKIT_DOM_HTML_PARAM_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_param_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLPreElement</FILE> +<TITLE>WebKitDOMHTMLPreElement</TITLE> +WebKitDOMHTMLPreElement + +webkit_dom_html_pre_element_get_width +webkit_dom_html_pre_element_set_width +webkit_dom_html_pre_element_get_wrap +webkit_dom_html_pre_element_set_wrap + +<SUBSECTION Standard> +WebKitDOMHTMLPreElementClass +WEBKIT_DOM_TYPE_HTML_PRE_ELEMENT +WEBKIT_DOM_HTML_PRE_ELEMENT +WEBKIT_DOM_IS_HTML_PRE_ELEMENT +WEBKIT_DOM_HTML_PRE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_PRE_ELEMENT_CLASS +WEBKIT_DOM_HTML_PRE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_pre_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLQuoteElement</FILE> +<TITLE>WebKitDOMHTMLQuoteElement</TITLE> +WebKitDOMHTMLQuoteElement + +webkit_dom_html_quote_element_get_cite +webkit_dom_html_quote_element_set_cite + +<SUBSECTION Standard> +WebKitDOMHTMLQuoteElementClass +WEBKIT_DOM_TYPE_HTML_QUOTE_ELEMENT +WEBKIT_DOM_HTML_QUOTE_ELEMENT +WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT +WEBKIT_DOM_HTML_QUOTE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_QUOTE_ELEMENT_CLASS +WEBKIT_DOM_HTML_QUOTE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_quote_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLScriptElement</FILE> +<TITLE>WebKitDOMHTMLScriptElement</TITLE> +WebKitDOMHTMLScriptElement + +webkit_dom_html_script_element_get_text +webkit_dom_html_script_element_set_text +webkit_dom_html_script_element_get_html_for +webkit_dom_html_script_element_set_html_for +webkit_dom_html_script_element_get_event +webkit_dom_html_script_element_set_event +webkit_dom_html_script_element_get_charset +webkit_dom_html_script_element_set_charset +webkit_dom_html_script_element_get_defer +webkit_dom_html_script_element_set_defer +webkit_dom_html_script_element_get_src +webkit_dom_html_script_element_set_src +webkit_dom_html_script_element_get_type_attr +webkit_dom_html_script_element_set_type_attr + +<SUBSECTION Standard> +WebKitDOMHTMLScriptElementClass +WEBKIT_DOM_TYPE_HTML_SCRIPT_ELEMENT +WEBKIT_DOM_HTML_SCRIPT_ELEMENT +WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT +WEBKIT_DOM_HTML_SCRIPT_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_SCRIPT_ELEMENT_CLASS +WEBKIT_DOM_HTML_SCRIPT_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_script_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLSelectElement</FILE> +<TITLE>WebKitDOMHTMLSelectElement</TITLE> +WebKitDOMHTMLSelectElement + +webkit_dom_html_select_element_item +webkit_dom_html_select_element_named_item +webkit_dom_html_select_element_add +webkit_dom_html_select_element_remove +webkit_dom_html_select_element_get_autofocus +webkit_dom_html_select_element_set_autofocus +webkit_dom_html_select_element_get_disabled +webkit_dom_html_select_element_set_disabled +webkit_dom_html_select_element_get_form +webkit_dom_html_select_element_get_multiple +webkit_dom_html_select_element_set_multiple +webkit_dom_html_select_element_get_name +webkit_dom_html_select_element_set_name +webkit_dom_html_select_element_get_size +webkit_dom_html_select_element_set_size +webkit_dom_html_select_element_get_select_type +webkit_dom_html_select_element_get_options +webkit_dom_html_select_element_get_length +webkit_dom_html_select_element_set_length +webkit_dom_html_select_element_get_selected_index +webkit_dom_html_select_element_set_selected_index +webkit_dom_html_select_element_get_value +webkit_dom_html_select_element_set_value +webkit_dom_html_select_element_get_will_validate + +<SUBSECTION Standard> +WebKitDOMHTMLSelectElementClass +WEBKIT_DOM_TYPE_HTML_SELECT_ELEMENT +WEBKIT_DOM_HTML_SELECT_ELEMENT +WEBKIT_DOM_IS_HTML_SELECT_ELEMENT +WEBKIT_DOM_HTML_SELECT_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_SELECT_ELEMENT_CLASS +WEBKIT_DOM_HTML_SELECT_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_select_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLStyleElement</FILE> +<TITLE>WebKitDOMHTMLStyleElement</TITLE> +WebKitDOMHTMLStyleElement + +webkit_dom_html_style_element_get_disabled +webkit_dom_html_style_element_set_disabled +webkit_dom_html_style_element_get_media +webkit_dom_html_style_element_set_media +webkit_dom_html_style_element_get_type_attr +webkit_dom_html_style_element_set_type_attr +webkit_dom_html_style_element_get_sheet + +<SUBSECTION Standard> +WebKitDOMHTMLStyleElementClass +WEBKIT_DOM_TYPE_HTML_STYLE_ELEMENT +WEBKIT_DOM_HTML_STYLE_ELEMENT +WEBKIT_DOM_IS_HTML_STYLE_ELEMENT +WEBKIT_DOM_HTML_STYLE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_STYLE_ELEMENT_CLASS +WEBKIT_DOM_HTML_STYLE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_style_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTableCaptionElement</FILE> +<TITLE>WebKitDOMHTMLTableCaptionElement</TITLE> +WebKitDOMHTMLTableCaptionElement + +webkit_dom_html_table_caption_element_get_align +webkit_dom_html_table_caption_element_set_align + +<SUBSECTION Standard> +WebKitDOMHTMLTableCaptionElementClass +WEBKIT_DOM_TYPE_HTML_TABLE_CAPTION_ELEMENT +WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT +WEBKIT_DOM_IS_HTML_TABLE_CAPTION_ELEMENT +WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TABLE_CAPTION_ELEMENT_CLASS +WEBKIT_DOM_HTML_TABLE_CAPTION_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_table_caption_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTableCellElement</FILE> +<TITLE>WebKitDOMHTMLTableCellElement</TITLE> +WebKitDOMHTMLTableCellElement + +webkit_dom_html_table_cell_element_get_cell_index +webkit_dom_html_table_cell_element_get_align +webkit_dom_html_table_cell_element_set_align +webkit_dom_html_table_cell_element_get_axis +webkit_dom_html_table_cell_element_set_axis +webkit_dom_html_table_cell_element_get_bg_color +webkit_dom_html_table_cell_element_set_bg_color +webkit_dom_html_table_cell_element_get_ch +webkit_dom_html_table_cell_element_set_ch +webkit_dom_html_table_cell_element_get_ch_off +webkit_dom_html_table_cell_element_set_ch_off +webkit_dom_html_table_cell_element_get_col_span +webkit_dom_html_table_cell_element_set_col_span +webkit_dom_html_table_cell_element_get_row_span +webkit_dom_html_table_cell_element_set_row_span +webkit_dom_html_table_cell_element_get_headers +webkit_dom_html_table_cell_element_set_headers +webkit_dom_html_table_cell_element_get_height +webkit_dom_html_table_cell_element_set_height +webkit_dom_html_table_cell_element_get_no_wrap +webkit_dom_html_table_cell_element_set_no_wrap +webkit_dom_html_table_cell_element_get_v_align +webkit_dom_html_table_cell_element_set_v_align +webkit_dom_html_table_cell_element_get_width +webkit_dom_html_table_cell_element_set_width +webkit_dom_html_table_cell_element_get_abbr +webkit_dom_html_table_cell_element_set_abbr +webkit_dom_html_table_cell_element_get_scope +webkit_dom_html_table_cell_element_set_scope + +<SUBSECTION Standard> +WebKitDOMHTMLTableCellElementClass +WEBKIT_DOM_TYPE_HTML_TABLE_CELL_ELEMENT +WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT +WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT +WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT_CLASS +WEBKIT_DOM_HTML_TABLE_CELL_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_table_cell_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTableColElement</FILE> +<TITLE>WebKitDOMHTMLTableColElement</TITLE> +WebKitDOMHTMLTableColElement + +webkit_dom_html_table_col_element_get_align +webkit_dom_html_table_col_element_set_align +webkit_dom_html_table_col_element_get_ch +webkit_dom_html_table_col_element_set_ch +webkit_dom_html_table_col_element_get_ch_off +webkit_dom_html_table_col_element_set_ch_off +webkit_dom_html_table_col_element_get_span +webkit_dom_html_table_col_element_set_span +webkit_dom_html_table_col_element_get_v_align +webkit_dom_html_table_col_element_set_v_align +webkit_dom_html_table_col_element_get_width +webkit_dom_html_table_col_element_set_width + +<SUBSECTION Standard> +WebKitDOMHTMLTableColElementClass +WEBKIT_DOM_TYPE_HTML_TABLE_COL_ELEMENT +WEBKIT_DOM_HTML_TABLE_COL_ELEMENT +WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT +WEBKIT_DOM_HTML_TABLE_COL_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TABLE_COL_ELEMENT_CLASS +WEBKIT_DOM_HTML_TABLE_COL_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_table_col_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTableElement</FILE> +<TITLE>WebKitDOMHTMLTableElement</TITLE> +WebKitDOMHTMLTableElement + +webkit_dom_html_table_element_create_t_head +webkit_dom_html_table_element_delete_t_head +webkit_dom_html_table_element_create_t_foot +webkit_dom_html_table_element_delete_t_foot +webkit_dom_html_table_element_create_caption +webkit_dom_html_table_element_delete_caption +webkit_dom_html_table_element_insert_row +webkit_dom_html_table_element_delete_row +webkit_dom_html_table_element_get_caption +webkit_dom_html_table_element_set_caption +webkit_dom_html_table_element_get_t_head +webkit_dom_html_table_element_set_t_head +webkit_dom_html_table_element_get_t_foot +webkit_dom_html_table_element_set_t_foot +webkit_dom_html_table_element_get_rows +webkit_dom_html_table_element_get_t_bodies +webkit_dom_html_table_element_get_align +webkit_dom_html_table_element_set_align +webkit_dom_html_table_element_get_bg_color +webkit_dom_html_table_element_set_bg_color +webkit_dom_html_table_element_get_border +webkit_dom_html_table_element_set_border +webkit_dom_html_table_element_get_cell_padding +webkit_dom_html_table_element_set_cell_padding +webkit_dom_html_table_element_get_cell_spacing +webkit_dom_html_table_element_set_cell_spacing +webkit_dom_html_table_element_get_rules +webkit_dom_html_table_element_set_rules +webkit_dom_html_table_element_get_summary +webkit_dom_html_table_element_set_summary +webkit_dom_html_table_element_get_width +webkit_dom_html_table_element_set_width + +<SUBSECTION Standard> +WebKitDOMHTMLTableElementClass +WEBKIT_DOM_TYPE_HTML_TABLE_ELEMENT +WEBKIT_DOM_HTML_TABLE_ELEMENT +WEBKIT_DOM_IS_HTML_TABLE_ELEMENT +WEBKIT_DOM_HTML_TABLE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TABLE_ELEMENT_CLASS +WEBKIT_DOM_HTML_TABLE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_table_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTableRowElement</FILE> +<TITLE>WebKitDOMHTMLTableRowElement</TITLE> +WebKitDOMHTMLTableRowElement + +webkit_dom_html_table_row_element_insert_cell +webkit_dom_html_table_row_element_delete_cell +webkit_dom_html_table_row_element_get_row_index +webkit_dom_html_table_row_element_get_section_row_index +webkit_dom_html_table_row_element_get_cells +webkit_dom_html_table_row_element_get_align +webkit_dom_html_table_row_element_set_align +webkit_dom_html_table_row_element_get_bg_color +webkit_dom_html_table_row_element_set_bg_color +webkit_dom_html_table_row_element_get_ch +webkit_dom_html_table_row_element_set_ch +webkit_dom_html_table_row_element_get_ch_off +webkit_dom_html_table_row_element_set_ch_off +webkit_dom_html_table_row_element_get_v_align +webkit_dom_html_table_row_element_set_v_align + +<SUBSECTION Standard> +WebKitDOMHTMLTableRowElementClass +WEBKIT_DOM_TYPE_HTML_TABLE_ROW_ELEMENT +WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT +WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT +WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT_CLASS +WEBKIT_DOM_HTML_TABLE_ROW_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_table_row_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTableSectionElement</FILE> +<TITLE>WebKitDOMHTMLTableSectionElement</TITLE> +WebKitDOMHTMLTableSectionElement + +webkit_dom_html_table_section_element_insert_row +webkit_dom_html_table_section_element_delete_row +webkit_dom_html_table_section_element_get_align +webkit_dom_html_table_section_element_set_align +webkit_dom_html_table_section_element_get_ch +webkit_dom_html_table_section_element_set_ch +webkit_dom_html_table_section_element_get_ch_off +webkit_dom_html_table_section_element_set_ch_off +webkit_dom_html_table_section_element_get_v_align +webkit_dom_html_table_section_element_set_v_align +webkit_dom_html_table_section_element_get_rows + +<SUBSECTION Standard> +WebKitDOMHTMLTableSectionElementClass +WEBKIT_DOM_TYPE_HTML_TABLE_SECTION_ELEMENT +WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT +WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT +WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TABLE_SECTION_ELEMENT_CLASS +WEBKIT_DOM_HTML_TABLE_SECTION_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_table_section_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTextAreaElement</FILE> +<TITLE>WebKitDOMHTMLTextAreaElement</TITLE> +WebKitDOMHTMLTextAreaElement + +webkit_dom_html_text_area_element_select +webkit_dom_html_text_area_element_set_selection_range +webkit_dom_html_text_area_element_get_autofocus +webkit_dom_html_text_area_element_set_autofocus +webkit_dom_html_text_area_element_get_disabled +webkit_dom_html_text_area_element_set_disabled +webkit_dom_html_text_area_element_get_form +webkit_dom_html_text_area_element_get_name +webkit_dom_html_text_area_element_set_name +webkit_dom_html_text_area_element_get_read_only +webkit_dom_html_text_area_element_set_read_only +webkit_dom_html_text_area_element_get_rows +webkit_dom_html_text_area_element_set_rows +webkit_dom_html_text_area_element_get_cols +webkit_dom_html_text_area_element_set_cols +webkit_dom_html_text_area_element_get_area_type +webkit_dom_html_text_area_element_get_default_value +webkit_dom_html_text_area_element_set_default_value +webkit_dom_html_text_area_element_get_value +webkit_dom_html_text_area_element_set_value +webkit_dom_html_text_area_element_get_will_validate +webkit_dom_html_text_area_element_get_selection_start +webkit_dom_html_text_area_element_set_selection_start +webkit_dom_html_text_area_element_get_selection_end +webkit_dom_html_text_area_element_set_selection_end +webkit_dom_html_text_area_element_is_edited + +<SUBSECTION Standard> +WebKitDOMHTMLTextAreaElementClass +WEBKIT_DOM_TYPE_HTML_TEXT_AREA_ELEMENT +WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT +WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT +WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT_CLASS +WEBKIT_DOM_HTML_TEXT_AREA_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_text_area_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLTitleElement</FILE> +<TITLE>WebKitDOMHTMLTitleElement</TITLE> +WebKitDOMHTMLTitleElement + +webkit_dom_html_title_element_get_text +webkit_dom_html_title_element_set_text + +<SUBSECTION Standard> +WebKitDOMHTMLTitleElementClass +WEBKIT_DOM_TYPE_HTML_TITLE_ELEMENT +WEBKIT_DOM_HTML_TITLE_ELEMENT +WEBKIT_DOM_IS_HTML_TITLE_ELEMENT +WEBKIT_DOM_HTML_TITLE_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_TITLE_ELEMENT_CLASS +WEBKIT_DOM_HTML_TITLE_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_title_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLUListElement</FILE> +<TITLE>WebKitDOMHTMLUListElement</TITLE> +WebKitDOMHTMLUListElement + +webkit_dom_html_u_list_element_get_compact +webkit_dom_html_u_list_element_set_compact +webkit_dom_html_u_list_element_get_type_attr +webkit_dom_html_u_list_element_set_type_attr + +<SUBSECTION Standard> +WebKitDOMHTMLUListElementClass +WEBKIT_DOM_TYPE_HTML_U_LIST_ELEMENT +WEBKIT_DOM_HTML_U_LIST_ELEMENT +WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT +WEBKIT_DOM_HTML_U_LIST_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_U_LIST_ELEMENT_CLASS +WEBKIT_DOM_HTML_U_LIST_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_u_list_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMDOMWindow</FILE> +<TITLE>WebKitDOMDOMWindow</TITLE> +WebKitDOMDOMWindow + +webkit_dom_dom_window_get_selection +webkit_dom_dom_window_focus +webkit_dom_dom_window_blur +webkit_dom_dom_window_close +webkit_dom_dom_window_print +webkit_dom_dom_window_stop +webkit_dom_dom_window_alert +webkit_dom_dom_window_confirm +webkit_dom_dom_window_prompt +webkit_dom_dom_window_find +webkit_dom_dom_window_scroll_by +webkit_dom_dom_window_scroll_to +webkit_dom_dom_window_move_by +webkit_dom_dom_window_move_to +webkit_dom_dom_window_resize_by +webkit_dom_dom_window_resize_to +webkit_dom_dom_window_get_computed_style +webkit_dom_dom_window_capture_events +webkit_dom_dom_window_release_events +webkit_dom_dom_window_get_frame_element +webkit_dom_dom_window_get_offscreen_buffering +webkit_dom_dom_window_get_outer_height +webkit_dom_dom_window_get_outer_width +webkit_dom_dom_window_get_inner_height +webkit_dom_dom_window_get_inner_width +webkit_dom_dom_window_get_screen_x +webkit_dom_dom_window_get_screen_y +webkit_dom_dom_window_get_screen_left +webkit_dom_dom_window_get_screen_top +webkit_dom_dom_window_get_scroll_x +webkit_dom_dom_window_get_scroll_y +webkit_dom_dom_window_get_page_x_offset +webkit_dom_dom_window_get_page_y_offset +webkit_dom_dom_window_get_closed +webkit_dom_dom_window_get_length +webkit_dom_dom_window_get_name +webkit_dom_dom_window_set_name +webkit_dom_dom_window_get_status +webkit_dom_dom_window_set_status +webkit_dom_dom_window_get_default_status +webkit_dom_dom_window_set_default_status +webkit_dom_dom_window_get_self +webkit_dom_dom_window_get_window +webkit_dom_dom_window_get_frames +webkit_dom_dom_window_get_opener +webkit_dom_dom_window_get_parent +webkit_dom_dom_window_get_top +webkit_dom_dom_window_get_document +webkit_dom_dom_window_get_device_pixel_ratio +webkit_dom_dom_window_get_orientation +webkit_dom_dom_window_webkit_message_handlers_post_message + +<SUBSECTION Standard> +WebKitDOMDOMWindowClass +WEBKIT_DOM_TYPE_DOM_WINDOW +WEBKIT_DOM_DOM_WINDOW +WEBKIT_DOM_IS_DOM_WINDOW +WEBKIT_DOM_DOM_WINDOW_CLASS +WEBKIT_DOM_IS_DOM_WINDOW_CLASS +WEBKIT_DOM_DOM_WINDOW_GET_CLASS + +<SUBSECTION Private> +webkit_dom_dom_window_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMDOMSelection</FILE> +<TITLE>WebKitDOMDOMSelection</TITLE> +WebKitDOMDOMSelection + +webkit_dom_dom_selection_collapse +webkit_dom_dom_selection_collapse_to_end +webkit_dom_dom_selection_collapse_to_start +webkit_dom_dom_selection_delete_from_document +webkit_dom_dom_selection_contains_node +webkit_dom_dom_selection_select_all_children +webkit_dom_dom_selection_extend +webkit_dom_dom_selection_get_range_at +webkit_dom_dom_selection_remove_all_ranges +webkit_dom_dom_selection_add_range +webkit_dom_dom_selection_set_base_and_extent +webkit_dom_dom_selection_set_position +webkit_dom_dom_selection_empty +webkit_dom_dom_selection_modify +webkit_dom_dom_selection_get_anchor_node +webkit_dom_dom_selection_get_anchor_offset +webkit_dom_dom_selection_get_focus_node +webkit_dom_dom_selection_get_focus_offset +webkit_dom_dom_selection_get_is_collapsed +webkit_dom_dom_selection_get_range_count +webkit_dom_dom_selection_get_selection_type +webkit_dom_dom_selection_get_base_node +webkit_dom_dom_selection_get_base_offset +webkit_dom_dom_selection_get_extent_node +webkit_dom_dom_selection_get_extent_offset + +<SUBSECTION Standard> +WebKitDOMDOMSelectionClass +WEBKIT_DOM_TYPE_DOM_SELECTION +WEBKIT_DOM_DOM_SELECTION +WEBKIT_DOM_IS_DOM_SELECTION +WEBKIT_DOM_DOM_SELECTION_CLASS +WEBKIT_DOM_IS_DOM_SELECTION_CLASS +WEBKIT_DOM_DOM_SELECTION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_dom_selection_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMXPathExpression</FILE> +<TITLE>WebKitDOMXPathExpression</TITLE> +WebKitDOMXPathExpression + +webkit_dom_xpath_expression_evaluate + +<SUBSECTION Standard> +WebKitDOMXPathExpressionClass +WEBKIT_DOM_TYPE_XPATH_EXPRESSION +WEBKIT_DOM_XPATH_EXPRESSION +WEBKIT_DOM_IS_XPATH_EXPRESSION +WEBKIT_DOM_XPATH_EXPRESSION_CLASS +WEBKIT_DOM_IS_XPATH_EXPRESSION_CLASS +WEBKIT_DOM_XPATH_EXPRESSION_GET_CLASS + +<SUBSECTION Private> +webkit_dom_xpath_expression_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMXPathResult</FILE> +<TITLE>WebKitDOMXPathResult</TITLE> +WebKitDOMXPathResult + +WEBKIT_DOM_XPATH_RESULT_ANY_TYPE +WEBKIT_DOM_XPATH_RESULT_NUMBER_TYPE +WEBKIT_DOM_XPATH_RESULT_STRING_TYPE +WEBKIT_DOM_XPATH_RESULT_BOOLEAN_TYPE +WEBKIT_DOM_XPATH_RESULT_UNORDERED_NODE_ITERATOR_TYPE +WEBKIT_DOM_XPATH_RESULT_ORDERED_NODE_ITERATOR_TYPE +WEBKIT_DOM_XPATH_RESULT_UNORDERED_NODE_SNAPSHOT_TYPE +WEBKIT_DOM_XPATH_RESULT_ORDERED_NODE_SNAPSHOT_TYPE +WEBKIT_DOM_XPATH_RESULT_ANY_UNORDERED_NODE_TYPE +WEBKIT_DOM_XPATH_RESULT_FIRST_ORDERED_NODE_TYPE +webkit_dom_xpath_result_iterate_next +webkit_dom_xpath_result_snapshot_item +webkit_dom_xpath_result_get_result_type +webkit_dom_xpath_result_get_number_value +webkit_dom_xpath_result_get_string_value +webkit_dom_xpath_result_get_boolean_value +webkit_dom_xpath_result_get_single_node_value +webkit_dom_xpath_result_get_invalid_iterator_state +webkit_dom_xpath_result_get_snapshot_length + +<SUBSECTION Standard> +WebKitDOMXPathResultClass +WEBKIT_DOM_TYPE_XPATH_RESULT +WEBKIT_DOM_XPATH_RESULT +WEBKIT_DOM_IS_XPATH_RESULT +WEBKIT_DOM_XPATH_RESULT_CLASS +WEBKIT_DOM_IS_XPATH_RESULT_CLASS +WEBKIT_DOM_XPATH_RESULT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_xpath_result_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMEntityReference</FILE> +<TITLE>WebKitDOMEntityReference</TITLE> + +<SUBSECTION Standard> +WEBKIT_DOM_TYPE_ENTITY_REFERENCE +WEBKIT_DOM_ENTITY_REFERENCE +WEBKIT_DOM_IS_ENTITY_REFERENCE +WEBKIT_DOM_ENTITY_REFERENCE_CLASS +WEBKIT_DOM_IS_ENTITY_REFERENCE_CLASS +WEBKIT_DOM_ENTITY_REFERENCE_GET_CLASS + +<SUBSECTION Private> +webkit_dom_entity_reference_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMHTMLBaseFontElement</FILE> +<TITLE>WebKitDOMHTMLBaseFontElement</TITLE> +webkit_dom_html_base_font_element_get_color +webkit_dom_html_base_font_element_get_face +webkit_dom_html_base_font_element_get_size +webkit_dom_html_base_font_element_set_color +webkit_dom_html_base_font_element_set_face +webkit_dom_html_base_font_element_set_size + +<SUBSECTION Standard> +WEBKIT_DOM_TYPE_HTML_BASE_FONT_ELEMENT +WEBKIT_DOM_HTML_BASE_FONT_ELEMENT +WEBKIT_DOM_IS_HTML_BASE_FONT_ELEMENT +WEBKIT_DOM_HTML_BASE_FONT_ELEMENT_CLASS +WEBKIT_DOM_IS_HTML_BASE_FONT_ELEMENT_CLASS +WEBKIT_DOM_HTML_BASE_FONT_ELEMENT_GET_CLASS + +<SUBSECTION Private> +webkit_dom_html_base_font_element_get_type +</SECTION> + +<SECTION> +<FILE>WebKitDOMDOMTokenList</FILE> +<TITLE>WebKitDOMDOMTokenList</TITLE> +WebKitDOMDOMTokenList + +webkit_dom_dom_token_list_item +webkit_dom_dom_token_list_contains +webkit_dom_dom_token_list_add +webkit_dom_dom_token_list_remove +webkit_dom_dom_token_list_toggle +webkit_dom_dom_token_list_replace +webkit_dom_dom_token_list_get_length +webkit_dom_dom_token_list_get_value +webkit_dom_dom_token_list_set_value + +<SUBSECTION Standard> +WEBKIT_DOM_TYPE_DOM_TOKEN_LIST +WEBKIT_DOM_DOM_TOKEN_LIST +WEBKIT_DOM_IS_DOM_TOKEN_LIST +WEBKIT_DOM_DOM_TOKEN_LIST_CLASS +WEBKIT_DOM_IS_DOM_TOKEN_LIST_CLASS +WEBKIT_DOM_DOM_TOKEN_LIST_GET_CLASS + +<SUBSECTION Private> +webkit_dom_dom_token_list_get_type +</SECTION> + +<SECTION> +<FILE>webkitdomdefines</FILE> +<TITLE>WebKitDOMDefines</TITLE> +<SUBSECTION Private> +WEBKIT_API +WEBKIT_DEPRECATED +WEBKIT_DEPRECATED_FOR +</SECTION> + diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-docs.sgml b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-docs.sgml new file mode 100644 index 000000000..8652e1a3a --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-docs.sgml @@ -0,0 +1,127 @@ +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" + "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ +<!ENTITY version SYSTEM "version.xml"> +]> +<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude"> + <bookinfo> + <title>WebKitDOMGTK+ Reference Manual</title> + <releaseinfo>for WebKitDOMGTK+ &version;</releaseinfo> + </bookinfo> + + <chapter> + <title>Class Overview</title> + <xi:include href="xml/WebKitDOMEventTarget.xml"/> + <xi:include href="xml/WebKitDOMNodeFilter.xml"/> + <xi:include href="xml/WebKitDOMObject.xml"/> + <xi:include href="xml/WebKitDOMXPathNSResolver.xml"/> + <xi:include href="xml/WebKitDOMCSSRule.xml"/> + <xi:include href="xml/WebKitDOMCSSRuleList.xml"/> + <xi:include href="xml/WebKitDOMCSSStyleDeclaration.xml"/> + <xi:include href="xml/WebKitDOMCSSStyleSheet.xml"/> + <xi:include href="xml/WebKitDOMCSSValue.xml"/> + <xi:include href="xml/WebKitDOMMediaList.xml"/> + <xi:include href="xml/WebKitDOMStyleSheet.xml"/> + <xi:include href="xml/WebKitDOMStyleSheetList.xml"/> + <xi:include href="xml/WebKitDOMAttr.xml"/> + <xi:include href="xml/WebKitDOMCDATASection.xml"/> + <xi:include href="xml/WebKitDOMCharacterData.xml"/> + <xi:include href="xml/WebKitDOMComment.xml"/> + <xi:include href="xml/WebKitDOMDOMImplementation.xml"/> + <xi:include href="xml/WebKitDOMDocument.xml"/> + <xi:include href="xml/WebKitDOMDocumentFragment.xml"/> + <xi:include href="xml/WebKitDOMDocumentType.xml"/> + <xi:include href="xml/WebKitDOMElement.xml"/> + <xi:include href="xml/WebKitDOMEvent.xml"/> + <xi:include href="xml/WebKitDOMKeyboardEvent.xml"/> + <xi:include href="xml/WebKitDOMMouseEvent.xml"/> + <xi:include href="xml/WebKitDOMNamedNodeMap.xml"/> + <xi:include href="xml/WebKitDOMNode.xml"/> + <xi:include href="xml/WebKitDOMNodeIterator.xml"/> + <xi:include href="xml/WebKitDOMNodeList.xml"/> + <xi:include href="xml/WebKitDOMProcessingInstruction.xml"/> + <xi:include href="xml/WebKitDOMRange.xml"/> + <xi:include href="xml/WebKitDOMText.xml"/> + <xi:include href="xml/WebKitDOMTreeWalker.xml"/> + <xi:include href="xml/WebKitDOMUIEvent.xml"/> + <xi:include href="xml/WebKitDOMWheelEvent.xml"/> + <xi:include href="xml/WebKitDOMBlob.xml"/> + <xi:include href="xml/WebKitDOMFile.xml"/> + <xi:include href="xml/WebKitDOMFileList.xml"/> + <xi:include href="xml/WebKitDOMHTMLAnchorElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLAppletElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLAreaElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLBRElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLBaseElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLBodyElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLButtonElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLCanvasElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLCollection.xml"/> + <xi:include href="xml/WebKitDOMHTMLDListElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLDirectoryElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLDivElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLDocument.xml"/> + <xi:include href="xml/WebKitDOMHTMLElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLEmbedElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLFieldSetElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLFontElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLFormElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLFrameElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLFrameSetElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLHRElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLHeadElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLHeadingElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLHtmlElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLIFrameElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLImageElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLInputElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLLIElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLLabelElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLLegendElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLLinkElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLMapElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLMarqueeElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLMenuElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLMetaElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLModElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLOListElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLObjectElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLOptGroupElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLOptionElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLOptionsCollection.xml"/> + <xi:include href="xml/WebKitDOMHTMLParagraphElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLParamElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLPreElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLQuoteElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLScriptElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLSelectElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLStyleElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTableCaptionElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTableCellElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTableColElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTableElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTableRowElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTableSectionElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTextAreaElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLTitleElement.xml"/> + <xi:include href="xml/WebKitDOMHTMLUListElement.xml"/> + <xi:include href="xml/WebKitDOMDOMWindow.xml"/> + <xi:include href="xml/WebKitDOMDOMSelection.xml"/> + <xi:include href="xml/WebKitDOMXPathExpression.xml"/> + <xi:include href="xml/WebKitDOMXPathResult.xml"/> + <xi:include href="xml/WebKitDOMEntityReference.xml"/> + <xi:include href="xml/WebKitDOMHTMLBaseFontElement.xml"/> + <xi:include href="xml/WebKitDOMDOMTokenList.xml"/> + </chapter> + + <index id="index-all"> + <title>Index</title> + <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include> + </index> + <index id="api-index-deprecated" role="deprecated"> + <title>Index of deprecated symbols</title> + <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include> + </index> + + <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> +</book> diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h new file mode 100644 index 000000000..c8b2a7a81 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h @@ -0,0 +1,128 @@ +/* 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. +*/ + +#ifndef webkitdom_h +#define webkitdom_h + +#define __WEBKITDOM_H_INSIDE__ + +#include <webkitdom/WebKitDOMAttr.h> +#include <webkitdom/WebKitDOMBlob.h> +#include <webkitdom/WebKitDOMCDATASection.h> +#include <webkitdom/WebKitDOMCSSRule.h> +#include <webkitdom/WebKitDOMCSSRuleList.h> +#include <webkitdom/WebKitDOMCSSStyleDeclaration.h> +#include <webkitdom/WebKitDOMCSSStyleSheet.h> +#include <webkitdom/WebKitDOMCSSValue.h> +#include <webkitdom/WebKitDOMCharacterData.h> +#include <webkitdom/WebKitDOMComment.h> +#include <webkitdom/WebKitDOMCustom.h> +#include <webkitdom/WebKitDOMDOMImplementation.h> +#include <webkitdom/WebKitDOMDOMSelection.h> +#include <webkitdom/WebKitDOMDOMTokenList.h> +#include <webkitdom/WebKitDOMDOMWindow.h> +#include <webkitdom/WebKitDOMDeprecated.h> +#include <webkitdom/WebKitDOMDocument.h> +#include <webkitdom/WebKitDOMDocumentFragment.h> +#include <webkitdom/WebKitDOMDocumentType.h> +#include <webkitdom/WebKitDOMElement.h> +#include <webkitdom/WebKitDOMEvent.h> +#include <webkitdom/WebKitDOMEventTarget.h> +#include <webkitdom/WebKitDOMFile.h> +#include <webkitdom/WebKitDOMFileList.h> +#include <webkitdom/WebKitDOMHTMLAnchorElement.h> +#include <webkitdom/WebKitDOMHTMLAppletElement.h> +#include <webkitdom/WebKitDOMHTMLAreaElement.h> +#include <webkitdom/WebKitDOMHTMLBRElement.h> +#include <webkitdom/WebKitDOMHTMLBaseElement.h> +#include <webkitdom/WebKitDOMHTMLBodyElement.h> +#include <webkitdom/WebKitDOMHTMLButtonElement.h> +#include <webkitdom/WebKitDOMHTMLCanvasElement.h> +#include <webkitdom/WebKitDOMHTMLCollection.h> +#include <webkitdom/WebKitDOMHTMLDListElement.h> +#include <webkitdom/WebKitDOMHTMLDirectoryElement.h> +#include <webkitdom/WebKitDOMHTMLDivElement.h> +#include <webkitdom/WebKitDOMHTMLDocument.h> +#include <webkitdom/WebKitDOMHTMLElement.h> +#include <webkitdom/WebKitDOMHTMLEmbedElement.h> +#include <webkitdom/WebKitDOMHTMLFieldSetElement.h> +#include <webkitdom/WebKitDOMHTMLFontElement.h> +#include <webkitdom/WebKitDOMHTMLFormElement.h> +#include <webkitdom/WebKitDOMHTMLFrameElement.h> +#include <webkitdom/WebKitDOMHTMLFrameSetElement.h> +#include <webkitdom/WebKitDOMHTMLHRElement.h> +#include <webkitdom/WebKitDOMHTMLHeadElement.h> +#include <webkitdom/WebKitDOMHTMLHeadingElement.h> +#include <webkitdom/WebKitDOMHTMLHtmlElement.h> +#include <webkitdom/WebKitDOMHTMLIFrameElement.h> +#include <webkitdom/WebKitDOMHTMLImageElement.h> +#include <webkitdom/WebKitDOMHTMLInputElement.h> +#include <webkitdom/WebKitDOMHTMLLIElement.h> +#include <webkitdom/WebKitDOMHTMLLabelElement.h> +#include <webkitdom/WebKitDOMHTMLLegendElement.h> +#include <webkitdom/WebKitDOMHTMLLinkElement.h> +#include <webkitdom/WebKitDOMHTMLMapElement.h> +#include <webkitdom/WebKitDOMHTMLMarqueeElement.h> +#include <webkitdom/WebKitDOMHTMLMenuElement.h> +#include <webkitdom/WebKitDOMHTMLMetaElement.h> +#include <webkitdom/WebKitDOMHTMLModElement.h> +#include <webkitdom/WebKitDOMHTMLOListElement.h> +#include <webkitdom/WebKitDOMHTMLObjectElement.h> +#include <webkitdom/WebKitDOMHTMLOptGroupElement.h> +#include <webkitdom/WebKitDOMHTMLOptionElement.h> +#include <webkitdom/WebKitDOMHTMLOptionsCollection.h> +#include <webkitdom/WebKitDOMHTMLParagraphElement.h> +#include <webkitdom/WebKitDOMHTMLParamElement.h> +#include <webkitdom/WebKitDOMHTMLPreElement.h> +#include <webkitdom/WebKitDOMHTMLQuoteElement.h> +#include <webkitdom/WebKitDOMHTMLScriptElement.h> +#include <webkitdom/WebKitDOMHTMLSelectElement.h> +#include <webkitdom/WebKitDOMHTMLStyleElement.h> +#include <webkitdom/WebKitDOMHTMLTableCaptionElement.h> +#include <webkitdom/WebKitDOMHTMLTableCellElement.h> +#include <webkitdom/WebKitDOMHTMLTableColElement.h> +#include <webkitdom/WebKitDOMHTMLTableElement.h> +#include <webkitdom/WebKitDOMHTMLTableRowElement.h> +#include <webkitdom/WebKitDOMHTMLTableSectionElement.h> +#include <webkitdom/WebKitDOMHTMLTextAreaElement.h> +#include <webkitdom/WebKitDOMHTMLTitleElement.h> +#include <webkitdom/WebKitDOMHTMLUListElement.h> +#include <webkitdom/WebKitDOMKeyboardEvent.h> +#include <webkitdom/WebKitDOMMediaList.h> +#include <webkitdom/WebKitDOMMouseEvent.h> +#include <webkitdom/WebKitDOMNamedNodeMap.h> +#include <webkitdom/WebKitDOMNode.h> +#include <webkitdom/WebKitDOMNodeFilter.h> +#include <webkitdom/WebKitDOMNodeIterator.h> +#include <webkitdom/WebKitDOMNodeList.h> +#include <webkitdom/WebKitDOMObject.h> +#include <webkitdom/WebKitDOMProcessingInstruction.h> +#include <webkitdom/WebKitDOMRange.h> +#include <webkitdom/WebKitDOMStyleSheet.h> +#include <webkitdom/WebKitDOMStyleSheetList.h> +#include <webkitdom/WebKitDOMText.h> +#include <webkitdom/WebKitDOMTreeWalker.h> +#include <webkitdom/WebKitDOMUIEvent.h> +#include <webkitdom/WebKitDOMWheelEvent.h> +#include <webkitdom/WebKitDOMXPathExpression.h> +#include <webkitdom/WebKitDOMXPathNSResolver.h> +#include <webkitdom/WebKitDOMXPathResult.h> + +#undef __WEBKITDOM_H_INSIDE__ + +#endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups.h new file mode 100644 index 000000000..1170c811b --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups.h @@ -0,0 +1,128 @@ +/* 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. +*/ + +#ifndef webkitdomautocleanups_h +#define webkitdomautocleanups_h + +#include <glib-object.h> + +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +#ifndef __GI_SCANNER__ + +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMAttr, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMBlob, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCDATASection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCSSRule, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCSSRuleList, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCSSStyleDeclaration, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCSSStyleSheet, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCSSValue, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCharacterData, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMComment, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMDOMImplementation, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMDOMWindow, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMDocument, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMDocumentFragment, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMDocumentType, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMEvent, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMEventTarget, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMFile, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMFileList, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLAnchorElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLAppletElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLAreaElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLBRElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLBaseElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLBodyElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLButtonElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLCanvasElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLCollection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLDListElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLDirectoryElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLDivElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLDocument, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLEmbedElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLFieldSetElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLFontElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLFormElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLFrameElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLFrameSetElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLHRElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLHeadElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLHeadingElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLHtmlElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLIFrameElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLImageElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLInputElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLLIElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLLabelElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLLegendElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLLinkElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLMapElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLMarqueeElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLMenuElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLMetaElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLModElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLOListElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLObjectElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLOptGroupElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLOptionElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLOptionsCollection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLParagraphElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLParamElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLPreElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLQuoteElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLScriptElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLSelectElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLStyleElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTableCaptionElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTableCellElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTableColElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTableElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTableRowElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTableSectionElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTextAreaElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLTitleElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMHTMLUListElement, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMKeyboardEvent, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMMediaList, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMMouseEvent, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMNamedNodeMap, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMNode, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMNodeFilter, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMNodeIterator, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMNodeList, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMObject, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMProcessingInstruction, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMRange, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMStyleSheet, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMStyleSheetList, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMText, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMTreeWalker, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMUIEvent, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMWheelEvent, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMXPathExpression, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMXPathNSResolver, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMXPathResult, g_object_unref) + +#endif +#endif + +#endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h new file mode 100644 index 000000000..acdc3535c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h @@ -0,0 +1,339 @@ +/* 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. +*/ + +#ifndef webkitdomdefines_h +#define webkitdomdefines_h + +#include <glib.h> + +#ifdef G_OS_WIN32 + #ifdef BUILDING_WEBKIT + #define WEBKIT_API __declspec(dllexport) + #else + #define WEBKIT_API __declspec(dllimport) + #endif +#else + #define WEBKIT_API __attribute__((visibility("default"))) +#endif + +#define WEBKIT_DEPRECATED WEBKIT_API G_DEPRECATED +#define WEBKIT_DEPRECATED_FOR(f) WEBKIT_API G_DEPRECATED_FOR(f) + +#ifndef WEBKIT_API + #define WEBKIT_API +#endif +typedef struct _WebKitDOMAttr WebKitDOMAttr; +typedef struct _WebKitDOMAttrClass WebKitDOMAttrClass; + +typedef struct _WebKitDOMBlob WebKitDOMBlob; +typedef struct _WebKitDOMBlobClass WebKitDOMBlobClass; + +typedef struct _WebKitDOMCDATASection WebKitDOMCDATASection; +typedef struct _WebKitDOMCDATASectionClass WebKitDOMCDATASectionClass; + +typedef struct _WebKitDOMCSSRule WebKitDOMCSSRule; +typedef struct _WebKitDOMCSSRuleClass WebKitDOMCSSRuleClass; + +typedef struct _WebKitDOMCSSRuleList WebKitDOMCSSRuleList; +typedef struct _WebKitDOMCSSRuleListClass WebKitDOMCSSRuleListClass; + +typedef struct _WebKitDOMCSSStyleDeclaration WebKitDOMCSSStyleDeclaration; +typedef struct _WebKitDOMCSSStyleDeclarationClass WebKitDOMCSSStyleDeclarationClass; + +typedef struct _WebKitDOMCSSStyleSheet WebKitDOMCSSStyleSheet; +typedef struct _WebKitDOMCSSStyleSheetClass WebKitDOMCSSStyleSheetClass; + +typedef struct _WebKitDOMCSSValue WebKitDOMCSSValue; +typedef struct _WebKitDOMCSSValueClass WebKitDOMCSSValueClass; + +typedef struct _WebKitDOMCharacterData WebKitDOMCharacterData; +typedef struct _WebKitDOMCharacterDataClass WebKitDOMCharacterDataClass; + +typedef struct _WebKitDOMComment WebKitDOMComment; +typedef struct _WebKitDOMCommentClass WebKitDOMCommentClass; + +typedef struct _WebKitDOMDOMImplementation WebKitDOMDOMImplementation; +typedef struct _WebKitDOMDOMImplementationClass WebKitDOMDOMImplementationClass; + +typedef struct _WebKitDOMDOMWindow WebKitDOMDOMWindow; +typedef struct _WebKitDOMDOMWindowClass WebKitDOMDOMWindowClass; + +typedef struct _WebKitDOMDocument WebKitDOMDocument; +typedef struct _WebKitDOMDocumentClass WebKitDOMDocumentClass; + +typedef struct _WebKitDOMDocumentFragment WebKitDOMDocumentFragment; +typedef struct _WebKitDOMDocumentFragmentClass WebKitDOMDocumentFragmentClass; + +typedef struct _WebKitDOMDocumentType WebKitDOMDocumentType; +typedef struct _WebKitDOMDocumentTypeClass WebKitDOMDocumentTypeClass; + +typedef struct _WebKitDOMElement WebKitDOMElement; +typedef struct _WebKitDOMElementClass WebKitDOMElementClass; + +typedef struct _WebKitDOMEvent WebKitDOMEvent; +typedef struct _WebKitDOMEventClass WebKitDOMEventClass; + +typedef struct _WebKitDOMEventTarget WebKitDOMEventTarget; +typedef struct _WebKitDOMEventTargetIface WebKitDOMEventTargetIface; + +typedef struct _WebKitDOMFile WebKitDOMFile; +typedef struct _WebKitDOMFileClass WebKitDOMFileClass; + +typedef struct _WebKitDOMFileList WebKitDOMFileList; +typedef struct _WebKitDOMFileListClass WebKitDOMFileListClass; + +typedef struct _WebKitDOMHTMLAnchorElement WebKitDOMHTMLAnchorElement; +typedef struct _WebKitDOMHTMLAnchorElementClass WebKitDOMHTMLAnchorElementClass; + +typedef struct _WebKitDOMHTMLAppletElement WebKitDOMHTMLAppletElement; +typedef struct _WebKitDOMHTMLAppletElementClass WebKitDOMHTMLAppletElementClass; + +typedef struct _WebKitDOMHTMLAreaElement WebKitDOMHTMLAreaElement; +typedef struct _WebKitDOMHTMLAreaElementClass WebKitDOMHTMLAreaElementClass; + +typedef struct _WebKitDOMHTMLBRElement WebKitDOMHTMLBRElement; +typedef struct _WebKitDOMHTMLBRElementClass WebKitDOMHTMLBRElementClass; + +typedef struct _WebKitDOMHTMLBaseElement WebKitDOMHTMLBaseElement; +typedef struct _WebKitDOMHTMLBaseElementClass WebKitDOMHTMLBaseElementClass; + +typedef struct _WebKitDOMHTMLBodyElement WebKitDOMHTMLBodyElement; +typedef struct _WebKitDOMHTMLBodyElementClass WebKitDOMHTMLBodyElementClass; + +typedef struct _WebKitDOMHTMLButtonElement WebKitDOMHTMLButtonElement; +typedef struct _WebKitDOMHTMLButtonElementClass WebKitDOMHTMLButtonElementClass; + +typedef struct _WebKitDOMHTMLCanvasElement WebKitDOMHTMLCanvasElement; +typedef struct _WebKitDOMHTMLCanvasElementClass WebKitDOMHTMLCanvasElementClass; + +typedef struct _WebKitDOMHTMLCollection WebKitDOMHTMLCollection; +typedef struct _WebKitDOMHTMLCollectionClass WebKitDOMHTMLCollectionClass; + +typedef struct _WebKitDOMHTMLDListElement WebKitDOMHTMLDListElement; +typedef struct _WebKitDOMHTMLDListElementClass WebKitDOMHTMLDListElementClass; + +typedef struct _WebKitDOMHTMLDirectoryElement WebKitDOMHTMLDirectoryElement; +typedef struct _WebKitDOMHTMLDirectoryElementClass WebKitDOMHTMLDirectoryElementClass; + +typedef struct _WebKitDOMHTMLDivElement WebKitDOMHTMLDivElement; +typedef struct _WebKitDOMHTMLDivElementClass WebKitDOMHTMLDivElementClass; + +typedef struct _WebKitDOMHTMLDocument WebKitDOMHTMLDocument; +typedef struct _WebKitDOMHTMLDocumentClass WebKitDOMHTMLDocumentClass; + +typedef struct _WebKitDOMHTMLElement WebKitDOMHTMLElement; +typedef struct _WebKitDOMHTMLElementClass WebKitDOMHTMLElementClass; + +typedef struct _WebKitDOMHTMLEmbedElement WebKitDOMHTMLEmbedElement; +typedef struct _WebKitDOMHTMLEmbedElementClass WebKitDOMHTMLEmbedElementClass; + +typedef struct _WebKitDOMHTMLFieldSetElement WebKitDOMHTMLFieldSetElement; +typedef struct _WebKitDOMHTMLFieldSetElementClass WebKitDOMHTMLFieldSetElementClass; + +typedef struct _WebKitDOMHTMLFontElement WebKitDOMHTMLFontElement; +typedef struct _WebKitDOMHTMLFontElementClass WebKitDOMHTMLFontElementClass; + +typedef struct _WebKitDOMHTMLFormElement WebKitDOMHTMLFormElement; +typedef struct _WebKitDOMHTMLFormElementClass WebKitDOMHTMLFormElementClass; + +typedef struct _WebKitDOMHTMLFrameElement WebKitDOMHTMLFrameElement; +typedef struct _WebKitDOMHTMLFrameElementClass WebKitDOMHTMLFrameElementClass; + +typedef struct _WebKitDOMHTMLFrameSetElement WebKitDOMHTMLFrameSetElement; +typedef struct _WebKitDOMHTMLFrameSetElementClass WebKitDOMHTMLFrameSetElementClass; + +typedef struct _WebKitDOMHTMLHRElement WebKitDOMHTMLHRElement; +typedef struct _WebKitDOMHTMLHRElementClass WebKitDOMHTMLHRElementClass; + +typedef struct _WebKitDOMHTMLHeadElement WebKitDOMHTMLHeadElement; +typedef struct _WebKitDOMHTMLHeadElementClass WebKitDOMHTMLHeadElementClass; + +typedef struct _WebKitDOMHTMLHeadingElement WebKitDOMHTMLHeadingElement; +typedef struct _WebKitDOMHTMLHeadingElementClass WebKitDOMHTMLHeadingElementClass; + +typedef struct _WebKitDOMHTMLHtmlElement WebKitDOMHTMLHtmlElement; +typedef struct _WebKitDOMHTMLHtmlElementClass WebKitDOMHTMLHtmlElementClass; + +typedef struct _WebKitDOMHTMLIFrameElement WebKitDOMHTMLIFrameElement; +typedef struct _WebKitDOMHTMLIFrameElementClass WebKitDOMHTMLIFrameElementClass; + +typedef struct _WebKitDOMHTMLImageElement WebKitDOMHTMLImageElement; +typedef struct _WebKitDOMHTMLImageElementClass WebKitDOMHTMLImageElementClass; + +typedef struct _WebKitDOMHTMLInputElement WebKitDOMHTMLInputElement; +typedef struct _WebKitDOMHTMLInputElementClass WebKitDOMHTMLInputElementClass; + +typedef struct _WebKitDOMHTMLLIElement WebKitDOMHTMLLIElement; +typedef struct _WebKitDOMHTMLLIElementClass WebKitDOMHTMLLIElementClass; + +typedef struct _WebKitDOMHTMLLabelElement WebKitDOMHTMLLabelElement; +typedef struct _WebKitDOMHTMLLabelElementClass WebKitDOMHTMLLabelElementClass; + +typedef struct _WebKitDOMHTMLLegendElement WebKitDOMHTMLLegendElement; +typedef struct _WebKitDOMHTMLLegendElementClass WebKitDOMHTMLLegendElementClass; + +typedef struct _WebKitDOMHTMLLinkElement WebKitDOMHTMLLinkElement; +typedef struct _WebKitDOMHTMLLinkElementClass WebKitDOMHTMLLinkElementClass; + +typedef struct _WebKitDOMHTMLMapElement WebKitDOMHTMLMapElement; +typedef struct _WebKitDOMHTMLMapElementClass WebKitDOMHTMLMapElementClass; + +typedef struct _WebKitDOMHTMLMarqueeElement WebKitDOMHTMLMarqueeElement; +typedef struct _WebKitDOMHTMLMarqueeElementClass WebKitDOMHTMLMarqueeElementClass; + +typedef struct _WebKitDOMHTMLMenuElement WebKitDOMHTMLMenuElement; +typedef struct _WebKitDOMHTMLMenuElementClass WebKitDOMHTMLMenuElementClass; + +typedef struct _WebKitDOMHTMLMetaElement WebKitDOMHTMLMetaElement; +typedef struct _WebKitDOMHTMLMetaElementClass WebKitDOMHTMLMetaElementClass; + +typedef struct _WebKitDOMHTMLModElement WebKitDOMHTMLModElement; +typedef struct _WebKitDOMHTMLModElementClass WebKitDOMHTMLModElementClass; + +typedef struct _WebKitDOMHTMLOListElement WebKitDOMHTMLOListElement; +typedef struct _WebKitDOMHTMLOListElementClass WebKitDOMHTMLOListElementClass; + +typedef struct _WebKitDOMHTMLObjectElement WebKitDOMHTMLObjectElement; +typedef struct _WebKitDOMHTMLObjectElementClass WebKitDOMHTMLObjectElementClass; + +typedef struct _WebKitDOMHTMLOptGroupElement WebKitDOMHTMLOptGroupElement; +typedef struct _WebKitDOMHTMLOptGroupElementClass WebKitDOMHTMLOptGroupElementClass; + +typedef struct _WebKitDOMHTMLOptionElement WebKitDOMHTMLOptionElement; +typedef struct _WebKitDOMHTMLOptionElementClass WebKitDOMHTMLOptionElementClass; + +typedef struct _WebKitDOMHTMLOptionsCollection WebKitDOMHTMLOptionsCollection; +typedef struct _WebKitDOMHTMLOptionsCollectionClass WebKitDOMHTMLOptionsCollectionClass; + +typedef struct _WebKitDOMHTMLParagraphElement WebKitDOMHTMLParagraphElement; +typedef struct _WebKitDOMHTMLParagraphElementClass WebKitDOMHTMLParagraphElementClass; + +typedef struct _WebKitDOMHTMLParamElement WebKitDOMHTMLParamElement; +typedef struct _WebKitDOMHTMLParamElementClass WebKitDOMHTMLParamElementClass; + +typedef struct _WebKitDOMHTMLPreElement WebKitDOMHTMLPreElement; +typedef struct _WebKitDOMHTMLPreElementClass WebKitDOMHTMLPreElementClass; + +typedef struct _WebKitDOMHTMLQuoteElement WebKitDOMHTMLQuoteElement; +typedef struct _WebKitDOMHTMLQuoteElementClass WebKitDOMHTMLQuoteElementClass; + +typedef struct _WebKitDOMHTMLScriptElement WebKitDOMHTMLScriptElement; +typedef struct _WebKitDOMHTMLScriptElementClass WebKitDOMHTMLScriptElementClass; + +typedef struct _WebKitDOMHTMLSelectElement WebKitDOMHTMLSelectElement; +typedef struct _WebKitDOMHTMLSelectElementClass WebKitDOMHTMLSelectElementClass; + +typedef struct _WebKitDOMHTMLStyleElement WebKitDOMHTMLStyleElement; +typedef struct _WebKitDOMHTMLStyleElementClass WebKitDOMHTMLStyleElementClass; + +typedef struct _WebKitDOMHTMLTableCaptionElement WebKitDOMHTMLTableCaptionElement; +typedef struct _WebKitDOMHTMLTableCaptionElementClass WebKitDOMHTMLTableCaptionElementClass; + +typedef struct _WebKitDOMHTMLTableCellElement WebKitDOMHTMLTableCellElement; +typedef struct _WebKitDOMHTMLTableCellElementClass WebKitDOMHTMLTableCellElementClass; + +typedef struct _WebKitDOMHTMLTableColElement WebKitDOMHTMLTableColElement; +typedef struct _WebKitDOMHTMLTableColElementClass WebKitDOMHTMLTableColElementClass; + +typedef struct _WebKitDOMHTMLTableElement WebKitDOMHTMLTableElement; +typedef struct _WebKitDOMHTMLTableElementClass WebKitDOMHTMLTableElementClass; + +typedef struct _WebKitDOMHTMLTableRowElement WebKitDOMHTMLTableRowElement; +typedef struct _WebKitDOMHTMLTableRowElementClass WebKitDOMHTMLTableRowElementClass; + +typedef struct _WebKitDOMHTMLTableSectionElement WebKitDOMHTMLTableSectionElement; +typedef struct _WebKitDOMHTMLTableSectionElementClass WebKitDOMHTMLTableSectionElementClass; + +typedef struct _WebKitDOMHTMLTextAreaElement WebKitDOMHTMLTextAreaElement; +typedef struct _WebKitDOMHTMLTextAreaElementClass WebKitDOMHTMLTextAreaElementClass; + +typedef struct _WebKitDOMHTMLTitleElement WebKitDOMHTMLTitleElement; +typedef struct _WebKitDOMHTMLTitleElementClass WebKitDOMHTMLTitleElementClass; + +typedef struct _WebKitDOMHTMLUListElement WebKitDOMHTMLUListElement; +typedef struct _WebKitDOMHTMLUListElementClass WebKitDOMHTMLUListElementClass; + +typedef struct _WebKitDOMKeyboardEvent WebKitDOMKeyboardEvent; +typedef struct _WebKitDOMKeyboardEventClass WebKitDOMKeyboardEventClass; + +typedef struct _WebKitDOMMediaList WebKitDOMMediaList; +typedef struct _WebKitDOMMediaListClass WebKitDOMMediaListClass; + +typedef struct _WebKitDOMMouseEvent WebKitDOMMouseEvent; +typedef struct _WebKitDOMMouseEventClass WebKitDOMMouseEventClass; + +typedef struct _WebKitDOMNamedNodeMap WebKitDOMNamedNodeMap; +typedef struct _WebKitDOMNamedNodeMapClass WebKitDOMNamedNodeMapClass; + +typedef struct _WebKitDOMNode WebKitDOMNode; +typedef struct _WebKitDOMNodeClass WebKitDOMNodeClass; + +typedef struct _WebKitDOMNodeFilter WebKitDOMNodeFilter; +typedef struct _WebKitDOMNodeFilterIface WebKitDOMNodeFilterIface; + +typedef struct _WebKitDOMNodeIterator WebKitDOMNodeIterator; +typedef struct _WebKitDOMNodeIteratorClass WebKitDOMNodeIteratorClass; + +typedef struct _WebKitDOMNodeList WebKitDOMNodeList; +typedef struct _WebKitDOMNodeListClass WebKitDOMNodeListClass; + +typedef struct _WebKitDOMObject WebKitDOMObject; +typedef struct _WebKitDOMObjectClass WebKitDOMObjectClass; + +typedef struct _WebKitDOMProcessingInstruction WebKitDOMProcessingInstruction; +typedef struct _WebKitDOMProcessingInstructionClass WebKitDOMProcessingInstructionClass; + +typedef struct _WebKitDOMRange WebKitDOMRange; +typedef struct _WebKitDOMRangeClass WebKitDOMRangeClass; + +typedef struct _WebKitDOMDOMSelection WebKitDOMDOMSelection; +typedef struct _WebKitDOMDOMSelectionClass WebKitDOMDOMSelectionClass; + +typedef struct _WebKitDOMStyleSheet WebKitDOMStyleSheet; +typedef struct _WebKitDOMStyleSheetClass WebKitDOMStyleSheetClass; + +typedef struct _WebKitDOMStyleSheetList WebKitDOMStyleSheetList; +typedef struct _WebKitDOMStyleSheetListClass WebKitDOMStyleSheetListClass; + +typedef struct _WebKitDOMText WebKitDOMText; +typedef struct _WebKitDOMTextClass WebKitDOMTextClass; + +typedef struct _WebKitDOMDOMTokenList WebKitDOMDOMTokenList; +typedef struct _WebKitDOMDOMTokenListClass WebKitDOMDOMTokenListClass; + +typedef struct _WebKitDOMTreeWalker WebKitDOMTreeWalker; +typedef struct _WebKitDOMTreeWalkerClass WebKitDOMTreeWalkerClass; + +typedef struct _WebKitDOMUIEvent WebKitDOMUIEvent; +typedef struct _WebKitDOMUIEventClass WebKitDOMUIEventClass; + +typedef struct _WebKitDOMWheelEvent WebKitDOMWheelEvent; +typedef struct _WebKitDOMWheelEventClass WebKitDOMWheelEventClass; + +typedef struct _WebKitDOMXPathExpression WebKitDOMXPathExpression; +typedef struct _WebKitDOMXPathExpressionClass WebKitDOMXPathExpressionClass; + +typedef struct _WebKitDOMXPathNSResolver WebKitDOMXPathNSResolver; +typedef struct _WebKitDOMXPathNSResolverIface WebKitDOMXPathNSResolverIface; + +typedef struct _WebKitDOMXPathResult WebKitDOMXPathResult; +typedef struct _WebKitDOMXPathResultClass WebKitDOMXPathResultClass; + +#include <webkitdom/webkitdomautocleanups.h> + +#endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.cpp new file mode 100644 index 000000000..418e3ee28 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.cpp @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2015 Igalia S.L. + * + * 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 "WebKitConsoleMessage.h" + +#include "WebKitConsoleMessagePrivate.h" + +G_DEFINE_BOXED_TYPE(WebKitConsoleMessage, webkit_console_message, webkit_console_message_copy, webkit_console_message_free) + +/** + * webkit_console_message_copy: + * @console_message: a #WebKitConsoleMessage + * + * Make a copy of @console_message. + * + * Returns: (transfer full): A copy of passed in #WebKitConsoleMessage + * + * Since: 2.12 + */ +WebKitConsoleMessage* webkit_console_message_copy(WebKitConsoleMessage* consoleMessage) +{ + g_return_val_if_fail(consoleMessage, nullptr); + WebKitConsoleMessage* copy = static_cast<WebKitConsoleMessage*>(fastZeroedMalloc(sizeof(WebKitConsoleMessage))); + new (copy) WebKitConsoleMessage(consoleMessage); + return copy; +} + +/** + * webkit_console_message_free: + * @console_message: a #WebKitConsoleMessage + * + * Free the #WebKitConsoleMessage + * + * Since: 2.12 + */ +void webkit_console_message_free(WebKitConsoleMessage* consoleMessage) +{ + g_return_if_fail(consoleMessage); + consoleMessage->~WebKitConsoleMessage(); + fastFree(consoleMessage); +} + +/** + * webkit_console_message_get_source: + * @console_message: a #WebKitConsoleMessage + * + * Gets the source of a #WebKitConsoleMessage + * + * Returns: a #WebKitConsoleMessageSource indicating the source of @console_message + * + * Since: 2.12 + */ +WebKitConsoleMessageSource webkit_console_message_get_source(WebKitConsoleMessage* consoleMessage) +{ + g_return_val_if_fail(consoleMessage, WEBKIT_CONSOLE_MESSAGE_SOURCE_OTHER); + switch (consoleMessage->source) { + case JSC::MessageSource::JS: + return WEBKIT_CONSOLE_MESSAGE_SOURCE_JAVASCRIPT; + case JSC::MessageSource::Network: + return WEBKIT_CONSOLE_MESSAGE_SOURCE_NETWORK; + case JSC::MessageSource::ConsoleAPI: + return WEBKIT_CONSOLE_MESSAGE_SOURCE_CONSOLE_API; + case JSC::MessageSource::Security: + return WEBKIT_CONSOLE_MESSAGE_SOURCE_SECURITY; + case JSC::MessageSource::Other: + default: + break; + } + + return WEBKIT_CONSOLE_MESSAGE_SOURCE_OTHER; +} + +/** + * webkit_console_message_get_level: + * @console_message: a #WebKitConsoleMessage + * + * Gets the log level of a #WebKitConsoleMessage + * + * Returns: a #WebKitConsoleMessageLevel indicating the log level of @console_message + * + * Since: 2.12 + */ +WebKitConsoleMessageLevel webkit_console_message_get_level(WebKitConsoleMessage* consoleMessage) +{ + g_return_val_if_fail(consoleMessage, WEBKIT_CONSOLE_MESSAGE_LEVEL_LOG); + switch (consoleMessage->level) { + case JSC::MessageLevel::Log: + return WEBKIT_CONSOLE_MESSAGE_LEVEL_LOG; + case JSC::MessageLevel::Warning: + return WEBKIT_CONSOLE_MESSAGE_LEVEL_WARNING; + case JSC::MessageLevel::Error: + return WEBKIT_CONSOLE_MESSAGE_LEVEL_ERROR; + case JSC::MessageLevel::Debug: + return WEBKIT_CONSOLE_MESSAGE_LEVEL_DEBUG; + case JSC::MessageLevel::Info: + return WEBKIT_CONSOLE_MESSAGE_LEVEL_INFO; + } + + ASSERT_NOT_REACHED(); + return WEBKIT_CONSOLE_MESSAGE_LEVEL_LOG; +} + +/** + * webkit_console_message_get_text: + * @console_message: a #WebKitConsoleMessage + * + * Gets the text message of a #WebKitConsoleMessage + * + * Returns: the text message of @console_message + * + * Since: 2.12 + */ +const gchar* webkit_console_message_get_text(WebKitConsoleMessage* consoleMessage) +{ + g_return_val_if_fail(consoleMessage, nullptr); + return consoleMessage->message.data(); +} + +/** + * webkit_console_message_get_line: + * @console_message: a #WebKitConsoleMessage + * + * Gets the line number of a #WebKitConsoleMessage + * + * Returns: the line number of @console_message + * + * Since: 2.12 + */ +guint webkit_console_message_get_line(WebKitConsoleMessage* consoleMessage) +{ + g_return_val_if_fail(consoleMessage, 0); + return consoleMessage->lineNumber; +} + +/** + * webkit_console_message_get_source_id: + * @console_message: a #WebKitConsoleMessage + * + * Gets the source identifier of a #WebKitConsoleMessage + * + * Returns: the source identifier of @console_message + * + * Since: 2.12 + */ +const gchar* webkit_console_message_get_source_id(WebKitConsoleMessage* consoleMessage) +{ + g_return_val_if_fail(consoleMessage, nullptr); + return consoleMessage->sourceID.data(); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.h new file mode 100644 index 000000000..cbfbcdf31 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.h @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2015 Igalia S.L. + * + * 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. + */ + +#if !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(WEBKIT2_COMPILATION) +#error "Only <webkit2/webkit-web-extension.h> can be included directly." +#endif + +#ifndef WebKitConsoleMessage_h +#define WebKitConsoleMessage_h + +#include <glib-object.h> +#include <webkit2/WebKitDefines.h> + +G_BEGIN_DECLS + +#define WEBKIT_TYPE_CONSOLE_MESSAGE (webkit_console_message_get_type()) + +/** + * WebKitConsoleMessageSource: + * @WEBKIT_CONSOLE_MESSAGE_SOURCE_JAVASCRIPT: Message produced by JavaScript. + * @WEBKIT_CONSOLE_MESSAGE_SOURCE_NETWORK: Network messages. + * @WEBKIT_CONSOLE_MESSAGE_SOURCE_CONSOLE_API: Messages produced by console API. + * @WEBKIT_CONSOLE_MESSAGE_SOURCE_SECURITY: Security messages. + * @WEBKIT_CONSOLE_MESSAGE_SOURCE_OTHER: Other messages. + * + * Enum values used to denote the various sources of console messages. + * + * Since: 2.12 + */ +typedef enum { + WEBKIT_CONSOLE_MESSAGE_SOURCE_JAVASCRIPT, + WEBKIT_CONSOLE_MESSAGE_SOURCE_NETWORK, + WEBKIT_CONSOLE_MESSAGE_SOURCE_CONSOLE_API, + WEBKIT_CONSOLE_MESSAGE_SOURCE_SECURITY, + WEBKIT_CONSOLE_MESSAGE_SOURCE_OTHER +} WebKitConsoleMessageSource; + +/** + * WebKitConsoleMessageLevel: + * @WEBKIT_CONSOLE_MESSAGE_LEVEL_INFO: Information message. + * @WEBKIT_CONSOLE_MESSAGE_LEVEL_LOG: Log message. + * @WEBKIT_CONSOLE_MESSAGE_LEVEL_WARNING: Warning message. + * @WEBKIT_CONSOLE_MESSAGE_LEVEL_ERROR: Error message. + * @WEBKIT_CONSOLE_MESSAGE_LEVEL_DEBUG: Debug message. + * + * Enum values used to denote the various levels of console messages. + * + * Since: 2.12 + */ +typedef enum { + WEBKIT_CONSOLE_MESSAGE_LEVEL_INFO, + WEBKIT_CONSOLE_MESSAGE_LEVEL_LOG, + WEBKIT_CONSOLE_MESSAGE_LEVEL_WARNING, + WEBKIT_CONSOLE_MESSAGE_LEVEL_ERROR, + WEBKIT_CONSOLE_MESSAGE_LEVEL_DEBUG +} WebKitConsoleMessageLevel; + +typedef struct _WebKitConsoleMessage WebKitConsoleMessage; + +WEBKIT_API GType +webkit_console_message_get_type (void); + +WEBKIT_API WebKitConsoleMessage * +webkit_console_message_copy (WebKitConsoleMessage *console_message); + +WEBKIT_API void +webkit_console_message_free (WebKitConsoleMessage *console_message); + +WEBKIT_API WebKitConsoleMessageSource +webkit_console_message_get_source (WebKitConsoleMessage *console_message); + +WEBKIT_API WebKitConsoleMessageLevel +webkit_console_message_get_level (WebKitConsoleMessage *console_message); + +WEBKIT_API const gchar * +webkit_console_message_get_text (WebKitConsoleMessage *console_message); + +WEBKIT_API guint +webkit_console_message_get_line (WebKitConsoleMessage *console_message); + +WEBKIT_API const gchar * +webkit_console_message_get_source_id (WebKitConsoleMessage *console_message); + +G_END_DECLS + +#endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessagePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessagePrivate.h new file mode 100644 index 000000000..afad00549 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessagePrivate.h @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2015 Igalia S.L. + * + * 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. + */ + +#ifndef WebKitConsoleMessagePrivate_h +#define WebKitConsoleMessagePrivate_h + +#include "WebKitConsoleMessage.h" +#include <runtime/ConsoleTypes.h> +#include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> + +struct _WebKitConsoleMessage { + _WebKitConsoleMessage(JSC::MessageSource source, JSC::MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID) + : source(source) + , level(level) + , message(message.utf8()) + , lineNumber(lineNumber) + , sourceID(sourceID.utf8()) + { + } + + _WebKitConsoleMessage(WebKitConsoleMessage* consoleMessage) + : source(consoleMessage->source) + , level(consoleMessage->level) + , message(consoleMessage->message) + , lineNumber(consoleMessage->lineNumber) + , sourceID(consoleMessage->sourceID) + { + } + + JSC::MessageSource source; + JSC::MessageLevel level; + CString message; + unsigned lineNumber; + CString sourceID; +}; + +#endif // WebKitConsoleMessagePrivate_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp index 1691587aa..d7b1bddac 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp @@ -36,7 +36,7 @@ struct _WebKitFramePrivate { WEBKIT_DEFINE_TYPE(WebKitFrame, webkit_frame, G_TYPE_OBJECT) -static void webkit_frame_class_init(WebKitFrameClass* klass) +static void webkit_frame_class_init(WebKitFrameClass*) { } @@ -47,6 +47,11 @@ WebKitFrame* webkitFrameCreate(WebFrame* webFrame) return frame; } +WebFrame* webkitFrameGetWebFrame(WebKitFrame* frame) +{ + return frame->priv->webFrame.get(); +} + /** * webkit_frame_is_main_frame: * @frame: a #WebKitFrame diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h index 3c7fab464..81bc8ac40 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h @@ -24,5 +24,6 @@ #include "WebKitFrame.h" WebKitFrame* webkitFrameCreate(WebKit::WebFrame*); +WebKit::WebFrame* webkitFrameGetWebFrame(WebKitFrame*); #endif // WebKitFramePrivate_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp new file mode 100644 index 000000000..1105091e7 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2015 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2,1 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 "WebKitWebEditor.h" + +#include "WebKitPrivate.h" +#include "WebKitWebEditorPrivate.h" +#include "WebKitWebPagePrivate.h" +#include "WKBundleAPICast.h" + +using namespace WebKit; +using namespace WebCore; + +/** + * SECTION: WebKitWebEditor + * @Short_description: Access to editing capabilities of a #WebKitWebPage + * @Title: WebKitWebEditor + * @See_also: #WebKitWebPage + * + * The WebKitWebEditor provides access to various editing capabilities of + * a #WebKitWebPage such as a possibility to react to the current selection in + * #WebKitWebPage. + * + * Since: 2.10 + */ +enum { + SELECTION_CHANGED, + + LAST_SIGNAL +}; + +struct _WebKitWebEditorPrivate { + WebKitWebPage* webPage; +}; + +static guint signals[LAST_SIGNAL] = { 0, }; + +WEBKIT_DEFINE_TYPE(WebKitWebEditor, webkit_web_editor, G_TYPE_OBJECT) + +static void webkit_web_editor_class_init(WebKitWebEditorClass* klass) +{ + /** + * WebKitWebEditor::selection-changed: + * @editor: the #WebKitWebEditor on which the signal is emitted + * + * This signal is emitted for every selection change inside a #WebKitWebPage + * as well as for every caret position change as the caret is a collapsed + * selection. + * + * Since: 2.10 + */ + signals[SELECTION_CHANGED] = g_signal_new( + "selection-changed", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + 0, nullptr, nullptr, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +static void didChangeSelection(WKBundlePageRef, WKStringRef /* notificationName */, const void* clientInfo) +{ + g_signal_emit(WEBKIT_WEB_EDITOR(clientInfo), signals[SELECTION_CHANGED], 0); +} + +WebKitWebEditor* webkitWebEditorCreate(WebKitWebPage* webPage) +{ + WebKitWebEditor* editor = WEBKIT_WEB_EDITOR(g_object_new(WEBKIT_TYPE_WEB_EDITOR, nullptr)); + editor->priv->webPage = webPage; + + WKBundlePageEditorClientV0 editorClient = { + { + 0, // version + editor, // clientInfo + }, + nullptr, // shouldBeginEditing + nullptr, // shouldEndEditing + nullptr, // shouldInsertNode + nullptr, // shouldInsertText + nullptr, // shouldDeleteRange + nullptr, // shouldChangeSelectedRange + nullptr, // shouldApplyStyle + nullptr, // didBeginEditing + nullptr, // didEndEditing + nullptr, // didChange + didChangeSelection + }; + WKBundlePageSetEditorClient(toAPI(webkitWebPageGetPage(webPage)), &editorClient.base); + + return editor; +} + +/** + * webkit_web_editor_get_page: + * @editor: a #WebKitWebEditor + * + * Gets the #WebKitWebPage that is associated with the #WebKitWebEditor that can + * be used to access the #WebKitDOMDocument currently loaded into it. + * + * Returns: (transfer none): the associated #WebKitWebPage + * + * Since: 2.10 + */ +WebKitWebPage* webkit_web_editor_get_page(WebKitWebEditor* editor) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_EDITOR(editor), nullptr); + + return editor->priv->webPage; +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h new file mode 100644 index 000000000..0cfe9f008 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2015 Red Hat Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2,1 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. + */ + +#if !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(WEBKIT2_COMPILATION) +#error "Only <webkit2/webkit-web-extension.h> can be included directly." +#endif + +#ifndef WebKitWebEditor_h +#define WebKitWebEditor_h + +#include <glib-object.h> +#include <webkit2/WebKitDefines.h> +#include <webkit2/WebKitWebPage.h> + +G_BEGIN_DECLS + +#define WEBKIT_TYPE_WEB_EDITOR (webkit_web_editor_get_type()) +#define WEBKIT_WEB_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_EDITOR, WebKitWebEditor)) +#define WEBKIT_IS_WEB_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_EDITOR)) +#define WEBKIT_WEB_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_EDITOR, WebKitWebEditorClass)) +#define WEBKIT_IS_WEB_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_EDITOR)) +#define WEBKIT_WEB_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_EDITOR, WebKitWebEditorClass)) + +typedef struct _WebKitWebEditor WebKitWebEditor; +typedef struct _WebKitWebEditorClass WebKitWebEditorClass; +typedef struct _WebKitWebEditorPrivate WebKitWebEditorPrivate; + +/* Forward declarations */ +typedef struct _WebKitWebPage WebKitWebPage; + +struct _WebKitWebEditor { + GObject parent; + + WebKitWebEditorPrivate *priv; +}; + +struct _WebKitWebEditorClass { + GObjectClass parent_class; +}; + +WEBKIT_API GType +webkit_web_editor_get_type (void); + +WEBKIT_API WebKitWebPage * +webkit_web_editor_get_page (WebKitWebEditor *editor); + +G_END_DECLS + +#endif // WebKitWebEditor_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h new file mode 100644 index 000000000..88159eb20 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2015 Red Hat Inc. + * + * 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. + */ + +#ifndef WebKitWebEditorPrivate_h +#define WebKitWebEditorPrivate_h + +#include "WebKitWebEditor.h" +#include "WebKitWebPage.h" + +WebKitWebEditor* webkitWebEditorCreate(WebKitWebPage*); + +#endif // WebKitWebEditor_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp index a8dbb55dc..344fb22ea 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp @@ -20,19 +20,95 @@ #include "config.h" #include "WebKitWebExtension.h" +#include "APIDictionary.h" #include "APIString.h" -#include "ImmutableDictionary.h" #include "WKBundleAPICast.h" #include "WKBundlePage.h" #include "WebKitPrivate.h" #include "WebKitWebExtensionPrivate.h" #include "WebKitWebPagePrivate.h" -#include <WebCore/DNS.h> +#include "WebProcess.h" #include <wtf/HashMap.h> -#include <wtf/gobject/GRefPtr.h> +#include <wtf/glib/GRefPtr.h> using namespace WebKit; +/** + * SECTION: WebKitWebExtension + * @Short_description: Represents a WebExtension of the WebProcess + * @Title: WebKitWebExtension + * + * WebKitWebExtension is a loadable module for the WebProcess. It allows you to execute code in the + * WebProcess and being able to use the DOM API, to change any request or to inject custom + * JavaScript code, for example. + * + * To create a WebKitWebExtension you should write a module with an initialization function that could + * be either webkit_web_extension_initialize() with prototype #WebKitWebExtensionInitializeFunction or + * webkit_web_extension_initialize_with_user_data() with prototype #WebKitWebExtensionInitializeWithUserDataFunction. + * This function has to be public and it has to use the #G_MODULE_EXPORT macro. It is called when the + * web process is initialized. + * + * <informalexample><programlisting> + * static void + * web_page_created_callback (WebKitWebExtension *extension, + * WebKitWebPage *web_page, + * gpointer user_data) + * { + * g_print ("Page %d created for %s\n", + * webkit_web_page_get_id (web_page), + * webkit_web_page_get_uri (web_page)); + * } + * + * G_MODULE_EXPORT void + * webkit_web_extension_initialize (WebKitWebExtension *extension) + * { + * g_signal_connect (extension, "page-created", + * G_CALLBACK (web_page_created_callback), + * NULL); + * } + * </programlisting></informalexample> + * + * The previous piece of code shows a trivial example of an extension that notifies when + * a #WebKitWebPage is created. + * + * WebKit has to know where it can find the created WebKitWebExtension. To do so you + * should use the webkit_web_context_set_web_extensions_directory() function. The signal + * #WebKitWebContext::initialize-web-extensions is the recommended place to call it. + * + * To provide the initialization data used by the webkit_web_extension_initialize_with_user_data() + * function, you have to call webkit_web_context_set_web_extensions_initialization_user_data() with + * the desired data as parameter. You can see an example of this in the following piece of code: + * + * <informalexample><programlisting> + * #define WEB_EXTENSIONS_DIRECTORY /<!-- -->* ... *<!-- -->/ + * + * static void + * initialize_web_extensions (WebKitWebContext *context, + * gpointer user_data) + * { + * /<!-- -->* Web Extensions get a different ID for each Web Process *<!-- -->/ + * static guint32 unique_id = 0; + * + * webkit_web_context_set_web_extensions_directory ( + * context, WEB_EXTENSIONS_DIRECTORY); + * webkit_web_context_set_web_extensions_initialization_user_data ( + * context, g_variant_new_uint32 (unique_id++)); + * } + * + * int main (int argc, char **argv) + * { + * g_signal_connect (webkit_web_context_get_default (), + * "initialize-web-extensions", + * G_CALLBACK (initialize_web_extensions), + * NULL); + * + * GtkWidget *view = webkit_web_view_new (); + * + * /<!-- -->* ... *<!-- -->/ + * } + * </programlisting></informalexample> + */ + enum { PAGE_CREATED, @@ -81,32 +157,32 @@ static void webkitWebExtensionPageDestroy(WebKitWebExtension* extension, WebPage extension->priv->pages.remove(page); } -static void webkitWebExtensionDidReceiveMessage(WebKitWebExtension* extension, const String& messageName, ImmutableDictionary& message) +static void webkitWebExtensionDidReceiveMessage(WebKitWebExtension*, const String& messageName, API::Dictionary& message) { if (messageName == String::fromUTF8("PrefetchDNS")) { API::String* hostname = static_cast<API::String*>(message.get(String::fromUTF8("Hostname"))); - WebCore::prefetchDNS(hostname->string()); + WebProcess::singleton().prefetchDNS(hostname->string()); } else ASSERT_NOT_REACHED(); } -static void didCreatePage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo) +static void didCreatePage(WKBundleRef, WKBundlePageRef page, const void* clientInfo) { webkitWebExtensionPageCreated(WEBKIT_WEB_EXTENSION(clientInfo), toImpl(page)); } -static void willDestroyPage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo) +static void willDestroyPage(WKBundleRef, WKBundlePageRef page, const void* clientInfo) { webkitWebExtensionPageDestroy(WEBKIT_WEB_EXTENSION(clientInfo), toImpl(page)); } -static void didReceiveMessage(WKBundleRef bundle, WKStringRef name, WKTypeRef messageBody, const void* clientInfo) +static void didReceiveMessage(WKBundleRef, WKStringRef name, WKTypeRef messageBody, const void* clientInfo) { ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID()); webkitWebExtensionDidReceiveMessage(WEBKIT_WEB_EXTENSION(clientInfo), toImpl(name)->string(), *toImpl(static_cast<WKDictionaryRef>(messageBody))); } -static void didReceiveMessageToPage(WKBundleRef bundle, WKBundlePageRef page, WKStringRef name, WKTypeRef messageBody, const void* clientInfo) +static void didReceiveMessageToPage(WKBundleRef, WKBundlePageRef page, WKStringRef name, WKTypeRef messageBody, const void* clientInfo) { ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID()); if (WebKitWebPage* webPage = WEBKIT_WEB_EXTENSION(clientInfo)->priv->pages.get(toImpl(page)).get()) diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h new file mode 100644 index 000000000..d2729109c --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2015 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. + */ + +#if !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(WEBKIT2_COMPILATION) +#error "Only <webkit2/webkit-web-extension.h> can be included directly." +#endif + +#ifndef WebKitWebExtensionAutocleanups_h +#define WebKitWebExtensionAutocleanups_h + +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +#ifndef __GI_SCANNER__ + +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitFrame, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitScriptWorld, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitWebEditor, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitWebExtension, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitWebHitTestResult, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitWebPage, g_object_unref) + +#endif // __GI_SCANNER__ +#endif // G_DEFINE_AUTOPTR_CLEANUP_FUNC + +#endif // WebKitWebExtensionAutocleanups_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp new file mode 100644 index 000000000..fc20969a6 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2,1 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 "WebKitWebHitTestResult.h" + +#include "InjectedBundleHitTestResult.h" +#include "WebKitDOMNodePrivate.h" +#include "WebKitPrivate.h" +#include "WebKitWebHitTestResultPrivate.h" +#include <glib/gi18n-lib.h> +#include <wtf/glib/GRefPtr.h> +#include <wtf/text/CString.h> + +using namespace WebKit; +using namespace WebCore; + +/** + * SECTION: WebKitWebHitTestResult + * @Short_description: Result of a Hit Test (Web Process Extensions) + * @Title: WebKitWebHitTestResult + * @See_also: #WebKitHitTestResult, #WebKitWebPage + * + * WebKitWebHitTestResult extends #WebKitHitTestResult to provide information + * about the #WebKitDOMNode in the coordinates of the Hit Test. + * + * Since: 2.8 + */ + +enum { + PROP_0, + + PROP_NODE +}; + +struct _WebKitWebHitTestResultPrivate { + GRefPtr<WebKitDOMNode> node; +}; + +WEBKIT_DEFINE_TYPE(WebKitWebHitTestResult, webkit_web_hit_test_result, WEBKIT_TYPE_HIT_TEST_RESULT) + +static void webkitWebHitTestResultGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) +{ + WebKitWebHitTestResult* webHitTestResult = WEBKIT_WEB_HIT_TEST_RESULT(object); + + switch (propId) { + case PROP_NODE: + g_value_set_object(value, webkit_web_hit_test_result_get_node(webHitTestResult)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec); + } +} + +static void webkitWebHitTestResultSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec) +{ + WebKitWebHitTestResult* webHitTestResult = WEBKIT_WEB_HIT_TEST_RESULT(object); + + switch (propId) { + case PROP_NODE: { + gpointer node = g_value_get_object(value); + webHitTestResult->priv->node = node ? WEBKIT_DOM_NODE(node) : nullptr; + break; + } + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec); + } +} + +static void webkit_web_hit_test_result_class_init(WebKitWebHitTestResultClass* klass) +{ + GObjectClass* gObjectClass = G_OBJECT_CLASS(klass); + + gObjectClass->get_property = webkitWebHitTestResultGetProperty; + gObjectClass->set_property = webkitWebHitTestResultSetProperty; + + /** + * WebKitWebHitTestResult:node: + * + * The #WebKitDOMNode + */ + g_object_class_install_property( + gObjectClass, + PROP_NODE, + g_param_spec_object( + "node", + _("Node"), + _("The WebKitDOMNode"), + WEBKIT_DOM_TYPE_NODE, + static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); +} + +WebKitWebHitTestResult* webkitWebHitTestResultCreate(const HitTestResult& hitTestResult) +{ + unsigned context = WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT; + String absoluteLinkURL = hitTestResult.absoluteLinkURL().string(); + if (!absoluteLinkURL.isEmpty()) + context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK; + String absoluteImageURL = hitTestResult.absoluteImageURL().string(); + if (!absoluteImageURL.isEmpty()) + context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE; + String absoluteMediaURL = hitTestResult.absoluteMediaURL().string(); + if (!absoluteMediaURL.isEmpty()) + context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA; + if (hitTestResult.isContentEditable()) + context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE; + if (hitTestResult.scrollbar()) + context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR; + if (hitTestResult.isSelected()) + context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION; + + String linkTitle = hitTestResult.titleDisplayString(); + String linkLabel = hitTestResult.textContent(); + + return WEBKIT_WEB_HIT_TEST_RESULT(g_object_new(WEBKIT_TYPE_WEB_HIT_TEST_RESULT, + "context", context, + "link-uri", context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK ? absoluteLinkURL.utf8().data() : nullptr, + "image-uri", context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE ? absoluteImageURL.utf8().data() : nullptr, + "media-uri", context & WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA ? absoluteMediaURL.utf8().data() : nullptr, + "link-title", !linkTitle.isEmpty() ? linkTitle.utf8().data() : nullptr, + "link-label", !linkLabel.isEmpty() ? linkLabel.utf8().data() : nullptr, + "node", kit(hitTestResult.innerNonSharedNode()), + nullptr)); +} + +/** + * webkit_web_hit_test_result_get_node: + * @hit_test_result: a #WebKitWebHitTestResult + * + * Get the #WebKitDOMNode in the coordinates of the Hit Test. + * + * Returns: (transfer none): a #WebKitDOMNode + * + * Since: 2.8 + */ +WebKitDOMNode* webkit_web_hit_test_result_get_node(WebKitWebHitTestResult* webHitTestResult) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_HIT_TEST_RESULT(webHitTestResult), nullptr); + + return webHitTestResult->priv->node.get(); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.h new file mode 100644 index 000000000..8ce847d87 --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2,1 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. + */ + +#if !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(WEBKIT2_COMPILATION) +#error "Only <webkit2/webkit-web-extension.h> can be included directly." +#endif + +#ifndef WebKitWebHitTestResult_h +#define WebKitWebHitTestResult_h + +#include <glib-object.h> +#include <webkit2/WebKitDefines.h> +#include <webkit2/WebKitHitTestResult.h> +#include <webkitdom/webkitdom.h> + +G_BEGIN_DECLS + +#define WEBKIT_TYPE_WEB_HIT_TEST_RESULT (webkit_web_hit_test_result_get_type()) +#define WEBKIT_WEB_HIT_TEST_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_HIT_TEST_RESULT, WebKitWebHitTestResult)) +#define WEBKIT_IS_WEB_HIT_TEST_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_HIT_TEST_RESULT)) +#define WEBKIT_WEB_HIT_TEST_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_HIT_TEST_RESULT, WebKitWebHitTestResultClass)) +#define WEBKIT_IS_WEB_HIT_TEST_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_HIT_TEST_RESULT)) +#define WEBKIT_WEB_HIT_TEST_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_HIT_TEST_RESULT, WebKitWebHitTestResultClass)) + +typedef struct _WebKitWebHitTestResult WebKitWebHitTestResult; +typedef struct _WebKitWebHitTestResultClass WebKitWebHitTestResultClass; +typedef struct _WebKitWebHitTestResultPrivate WebKitWebHitTestResultPrivate; + +struct _WebKitWebHitTestResult { + WebKitHitTestResult parent; + + WebKitWebHitTestResultPrivate *priv; +}; + +struct _WebKitWebHitTestResultClass { + WebKitHitTestResultClass parent_class; + + void (*_webkit_reserved0) (void); + void (*_webkit_reserved1) (void); + void (*_webkit_reserved2) (void); + void (*_webkit_reserved3) (void); +}; + +WEBKIT_API GType +webkit_web_hit_test_result_get_type (void); + +WEBKIT_API WebKitDOMNode * +webkit_web_hit_test_result_get_node (WebKitWebHitTestResult *hit_test_result); + +G_END_DECLS + +#endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResultPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResultPrivate.h new file mode 100644 index 000000000..66dd7e7ec --- /dev/null +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResultPrivate.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2014 Igalia S.L. + * + * 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. + */ + +#ifndef WebKitWebHitTestResultPrivate_h +#define WebKitWebHitTestResultPrivate_h + +#include "WebKitWebHitTestResult.h" +#include <WebCore/HitTestResult.h> + +WebKitWebHitTestResult* webkitWebHitTestResultCreate(const WebCore::HitTestResult&); + +#endif // WebKitWebHitTestResultPrivate_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp index 272c9ed2f..37da10e7b 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp @@ -20,28 +20,38 @@ #include "config.h" #include "WebKitWebPage.h" +#include "APIArray.h" +#include "APIDictionary.h" #include "ImageOptions.h" -#include "ImmutableDictionary.h" #include "InjectedBundle.h" #include "WKBundleAPICast.h" #include "WKBundleFrame.h" +#include "WebContextMenuItem.h" #include "WebImage.h" +#include "WebKitConsoleMessagePrivate.h" +#include "WebKitContextMenuPrivate.h" #include "WebKitDOMDocumentPrivate.h" +#include "WebKitDOMElementPrivate.h" #include "WebKitFramePrivate.h" #include "WebKitMarshal.h" #include "WebKitPrivate.h" #include "WebKitScriptWorldPrivate.h" #include "WebKitURIRequestPrivate.h" #include "WebKitURIResponsePrivate.h" +#include "WebKitWebEditorPrivate.h" +#include "WebKitWebHitTestResultPrivate.h" #include "WebKitWebPagePrivate.h" #include "WebProcess.h" #include <WebCore/Document.h> #include <WebCore/DocumentLoader.h> #include <WebCore/Frame.h> +#include <WebCore/FrameDestructionObserver.h> #include <WebCore/FrameView.h> +#include <WebCore/MainFrame.h> #include <glib/gi18n-lib.h> #include <wtf/NeverDestroyed.h> #include <wtf/text/CString.h> +#include <wtf/text/StringBuilder.h> using namespace WebKit; using namespace WebCore; @@ -49,6 +59,9 @@ using namespace WebCore; enum { DOCUMENT_LOADED, SEND_REQUEST, + CONTEXT_MENU, + CONSOLE_MESSAGE_SENT, + FORM_CONTROLS_ASSOCIATED, LAST_SIGNAL }; @@ -63,13 +76,37 @@ struct _WebKitWebPagePrivate { WebPage* webPage; CString uri; + + GRefPtr<WebKitWebEditor> webEditor; }; static guint signals[LAST_SIGNAL] = { 0, }; WEBKIT_DEFINE_TYPE(WebKitWebPage, webkit_web_page, G_TYPE_OBJECT) -typedef HashMap<WebFrame*, GRefPtr<WebKitFrame>> WebFrameMap; +static void webFrameDestroyed(WebFrame*); + +class WebKitFrameWrapper final: public FrameDestructionObserver { +public: + WebKitFrameWrapper(WebFrame& webFrame) + : FrameDestructionObserver(webFrame.coreFrame()) + , m_webkitFrame(adoptGRef(webkitFrameCreate(&webFrame))) + { + } + + WebKitFrame* webkitFrame() const { return m_webkitFrame.get(); } + +private: + void frameDestroyed() override + { + FrameDestructionObserver::frameDestroyed(); + webFrameDestroyed(webkitFrameGetWebFrame(m_webkitFrame.get())); + } + + GRefPtr<WebKitFrame> m_webkitFrame; +}; + +typedef HashMap<WebFrame*, std::unique_ptr<WebKitFrameWrapper>> WebFrameMap; static WebFrameMap& webFrameMap() { @@ -79,19 +116,24 @@ static WebFrameMap& webFrameMap() static WebKitFrame* webkitFrameGetOrCreate(WebFrame* webFrame) { - GRefPtr<WebKitFrame> frame = webFrameMap().get(webFrame); - if (frame) - return frame.get(); - - frame = adoptGRef(webkitFrameCreate(webFrame)); - webFrameMap().set(webFrame, frame); + auto wrapperPtr = webFrameMap().get(webFrame); + if (wrapperPtr) + return wrapperPtr->webkitFrame(); + + std::unique_ptr<WebKitFrameWrapper> wrapper = std::make_unique<WebKitFrameWrapper>(*webFrame); + wrapperPtr = wrapper.get(); + webFrameMap().set(webFrame, WTFMove(wrapper)); + return wrapperPtr->webkitFrame(); +} - return frame.get(); +static void webFrameDestroyed(WebFrame* webFrame) +{ + webFrameMap().remove(webFrame); } -static CString getProvisionalURLForFrame(WebFrame* webFrame) +static CString getDocumentLoaderURL(DocumentLoader* documentLoader) { - DocumentLoader* documentLoader = webFrame->coreFrame()->loader().provisionalDocumentLoader(); + ASSERT(documentLoader); if (!documentLoader->unreachableURL().isEmpty()) return documentLoader->unreachableURL().string().utf8(); @@ -107,23 +149,29 @@ static void webkitWebPageSetURI(WebKitWebPage* webPage, const CString& uri) g_object_notify(G_OBJECT(webPage), "uri"); } +static void webkitWebPageDidSendConsoleMessage(WebKitWebPage* webPage, MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID) +{ + WebKitConsoleMessage consoleMessage(source, level, message, lineNumber, sourceID); + g_signal_emit(webPage, signals[CONSOLE_MESSAGE_SENT], 0, &consoleMessage); +} + static void didStartProvisionalLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef*, const void *clientInfo) { if (!WKBundleFrameIsMainFrame(frame)) return; - webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getProvisionalURLForFrame(toImpl(frame))); + webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getDocumentLoaderURL(toImpl(frame)->coreFrame()->loader().provisionalDocumentLoader())); } -static void didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, WKTypeRef* userData, const void *clientInfo) +static void didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef* /* userData */, const void *clientInfo) { if (!WKBundleFrameIsMainFrame(frame)) return; - webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getProvisionalURLForFrame(toImpl(frame))); + webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getDocumentLoaderURL(toImpl(frame)->coreFrame()->loader().provisionalDocumentLoader())); } -static void didSameDocumentNavigationForFrame(WKBundlePageRef page, WKBundleFrameRef frame, WKSameDocumentNavigationType type, WKTypeRef* userData, const void *clientInfo) +static void didSameDocumentNavigationForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKSameDocumentNavigationType, WKTypeRef* /* userData */, const void *clientInfo) { if (!WKBundleFrameIsMainFrame(frame)) return; @@ -131,17 +179,20 @@ static void didSameDocumentNavigationForFrame(WKBundlePageRef page, WKBundleFram webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), toImpl(frame)->coreFrame()->document()->url().string().utf8()); } -static void didFinishDocumentLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef*, const void *clientInfo) +static void didCommitLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef* /* userData */, const void* clientInfo) { if (!WKBundleFrameIsMainFrame(frame)) return; - g_signal_emit(WEBKIT_WEB_PAGE(clientInfo), signals[DOCUMENT_LOADED], 0); + webkitWebPageSetURI(WEBKIT_WEB_PAGE(clientInfo), getDocumentLoaderURL(toImpl(frame)->coreFrame()->loader().documentLoader())); } -static void willDestroyFrame(WKBundlePageRef, WKBundleFrameRef frame, const void *clientInfo) +static void didFinishDocumentLoadForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKTypeRef*, const void *clientInfo) { - webFrameMap().remove(toImpl(frame)); + if (!WKBundleFrameIsMainFrame(frame)) + return; + + g_signal_emit(WEBKIT_WEB_PAGE(clientInfo), signals[DOCUMENT_LOADED], 0); } static void didClearWindowObjectForFrame(WKBundlePageRef, WKBundleFrameRef frame, WKBundleScriptWorldRef wkWorld, const void* clientInfo) @@ -150,14 +201,14 @@ static void didClearWindowObjectForFrame(WKBundlePageRef, WKBundleFrameRef frame webkitScriptWorldWindowObjectCleared(world, WEBKIT_WEB_PAGE(clientInfo), webkitFrameGetOrCreate(toImpl(frame))); } -static void didInitiateLoadForResource(WKBundlePageRef page, WKBundleFrameRef frame, uint64_t identifier, WKURLRequestRef request, bool pageLoadIsProvisional, const void*) +static void didInitiateLoadForResource(WKBundlePageRef page, WKBundleFrameRef frame, uint64_t identifier, WKURLRequestRef request, bool /* pageLoadIsProvisional */, const void*) { - ImmutableDictionary::MapType message; + API::Dictionary::MapType message; message.set(String::fromUTF8("Page"), toImpl(page)); message.set(String::fromUTF8("Frame"), toImpl(frame)); message.set(String::fromUTF8("Identifier"), API::UInt64::create(identifier)); message.set(String::fromUTF8("Request"), toImpl(request)); - WebProcess::shared().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidInitiateLoadForResource"), ImmutableDictionary::create(std::move(message)).get()); + WebProcess::singleton().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidInitiateLoadForResource"), API::Dictionary::create(WTFMove(message)).ptr()); } static WKURLRequestRef willSendRequestForFrame(WKBundlePageRef page, WKBundleFrameRef, uint64_t identifier, WKURLRequestRef wkRequest, WKURLResponseRef wkRedirectResponse, const void* clientInfo) @@ -174,54 +225,145 @@ static WKURLRequestRef willSendRequestForFrame(WKBundlePageRef page, WKBundleFra ResourceRequest resourceRequest; webkitURIRequestGetResourceRequest(request.get(), resourceRequest); resourceRequest.setInitiatingPageID(toImpl(page)->pageID()); - RefPtr<API::URLRequest> newRequest = API::URLRequest::create(resourceRequest); + Ref<API::URLRequest> newRequest = API::URLRequest::create(resourceRequest); - ImmutableDictionary::MapType message; + API::Dictionary::MapType message; message.set(String::fromUTF8("Page"), toImpl(page)); message.set(String::fromUTF8("Identifier"), API::UInt64::create(identifier)); - message.set(String::fromUTF8("Request"), newRequest.get()); + message.set(String::fromUTF8("Request"), newRequest.ptr()); if (!redirectResourceResponse.isNull()) message.set(String::fromUTF8("RedirectResponse"), toImpl(wkRedirectResponse)); - WebProcess::shared().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidSendRequestForResource"), ImmutableDictionary::create(std::move(message)).get()); + WebProcess::singleton().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidSendRequestForResource"), API::Dictionary::create(WTFMove(message)).ptr()); - return toAPI(newRequest.release().leakRef()); + return toAPI(&newRequest.leakRef()); } -static void didReceiveResponseForResource(WKBundlePageRef page, WKBundleFrameRef, uint64_t identifier, WKURLResponseRef response, const void*) +static void didReceiveResponseForResource(WKBundlePageRef page, WKBundleFrameRef, uint64_t identifier, WKURLResponseRef response, const void* clientInfo) { - ImmutableDictionary::MapType message; + API::Dictionary::MapType message; message.set(String::fromUTF8("Page"), toImpl(page)); message.set(String::fromUTF8("Identifier"), API::UInt64::create(identifier)); message.set(String::fromUTF8("Response"), toImpl(response)); - WebProcess::shared().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidReceiveResponseForResource"), ImmutableDictionary::create(std::move(message)).get()); + WebProcess::singleton().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidReceiveResponseForResource"), API::Dictionary::create(WTFMove(message)).ptr()); + + // Post on the console as well to be consistent with the inspector. + const ResourceResponse& resourceResponse = toImpl(response)->resourceResponse(); + if (resourceResponse.httpStatusCode() >= 400) { + StringBuilder errorMessage; + errorMessage.appendLiteral("Failed to load resource: the server responded with a status of "); + errorMessage.appendNumber(resourceResponse.httpStatusCode()); + errorMessage.appendLiteral(" ("); + errorMessage.append(resourceResponse.httpStatusText()); + errorMessage.append(')'); + webkitWebPageDidSendConsoleMessage(WEBKIT_WEB_PAGE(clientInfo), MessageSource::Network, MessageLevel::Error, errorMessage.toString(), 0, resourceResponse.url().string()); + } } static void didReceiveContentLengthForResource(WKBundlePageRef page, WKBundleFrameRef, uint64_t identifier, uint64_t length, const void*) { - ImmutableDictionary::MapType message; + API::Dictionary::MapType message; message.set(String::fromUTF8("Page"), toImpl(page)); message.set(String::fromUTF8("Identifier"), API::UInt64::create(identifier)); message.set(String::fromUTF8("ContentLength"), API::UInt64::create(length)); - WebProcess::shared().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidReceiveContentLengthForResource"), ImmutableDictionary::create(std::move(message)).get()); + WebProcess::singleton().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidReceiveContentLengthForResource"), API::Dictionary::create(WTFMove(message)).ptr()); } static void didFinishLoadForResource(WKBundlePageRef page, WKBundleFrameRef, uint64_t identifier, const void*) { - ImmutableDictionary::MapType message; + API::Dictionary::MapType message; message.set(String::fromUTF8("Page"), toImpl(page)); message.set(String::fromUTF8("Identifier"), API::UInt64::create(identifier)); - WebProcess::shared().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidFinishLoadForResource"), ImmutableDictionary::create(std::move(message)).get()); + WebProcess::singleton().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidFinishLoadForResource"), API::Dictionary::create(WTFMove(message)).ptr()); } -static void didFailLoadForResource(WKBundlePageRef page, WKBundleFrameRef, uint64_t identifier, WKErrorRef error, const void*) +static void didFailLoadForResource(WKBundlePageRef page, WKBundleFrameRef, uint64_t identifier, WKErrorRef error, const void* clientInfo) { - ImmutableDictionary::MapType message; + API::Dictionary::MapType message; message.set(String::fromUTF8("Page"), toImpl(page)); message.set(String::fromUTF8("Identifier"), API::UInt64::create(identifier)); message.set(String::fromUTF8("Error"), toImpl(error)); - WebProcess::shared().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidFailLoadForResource"), ImmutableDictionary::create(std::move(message)).get()); + WebProcess::singleton().injectedBundle()->postMessage(String::fromUTF8("WebPage.DidFailLoadForResource"), API::Dictionary::create(WTFMove(message)).ptr()); + + // Post on the console as well to be consistent with the inspector. + const ResourceError& resourceError = toImpl(error)->platformError(); + if (!resourceError.isCancellation()) { + StringBuilder errorMessage; + errorMessage.appendLiteral("Failed to load resource"); + if (!resourceError.localizedDescription().isEmpty()) { + errorMessage.appendLiteral(": "); + errorMessage.append(resourceError.localizedDescription()); + } + webkitWebPageDidSendConsoleMessage(WEBKIT_WEB_PAGE(clientInfo), MessageSource::Network, MessageLevel::Error, errorMessage.toString(), 0, resourceError.failingURL()); + } } +class PageContextMenuClient final : public API::InjectedBundle::PageContextMenuClient { +public: + explicit PageContextMenuClient(WebKitWebPage* webPage) + : m_webPage(webPage) + { + } + +private: + bool getCustomMenuFromDefaultItems(WebPage&, const WebCore::HitTestResult& hitTestResult, const Vector<WebCore::ContextMenuItem>& defaultMenu, Vector<WebContextMenuItemData>& newMenu, RefPtr<API::Object>& userData) override + { + GRefPtr<WebKitContextMenu> contextMenu = adoptGRef(webkitContextMenuCreate(kitItems(defaultMenu))); + GRefPtr<WebKitWebHitTestResult> webHitTestResult = adoptGRef(webkitWebHitTestResultCreate(hitTestResult)); + gboolean returnValue; + g_signal_emit(m_webPage, signals[CONTEXT_MENU], 0, contextMenu.get(), webHitTestResult.get(), &returnValue); + if (GVariant* variant = webkit_context_menu_get_user_data(contextMenu.get())) { + GUniquePtr<gchar> dataString(g_variant_print(variant, TRUE)); + userData = API::String::create(String::fromUTF8(dataString.get())); + } + + if (!returnValue) + return false; + + webkitContextMenuPopulate(contextMenu.get(), newMenu); + return true; + } + + WebKitWebPage* m_webPage; +}; + +class PageUIClient final : public API::InjectedBundle::PageUIClient { +public: + explicit PageUIClient(WebKitWebPage* webPage) + : m_webPage(webPage) + { + } + +private: + void willAddMessageToConsole(WebPage*, MessageSource source, MessageLevel level, const String& message, unsigned lineNumber, unsigned /*columnNumber*/, const String& sourceID) override + { + webkitWebPageDidSendConsoleMessage(m_webPage, source, level, message, lineNumber, sourceID); + } + + WebKitWebPage* m_webPage; +}; + +class FormClient final : public API::InjectedBundle::FormClient { +public: + explicit FormClient(WebKitWebPage* webPage) + : m_webPage(webPage) + { + } + + void didAssociateFormControls(WebPage*, const Vector<RefPtr<Element>>& elements) override + { + GRefPtr<GPtrArray> formElements = adoptGRef(g_ptr_array_sized_new(elements.size())); + for (size_t i = 0; i < elements.size(); ++i) + g_ptr_array_add(formElements.get(), WebKit::kit(elements[i].get())); + + g_signal_emit(m_webPage, signals[FORM_CONTROLS_ASSOCIATED], 0, formElements.get()); + } + + bool shouldNotifyOnFormChanges(WebPage*) override { return true; } + +private: + WebKitWebPage* m_webPage; +}; + static void webkitWebPageGetProperty(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) { WebKitWebPage* webPage = WEBKIT_WEB_PAGE(object); @@ -304,6 +446,89 @@ static void webkit_web_page_class_init(WebKitWebPageClass* klass) G_TYPE_BOOLEAN, 2, WEBKIT_TYPE_URI_REQUEST, WEBKIT_TYPE_URI_RESPONSE); + + /** + * WebKitWebPage::context-menu: + * @web_page: the #WebKitWebPage on which the signal is emitted + * @context_menu: the proposed #WebKitContextMenu + * @hit_test_result: a #WebKitWebHitTestResult + * + * Emmited before a context menu is displayed in the UI Process to + * give the application a chance to customize the proposed menu, + * build its own context menu or pass user data to the UI Process. + * This signal is useful when the information available in the UI Process + * is not enough to build or customize the context menu, for example, to + * add menu entries depending on the #WebKitDOMNode at the coordinates of the + * @hit_test_result. Otherwise, it's recommened to use #WebKitWebView::context-menu + * signal instead. + * + * Returns: %TRUE if the proposed @context_menu has been modified, or %FALSE otherwise. + * + * Since: 2.8 + */ + signals[CONTEXT_MENU] = g_signal_new( + "context-menu", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + 0, + g_signal_accumulator_true_handled, 0, + webkit_marshal_BOOLEAN__OBJECT_OBJECT, + G_TYPE_BOOLEAN, 2, + WEBKIT_TYPE_CONTEXT_MENU, + WEBKIT_TYPE_WEB_HIT_TEST_RESULT); + + /** + * WebKitWebPage::console-message-sent: + * @web_page: the #WebKitWebPage on which the signal is emitted + * @console_message: the #WebKitConsoleMessage + * + * Emmited when a message is sent to the console. This can be a message + * produced by the use of JavaScript console API, a javascript exception, + * a security error or other errors, warnings, debug or log messages. + * The @console_message contains information of the message. + * + * Since: 2.12 + */ + signals[CONSOLE_MESSAGE_SENT] = g_signal_new( + "console-message-sent", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + 0, 0, nullptr, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, + WEBKIT_TYPE_CONSOLE_MESSAGE | G_SIGNAL_TYPE_STATIC_SCOPE); + + /** + * WebKitWebPage::form-controls-associated: + * @web_page: the #WebKitWebPage on which the signal is emitted + * @elements: (element-type WebKitDOMElement) (transfer none): a #GPtrArray of + * #WebKitDOMElement with the list of forms in the page + * + * Emitted after form elements (or form associated elements) are associated to a particular web + * page. This is useful to implement form autofilling for web pages where form fields are added + * dynamically. This signal might be emitted multiple times for the same web page. + * + * Note that this signal could be also emitted when form controls are moved between forms. In + * that case, the @elements array carries the list of those elements which have moved. + * + * Clients should take a reference to the members of the @elements array if it is desired to + * keep them alive after the signal handler returns. + * + * Since: 2.16 + */ + signals[FORM_CONTROLS_ASSOCIATED] = g_signal_new( + "form-controls-associated", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + 0, 0, nullptr, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, + G_TYPE_PTR_ARRAY); +} + +WebPage* webkitWebPageGetPage(WebKitWebPage *webPage) +{ + return webPage->priv->webPage; } WebKitWebPage* webkitWebPageCreate(WebPage* webPage) @@ -311,15 +536,15 @@ WebKitWebPage* webkitWebPageCreate(WebPage* webPage) WebKitWebPage* page = WEBKIT_WEB_PAGE(g_object_new(WEBKIT_TYPE_WEB_PAGE, NULL)); page->priv->webPage = webPage; - WKBundlePageLoaderClientV7 loaderClient = { + WKBundlePageLoaderClientV6 loaderClient = { { - 7, // version + 6, // version page, // clientInfo }, didStartProvisionalLoadForFrame, didReceiveServerRedirectForProvisionalLoadForFrame, 0, // didFailProvisionalLoadWithErrorForFrame - 0, // didCommitLoadForFrame + didCommitLoadForFrame, didFinishDocumentLoadForFrame, 0, // didFinishLoadForFrame 0, // didFailLoadWithErrorForFrame @@ -327,7 +552,7 @@ WebKitWebPage* webkitWebPageCreate(WebPage* webPage) 0, // didReceiveTitleForFrame 0, // didFirstLayoutForFrame 0, // didFirstVisuallyNonEmptyLayoutForFrame - 0, // didRemoveFrameFromHierarchy + 0, // didRemoveFrameFromHierarchy, 0, // didDisplayInsecureContentForFrame 0, // didRunInsecureContentForFrame didClearWindowObjectForFrame, @@ -350,7 +575,6 @@ WebKitWebPage* webkitWebPageCreate(WebPage* webPage) 0, // featuresUsedInPage 0, // willLoadURLRequest 0, // willLoadDataRequest - willDestroyFrame }; WKBundlePageSetPageLoaderClient(toAPI(webPage), &loaderClient.base); @@ -370,15 +594,20 @@ WebKitWebPage* webkitWebPageCreate(WebPage* webPage) }; WKBundlePageSetResourceLoadClient(toAPI(webPage), &resourceLoadClient.base); + webPage->setInjectedBundleContextMenuClient(std::make_unique<PageContextMenuClient>(page)); + webPage->setInjectedBundleUIClient(std::make_unique<PageUIClient>(page)); + webPage->setInjectedBundleFormClient(std::make_unique<FormClient>(page)); + return page; } -void webkitWebPageDidReceiveMessage(WebKitWebPage* page, const String& messageName, ImmutableDictionary& message) +void webkitWebPageDidReceiveMessage(WebKitWebPage* page, const String& messageName, API::Dictionary& message) { if (messageName == String("GetSnapshot")) { SnapshotOptions snapshotOptions = static_cast<SnapshotOptions>(static_cast<API::UInt64*>(message.get("SnapshotOptions"))->value()); uint64_t callbackID = static_cast<API::UInt64*>(message.get("CallbackID"))->value(); SnapshotRegion region = static_cast<SnapshotRegion>(static_cast<API::UInt64*>(message.get("SnapshotRegion"))->value()); + bool transparentBackground = static_cast<API::Boolean*>(message.get("TransparentBackground"))->value(); RefPtr<WebImage> snapshotImage; WebPage* webPage = page->priv->webPage; @@ -394,15 +623,23 @@ void webkitWebPageDidReceiveMessage(WebKitWebPage* page, const String& messageNa default: ASSERT_NOT_REACHED(); } - if (!snapshotRect.isEmpty()) + if (!snapshotRect.isEmpty()) { + Color savedBackgroundColor; + if (transparentBackground) { + savedBackgroundColor = frameView->baseBackgroundColor(); + frameView->setBaseBackgroundColor(Color::transparent); + } snapshotImage = webPage->scaledSnapshotWithOptions(snapshotRect, 1, snapshotOptions | SnapshotOptionsShareable); + if (transparentBackground) + frameView->setBaseBackgroundColor(savedBackgroundColor); + } } - ImmutableDictionary::MapType messageReply; + API::Dictionary::MapType messageReply; messageReply.set("Page", webPage); messageReply.set("CallbackID", API::UInt64::create(callbackID)); messageReply.set("Snapshot", snapshotImage); - WebProcess::shared().injectedBundle()->postMessage("WebPage.DidGetSnapshot", ImmutableDictionary::create(std::move(messageReply)).get()); + WebProcess::singleton().injectedBundle()->postMessage("WebPage.DidGetSnapshot", API::Dictionary::create(WTFMove(messageReply)).ptr()); } else ASSERT_NOT_REACHED(); } @@ -420,7 +657,7 @@ WebKitDOMDocument* webkit_web_page_get_dom_document(WebKitWebPage* webPage) { g_return_val_if_fail(WEBKIT_IS_WEB_PAGE(webPage), 0); - Frame* coreFrame = webPage->priv->webPage->mainFrame(); + MainFrame* coreFrame = webPage->priv->webPage->mainFrame(); if (!coreFrame) return 0; @@ -477,3 +714,23 @@ WebKitFrame* webkit_web_page_get_main_frame(WebKitWebPage* webPage) return webkitFrameGetOrCreate(webPage->priv->webPage->mainWebFrame()); } + +/** + * webkit_web_page_get_editor: + * @web_page: a #WebKitWebPage + * + * Gets the #WebKitWebEditor of a #WebKitWebPage. + * + * Returns: (transfer none): the #WebKitWebEditor + * + * Since: 2.10 + */ +WebKitWebEditor* webkit_web_page_get_editor(WebKitWebPage* webPage) +{ + g_return_val_if_fail(WEBKIT_IS_WEB_PAGE(webPage), nullptr); + + if (!webPage->priv->webEditor) + webPage->priv->webEditor = adoptGRef(webkitWebEditorCreate(webPage)); + + return webPage->priv->webEditor.get(); +} diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h index 37455286f..033b3cd8b 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h @@ -27,6 +27,7 @@ #include <glib-object.h> #include <webkit2/WebKitDefines.h> #include <webkit2/WebKitFrame.h> +#include <webkit2/WebKitWebEditor.h> #include <webkitdom/webkitdom.h> G_BEGIN_DECLS @@ -42,6 +43,9 @@ typedef struct _WebKitWebPage WebKitWebPage; typedef struct _WebKitWebPageClass WebKitWebPageClass; typedef struct _WebKitWebPagePrivate WebKitWebPagePrivate; +/* Forward declarations */ +typedef struct _WebKitWebEditor WebKitWebEditor; + struct _WebKitWebPage { GObject parent; @@ -67,6 +71,9 @@ webkit_web_page_get_uri (WebKitWebPage *web_page); WEBKIT_API WebKitFrame * webkit_web_page_get_main_frame (WebKitWebPage *web_page); +WEBKIT_API WebKitWebEditor * +webkit_web_page_get_editor (WebKitWebPage *web_page); + G_END_DECLS #endif diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h index 3fec56e73..8dcd42a9d 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h @@ -20,11 +20,12 @@ #ifndef WebKitWebPagePrivate_h #define WebKitWebPagePrivate_h -#include "ImmutableDictionary.h" +#include "APIDictionary.h" #include "WebKitWebPage.h" #include "WebPage.h" WebKitWebPage* webkitWebPageCreate(WebKit::WebPage*); -void webkitWebPageDidReceiveMessage(WebKitWebPage*, const String& messageName, WebKit::ImmutableDictionary& message); +void webkitWebPageDidReceiveMessage(WebKitWebPage*, const String& messageName, API::Dictionary& message); +WebKit::WebPage* webkitWebPageGetPage(WebKitWebPage*); #endif // WebKitWebPagePrivate_h diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h index 2a0881e52..7ff6d777f 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h +++ b/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h @@ -26,14 +26,22 @@ #define __WEBKIT_WEB_EXTENSION_H_INSIDE__ +#include <webkit2/WebKitConsoleMessage.h> +#include <webkit2/WebKitContextMenu.h> +#include <webkit2/WebKitContextMenuActions.h> +#include <webkit2/WebKitContextMenuItem.h> #include <webkit2/WebKitFrame.h> #include <webkit2/WebKitScriptWorld.h> #include <webkit2/WebKitURIRequest.h> #include <webkit2/WebKitURIResponse.h> #include <webkit2/WebKitVersion.h> +#include <webkit2/WebKitWebEditor.h> #include <webkit2/WebKitWebExtension.h> +#include <webkit2/WebKitWebHitTestResult.h> #include <webkit2/WebKitWebPage.h> +#include <webkit2/WebKitWebExtensionAutocleanups.h> + #undef __WEBKIT_WEB_EXTENSION_H_INSIDE__ #endif |