{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

/No description available in the introspection data./
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.WebKit2WebExtension.Objects.DOMNode
    (

-- * Exported types
    DOMNode(..)                             ,
    IsDOMNode                               ,
    toDOMNode                               ,
    noDOMNode                               ,


 -- * Methods
-- ** appendChild #method:appendChild#

#if ENABLE_OVERLOADING
    DOMNodeAppendChildMethodInfo            ,
#endif
    dOMNodeAppendChild                      ,


-- ** cloneNodeWithError #method:cloneNodeWithError#

#if ENABLE_OVERLOADING
    DOMNodeCloneNodeWithErrorMethodInfo     ,
#endif
    dOMNodeCloneNodeWithError               ,


-- ** compareDocumentPosition #method:compareDocumentPosition#

#if ENABLE_OVERLOADING
    DOMNodeCompareDocumentPositionMethodInfo,
#endif
    dOMNodeCompareDocumentPosition          ,


-- ** contains #method:contains#

#if ENABLE_OVERLOADING
    DOMNodeContainsMethodInfo               ,
#endif
    dOMNodeContains                         ,


-- ** forJsValue #method:forJsValue#

    dOMNodeForJsValue                       ,


-- ** getBaseUri #method:getBaseUri#

#if ENABLE_OVERLOADING
    DOMNodeGetBaseUriMethodInfo             ,
#endif
    dOMNodeGetBaseUri                       ,


-- ** getChildNodes #method:getChildNodes#

#if ENABLE_OVERLOADING
    DOMNodeGetChildNodesMethodInfo          ,
#endif
    dOMNodeGetChildNodes                    ,


-- ** getFirstChild #method:getFirstChild#

#if ENABLE_OVERLOADING
    DOMNodeGetFirstChildMethodInfo          ,
#endif
    dOMNodeGetFirstChild                    ,


-- ** getLastChild #method:getLastChild#

#if ENABLE_OVERLOADING
    DOMNodeGetLastChildMethodInfo           ,
#endif
    dOMNodeGetLastChild                     ,


-- ** getLocalName #method:getLocalName#

#if ENABLE_OVERLOADING
    DOMNodeGetLocalNameMethodInfo           ,
#endif
    dOMNodeGetLocalName                     ,


-- ** getNamespaceUri #method:getNamespaceUri#

#if ENABLE_OVERLOADING
    DOMNodeGetNamespaceUriMethodInfo        ,
#endif
    dOMNodeGetNamespaceUri                  ,


-- ** getNextSibling #method:getNextSibling#

#if ENABLE_OVERLOADING
    DOMNodeGetNextSiblingMethodInfo         ,
#endif
    dOMNodeGetNextSibling                   ,


-- ** getNodeName #method:getNodeName#

#if ENABLE_OVERLOADING
    DOMNodeGetNodeNameMethodInfo            ,
#endif
    dOMNodeGetNodeName                      ,


-- ** getNodeType #method:getNodeType#

#if ENABLE_OVERLOADING
    DOMNodeGetNodeTypeMethodInfo            ,
#endif
    dOMNodeGetNodeType                      ,


-- ** getNodeValue #method:getNodeValue#

#if ENABLE_OVERLOADING
    DOMNodeGetNodeValueMethodInfo           ,
#endif
    dOMNodeGetNodeValue                     ,


-- ** getOwnerDocument #method:getOwnerDocument#

#if ENABLE_OVERLOADING
    DOMNodeGetOwnerDocumentMethodInfo       ,
#endif
    dOMNodeGetOwnerDocument                 ,


-- ** getParentElement #method:getParentElement#

#if ENABLE_OVERLOADING
    DOMNodeGetParentElementMethodInfo       ,
#endif
    dOMNodeGetParentElement                 ,


-- ** getParentNode #method:getParentNode#

#if ENABLE_OVERLOADING
    DOMNodeGetParentNodeMethodInfo          ,
#endif
    dOMNodeGetParentNode                    ,


-- ** getPrefix #method:getPrefix#

#if ENABLE_OVERLOADING
    DOMNodeGetPrefixMethodInfo              ,
#endif
    dOMNodeGetPrefix                        ,


-- ** getPreviousSibling #method:getPreviousSibling#

#if ENABLE_OVERLOADING
    DOMNodeGetPreviousSiblingMethodInfo     ,
#endif
    dOMNodeGetPreviousSibling               ,


-- ** getTextContent #method:getTextContent#

#if ENABLE_OVERLOADING
    DOMNodeGetTextContentMethodInfo         ,
#endif
    dOMNodeGetTextContent                   ,


-- ** hasChildNodes #method:hasChildNodes#

#if ENABLE_OVERLOADING
    DOMNodeHasChildNodesMethodInfo          ,
#endif
    dOMNodeHasChildNodes                    ,


-- ** insertBefore #method:insertBefore#

#if ENABLE_OVERLOADING
    DOMNodeInsertBeforeMethodInfo           ,
#endif
    dOMNodeInsertBefore                     ,


-- ** isDefaultNamespace #method:isDefaultNamespace#

#if ENABLE_OVERLOADING
    DOMNodeIsDefaultNamespaceMethodInfo     ,
#endif
    dOMNodeIsDefaultNamespace               ,


-- ** isEqualNode #method:isEqualNode#

#if ENABLE_OVERLOADING
    DOMNodeIsEqualNodeMethodInfo            ,
#endif
    dOMNodeIsEqualNode                      ,


-- ** isSameNode #method:isSameNode#

#if ENABLE_OVERLOADING
    DOMNodeIsSameNodeMethodInfo             ,
#endif
    dOMNodeIsSameNode                       ,


-- ** isSupported #method:isSupported#

#if ENABLE_OVERLOADING
    DOMNodeIsSupportedMethodInfo            ,
#endif
    dOMNodeIsSupported                      ,


-- ** lookupNamespaceUri #method:lookupNamespaceUri#

#if ENABLE_OVERLOADING
    DOMNodeLookupNamespaceUriMethodInfo     ,
#endif
    dOMNodeLookupNamespaceUri               ,


-- ** lookupPrefix #method:lookupPrefix#

#if ENABLE_OVERLOADING
    DOMNodeLookupPrefixMethodInfo           ,
#endif
    dOMNodeLookupPrefix                     ,


-- ** normalize #method:normalize#

#if ENABLE_OVERLOADING
    DOMNodeNormalizeMethodInfo              ,
#endif
    dOMNodeNormalize                        ,


-- ** removeChild #method:removeChild#

#if ENABLE_OVERLOADING
    DOMNodeRemoveChildMethodInfo            ,
#endif
    dOMNodeRemoveChild                      ,


-- ** replaceChild #method:replaceChild#

#if ENABLE_OVERLOADING
    DOMNodeReplaceChildMethodInfo           ,
#endif
    dOMNodeReplaceChild                     ,


-- ** setNodeValue #method:setNodeValue#

#if ENABLE_OVERLOADING
    DOMNodeSetNodeValueMethodInfo           ,
#endif
    dOMNodeSetNodeValue                     ,


-- ** setPrefix #method:setPrefix#

#if ENABLE_OVERLOADING
    DOMNodeSetPrefixMethodInfo              ,
#endif
    dOMNodeSetPrefix                        ,


-- ** setTextContent #method:setTextContent#

#if ENABLE_OVERLOADING
    DOMNodeSetTextContentMethodInfo         ,
#endif
    dOMNodeSetTextContent                   ,




 -- * Properties
-- ** baseUri #attr:baseUri#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeBaseUriPropertyInfo              ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeBaseUri                          ,
#endif
    getDOMNodeBaseUri                       ,


-- ** childNodes #attr:childNodes#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeChildNodesPropertyInfo           ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeChildNodes                       ,
#endif
    getDOMNodeChildNodes                    ,


-- ** firstChild #attr:firstChild#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeFirstChildPropertyInfo           ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeFirstChild                       ,
#endif
    getDOMNodeFirstChild                    ,


-- ** lastChild #attr:lastChild#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeLastChildPropertyInfo            ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeLastChild                        ,
#endif
    getDOMNodeLastChild                     ,


-- ** nextSibling #attr:nextSibling#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeNextSiblingPropertyInfo          ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeNextSibling                      ,
#endif
    getDOMNodeNextSibling                   ,


-- ** nodeName #attr:nodeName#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeNodeNamePropertyInfo             ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeNodeName                         ,
#endif
    getDOMNodeNodeName                      ,


-- ** nodeType #attr:nodeType#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeNodeTypePropertyInfo             ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeNodeType                         ,
#endif
    getDOMNodeNodeType                      ,


-- ** nodeValue #attr:nodeValue#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeNodeValuePropertyInfo            ,
#endif
    clearDOMNodeNodeValue                   ,
    constructDOMNodeNodeValue               ,
#if ENABLE_OVERLOADING
    dOMNodeNodeValue                        ,
#endif
    getDOMNodeNodeValue                     ,
    setDOMNodeNodeValue                     ,


-- ** ownerDocument #attr:ownerDocument#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeOwnerDocumentPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeOwnerDocument                    ,
#endif
    getDOMNodeOwnerDocument                 ,


-- ** parentElement #attr:parentElement#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeParentElementPropertyInfo        ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeParentElement                    ,
#endif
    getDOMNodeParentElement                 ,


-- ** parentNode #attr:parentNode#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeParentNodePropertyInfo           ,
#endif
#if ENABLE_OVERLOADING
    dOMNodeParentNode                       ,
#endif
    getDOMNodeParentNode                    ,


-- ** previousSibling #attr:previousSibling#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodePreviousSiblingPropertyInfo      ,
#endif
#if ENABLE_OVERLOADING
    dOMNodePreviousSibling                  ,
#endif
    getDOMNodePreviousSibling               ,


-- ** textContent #attr:textContent#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMNodeTextContentPropertyInfo          ,
#endif
    clearDOMNodeTextContent                 ,
    constructDOMNodeTextContent             ,
#if ENABLE_OVERLOADING
    dOMNodeTextContent                      ,
#endif
    getDOMNodeTextContent                   ,
    setDOMNodeTextContent                   ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.JavaScriptCore.Objects.Value as JavaScriptCore.Value
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Interfaces.DOMEventTarget as WebKit2WebExtension.DOMEventTarget
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocument as WebKit2WebExtension.DOMDocument
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMElement as WebKit2WebExtension.DOMElement
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMNodeList as WebKit2WebExtension.DOMNodeList
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

-- | Memory-managed wrapper type.
newtype DOMNode = DOMNode (ManagedPtr DOMNode)
foreign import ccall "webkit_dom_node_get_type"
    c_webkit_dom_node_get_type :: IO GType

instance GObject DOMNode where
    gobjectType = c_webkit_dom_node_get_type


-- | Type class for types which can be safely cast to `DOMNode`, for instance with `toDOMNode`.
class (GObject o, O.IsDescendantOf DOMNode o) => IsDOMNode o
instance (GObject o, O.IsDescendantOf DOMNode o) => IsDOMNode o

instance O.HasParentTypes DOMNode
type instance O.ParentTypes DOMNode = '[WebKit2WebExtension.DOMObject.DOMObject, GObject.Object.Object, WebKit2WebExtension.DOMEventTarget.DOMEventTarget]

-- | Cast to `DOMNode`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDOMNode :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
toDOMNode = liftIO . unsafeCastTo DOMNode

-- | A convenience alias for `Nothing` :: `Maybe` `DOMNode`.
noDOMNode :: Maybe DOMNode
noDOMNode = Nothing

#if ENABLE_OVERLOADING
type family ResolveDOMNodeMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMNodeMethod "addEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetAddEventListenerMethodInfo
    ResolveDOMNodeMethod "appendChild" o = DOMNodeAppendChildMethodInfo
    ResolveDOMNodeMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMNodeMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMNodeMethod "cloneNodeWithError" o = DOMNodeCloneNodeWithErrorMethodInfo
    ResolveDOMNodeMethod "compareDocumentPosition" o = DOMNodeCompareDocumentPositionMethodInfo
    ResolveDOMNodeMethod "contains" o = DOMNodeContainsMethodInfo
    ResolveDOMNodeMethod "dispatchEvent" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetDispatchEventMethodInfo
    ResolveDOMNodeMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMNodeMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMNodeMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMNodeMethod "hasChildNodes" o = DOMNodeHasChildNodesMethodInfo
    ResolveDOMNodeMethod "insertBefore" o = DOMNodeInsertBeforeMethodInfo
    ResolveDOMNodeMethod "isDefaultNamespace" o = DOMNodeIsDefaultNamespaceMethodInfo
    ResolveDOMNodeMethod "isEqualNode" o = DOMNodeIsEqualNodeMethodInfo
    ResolveDOMNodeMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMNodeMethod "isSameNode" o = DOMNodeIsSameNodeMethodInfo
    ResolveDOMNodeMethod "isSupported" o = DOMNodeIsSupportedMethodInfo
    ResolveDOMNodeMethod "lookupNamespaceUri" o = DOMNodeLookupNamespaceUriMethodInfo
    ResolveDOMNodeMethod "lookupPrefix" o = DOMNodeLookupPrefixMethodInfo
    ResolveDOMNodeMethod "normalize" o = DOMNodeNormalizeMethodInfo
    ResolveDOMNodeMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMNodeMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMNodeMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMNodeMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMNodeMethod "removeChild" o = DOMNodeRemoveChildMethodInfo
    ResolveDOMNodeMethod "removeEventListener" o = WebKit2WebExtension.DOMEventTarget.DOMEventTargetRemoveEventListenerMethodInfo
    ResolveDOMNodeMethod "replaceChild" o = DOMNodeReplaceChildMethodInfo
    ResolveDOMNodeMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMNodeMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMNodeMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMNodeMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMNodeMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMNodeMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMNodeMethod "getBaseUri" o = DOMNodeGetBaseUriMethodInfo
    ResolveDOMNodeMethod "getChildNodes" o = DOMNodeGetChildNodesMethodInfo
    ResolveDOMNodeMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMNodeMethod "getFirstChild" o = DOMNodeGetFirstChildMethodInfo
    ResolveDOMNodeMethod "getLastChild" o = DOMNodeGetLastChildMethodInfo
    ResolveDOMNodeMethod "getLocalName" o = DOMNodeGetLocalNameMethodInfo
    ResolveDOMNodeMethod "getNamespaceUri" o = DOMNodeGetNamespaceUriMethodInfo
    ResolveDOMNodeMethod "getNextSibling" o = DOMNodeGetNextSiblingMethodInfo
    ResolveDOMNodeMethod "getNodeName" o = DOMNodeGetNodeNameMethodInfo
    ResolveDOMNodeMethod "getNodeType" o = DOMNodeGetNodeTypeMethodInfo
    ResolveDOMNodeMethod "getNodeValue" o = DOMNodeGetNodeValueMethodInfo
    ResolveDOMNodeMethod "getOwnerDocument" o = DOMNodeGetOwnerDocumentMethodInfo
    ResolveDOMNodeMethod "getParentElement" o = DOMNodeGetParentElementMethodInfo
    ResolveDOMNodeMethod "getParentNode" o = DOMNodeGetParentNodeMethodInfo
    ResolveDOMNodeMethod "getPrefix" o = DOMNodeGetPrefixMethodInfo
    ResolveDOMNodeMethod "getPreviousSibling" o = DOMNodeGetPreviousSiblingMethodInfo
    ResolveDOMNodeMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMNodeMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMNodeMethod "getTextContent" o = DOMNodeGetTextContentMethodInfo
    ResolveDOMNodeMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMNodeMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDOMNodeMethod "setNodeValue" o = DOMNodeSetNodeValueMethodInfo
    ResolveDOMNodeMethod "setPrefix" o = DOMNodeSetPrefixMethodInfo
    ResolveDOMNodeMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMNodeMethod "setTextContent" o = DOMNodeSetTextContentMethodInfo
    ResolveDOMNodeMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMNodeMethod t DOMNode, O.MethodInfo info DOMNode p) => OL.IsLabel t (DOMNode -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

#endif

-- VVV Prop "base-uri"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@base-uri@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #baseUri
@
-}
getDOMNodeBaseUri :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeBaseUri obj = liftIO $ B.Properties.getObjectPropertyString obj "base-uri"

#if ENABLE_OVERLOADING
data DOMNodeBaseUriPropertyInfo
instance AttrInfo DOMNodeBaseUriPropertyInfo where
    type AttrAllowedOps DOMNodeBaseUriPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeBaseUriPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeBaseUriPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeBaseUriPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMNodeBaseUriPropertyInfo = "base-uri"
    type AttrOrigin DOMNodeBaseUriPropertyInfo = DOMNode
    attrGet _ = getDOMNodeBaseUri
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "child-nodes"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNodeList"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@child-nodes@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #childNodes
@
-}
getDOMNodeChildNodes :: (MonadIO m, IsDOMNode o) => o -> m (Maybe WebKit2WebExtension.DOMNodeList.DOMNodeList)
getDOMNodeChildNodes obj = liftIO $ B.Properties.getObjectPropertyObject obj "child-nodes" WebKit2WebExtension.DOMNodeList.DOMNodeList

#if ENABLE_OVERLOADING
data DOMNodeChildNodesPropertyInfo
instance AttrInfo DOMNodeChildNodesPropertyInfo where
    type AttrAllowedOps DOMNodeChildNodesPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeChildNodesPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeChildNodesPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeChildNodesPropertyInfo = (Maybe WebKit2WebExtension.DOMNodeList.DOMNodeList)
    type AttrLabel DOMNodeChildNodesPropertyInfo = "child-nodes"
    type AttrOrigin DOMNodeChildNodesPropertyInfo = DOMNode
    attrGet _ = getDOMNodeChildNodes
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "first-child"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@first-child@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #firstChild
@
-}
getDOMNodeFirstChild :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeFirstChild obj = liftIO $ checkUnexpectedNothing "getDOMNodeFirstChild" $ B.Properties.getObjectPropertyObject obj "first-child" DOMNode

#if ENABLE_OVERLOADING
data DOMNodeFirstChildPropertyInfo
instance AttrInfo DOMNodeFirstChildPropertyInfo where
    type AttrAllowedOps DOMNodeFirstChildPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeFirstChildPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeFirstChildPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeFirstChildPropertyInfo = DOMNode
    type AttrLabel DOMNodeFirstChildPropertyInfo = "first-child"
    type AttrOrigin DOMNodeFirstChildPropertyInfo = DOMNode
    attrGet _ = getDOMNodeFirstChild
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "last-child"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@last-child@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #lastChild
@
-}
getDOMNodeLastChild :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeLastChild obj = liftIO $ checkUnexpectedNothing "getDOMNodeLastChild" $ B.Properties.getObjectPropertyObject obj "last-child" DOMNode

#if ENABLE_OVERLOADING
data DOMNodeLastChildPropertyInfo
instance AttrInfo DOMNodeLastChildPropertyInfo where
    type AttrAllowedOps DOMNodeLastChildPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeLastChildPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeLastChildPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeLastChildPropertyInfo = DOMNode
    type AttrLabel DOMNodeLastChildPropertyInfo = "last-child"
    type AttrOrigin DOMNodeLastChildPropertyInfo = DOMNode
    attrGet _ = getDOMNodeLastChild
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "next-sibling"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@next-sibling@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #nextSibling
@
-}
getDOMNodeNextSibling :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeNextSibling obj = liftIO $ checkUnexpectedNothing "getDOMNodeNextSibling" $ B.Properties.getObjectPropertyObject obj "next-sibling" DOMNode

#if ENABLE_OVERLOADING
data DOMNodeNextSiblingPropertyInfo
instance AttrInfo DOMNodeNextSiblingPropertyInfo where
    type AttrAllowedOps DOMNodeNextSiblingPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeNextSiblingPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeNextSiblingPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeNextSiblingPropertyInfo = DOMNode
    type AttrLabel DOMNodeNextSiblingPropertyInfo = "next-sibling"
    type AttrOrigin DOMNodeNextSiblingPropertyInfo = DOMNode
    attrGet _ = getDOMNodeNextSibling
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "node-name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@node-name@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #nodeName
@
-}
getDOMNodeNodeName :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeNodeName obj = liftIO $ B.Properties.getObjectPropertyString obj "node-name"

#if ENABLE_OVERLOADING
data DOMNodeNodeNamePropertyInfo
instance AttrInfo DOMNodeNodeNamePropertyInfo where
    type AttrAllowedOps DOMNodeNodeNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeNodeNamePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeNodeNamePropertyInfo = IsDOMNode
    type AttrGetType DOMNodeNodeNamePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMNodeNodeNamePropertyInfo = "node-name"
    type AttrOrigin DOMNodeNodeNamePropertyInfo = DOMNode
    attrGet _ = getDOMNodeNodeName
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "node-type"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@node-type@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #nodeType
@
-}
getDOMNodeNodeType :: (MonadIO m, IsDOMNode o) => o -> m Word32
getDOMNodeNodeType obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "node-type"

#if ENABLE_OVERLOADING
data DOMNodeNodeTypePropertyInfo
instance AttrInfo DOMNodeNodeTypePropertyInfo where
    type AttrAllowedOps DOMNodeNodeTypePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMNodeNodeTypePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeNodeTypePropertyInfo = IsDOMNode
    type AttrGetType DOMNodeNodeTypePropertyInfo = Word32
    type AttrLabel DOMNodeNodeTypePropertyInfo = "node-type"
    type AttrOrigin DOMNodeNodeTypePropertyInfo = DOMNode
    attrGet _ = getDOMNodeNodeType
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "node-value"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@node-value@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #nodeValue
@
-}
getDOMNodeNodeValue :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeNodeValue obj = liftIO $ B.Properties.getObjectPropertyString obj "node-value"

{- |
Set the value of the “@node-value@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' dOMNode [ #nodeValue 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDOMNodeNodeValue :: (MonadIO m, IsDOMNode o) => o -> T.Text -> m ()
setDOMNodeNodeValue obj val = liftIO $ B.Properties.setObjectPropertyString obj "node-value" (Just val)

{- |
Construct a `GValueConstruct` with valid value for the “@node-value@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDOMNodeNodeValue :: (IsDOMNode o) => T.Text -> IO (GValueConstruct o)
constructDOMNodeNodeValue val = B.Properties.constructObjectPropertyString "node-value" (Just val)

{- |
Set the value of the “@node-value@” property to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.clear' #nodeValue
@
-}
clearDOMNodeNodeValue :: (MonadIO m, IsDOMNode o) => o -> m ()
clearDOMNodeNodeValue obj = liftIO $ B.Properties.setObjectPropertyString obj "node-value" (Nothing :: Maybe T.Text)

#if ENABLE_OVERLOADING
data DOMNodeNodeValuePropertyInfo
instance AttrInfo DOMNodeNodeValuePropertyInfo where
    type AttrAllowedOps DOMNodeNodeValuePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeNodeValuePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMNodeNodeValuePropertyInfo = IsDOMNode
    type AttrGetType DOMNodeNodeValuePropertyInfo = (Maybe T.Text)
    type AttrLabel DOMNodeNodeValuePropertyInfo = "node-value"
    type AttrOrigin DOMNodeNodeValuePropertyInfo = DOMNode
    attrGet _ = getDOMNodeNodeValue
    attrSet _ = setDOMNodeNodeValue
    attrConstruct _ = constructDOMNodeNodeValue
    attrClear _ = clearDOMNodeNodeValue
#endif

-- VVV Prop "owner-document"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocument"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@owner-document@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #ownerDocument
@
-}
getDOMNodeOwnerDocument :: (MonadIO m, IsDOMNode o) => o -> m WebKit2WebExtension.DOMDocument.DOMDocument
getDOMNodeOwnerDocument obj = liftIO $ checkUnexpectedNothing "getDOMNodeOwnerDocument" $ B.Properties.getObjectPropertyObject obj "owner-document" WebKit2WebExtension.DOMDocument.DOMDocument

#if ENABLE_OVERLOADING
data DOMNodeOwnerDocumentPropertyInfo
instance AttrInfo DOMNodeOwnerDocumentPropertyInfo where
    type AttrAllowedOps DOMNodeOwnerDocumentPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeOwnerDocumentPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeOwnerDocumentPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeOwnerDocumentPropertyInfo = WebKit2WebExtension.DOMDocument.DOMDocument
    type AttrLabel DOMNodeOwnerDocumentPropertyInfo = "owner-document"
    type AttrOrigin DOMNodeOwnerDocumentPropertyInfo = DOMNode
    attrGet _ = getDOMNodeOwnerDocument
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "parent-element"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMElement"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@parent-element@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #parentElement
@
-}
getDOMNodeParentElement :: (MonadIO m, IsDOMNode o) => o -> m WebKit2WebExtension.DOMElement.DOMElement
getDOMNodeParentElement obj = liftIO $ checkUnexpectedNothing "getDOMNodeParentElement" $ B.Properties.getObjectPropertyObject obj "parent-element" WebKit2WebExtension.DOMElement.DOMElement

#if ENABLE_OVERLOADING
data DOMNodeParentElementPropertyInfo
instance AttrInfo DOMNodeParentElementPropertyInfo where
    type AttrAllowedOps DOMNodeParentElementPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeParentElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeParentElementPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeParentElementPropertyInfo = WebKit2WebExtension.DOMElement.DOMElement
    type AttrLabel DOMNodeParentElementPropertyInfo = "parent-element"
    type AttrOrigin DOMNodeParentElementPropertyInfo = DOMNode
    attrGet _ = getDOMNodeParentElement
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "parent-node"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@parent-node@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #parentNode
@
-}
getDOMNodeParentNode :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeParentNode obj = liftIO $ checkUnexpectedNothing "getDOMNodeParentNode" $ B.Properties.getObjectPropertyObject obj "parent-node" DOMNode

#if ENABLE_OVERLOADING
data DOMNodeParentNodePropertyInfo
instance AttrInfo DOMNodeParentNodePropertyInfo where
    type AttrAllowedOps DOMNodeParentNodePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeParentNodePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodeParentNodePropertyInfo = IsDOMNode
    type AttrGetType DOMNodeParentNodePropertyInfo = DOMNode
    type AttrLabel DOMNodeParentNodePropertyInfo = "parent-node"
    type AttrOrigin DOMNodeParentNodePropertyInfo = DOMNode
    attrGet _ = getDOMNodeParentNode
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "previous-sibling"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@previous-sibling@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #previousSibling
@
-}
getDOMNodePreviousSibling :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodePreviousSibling obj = liftIO $ checkUnexpectedNothing "getDOMNodePreviousSibling" $ B.Properties.getObjectPropertyObject obj "previous-sibling" DOMNode

#if ENABLE_OVERLOADING
data DOMNodePreviousSiblingPropertyInfo
instance AttrInfo DOMNodePreviousSiblingPropertyInfo where
    type AttrAllowedOps DOMNodePreviousSiblingPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodePreviousSiblingPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMNodePreviousSiblingPropertyInfo = IsDOMNode
    type AttrGetType DOMNodePreviousSiblingPropertyInfo = DOMNode
    type AttrLabel DOMNodePreviousSiblingPropertyInfo = "previous-sibling"
    type AttrOrigin DOMNodePreviousSiblingPropertyInfo = DOMNode
    attrGet _ = getDOMNodePreviousSibling
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "text-content"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@text-content@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMNode #textContent
@
-}
getDOMNodeTextContent :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeTextContent obj = liftIO $ B.Properties.getObjectPropertyString obj "text-content"

{- |
Set the value of the “@text-content@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' dOMNode [ #textContent 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDOMNodeTextContent :: (MonadIO m, IsDOMNode o) => o -> T.Text -> m ()
setDOMNodeTextContent obj val = liftIO $ B.Properties.setObjectPropertyString obj "text-content" (Just val)

{- |
Construct a `GValueConstruct` with valid value for the “@text-content@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDOMNodeTextContent :: (IsDOMNode o) => T.Text -> IO (GValueConstruct o)
constructDOMNodeTextContent val = B.Properties.constructObjectPropertyString "text-content" (Just val)

{- |
Set the value of the “@text-content@” property to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.clear' #textContent
@
-}
clearDOMNodeTextContent :: (MonadIO m, IsDOMNode o) => o -> m ()
clearDOMNodeTextContent obj = liftIO $ B.Properties.setObjectPropertyString obj "text-content" (Nothing :: Maybe T.Text)

#if ENABLE_OVERLOADING
data DOMNodeTextContentPropertyInfo
instance AttrInfo DOMNodeTextContentPropertyInfo where
    type AttrAllowedOps DOMNodeTextContentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMNodeTextContentPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMNodeTextContentPropertyInfo = IsDOMNode
    type AttrGetType DOMNodeTextContentPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMNodeTextContentPropertyInfo = "text-content"
    type AttrOrigin DOMNodeTextContentPropertyInfo = DOMNode
    attrGet _ = getDOMNodeTextContent
    attrSet _ = setDOMNodeTextContent
    attrConstruct _ = constructDOMNodeTextContent
    attrClear _ = clearDOMNodeTextContent
#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList DOMNode
type instance O.AttributeList DOMNode = DOMNodeAttributeList
type DOMNodeAttributeList = ('[ '("baseUri", DOMNodeBaseUriPropertyInfo), '("childNodes", DOMNodeChildNodesPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("firstChild", DOMNodeFirstChildPropertyInfo), '("lastChild", DOMNodeLastChildPropertyInfo), '("nextSibling", DOMNodeNextSiblingPropertyInfo), '("nodeName", DOMNodeNodeNamePropertyInfo), '("nodeType", DOMNodeNodeTypePropertyInfo), '("nodeValue", DOMNodeNodeValuePropertyInfo), '("ownerDocument", DOMNodeOwnerDocumentPropertyInfo), '("parentElement", DOMNodeParentElementPropertyInfo), '("parentNode", DOMNodeParentNodePropertyInfo), '("previousSibling", DOMNodePreviousSiblingPropertyInfo), '("textContent", DOMNodeTextContentPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
dOMNodeBaseUri :: AttrLabelProxy "baseUri"
dOMNodeBaseUri = AttrLabelProxy

dOMNodeChildNodes :: AttrLabelProxy "childNodes"
dOMNodeChildNodes = AttrLabelProxy

dOMNodeFirstChild :: AttrLabelProxy "firstChild"
dOMNodeFirstChild = AttrLabelProxy

dOMNodeLastChild :: AttrLabelProxy "lastChild"
dOMNodeLastChild = AttrLabelProxy

dOMNodeNextSibling :: AttrLabelProxy "nextSibling"
dOMNodeNextSibling = AttrLabelProxy

dOMNodeNodeName :: AttrLabelProxy "nodeName"
dOMNodeNodeName = AttrLabelProxy

dOMNodeNodeType :: AttrLabelProxy "nodeType"
dOMNodeNodeType = AttrLabelProxy

dOMNodeNodeValue :: AttrLabelProxy "nodeValue"
dOMNodeNodeValue = AttrLabelProxy

dOMNodeOwnerDocument :: AttrLabelProxy "ownerDocument"
dOMNodeOwnerDocument = AttrLabelProxy

dOMNodeParentElement :: AttrLabelProxy "parentElement"
dOMNodeParentElement = AttrLabelProxy

dOMNodeParentNode :: AttrLabelProxy "parentNode"
dOMNodeParentNode = AttrLabelProxy

dOMNodePreviousSibling :: AttrLabelProxy "previousSibling"
dOMNodePreviousSibling = AttrLabelProxy

dOMNodeTextContent :: AttrLabelProxy "textContent"
dOMNodeTextContent = AttrLabelProxy

#endif

#if ENABLE_OVERLOADING
type instance O.SignalList DOMNode = DOMNodeSignalList
type DOMNodeSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method DOMNode::append_child
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newChild", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_append_child" webkit_dom_node_append_child ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- newChild : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeAppendChild ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeAppendChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@newChild@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeAppendChild self newChild = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    newChild' <- unsafeManagedPtrCastPtr newChild
    onException (do
        result <- propagateGError $ webkit_dom_node_append_child self' newChild'
        checkUnexpectedReturnNULL "dOMNodeAppendChild" result
        result' <- (newObject DOMNode) result
        touchManagedPtr self
        touchManagedPtr newChild
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMNodeAppendChildMethodInfo
instance (signature ~ (b -> m DOMNode), MonadIO m, IsDOMNode a, IsDOMNode b) => O.MethodInfo DOMNodeAppendChildMethodInfo a signature where
    overloadedMethod _ = dOMNodeAppendChild

#endif

-- method DOMNode::clone_node_with_error
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "deep", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gboolean", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_clone_node_with_error" webkit_dom_node_clone_node_with_error ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CInt ->                                 -- deep : TBasicType TBoolean
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeCloneNodeWithError ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./

/Since: 2.14/
-}
dOMNodeCloneNodeWithError ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> Bool
    {- ^ /@deep@/: A 'Bool' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeCloneNodeWithError self deep = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    let deep' = (fromIntegral . fromEnum) deep
    onException (do
        result <- propagateGError $ webkit_dom_node_clone_node_with_error self' deep'
        checkUnexpectedReturnNULL "dOMNodeCloneNodeWithError" result
        result' <- (newObject DOMNode) result
        touchManagedPtr self
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMNodeCloneNodeWithErrorMethodInfo
instance (signature ~ (Bool -> m DOMNode), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeCloneNodeWithErrorMethodInfo a signature where
    overloadedMethod _ = dOMNodeCloneNodeWithError

#endif

-- method DOMNode::compare_document_position
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "other", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt16)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_compare_document_position" webkit_dom_node_compare_document_position ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- other : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO Word16

{-# DEPRECATED dOMNodeCompareDocumentPosition ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeCompareDocumentPosition ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@other@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m Word16
    {- ^ __Returns:__ A @/gushort/@ -}
dOMNodeCompareDocumentPosition self other = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    other' <- unsafeManagedPtrCastPtr other
    result <- webkit_dom_node_compare_document_position self' other'
    touchManagedPtr self
    touchManagedPtr other
    return result

#if ENABLE_OVERLOADING
data DOMNodeCompareDocumentPositionMethodInfo
instance (signature ~ (b -> m Word16), MonadIO m, IsDOMNode a, IsDOMNode b) => O.MethodInfo DOMNodeCompareDocumentPositionMethodInfo a signature where
    overloadedMethod _ = dOMNodeCompareDocumentPosition

#endif

-- method DOMNode::contains
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "other", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_contains" webkit_dom_node_contains ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- other : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CInt

{-# DEPRECATED dOMNodeContains ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeContains ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@other@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMNodeContains self other = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    other' <- unsafeManagedPtrCastPtr other
    result <- webkit_dom_node_contains self' other'
    let result' = (/= 0) result
    touchManagedPtr self
    touchManagedPtr other
    return result'

#if ENABLE_OVERLOADING
data DOMNodeContainsMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsDOMNode a, IsDOMNode b) => O.MethodInfo DOMNodeContainsMethodInfo a signature where
    overloadedMethod _ = dOMNodeContains

#endif

-- method DOMNode::get_base_uri
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_base_uri" webkit_dom_node_get_base_uri ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CString

{-# DEPRECATED dOMNodeGetBaseUri ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetBaseUri ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeGetBaseUri self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_base_uri self'
    checkUnexpectedReturnNULL "dOMNodeGetBaseUri" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetBaseUriMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetBaseUriMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetBaseUri

#endif

-- method DOMNode::get_child_nodes
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNodeList"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_child_nodes" webkit_dom_node_get_child_nodes ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr WebKit2WebExtension.DOMNodeList.DOMNodeList)

{-# DEPRECATED dOMNodeGetChildNodes ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetChildNodes ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m WebKit2WebExtension.DOMNodeList.DOMNodeList
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNodeList.DOMNodeList' -}
dOMNodeGetChildNodes self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_child_nodes self'
    checkUnexpectedReturnNULL "dOMNodeGetChildNodes" result
    result' <- (wrapObject WebKit2WebExtension.DOMNodeList.DOMNodeList) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetChildNodesMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMNodeList.DOMNodeList), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetChildNodesMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetChildNodes

#endif

-- method DOMNode::get_first_child
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_first_child" webkit_dom_node_get_first_child ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeGetFirstChild ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetFirstChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNodeGetFirstChild self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_first_child self'
    checkUnexpectedReturnNULL "dOMNodeGetFirstChild" result
    result' <- (newObject DOMNode) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetFirstChildMethodInfo
instance (signature ~ (m DOMNode), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetFirstChildMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetFirstChild

#endif

-- method DOMNode::get_last_child
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_last_child" webkit_dom_node_get_last_child ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeGetLastChild ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetLastChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNodeGetLastChild self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_last_child self'
    checkUnexpectedReturnNULL "dOMNodeGetLastChild" result
    result' <- (newObject DOMNode) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetLastChildMethodInfo
instance (signature ~ (m DOMNode), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetLastChildMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetLastChild

#endif

-- method DOMNode::get_local_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_local_name" webkit_dom_node_get_local_name ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CString

{-# DEPRECATED dOMNodeGetLocalName ["(Since version 2.14)","Use 'GI.WebKit2WebExtension.Objects.DOMAttr.dOMAttrGetLocalName' or 'GI.WebKit2WebExtension.Objects.DOMElement.dOMElementGetLocalName' instead."] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetLocalName ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeGetLocalName self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_local_name self'
    checkUnexpectedReturnNULL "dOMNodeGetLocalName" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetLocalNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetLocalNameMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetLocalName

#endif

-- method DOMNode::get_namespace_uri
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_namespace_uri" webkit_dom_node_get_namespace_uri ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CString

{-# DEPRECATED dOMNodeGetNamespaceUri ["(Since version 2.14)","Use 'GI.WebKit2WebExtension.Objects.DOMAttr.dOMAttrGetNamespaceUri' or 'GI.WebKit2WebExtension.Objects.DOMElement.dOMElementGetNamespaceUri' instead."] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetNamespaceUri ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeGetNamespaceUri self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_namespace_uri self'
    checkUnexpectedReturnNULL "dOMNodeGetNamespaceUri" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetNamespaceUriMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetNamespaceUriMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetNamespaceUri

#endif

-- method DOMNode::get_next_sibling
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_next_sibling" webkit_dom_node_get_next_sibling ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeGetNextSibling ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetNextSibling ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNodeGetNextSibling self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_next_sibling self'
    checkUnexpectedReturnNULL "dOMNodeGetNextSibling" result
    result' <- (newObject DOMNode) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetNextSiblingMethodInfo
instance (signature ~ (m DOMNode), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetNextSiblingMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetNextSibling

#endif

-- method DOMNode::get_node_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_node_name" webkit_dom_node_get_node_name ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CString

{-# DEPRECATED dOMNodeGetNodeName ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetNodeName ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeGetNodeName self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_node_name self'
    checkUnexpectedReturnNULL "dOMNodeGetNodeName" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetNodeNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetNodeNameMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetNodeName

#endif

-- method DOMNode::get_node_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt16)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_node_type" webkit_dom_node_get_node_type ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO Word16

{-# DEPRECATED dOMNodeGetNodeType ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetNodeType ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m Word16
    {- ^ __Returns:__ A @/gushort/@ -}
dOMNodeGetNodeType self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_node_type self'
    touchManagedPtr self
    return result

#if ENABLE_OVERLOADING
data DOMNodeGetNodeTypeMethodInfo
instance (signature ~ (m Word16), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetNodeTypeMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetNodeType

#endif

-- method DOMNode::get_node_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_node_value" webkit_dom_node_get_node_value ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CString

{-# DEPRECATED dOMNodeGetNodeValue ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetNodeValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeGetNodeValue self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_node_value self'
    checkUnexpectedReturnNULL "dOMNodeGetNodeValue" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetNodeValueMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetNodeValueMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetNodeValue

#endif

-- method DOMNode::get_owner_document
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMDocument"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_owner_document" webkit_dom_node_get_owner_document ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr WebKit2WebExtension.DOMDocument.DOMDocument)

{-# DEPRECATED dOMNodeGetOwnerDocument ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetOwnerDocument ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m WebKit2WebExtension.DOMDocument.DOMDocument
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMDocument.DOMDocument' -}
dOMNodeGetOwnerDocument self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_owner_document self'
    checkUnexpectedReturnNULL "dOMNodeGetOwnerDocument" result
    result' <- (newObject WebKit2WebExtension.DOMDocument.DOMDocument) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetOwnerDocumentMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMDocument.DOMDocument), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetOwnerDocumentMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetOwnerDocument

#endif

-- method DOMNode::get_parent_element
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMElement"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_parent_element" webkit_dom_node_get_parent_element ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr WebKit2WebExtension.DOMElement.DOMElement)

{-# DEPRECATED dOMNodeGetParentElement ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetParentElement ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m WebKit2WebExtension.DOMElement.DOMElement
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMElement.DOMElement' -}
dOMNodeGetParentElement self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_parent_element self'
    checkUnexpectedReturnNULL "dOMNodeGetParentElement" result
    result' <- (newObject WebKit2WebExtension.DOMElement.DOMElement) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetParentElementMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMElement.DOMElement), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetParentElementMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetParentElement

#endif

-- method DOMNode::get_parent_node
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_parent_node" webkit_dom_node_get_parent_node ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeGetParentNode ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetParentNode ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNodeGetParentNode self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_parent_node self'
    checkUnexpectedReturnNULL "dOMNodeGetParentNode" result
    result' <- (newObject DOMNode) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetParentNodeMethodInfo
instance (signature ~ (m DOMNode), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetParentNodeMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetParentNode

#endif

-- method DOMNode::get_prefix
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_prefix" webkit_dom_node_get_prefix ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CString

{-# DEPRECATED dOMNodeGetPrefix ["(Since version 2.14)","Use 'GI.WebKit2WebExtension.Objects.DOMAttr.dOMAttrGetPrefix' or 'GI.WebKit2WebExtension.Objects.DOMElement.dOMElementGetPrefix' instead."] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetPrefix ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeGetPrefix self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_prefix self'
    checkUnexpectedReturnNULL "dOMNodeGetPrefix" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetPrefixMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetPrefixMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetPrefix

#endif

-- method DOMNode::get_previous_sibling
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_previous_sibling" webkit_dom_node_get_previous_sibling ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeGetPreviousSibling ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetPreviousSibling ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
dOMNodeGetPreviousSibling self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_previous_sibling self'
    checkUnexpectedReturnNULL "dOMNodeGetPreviousSibling" result
    result' <- (newObject DOMNode) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetPreviousSiblingMethodInfo
instance (signature ~ (m DOMNode), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetPreviousSiblingMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetPreviousSibling

#endif

-- method DOMNode::get_text_content
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_get_text_content" webkit_dom_node_get_text_content ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CString

{-# DEPRECATED dOMNodeGetTextContent ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeGetTextContent ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeGetTextContent self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_get_text_content self'
    checkUnexpectedReturnNULL "dOMNodeGetTextContent" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeGetTextContentMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeGetTextContentMethodInfo a signature where
    overloadedMethod _ = dOMNodeGetTextContent

#endif

-- method DOMNode::has_child_nodes
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_has_child_nodes" webkit_dom_node_has_child_nodes ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CInt

{-# DEPRECATED dOMNodeHasChildNodes ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeHasChildNodes ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMNodeHasChildNodes self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_node_has_child_nodes self'
    let result' = (/= 0) result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMNodeHasChildNodesMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeHasChildNodesMethodInfo a signature where
    overloadedMethod _ = dOMNodeHasChildNodes

#endif

-- method DOMNode::insert_before
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newChild", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refChild", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_insert_before" webkit_dom_node_insert_before ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- newChild : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- refChild : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeInsertBefore ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeInsertBefore ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b, IsDOMNode c) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@newChild@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> Maybe (c)
    {- ^ /@refChild@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeInsertBefore self newChild refChild = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    newChild' <- unsafeManagedPtrCastPtr newChild
    maybeRefChild <- case refChild of
        Nothing -> return nullPtr
        Just jRefChild -> do
            jRefChild' <- unsafeManagedPtrCastPtr jRefChild
            return jRefChild'
    onException (do
        result <- propagateGError $ webkit_dom_node_insert_before self' newChild' maybeRefChild
        checkUnexpectedReturnNULL "dOMNodeInsertBefore" result
        result' <- (newObject DOMNode) result
        touchManagedPtr self
        touchManagedPtr newChild
        whenJust refChild touchManagedPtr
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMNodeInsertBeforeMethodInfo
instance (signature ~ (b -> Maybe (c) -> m DOMNode), MonadIO m, IsDOMNode a, IsDOMNode b, IsDOMNode c) => O.MethodInfo DOMNodeInsertBeforeMethodInfo a signature where
    overloadedMethod _ = dOMNodeInsertBefore

#endif

-- method DOMNode::is_default_namespace
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_is_default_namespace" webkit_dom_node_is_default_namespace ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CString ->                              -- namespaceURI : TBasicType TUTF8
    IO CInt

{-# DEPRECATED dOMNodeIsDefaultNamespace ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeIsDefaultNamespace ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> T.Text
    {- ^ /@namespaceURI@/: A @/gchar/@ -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMNodeIsDefaultNamespace self namespaceURI = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    namespaceURI' <- textToCString namespaceURI
    result <- webkit_dom_node_is_default_namespace self' namespaceURI'
    let result' = (/= 0) result
    touchManagedPtr self
    freeMem namespaceURI'
    return result'

#if ENABLE_OVERLOADING
data DOMNodeIsDefaultNamespaceMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeIsDefaultNamespaceMethodInfo a signature where
    overloadedMethod _ = dOMNodeIsDefaultNamespace

#endif

-- method DOMNode::is_equal_node
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "other", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_is_equal_node" webkit_dom_node_is_equal_node ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- other : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CInt

{-# DEPRECATED dOMNodeIsEqualNode ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeIsEqualNode ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@other@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMNodeIsEqualNode self other = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    other' <- unsafeManagedPtrCastPtr other
    result <- webkit_dom_node_is_equal_node self' other'
    let result' = (/= 0) result
    touchManagedPtr self
    touchManagedPtr other
    return result'

#if ENABLE_OVERLOADING
data DOMNodeIsEqualNodeMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsDOMNode a, IsDOMNode b) => O.MethodInfo DOMNodeIsEqualNodeMethodInfo a signature where
    overloadedMethod _ = dOMNodeIsEqualNode

#endif

-- method DOMNode::is_same_node
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "other", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_is_same_node" webkit_dom_node_is_same_node ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- other : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO CInt

{-# DEPRECATED dOMNodeIsSameNode ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeIsSameNode ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@other@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMNodeIsSameNode self other = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    other' <- unsafeManagedPtrCastPtr other
    result <- webkit_dom_node_is_same_node self' other'
    let result' = (/= 0) result
    touchManagedPtr self
    touchManagedPtr other
    return result'

#if ENABLE_OVERLOADING
data DOMNodeIsSameNodeMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, IsDOMNode a, IsDOMNode b) => O.MethodInfo DOMNodeIsSameNodeMethodInfo a signature where
    overloadedMethod _ = dOMNodeIsSameNode

#endif

-- method DOMNode::is_supported
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "feature", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "version", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_is_supported" webkit_dom_node_is_supported ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CString ->                              -- feature : TBasicType TUTF8
    CString ->                              -- version : TBasicType TUTF8
    IO CInt

{-# DEPRECATED dOMNodeIsSupported ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeIsSupported ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> T.Text
    {- ^ /@feature@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@version@/: A @/gchar/@ -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMNodeIsSupported self feature version = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    feature' <- textToCString feature
    version' <- textToCString version
    result <- webkit_dom_node_is_supported self' feature' version'
    let result' = (/= 0) result
    touchManagedPtr self
    freeMem feature'
    freeMem version'
    return result'

#if ENABLE_OVERLOADING
data DOMNodeIsSupportedMethodInfo
instance (signature ~ (T.Text -> T.Text -> m Bool), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeIsSupportedMethodInfo a signature where
    overloadedMethod _ = dOMNodeIsSupported

#endif

-- method DOMNode::lookup_namespace_uri
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "prefix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_lookup_namespace_uri" webkit_dom_node_lookup_namespace_uri ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CString ->                              -- prefix : TBasicType TUTF8
    IO CString

{-# DEPRECATED dOMNodeLookupNamespaceUri ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeLookupNamespaceUri ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> T.Text
    {- ^ /@prefix@/: A @/gchar/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeLookupNamespaceUri self prefix = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    prefix' <- textToCString prefix
    result <- webkit_dom_node_lookup_namespace_uri self' prefix'
    checkUnexpectedReturnNULL "dOMNodeLookupNamespaceUri" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    freeMem prefix'
    return result'

#if ENABLE_OVERLOADING
data DOMNodeLookupNamespaceUriMethodInfo
instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeLookupNamespaceUriMethodInfo a signature where
    overloadedMethod _ = dOMNodeLookupNamespaceUri

#endif

-- method DOMNode::lookup_prefix
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "namespaceURI", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_lookup_prefix" webkit_dom_node_lookup_prefix ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CString ->                              -- namespaceURI : TBasicType TUTF8
    IO CString

{-# DEPRECATED dOMNodeLookupPrefix ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeLookupPrefix ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> T.Text
    {- ^ /@namespaceURI@/: A @/gchar/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMNodeLookupPrefix self namespaceURI = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    namespaceURI' <- textToCString namespaceURI
    result <- webkit_dom_node_lookup_prefix self' namespaceURI'
    checkUnexpectedReturnNULL "dOMNodeLookupPrefix" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    freeMem namespaceURI'
    return result'

#if ENABLE_OVERLOADING
data DOMNodeLookupPrefixMethodInfo
instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeLookupPrefixMethodInfo a signature where
    overloadedMethod _ = dOMNodeLookupPrefix

#endif

-- method DOMNode::normalize
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_normalize" webkit_dom_node_normalize ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    IO ()

{-# DEPRECATED dOMNodeNormalize ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeNormalize ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m ()
dOMNodeNormalize self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    webkit_dom_node_normalize self'
    touchManagedPtr self
    return ()

#if ENABLE_OVERLOADING
data DOMNodeNormalizeMethodInfo
instance (signature ~ (m ()), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeNormalizeMethodInfo a signature where
    overloadedMethod _ = dOMNodeNormalize

#endif

-- method DOMNode::remove_child
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldChild", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_remove_child" webkit_dom_node_remove_child ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- oldChild : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeRemoveChild ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeRemoveChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@oldChild@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeRemoveChild self oldChild = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    oldChild' <- unsafeManagedPtrCastPtr oldChild
    onException (do
        result <- propagateGError $ webkit_dom_node_remove_child self' oldChild'
        checkUnexpectedReturnNULL "dOMNodeRemoveChild" result
        result' <- (newObject DOMNode) result
        touchManagedPtr self
        touchManagedPtr oldChild
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMNodeRemoveChildMethodInfo
instance (signature ~ (b -> m DOMNode), MonadIO m, IsDOMNode a, IsDOMNode b) => O.MethodInfo DOMNodeRemoveChildMethodInfo a signature where
    overloadedMethod _ = dOMNodeRemoveChild

#endif

-- method DOMNode::replace_child
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newChild", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldChild", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_replace_child" webkit_dom_node_replace_child ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- newChild : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr DOMNode ->                          -- oldChild : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr DOMNode)

{-# DEPRECATED dOMNodeReplaceChild ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeReplaceChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a, IsDOMNode b, IsDOMNode c) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> b
    {- ^ /@newChild@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> c
    {- ^ /@oldChild@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> m DOMNode
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeReplaceChild self newChild oldChild = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    newChild' <- unsafeManagedPtrCastPtr newChild
    oldChild' <- unsafeManagedPtrCastPtr oldChild
    onException (do
        result <- propagateGError $ webkit_dom_node_replace_child self' newChild' oldChild'
        checkUnexpectedReturnNULL "dOMNodeReplaceChild" result
        result' <- (newObject DOMNode) result
        touchManagedPtr self
        touchManagedPtr newChild
        touchManagedPtr oldChild
        return result'
     ) (do
        return ()
     )

#if ENABLE_OVERLOADING
data DOMNodeReplaceChildMethodInfo
instance (signature ~ (b -> c -> m DOMNode), MonadIO m, IsDOMNode a, IsDOMNode b, IsDOMNode c) => O.MethodInfo DOMNodeReplaceChildMethodInfo a signature where
    overloadedMethod _ = dOMNodeReplaceChild

#endif

-- method DOMNode::set_node_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_set_node_value" webkit_dom_node_set_node_value ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMNodeSetNodeValue ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeSetNodeValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> T.Text
    {- ^ /@value@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeSetNodeValue self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_node_set_node_value self' value'
        touchManagedPtr self
        freeMem value'
        return ()
     ) (do
        freeMem value'
     )

#if ENABLE_OVERLOADING
data DOMNodeSetNodeValueMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeSetNodeValueMethodInfo a signature where
    overloadedMethod _ = dOMNodeSetNodeValue

#endif

-- method DOMNode::set_prefix
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_set_prefix" webkit_dom_node_set_prefix ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMNodeSetPrefix ["(Since version 2.14)"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeSetPrefix ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> T.Text
    {- ^ /@value@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeSetPrefix self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_node_set_prefix self' value'
        touchManagedPtr self
        freeMem value'
        return ()
     ) (do
        freeMem value'
     )

#if ENABLE_OVERLOADING
data DOMNodeSetPrefixMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeSetPrefixMethodInfo a signature where
    overloadedMethod _ = dOMNodeSetPrefix

#endif

-- method DOMNode::set_text_content
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMNode", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_node_set_text_content" webkit_dom_node_set_text_content ::
    Ptr DOMNode ->                          -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"})
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{-# DEPRECATED dOMNodeSetTextContent ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
/No description available in the introspection data./
-}
dOMNodeSetTextContent ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMNode a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' -}
    -> T.Text
    {- ^ /@value@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMNodeSetTextContent self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_node_set_text_content self' value'
        touchManagedPtr self
        freeMem value'
        return ()
     ) (do
        freeMem value'
     )

#if ENABLE_OVERLOADING
data DOMNodeSetTextContentMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMNode a) => O.MethodInfo DOMNodeSetTextContentMethodInfo a signature where
    overloadedMethod _ = dOMNodeSetTextContent

#endif

-- method DOMNode::for_js_value
-- method type : MemberFunction
-- Args : [Arg {argCName = "value", argType = TInterface (Name {namespace = "JavaScriptCore", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #JSCValue", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMNode"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_node_for_js_value" webkit_dom_node_for_js_value ::
    Ptr JavaScriptCore.Value.Value ->       -- value : TInterface (Name {namespace = "JavaScriptCore", name = "Value"})
    IO (Ptr DOMNode)

{- |
Get the 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' for the DOM node referenced by /@value@/.

/Since: 2.22/
-}
dOMNodeForJsValue ::
    (B.CallStack.HasCallStack, MonadIO m, JavaScriptCore.Value.IsValue a) =>
    a
    {- ^ /@value@/: a 'GI.JavaScriptCore.Objects.Value.Value' -}
    -> m DOMNode
    {- ^ __Returns:__ a 'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode', or 'Nothing' if /@value@/ doesn\'t reference a DOM node. -}
dOMNodeForJsValue value = liftIO $ do
    value' <- unsafeManagedPtrCastPtr value
    result <- webkit_dom_node_for_js_value value'
    checkUnexpectedReturnNULL "dOMNodeForJsValue" result
    result' <- (newObject DOMNode) result
    touchManagedPtr value
    return result'

#if ENABLE_OVERLOADING
#endif