The directory where local storage data will be saved.
The #WebKitMemoryPressureSettings applied to the web processes created by this context.
Whether swap Web processes on cross-site navigations is enabled.
When enabled, pages from each security origin will be handled by their own separate Web processes, which are started (and terminated) on demand as the user navigates across different domains. This is an important security measure which helps prevent websites stealing data from other visited pages.
The #WebKitWebsiteDataManager associated with this context.
Adds a path to be mounted in the sandbox. path
must exist before any web process
has been created otherwise it will be silently ignored. It is a fatal error to
add paths after a web process has been spawned.
Paths in directories such as /sys
, /proc
, and /dev
or all of /
are not valid.
See also webkit_web_context_set_sandbox_enabled()
an absolute path to mount in the sandbox
if %TRUE the path will be read-only
Ignore further TLS errors on the host
for the certificate present in info
.
a #GTlsCertificate
the host for which a certificate is to be allowed
Creates a binding between source_property
on source
and target_property
on target
.
Whenever the source_property
is changed the target_property
is
updated using the same value. For instance:
g_object_bind_property (action, "active", widget, "sensitive", 0);
Will result in the "sensitive" property of the widget #GObject instance to be updated with the same value of the "active" property of the action #GObject instance.
If flags
contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
if target_property
on target
changes then the source_property
on source
will be updated as well.
The binding will automatically be removed when either the source
or the
target
instances are finalized. To remove the binding without affecting the
source
and the target
you can just call g_object_unref() on the returned
#GBinding instance.
Removing the binding by calling g_object_unref() on it must only be done if
the binding, source
and target
are only used from a single thread and it
is clear that both source
and target
outlive the binding. Especially it
is not safe to rely on this if the binding, source
or target
can be
finalized from different threads. Keep another reference to the binding and
use g_binding_unbind() instead to be on the safe side.
A #GObject can have multiple bindings.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
Creates a binding between source_property
on source
and target_property
on target,
allowing you to set the transformation functions to be used by
the binding.
This function is the language bindings friendly version of g_object_bind_property_full(), using #GClosures instead of function pointers.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
a #GClosure wrapping the transformation function from the source
to the target,
or %NULL to use the default
a #GClosure wrapping the transformation function from the target
to the source,
or %NULL to use the default
Clears all resources currently cached. See also webkit_web_context_set_cache_model().
Requests downloading of the specified URI string. The download operation will not be associated to any #WebKitWebView, if you are interested in starting a download from a particular #WebKitWebView use webkit_web_view_download_uri() instead.
the URI to download
This function is intended for #GObject implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all #GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().
Increases the freeze count on object
. If the freeze count is
non-zero, the emission of "notify" signals on object
is
stopped. The signals are queued until the freeze count is decreased
to zero. Duplicate notifications are squashed so that at most one
#GObject::notify signal is emitted for each property modified while the
object is frozen.
This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.
Returns the current cache model. For more information about this value check the documentation of the function webkit_web_context_set_cache_model().
Get the #WebKitCookieManager of the context'
s #WebKitWebsiteDataManager.
Gets a named field from the objects table of associations (see g_object_set_data()).
name of the key for that association
Get the #WebKitFaviconDatabase associated with context
.
To initialize the database you need to call webkit_web_context_set_favicon_database_directory().
Get the directory path being used to store the favicons database
for context,
or %NULL if
webkit_web_context_set_favicon_database_directory() hasn't been
called yet.
This function will always return the same path after having called webkit_web_context_set_favicon_database_directory() for the first time.
Get the #WebKitGeolocationManager of context
.
Asynchronously get the list of installed plugins.
When the operation is finished, callback
will be called. You can then call
webkit_web_context_get_plugins_finish() to get the result of the operation.
a #GCancellable or %NULL to ignore
a #GAsyncReadyCallback to call when the request is satisfied
Finish an asynchronous operation started with webkit_web_context_get_plugins.
a #GAsyncResult
Returns the current process model. For more information about this value see webkit_web_context_set_process_model().
Gets a property of an object.
The value
can be:
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset().
Note that g_object_get_property() is really intended for language bindings, g_object_get() is much more convenient for C programming.
the name of the property to get
return location for the property value
This function gets back user data pointers stored via g_object_set_qdata().
A #GQuark, naming the user data pointer
Get whether sandboxing is currently enabled.
Get the #WebKitSecurityManager of context
.
Get whether spell checking feature is currently enabled.
Get the the list of spell checking languages associated with
context,
or %NULL if no languages have been previously set.
See webkit_web_context_set_spell_checking_languages() for more details on the format of the languages in the list.
Get the TLS errors policy of context
Get the #WebKitWebContext:use-system-appearance-for-scrollbars property.
Gets the maximum number of web processes that can be created at the same time for the context
.
This function is now deprecated and always returns 0 (no limit). See also webkit_web_context_set_web_process_count_limit().
Get the #WebKitWebsiteDataManager of context
.
Gets n_properties
properties for an object
.
Obtained properties will be set to values
. All properties must be valid.
Warnings will be emitted and undefined behaviour may result if invalid
properties are passed in.
the names of each property to get
the values of each property to get
Sets initial desktop notification permissions for the context
.
allowed_origins
and disallowed_origins
must each be #GList of
#WebKitSecurityOrigin objects representing origins that will,
respectively, either always or never have permission to show desktop
notifications. No #WebKitNotificationPermissionRequest will ever be
generated for any of the security origins represented in
allowed_origins
or disallowed_origins
. This function is necessary
because some webpages proactively check whether they have permission
to display notifications without ever creating a permission request.
This function only affects web processes that have not already been created. The best time to call it is when handling #WebKitWebContext::initialize-notification-permissions so as to ensure that new web processes receive the most recent set of permissions.
a #GList of security origins
a #GList of security origins
Get whether automation is allowed in context
.
See also webkit_web_context_set_automation_allowed().
Get whether a #WebKitWebContext is ephemeral.
Checks whether object
has a [floating][floating-ref] reference.
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
the name of a property installed on the class of object
.
Emits a "notify" signal for the property specified by pspec
on object
.
This function omits the property name lookup, hence it is faster than g_object_notify().
One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:
enum
{
PROP_0,
PROP_FOO,
PROP_LAST
};
static GParamSpec *properties[PROP_LAST];
static void
my_object_class_init (MyObjectClass *klass)
{
properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
0, 100,
50,
G_PARAM_READWRITE);
g_object_class_install_property (gobject_class,
PROP_FOO,
properties[PROP_FOO]);
}
and then notify a change on the "foo" property with:
g_object_notify_by_pspec (self, properties[PROP_FOO]);
the #GParamSpec of a property installed on the class of object
.
Resolve the domain name of the given hostname
in advance, so that if a URI
of hostname
is requested the load will be performed more quickly.
a hostname to be resolved
Increase the reference count of object,
and possibly remove the
[floating][floating-ref] reference, if object
has a floating reference.
In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.
Since GLib 2.56, the type of object
will be propagated to the return type
under the same conditions as for g_object_ref().
Register scheme
in context,
so that when an URI request with scheme
is made in the
#WebKitWebContext, the #WebKitURISchemeRequestCallback registered will be called with a
#WebKitURISchemeRequest.
It is possible to handle URI scheme requests asynchronously, by calling g_object_ref() on the
#WebKitURISchemeRequest and calling webkit_uri_scheme_request_finish() later
when the data of the request is available or
webkit_uri_scheme_request_finish_error() in case of error.
path = webkit_uri_scheme_request_get_path (request);
if (!g_strcmp0 (path, "memory")) {
/<!-- -->* Create a GInputStream with the contents of memory about page, and set its length to stream_length *<!-- -->/
} else if (!g_strcmp0 (path, "applications")) {
/<!-- -->* Create a GInputStream with the contents of applications about page, and set its length to stream_length *<!-- -->/
} else if (!g_strcmp0 (path, "example")) {
gchar *contents;
contents = g_strdup_printf ("<html><body><p>Example about page</p></body></html>");
stream_length = strlen (contents);
stream = g_memory_input_stream_new_from_data (contents, stream_length, g_free);
} else {
GError *error;
error = g_error_new (ABOUT_HANDLER_ERROR, ABOUT_HANDLER_ERROR_INVALID, "Invalid about:%s page.", path);
webkit_uri_scheme_request_finish_error (request, error);
g_error_free (error);
return;
}
webkit_uri_scheme_request_finish (request, stream, stream_length, "text/html");
g_object_unref (stream);
}
the network scheme to register
a #WebKitURISchemeRequestCallback
Releases all references to other objects. This can be used to break reference cycles.
This function should only be called from object system implementations.
Send message
to all #WebKitWebExtensions associated to context
.
If message
is floating, it's consumed.
a #WebKitUserMessage
Set an additional directory where WebKit will look for plugins.
the directory to add
Set whether automation is allowed in context
. When automation is enabled the browser could
be controlled by another process by requesting an automation session. When a new automation
session is requested the signal #WebKitWebContext::automation-started is emitted.
Automation is disabled by default, so you need to explicitly call this method passing %TRUE
to enable it.
Note that only one #WebKitWebContext can have automation enabled, so this will do nothing if there's another #WebKitWebContext with automation already enabled.
value to set
Specifies a usage model for WebViews, which WebKit will use to determine its caching behavior. All web views follow the cache model. This cache model determines the RAM and disk space to use for caching previously viewed content .
Research indicates that users tend to browse within clusters of documents that hold resources in common, and to revisit previously visited documents. WebKit and the frameworks below it include built-in caches that take advantage of these patterns, substantially improving document load speed in browsing situations. The WebKit cache model controls the behaviors of all of these caches, including various WebCore caches.
Browsers can improve document load speed substantially by specifying %WEBKIT_CACHE_MODEL_WEB_BROWSER. Applications without a browsing interface can reduce memory usage substantially by specifying %WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER. The default value is %WEBKIT_CACHE_MODEL_WEB_BROWSER.
a #WebKitCacheModel
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
If the object already had an association with that name, the old association will be destroyed.
Internally, the key
is converted to a #GQuark using g_quark_from_string().
This means a copy of key
is kept permanently (even after object
has been
finalized) — so it is recommended to only use a small, bounded set of values
for key
in your program, to avoid the #GQuark storage growing unbounded.
name of the key
data to associate with that key
Set the directory where disk cache files will be stored This method must be called before loading anything in this context, otherwise it will not have any effect.
Note that this method overrides the directory set in the #WebKitWebsiteDataManager, but it doesn't change the value returned by webkit_website_data_manager_get_disk_cache_directory() since the #WebKitWebsiteDataManager is immutable.
the directory to set
Set the directory path to be used to store the favicons database
for context
on disk. Passing %NULL as path
means using the
default directory for the platform (see g_get_user_cache_dir()).
Calling this method also means enabling the favicons database for its use from the applications, so that's why it's expected to be called only once. Further calls for the same instance of #WebKitWebContext won't cause any effect.
an absolute path to the icon database directory or %NULL to use the defaults
Set the network proxy settings to be used by connections started in context
.
By default %WEBKIT_NETWORK_PROXY_MODE_DEFAULT is used, which means that the
system settings will be used (g_proxy_resolver_get_default()).
If you want to override the system default settings, you can either use
%WEBKIT_NETWORK_PROXY_MODE_NO_PROXY to make sure no proxies are used at all,
or %WEBKIT_NETWORK_PROXY_MODE_CUSTOM to provide your own proxy settings.
When proxy_mode
is %WEBKIT_NETWORK_PROXY_MODE_CUSTOM proxy_settings
must be
a valid #WebKitNetworkProxySettings; otherwise, proxy_settings
must be %NULL.
a #WebKitNetworkProxyMode
a #WebKitNetworkProxySettings, or %NULL
Set the list of preferred languages, sorted from most desirable to least desirable. The list will be used to build the "Accept-Language" header that will be included in the network requests started by the #WebKitWebContext.
a %NULL-terminated list of language identifiers
Specifies a process model for WebViews, which WebKit will use to determine how auxiliary processes are handled.
%WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES will use one process per view most of the time, while still allowing for web views to share a process when needed (for example when different views interact with each other). Using this model, when a process hangs or crashes, only the WebViews using it stop working, while the rest of the WebViews in the application will still function normally.
%WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS is deprecated since 2.26, using it has no effect for security reasons.
This method must be called before any web process has been created, as early as possible in your application. Calling it later will make your application crash.
a #WebKitProcessModel
Sets a property on an object.
the name of the property to set
the value
Set whether WebKit subprocesses will be sandboxed, limiting access to the system.
This method must be called before any web process has been created, as early as possible in your application. Calling it later is a fatal error.
This is only implemented on Linux and is a no-op otherwise.
if %TRUE enable sandboxing
Enable or disable the spell checking feature.
Value to be set
Set the list of spell checking languages to be used for spell checking.
The locale string typically is in the form lang_COUNTRY, where lang is an ISO-639 language code, and COUNTRY is an ISO-3166 country code. For instance, sv_FI for Swedish as written in Finland or pt_BR for Portuguese as written in Brazil.
You need to call this function with a valid list of languages at least once in order to properly enable the spell checking feature in WebKit.
a %NULL-terminated list of spell checking languages
Set the TLS errors policy of context
as policy
a #WebKitTLSErrorsPolicy
Set the #WebKitWebContext:use-system-appearance-for-scrollbars property.
value to set
Set the directory where WebKit will look for Web Extensions. This method must be called before loading anything in this context, otherwise it will not have any effect. You can connect to #WebKitWebContext::initialize-web-extensions to call this method before anything is loaded.
the directory to add
Set user data to be passed to Web Extensions on initialization. The data will be passed to the #WebKitWebExtensionInitializeWithUserDataFunction. This method must be called before loading anything in this context, otherwise it will not have any effect. You can connect to #WebKitWebContext::initialize-web-extensions to call this method before anything is loaded.
Sets the maximum number of web processes that can be created at the same time for the context
.
The default value is 0 and means no limit.
This function is now deprecated and does nothing for security reasons.
the maximum number of web processes
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
name of the key
This function gets back user data pointers stored via
g_object_set_qdata() and removes the data
from object
without invoking its destroy() function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
void
object_add_to_user_list (GObject *object,
const gchar *new_string)
{
// the quark, naming the object data
GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
// retrieve the old string list
GList *list = g_object_steal_qdata (object, quark_string_list);
// prepend new string
list = g_list_prepend (list, g_strdup (new_string));
// this changed 'list', so we need to set it again
g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
}
static void
free_string_list (gpointer data)
{
GList *node, *list = data;
for (node = list; node; node = node->next)
g_free (node->data);
g_list_free (list);
}
Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().
A #GQuark, naming the user data pointer
Reverts the effect of a previous call to
g_object_freeze_notify(). The freeze count is decreased on object
and when it reaches zero, queued "notify" signals are emitted.
Duplicate notifications for each property are squashed so that at most one #GObject::notify signal is emitted for each property, in the reverse order in which they have been queued.
It is an error to call this function when the freeze count is zero.
Decreases the reference count of object
. When its reference count
drops to 0, the object is finalized (i.e. its memory is freed).
If the pointer to the #GObject may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to %NULL rather than retain a dangling pointer to a potentially invalid #GObject instance. Use g_clear_object() for this.
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
This function essentially limits the life time of the closure
to
the life time of the object. That is, when the object is finalized,
the closure
is invalidated by calling g_closure_invalidate() on
it, in order to prevent invocations of the closure with a finalized
(nonexisting) object. Also, g_object_ref() and g_object_unref() are
added as marshal guards to the closure,
to ensure that an extra
reference count is held on object
during invocation of the
closure
. Usually, this function will be called on closures that
use this object
as closure data.
#GClosure to watch
Gets the default web context
Find the #GParamSpec with the given name for an
interface. Generally, the interface vtable passed in as g_iface
will be the default vtable from g_type_default_interface_ref(), or,
if you know the interface has already been loaded,
g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
name of a property to look up.
Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created #GParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.
This function is meant to be called from the interface's default
vtable initialization function (the class_init
member of
#GTypeInfo.) It must not be called after after class_init
has
been called for any object types implementing this interface.
If pspec
is a floating reference, it will be consumed.
any interface vtable for the interface, or the default vtable for the interface.
the #GParamSpec for the new property
Lists the properties of an interface.Generally, the interface
vtable passed in as g_iface
will be the default vtable from
g_type_default_interface_ref(), or, if you know the interface has
already been loaded, g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
Create a new #WebKitWebContext
Create a new ephemeral #WebKitWebContext. An ephemeral #WebKitWebContext is a context created with an ephemeral #WebKitWebsiteDataManager. This is just a convenient method to create ephemeral contexts without having to create your own #WebKitWebsiteDataManager. All #WebKitWebViews associated with this context will also be ephemeral. Websites will not store any data in the client storage. This is normally used to implement private instances.
Create a new #WebKitWebContext with a #WebKitWebsiteDataManager.
a #WebKitWebsiteDataManager
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
the type id of the #GObject subtype to instantiate
an array of #GParameter
Create a new #WebKitWebContext