{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit2WebExtension.Objects.DOMNode
    ( 

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


 -- * Methods
-- ** appendChild #method:appendChild#
    DOMNodeAppendChildMethodInfo            ,
    dOMNodeAppendChild                      ,


-- ** cloneNodeWithError #method:cloneNodeWithError#
    DOMNodeCloneNodeWithErrorMethodInfo     ,
    dOMNodeCloneNodeWithError               ,


-- ** compareDocumentPosition #method:compareDocumentPosition#
    DOMNodeCompareDocumentPositionMethodInfo,
    dOMNodeCompareDocumentPosition          ,


-- ** contains #method:contains#
    DOMNodeContainsMethodInfo               ,
    dOMNodeContains                         ,


-- ** getBaseUri #method:getBaseUri#
    DOMNodeGetBaseUriMethodInfo             ,
    dOMNodeGetBaseUri                       ,


-- ** getChildNodes #method:getChildNodes#
    DOMNodeGetChildNodesMethodInfo          ,
    dOMNodeGetChildNodes                    ,


-- ** getFirstChild #method:getFirstChild#
    DOMNodeGetFirstChildMethodInfo          ,
    dOMNodeGetFirstChild                    ,


-- ** getLastChild #method:getLastChild#
    DOMNodeGetLastChildMethodInfo           ,
    dOMNodeGetLastChild                     ,


-- ** getLocalName #method:getLocalName#
    DOMNodeGetLocalNameMethodInfo           ,
    dOMNodeGetLocalName                     ,


-- ** getNamespaceUri #method:getNamespaceUri#
    DOMNodeGetNamespaceUriMethodInfo        ,
    dOMNodeGetNamespaceUri                  ,


-- ** getNextSibling #method:getNextSibling#
    DOMNodeGetNextSiblingMethodInfo         ,
    dOMNodeGetNextSibling                   ,


-- ** getNodeName #method:getNodeName#
    DOMNodeGetNodeNameMethodInfo            ,
    dOMNodeGetNodeName                      ,


-- ** getNodeType #method:getNodeType#
    DOMNodeGetNodeTypeMethodInfo            ,
    dOMNodeGetNodeType                      ,


-- ** getNodeValue #method:getNodeValue#
    DOMNodeGetNodeValueMethodInfo           ,
    dOMNodeGetNodeValue                     ,


-- ** getOwnerDocument #method:getOwnerDocument#
    DOMNodeGetOwnerDocumentMethodInfo       ,
    dOMNodeGetOwnerDocument                 ,


-- ** getParentElement #method:getParentElement#
    DOMNodeGetParentElementMethodInfo       ,
    dOMNodeGetParentElement                 ,


-- ** getParentNode #method:getParentNode#
    DOMNodeGetParentNodeMethodInfo          ,
    dOMNodeGetParentNode                    ,


-- ** getPrefix #method:getPrefix#
    DOMNodeGetPrefixMethodInfo              ,
    dOMNodeGetPrefix                        ,


-- ** getPreviousSibling #method:getPreviousSibling#
    DOMNodeGetPreviousSiblingMethodInfo     ,
    dOMNodeGetPreviousSibling               ,


-- ** getTextContent #method:getTextContent#
    DOMNodeGetTextContentMethodInfo         ,
    dOMNodeGetTextContent                   ,


-- ** hasChildNodes #method:hasChildNodes#
    DOMNodeHasChildNodesMethodInfo          ,
    dOMNodeHasChildNodes                    ,


-- ** insertBefore #method:insertBefore#
    DOMNodeInsertBeforeMethodInfo           ,
    dOMNodeInsertBefore                     ,


-- ** isDefaultNamespace #method:isDefaultNamespace#
    DOMNodeIsDefaultNamespaceMethodInfo     ,
    dOMNodeIsDefaultNamespace               ,


-- ** isEqualNode #method:isEqualNode#
    DOMNodeIsEqualNodeMethodInfo            ,
    dOMNodeIsEqualNode                      ,


-- ** isSameNode #method:isSameNode#
    DOMNodeIsSameNodeMethodInfo             ,
    dOMNodeIsSameNode                       ,


-- ** isSupported #method:isSupported#
    DOMNodeIsSupportedMethodInfo            ,
    dOMNodeIsSupported                      ,


-- ** lookupNamespaceUri #method:lookupNamespaceUri#
    DOMNodeLookupNamespaceUriMethodInfo     ,
    dOMNodeLookupNamespaceUri               ,


-- ** lookupPrefix #method:lookupPrefix#
    DOMNodeLookupPrefixMethodInfo           ,
    dOMNodeLookupPrefix                     ,


-- ** normalize #method:normalize#
    DOMNodeNormalizeMethodInfo              ,
    dOMNodeNormalize                        ,


-- ** removeChild #method:removeChild#
    DOMNodeRemoveChildMethodInfo            ,
    dOMNodeRemoveChild                      ,


-- ** replaceChild #method:replaceChild#
    DOMNodeReplaceChildMethodInfo           ,
    dOMNodeReplaceChild                     ,


-- ** setNodeValue #method:setNodeValue#
    DOMNodeSetNodeValueMethodInfo           ,
    dOMNodeSetNodeValue                     ,


-- ** setPrefix #method:setPrefix#
    DOMNodeSetPrefixMethodInfo              ,
    dOMNodeSetPrefix                        ,


-- ** setTextContent #method:setTextContent#
    DOMNodeSetTextContentMethodInfo         ,
    dOMNodeSetTextContent                   ,




 -- * Properties
-- ** baseUri #attr:baseUri#
    DOMNodeBaseUriPropertyInfo              ,
    dOMNodeBaseUri                          ,
    getDOMNodeBaseUri                       ,


-- ** childNodes #attr:childNodes#
    DOMNodeChildNodesPropertyInfo           ,
    dOMNodeChildNodes                       ,
    getDOMNodeChildNodes                    ,


-- ** firstChild #attr:firstChild#
    DOMNodeFirstChildPropertyInfo           ,
    dOMNodeFirstChild                       ,
    getDOMNodeFirstChild                    ,


-- ** lastChild #attr:lastChild#
    DOMNodeLastChildPropertyInfo            ,
    dOMNodeLastChild                        ,
    getDOMNodeLastChild                     ,


-- ** nextSibling #attr:nextSibling#
    DOMNodeNextSiblingPropertyInfo          ,
    dOMNodeNextSibling                      ,
    getDOMNodeNextSibling                   ,


-- ** nodeName #attr:nodeName#
    DOMNodeNodeNamePropertyInfo             ,
    dOMNodeNodeName                         ,
    getDOMNodeNodeName                      ,


-- ** nodeType #attr:nodeType#
    DOMNodeNodeTypePropertyInfo             ,
    dOMNodeNodeType                         ,
    getDOMNodeNodeType                      ,


-- ** nodeValue #attr:nodeValue#
    DOMNodeNodeValuePropertyInfo            ,
    clearDOMNodeNodeValue                   ,
    constructDOMNodeNodeValue               ,
    dOMNodeNodeValue                        ,
    getDOMNodeNodeValue                     ,
    setDOMNodeNodeValue                     ,


-- ** ownerDocument #attr:ownerDocument#
    DOMNodeOwnerDocumentPropertyInfo        ,
    dOMNodeOwnerDocument                    ,
    getDOMNodeOwnerDocument                 ,


-- ** parentElement #attr:parentElement#
    DOMNodeParentElementPropertyInfo        ,
    dOMNodeParentElement                    ,
    getDOMNodeParentElement                 ,


-- ** parentNode #attr:parentNode#
    DOMNodeParentNodePropertyInfo           ,
    dOMNodeParentNode                       ,
    getDOMNodeParentNode                    ,


-- ** previousSibling #attr:previousSibling#
    DOMNodePreviousSiblingPropertyInfo      ,
    dOMNodePreviousSibling                  ,
    getDOMNodePreviousSibling               ,


-- ** textContent #attr:textContent#
    DOMNodeTextContentPropertyInfo          ,
    clearDOMNodeTextContent                 ,
    constructDOMNodeTextContent             ,
    dOMNodeTextContent                      ,
    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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 GI.GObject.Objects.Object as GObject.Object
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

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
    

class GObject o => IsDOMNode o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMNode a) =>
    IsDOMNode a
#endif
instance IsDOMNode DOMNode
instance WebKit2WebExtension.DOMObject.IsDOMObject DOMNode
instance GObject.Object.IsObject DOMNode
instance WebKit2WebExtension.DOMEventTarget.IsDOMEventTarget DOMNode

toDOMNode :: IsDOMNode o => o -> IO DOMNode
toDOMNode = unsafeCastTo DOMNode

noDOMNode :: Maybe DOMNode
noDOMNode = Nothing

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 "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 "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMNodeMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    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 "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) => O.IsLabelProxy t (DOMNode -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

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

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

getDOMNodeBaseUri :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeBaseUri obj = liftIO $ getObjectPropertyString obj "base-uri"

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

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

getDOMNodeChildNodes :: (MonadIO m, IsDOMNode o) => o -> m (Maybe WebKit2WebExtension.DOMNodeList.DOMNodeList)
getDOMNodeChildNodes obj = liftIO $ getObjectPropertyObject obj "child-nodes" WebKit2WebExtension.DOMNodeList.DOMNodeList

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

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

getDOMNodeFirstChild :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeFirstChild obj = liftIO $ checkUnexpectedNothing "getDOMNodeFirstChild" $ getObjectPropertyObject obj "first-child" DOMNode

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

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

getDOMNodeLastChild :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeLastChild obj = liftIO $ checkUnexpectedNothing "getDOMNodeLastChild" $ getObjectPropertyObject obj "last-child" DOMNode

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

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

getDOMNodeNextSibling :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeNextSibling obj = liftIO $ checkUnexpectedNothing "getDOMNodeNextSibling" $ getObjectPropertyObject obj "next-sibling" DOMNode

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

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

getDOMNodeNodeName :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeNodeName obj = liftIO $ getObjectPropertyString obj "node-name"

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

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

getDOMNodeNodeType :: (MonadIO m, IsDOMNode o) => o -> m Word32
getDOMNodeNodeType obj = liftIO $ getObjectPropertyUInt32 obj "node-type"

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

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

getDOMNodeNodeValue :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeNodeValue obj = liftIO $ getObjectPropertyString obj "node-value"

setDOMNodeNodeValue :: (MonadIO m, IsDOMNode o) => o -> T.Text -> m ()
setDOMNodeNodeValue obj val = liftIO $ setObjectPropertyString obj "node-value" (Just val)

constructDOMNodeNodeValue :: (IsDOMNode o) => T.Text -> IO (GValueConstruct o)
constructDOMNodeNodeValue val = constructObjectPropertyString "node-value" (Just val)

clearDOMNodeNodeValue :: (MonadIO m, IsDOMNode o) => o -> m ()
clearDOMNodeNodeValue obj = liftIO $ setObjectPropertyString obj "node-value" (Nothing :: Maybe T.Text)

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

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

getDOMNodeOwnerDocument :: (MonadIO m, IsDOMNode o) => o -> m WebKit2WebExtension.DOMDocument.DOMDocument
getDOMNodeOwnerDocument obj = liftIO $ checkUnexpectedNothing "getDOMNodeOwnerDocument" $ getObjectPropertyObject obj "owner-document" WebKit2WebExtension.DOMDocument.DOMDocument

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

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

getDOMNodeParentElement :: (MonadIO m, IsDOMNode o) => o -> m WebKit2WebExtension.DOMElement.DOMElement
getDOMNodeParentElement obj = liftIO $ checkUnexpectedNothing "getDOMNodeParentElement" $ getObjectPropertyObject obj "parent-element" WebKit2WebExtension.DOMElement.DOMElement

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

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

getDOMNodeParentNode :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodeParentNode obj = liftIO $ checkUnexpectedNothing "getDOMNodeParentNode" $ getObjectPropertyObject obj "parent-node" DOMNode

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

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

getDOMNodePreviousSibling :: (MonadIO m, IsDOMNode o) => o -> m DOMNode
getDOMNodePreviousSibling obj = liftIO $ checkUnexpectedNothing "getDOMNodePreviousSibling" $ getObjectPropertyObject obj "previous-sibling" DOMNode

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

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

getDOMNodeTextContent :: (MonadIO m, IsDOMNode o) => o -> m (Maybe T.Text)
getDOMNodeTextContent obj = liftIO $ getObjectPropertyString obj "text-content"

setDOMNodeTextContent :: (MonadIO m, IsDOMNode o) => o -> T.Text -> m ()
setDOMNodeTextContent obj val = liftIO $ setObjectPropertyString obj "text-content" (Just val)

constructDOMNodeTextContent :: (IsDOMNode o) => T.Text -> IO (GValueConstruct o)
constructDOMNodeTextContent val = constructObjectPropertyString "text-content" (Just val)

clearDOMNodeTextContent :: (MonadIO m, IsDOMNode o) => o -> m ()
clearDOMNodeTextContent obj = liftIO $ setObjectPropertyString obj "text-content" (Nothing :: Maybe T.Text)

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

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, *)])

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

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

-- 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)

{- |
/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 ()
     )

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

-- 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)

{- |
/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 ()
     )

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

-- 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

{- |
/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

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

-- 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

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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)

{- |
/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'

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

-- 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)

{- |
/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'

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

-- 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)

{- |
/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'

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

-- 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'

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

-- 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'

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

-- 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)

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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

{- |
/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

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

-- 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

{- |
/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'

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

-- 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)

{- |
/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'

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

-- 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)

{- |
/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'

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

-- 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)

{- |
/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'

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

-- 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'

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

-- 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)

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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)

{- |
/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 ()
     )

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

-- 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

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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

{- |
/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'

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

-- 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 ()

{- |
/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 ()

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

-- 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)

{- |
/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 ()
     )

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

-- 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)

{- |
/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 ()
     )

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

-- 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 ()

{- |
/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'
     )

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

-- 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'
     )

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

-- 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 ()

{- |
/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'
     )

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