{- |
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.WebKit2.Objects.SecurityManager
    ( 

-- * Exported types
    SecurityManager(..)                     ,
    IsSecurityManager                       ,
    toSecurityManager                       ,
    noSecurityManager                       ,


 -- * Methods
-- ** registerUriSchemeAsCorsEnabled #method:registerUriSchemeAsCorsEnabled#
    SecurityManagerRegisterUriSchemeAsCorsEnabledMethodInfo,
    securityManagerRegisterUriSchemeAsCorsEnabled,


-- ** registerUriSchemeAsDisplayIsolated #method:registerUriSchemeAsDisplayIsolated#
    SecurityManagerRegisterUriSchemeAsDisplayIsolatedMethodInfo,
    securityManagerRegisterUriSchemeAsDisplayIsolated,


-- ** registerUriSchemeAsEmptyDocument #method:registerUriSchemeAsEmptyDocument#
    SecurityManagerRegisterUriSchemeAsEmptyDocumentMethodInfo,
    securityManagerRegisterUriSchemeAsEmptyDocument,


-- ** registerUriSchemeAsLocal #method:registerUriSchemeAsLocal#
    SecurityManagerRegisterUriSchemeAsLocalMethodInfo,
    securityManagerRegisterUriSchemeAsLocal ,


-- ** registerUriSchemeAsNoAccess #method:registerUriSchemeAsNoAccess#
    SecurityManagerRegisterUriSchemeAsNoAccessMethodInfo,
    securityManagerRegisterUriSchemeAsNoAccess,


-- ** registerUriSchemeAsSecure #method:registerUriSchemeAsSecure#
    SecurityManagerRegisterUriSchemeAsSecureMethodInfo,
    securityManagerRegisterUriSchemeAsSecure,


-- ** uriSchemeIsCorsEnabled #method:uriSchemeIsCorsEnabled#
    SecurityManagerUriSchemeIsCorsEnabledMethodInfo,
    securityManagerUriSchemeIsCorsEnabled   ,


-- ** uriSchemeIsDisplayIsolated #method:uriSchemeIsDisplayIsolated#
    SecurityManagerUriSchemeIsDisplayIsolatedMethodInfo,
    securityManagerUriSchemeIsDisplayIsolated,


-- ** uriSchemeIsEmptyDocument #method:uriSchemeIsEmptyDocument#
    SecurityManagerUriSchemeIsEmptyDocumentMethodInfo,
    securityManagerUriSchemeIsEmptyDocument ,


-- ** uriSchemeIsLocal #method:uriSchemeIsLocal#
    SecurityManagerUriSchemeIsLocalMethodInfo,
    securityManagerUriSchemeIsLocal         ,


-- ** uriSchemeIsNoAccess #method:uriSchemeIsNoAccess#
    SecurityManagerUriSchemeIsNoAccessMethodInfo,
    securityManagerUriSchemeIsNoAccess      ,


-- ** uriSchemeIsSecure #method:uriSchemeIsSecure#
    SecurityManagerUriSchemeIsSecureMethodInfo,
    securityManagerUriSchemeIsSecure        ,




    ) 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

newtype SecurityManager = SecurityManager (ManagedPtr SecurityManager)
foreign import ccall "webkit_security_manager_get_type"
    c_webkit_security_manager_get_type :: IO GType

instance GObject SecurityManager where
    gobjectType _ = c_webkit_security_manager_get_type
    

class GObject o => IsSecurityManager o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError SecurityManager a) =>
    IsSecurityManager a
#endif
instance IsSecurityManager SecurityManager
instance GObject.Object.IsObject SecurityManager

toSecurityManager :: IsSecurityManager o => o -> IO SecurityManager
toSecurityManager = unsafeCastTo SecurityManager

noSecurityManager :: Maybe SecurityManager
noSecurityManager = Nothing

type family ResolveSecurityManagerMethod (t :: Symbol) (o :: *) :: * where
    ResolveSecurityManagerMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSecurityManagerMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSecurityManagerMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSecurityManagerMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSecurityManagerMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSecurityManagerMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSecurityManagerMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSecurityManagerMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSecurityManagerMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSecurityManagerMethod "registerUriSchemeAsCorsEnabled" o = SecurityManagerRegisterUriSchemeAsCorsEnabledMethodInfo
    ResolveSecurityManagerMethod "registerUriSchemeAsDisplayIsolated" o = SecurityManagerRegisterUriSchemeAsDisplayIsolatedMethodInfo
    ResolveSecurityManagerMethod "registerUriSchemeAsEmptyDocument" o = SecurityManagerRegisterUriSchemeAsEmptyDocumentMethodInfo
    ResolveSecurityManagerMethod "registerUriSchemeAsLocal" o = SecurityManagerRegisterUriSchemeAsLocalMethodInfo
    ResolveSecurityManagerMethod "registerUriSchemeAsNoAccess" o = SecurityManagerRegisterUriSchemeAsNoAccessMethodInfo
    ResolveSecurityManagerMethod "registerUriSchemeAsSecure" o = SecurityManagerRegisterUriSchemeAsSecureMethodInfo
    ResolveSecurityManagerMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveSecurityManagerMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveSecurityManagerMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSecurityManagerMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSecurityManagerMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSecurityManagerMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSecurityManagerMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSecurityManagerMethod "uriSchemeIsCorsEnabled" o = SecurityManagerUriSchemeIsCorsEnabledMethodInfo
    ResolveSecurityManagerMethod "uriSchemeIsDisplayIsolated" o = SecurityManagerUriSchemeIsDisplayIsolatedMethodInfo
    ResolveSecurityManagerMethod "uriSchemeIsEmptyDocument" o = SecurityManagerUriSchemeIsEmptyDocumentMethodInfo
    ResolveSecurityManagerMethod "uriSchemeIsLocal" o = SecurityManagerUriSchemeIsLocalMethodInfo
    ResolveSecurityManagerMethod "uriSchemeIsNoAccess" o = SecurityManagerUriSchemeIsNoAccessMethodInfo
    ResolveSecurityManagerMethod "uriSchemeIsSecure" o = SecurityManagerUriSchemeIsSecureMethodInfo
    ResolveSecurityManagerMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSecurityManagerMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSecurityManagerMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSecurityManagerMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSecurityManagerMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSecurityManagerMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSecurityManagerMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveSecurityManagerMethod t SecurityManager, O.MethodInfo info SecurityManager p) => O.IsLabelProxy t (SecurityManager -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

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

instance O.HasAttributeList SecurityManager
type instance O.AttributeList SecurityManager = SecurityManagerAttributeList
type SecurityManagerAttributeList = ('[ ] :: [(Symbol, *)])

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

-- method SecurityManager::register_uri_scheme_as_cors_enabled
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_security_manager_register_uri_scheme_as_cors_enabled" webkit_security_manager_register_uri_scheme_as_cors_enabled :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO ()

{- |
Register /@scheme@/ as a CORS (Cross-origin resource sharing) enabled scheme.
This means that CORS requests are allowed. See W3C CORS specification
http:\/\/www.w3.org\/TR\/cors\/.
-}
securityManagerRegisterUriSchemeAsCorsEnabled ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m ()
securityManagerRegisterUriSchemeAsCorsEnabled securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    webkit_security_manager_register_uri_scheme_as_cors_enabled securityManager' scheme'
    touchManagedPtr securityManager
    freeMem scheme'
    return ()

data SecurityManagerRegisterUriSchemeAsCorsEnabledMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerRegisterUriSchemeAsCorsEnabledMethodInfo a signature where
    overloadedMethod _ = securityManagerRegisterUriSchemeAsCorsEnabled

-- method SecurityManager::register_uri_scheme_as_display_isolated
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_security_manager_register_uri_scheme_as_display_isolated" webkit_security_manager_register_uri_scheme_as_display_isolated :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO ()

{- |
Register /@scheme@/ as a display isolated scheme. This means that pages cannot
display these URIs unless they are from the same scheme.
-}
securityManagerRegisterUriSchemeAsDisplayIsolated ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m ()
securityManagerRegisterUriSchemeAsDisplayIsolated securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    webkit_security_manager_register_uri_scheme_as_display_isolated securityManager' scheme'
    touchManagedPtr securityManager
    freeMem scheme'
    return ()

data SecurityManagerRegisterUriSchemeAsDisplayIsolatedMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerRegisterUriSchemeAsDisplayIsolatedMethodInfo a signature where
    overloadedMethod _ = securityManagerRegisterUriSchemeAsDisplayIsolated

-- method SecurityManager::register_uri_scheme_as_empty_document
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_security_manager_register_uri_scheme_as_empty_document" webkit_security_manager_register_uri_scheme_as_empty_document :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO ()

{- |
Register /@scheme@/ as an empty document scheme. This means that
they are allowed to commit synchronously.
-}
securityManagerRegisterUriSchemeAsEmptyDocument ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m ()
securityManagerRegisterUriSchemeAsEmptyDocument securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    webkit_security_manager_register_uri_scheme_as_empty_document securityManager' scheme'
    touchManagedPtr securityManager
    freeMem scheme'
    return ()

data SecurityManagerRegisterUriSchemeAsEmptyDocumentMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerRegisterUriSchemeAsEmptyDocumentMethodInfo a signature where
    overloadedMethod _ = securityManagerRegisterUriSchemeAsEmptyDocument

-- method SecurityManager::register_uri_scheme_as_local
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_security_manager_register_uri_scheme_as_local" webkit_security_manager_register_uri_scheme_as_local :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO ()

{- |
Register /@scheme@/ as a local scheme. This means that other non-local pages
cannot link to or access URIs of this scheme.
-}
securityManagerRegisterUriSchemeAsLocal ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m ()
securityManagerRegisterUriSchemeAsLocal securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    webkit_security_manager_register_uri_scheme_as_local securityManager' scheme'
    touchManagedPtr securityManager
    freeMem scheme'
    return ()

data SecurityManagerRegisterUriSchemeAsLocalMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerRegisterUriSchemeAsLocalMethodInfo a signature where
    overloadedMethod _ = securityManagerRegisterUriSchemeAsLocal

-- method SecurityManager::register_uri_scheme_as_no_access
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_security_manager_register_uri_scheme_as_no_access" webkit_security_manager_register_uri_scheme_as_no_access :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO ()

{- |
Register /@scheme@/ as a no-access scheme. This means that pages loaded
with this URI scheme cannot access pages loaded with any other URI scheme.
-}
securityManagerRegisterUriSchemeAsNoAccess ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m ()
securityManagerRegisterUriSchemeAsNoAccess securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    webkit_security_manager_register_uri_scheme_as_no_access securityManager' scheme'
    touchManagedPtr securityManager
    freeMem scheme'
    return ()

data SecurityManagerRegisterUriSchemeAsNoAccessMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerRegisterUriSchemeAsNoAccessMethodInfo a signature where
    overloadedMethod _ = securityManagerRegisterUriSchemeAsNoAccess

-- method SecurityManager::register_uri_scheme_as_secure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_security_manager_register_uri_scheme_as_secure" webkit_security_manager_register_uri_scheme_as_secure :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO ()

{- |
Register /@scheme@/ as a secure scheme. This means that mixed
content warnings won\'t be generated for this scheme when
included by an HTTPS page.
-}
securityManagerRegisterUriSchemeAsSecure ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m ()
securityManagerRegisterUriSchemeAsSecure securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    webkit_security_manager_register_uri_scheme_as_secure securityManager' scheme'
    touchManagedPtr securityManager
    freeMem scheme'
    return ()

data SecurityManagerRegisterUriSchemeAsSecureMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerRegisterUriSchemeAsSecureMethodInfo a signature where
    overloadedMethod _ = securityManagerRegisterUriSchemeAsSecure

-- method SecurityManager::uri_scheme_is_cors_enabled
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", 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_security_manager_uri_scheme_is_cors_enabled" webkit_security_manager_uri_scheme_is_cors_enabled :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO CInt

{- |
Whether /@scheme@/ is considered as a CORS enabled scheme.
See also 'GI.WebKit2.Objects.SecurityManager.securityManagerRegisterUriSchemeAsCorsEnabled'.
-}
securityManagerUriSchemeIsCorsEnabled ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@scheme@/ is a CORS enabled scheme or 'False' otherwise. -}
securityManagerUriSchemeIsCorsEnabled securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    result <- webkit_security_manager_uri_scheme_is_cors_enabled securityManager' scheme'
    let result' = (/= 0) result
    touchManagedPtr securityManager
    freeMem scheme'
    return result'

data SecurityManagerUriSchemeIsCorsEnabledMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerUriSchemeIsCorsEnabledMethodInfo a signature where
    overloadedMethod _ = securityManagerUriSchemeIsCorsEnabled

-- method SecurityManager::uri_scheme_is_display_isolated
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", 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_security_manager_uri_scheme_is_display_isolated" webkit_security_manager_uri_scheme_is_display_isolated :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO CInt

{- |
Whether /@scheme@/ is considered as a display isolated scheme.
See also 'GI.WebKit2.Objects.SecurityManager.securityManagerRegisterUriSchemeAsDisplayIsolated'.
-}
securityManagerUriSchemeIsDisplayIsolated ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@scheme@/ is a display isolated scheme or 'False' otherwise. -}
securityManagerUriSchemeIsDisplayIsolated securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    result <- webkit_security_manager_uri_scheme_is_display_isolated securityManager' scheme'
    let result' = (/= 0) result
    touchManagedPtr securityManager
    freeMem scheme'
    return result'

data SecurityManagerUriSchemeIsDisplayIsolatedMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerUriSchemeIsDisplayIsolatedMethodInfo a signature where
    overloadedMethod _ = securityManagerUriSchemeIsDisplayIsolated

-- method SecurityManager::uri_scheme_is_empty_document
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", 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_security_manager_uri_scheme_is_empty_document" webkit_security_manager_uri_scheme_is_empty_document :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO CInt

{- |
Whether /@scheme@/ is considered as an empty document scheme.
See also 'GI.WebKit2.Objects.SecurityManager.securityManagerRegisterUriSchemeAsEmptyDocument'.
-}
securityManagerUriSchemeIsEmptyDocument ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@scheme@/ is a an empty document scheme or 'False' otherwise. -}
securityManagerUriSchemeIsEmptyDocument securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    result <- webkit_security_manager_uri_scheme_is_empty_document securityManager' scheme'
    let result' = (/= 0) result
    touchManagedPtr securityManager
    freeMem scheme'
    return result'

data SecurityManagerUriSchemeIsEmptyDocumentMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerUriSchemeIsEmptyDocumentMethodInfo a signature where
    overloadedMethod _ = securityManagerUriSchemeIsEmptyDocument

-- method SecurityManager::uri_scheme_is_local
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", 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_security_manager_uri_scheme_is_local" webkit_security_manager_uri_scheme_is_local :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO CInt

{- |
Whether /@scheme@/ is considered as a local scheme.
See also 'GI.WebKit2.Objects.SecurityManager.securityManagerRegisterUriSchemeAsLocal'.
-}
securityManagerUriSchemeIsLocal ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@scheme@/ is a local scheme or 'False' otherwise. -}
securityManagerUriSchemeIsLocal securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    result <- webkit_security_manager_uri_scheme_is_local securityManager' scheme'
    let result' = (/= 0) result
    touchManagedPtr securityManager
    freeMem scheme'
    return result'

data SecurityManagerUriSchemeIsLocalMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerUriSchemeIsLocalMethodInfo a signature where
    overloadedMethod _ = securityManagerUriSchemeIsLocal

-- method SecurityManager::uri_scheme_is_no_access
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", 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_security_manager_uri_scheme_is_no_access" webkit_security_manager_uri_scheme_is_no_access :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO CInt

{- |
Whether /@scheme@/ is considered as a no-access scheme.
See also 'GI.WebKit2.Objects.SecurityManager.securityManagerRegisterUriSchemeAsNoAccess'.
-}
securityManagerUriSchemeIsNoAccess ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@scheme@/ is a no-access scheme or 'False' otherwise. -}
securityManagerUriSchemeIsNoAccess securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    result <- webkit_security_manager_uri_scheme_is_no_access securityManager' scheme'
    let result' = (/= 0) result
    touchManagedPtr securityManager
    freeMem scheme'
    return result'

data SecurityManagerUriSchemeIsNoAccessMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerUriSchemeIsNoAccessMethodInfo a signature where
    overloadedMethod _ = securityManagerUriSchemeIsNoAccess

-- method SecurityManager::uri_scheme_is_secure
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "security_manager", argType = TInterface (Name {namespace = "WebKit2", name = "SecurityManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitSecurityManager", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a URI scheme", 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_security_manager_uri_scheme_is_secure" webkit_security_manager_uri_scheme_is_secure :: 
    Ptr SecurityManager ->                  -- security_manager : TInterface (Name {namespace = "WebKit2", name = "SecurityManager"})
    CString ->                              -- scheme : TBasicType TUTF8
    IO CInt

{- |
Whether /@scheme@/ is considered as a secure scheme.
See also 'GI.WebKit2.Objects.SecurityManager.securityManagerRegisterUriSchemeAsSecure'.
-}
securityManagerUriSchemeIsSecure ::
    (B.CallStack.HasCallStack, MonadIO m, IsSecurityManager a) =>
    a
    {- ^ /@securityManager@/: a 'GI.WebKit2.Objects.SecurityManager.SecurityManager' -}
    -> T.Text
    {- ^ /@scheme@/: a URI scheme -}
    -> m Bool
    {- ^ __Returns:__ 'True' if /@scheme@/ is a secure scheme or 'False' otherwise. -}
securityManagerUriSchemeIsSecure securityManager scheme = liftIO $ do
    securityManager' <- unsafeManagedPtrCastPtr securityManager
    scheme' <- textToCString scheme
    result <- webkit_security_manager_uri_scheme_is_secure securityManager' scheme'
    let result' = (/= 0) result
    touchManagedPtr securityManager
    freeMem scheme'
    return result'

data SecurityManagerUriSchemeIsSecureMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSecurityManager a) => O.MethodInfo SecurityManagerUriSchemeIsSecureMethodInfo a signature where
    overloadedMethod _ = securityManagerUriSchemeIsSecure