EWebKit  1.0
Classes | Typedefs | Enumerations | Functions
ewk_context.h File Reference

Describes the context API. More...

#include "ewk_application_cache_manager.h"
#include "ewk_cookie_manager.h"
#include "ewk_database_manager.h"
#include "ewk_download_job.h"
#include "ewk_error.h"
#include "ewk_favicon_database.h"
#include "ewk_navigation_data.h"
#include "ewk_storage_manager.h"
#include "ewk_url_scheme_request.h"
#include <Evas.h>

Go to the source code of this file.

Classes

struct  Ewk_Download_Job_Error
 Structure containing details about a download failure. More...
 

Typedefs

typedef struct Ewk_Download_Job_Error Ewk_Download_Job_Error
 Creates a type name for Ewk_Download_Job_Error.
 
typedef struct EwkObject Ewk_Context
 
typedef enum Ewk_Cache_Model Ewk_Cache_Model
 Creates a type name for the Ewk_Cache_Model.
 
typedef enum Ewk_TLS_Error_Policy Ewk_TLS_Error_Policy
 
typedef void(* Ewk_Url_Scheme_Request_Cb) (Ewk_Url_Scheme_Request *request, void *user_data)
 Callback type for use with ewk_context_url_scheme_register().
 
typedef void(* Ewk_History_Navigation_Cb) (const Evas_Object *view, Ewk_Navigation_Data *navigation_data, void *user_data)
 Type definition for a function that will be called back when view did navigation (loaded new URL).
 
typedef void(* Ewk_History_Client_Redirection_Cb) (const Evas_Object *view, const char *source_url, const char *destination_url, void *user_data)
 Type definition for a function that will be called back when view performed a client redirect.
 
typedef void(* Ewk_History_Server_Redirection_Cb) (const Evas_Object *view, const char *source_url, const char *destination_url, void *user_data)
 Type definition for a function that will be called back when view performed a server redirect.
 
typedef void(* Ewk_History_Title_Update_Cb) (const Evas_Object *view, const char *title, const char *url, void *user_data)
 Type definition for a function that will be called back when history title is updated.
 
typedef void(* Ewk_Download_Requested_Cb) (Ewk_Download_Job *download, void *user_data)
 Type definition for a function that will be called back when new download job is requested.
 
typedef void(* Ewk_Download_Failed_Cb) (Ewk_Download_Job_Error *error, void *user_data)
 Type definition for a function that will be called back when a download job has failed.
 
typedef void(* Ewk_Download_Cancelled_Cb) (Ewk_Download_Job *download, void *user_data)
 Type definition for a function that will be called back when a download job is cancelled.
 
typedef void(* Ewk_Download_Finished_Cb) (Ewk_Download_Job *download, void *user_data)
 Type definition for a function that will be called back when a download job is finished.
 
typedef void(* Ewk_History_Populate_Visited_Links_Cb) (void *user_data)
 
typedef void(* Ewk_Context_Message_From_Extension_Cb) (const char *name, const Eina_Value *body, void *user_data)
 

Enumerations

enum  Ewk_Cache_Model { EWK_CACHE_MODEL_DOCUMENT_VIEWER, EWK_CACHE_MODEL_DOCUMENT_BROWSER, EWK_CACHE_MODEL_PRIMARY_WEBBROWSER }
 Contains option for cache model. More...
 
enum  Ewk_TLS_Error_Policy { EWK_TLS_ERROR_POLICY_FAIL, EWK_TLS_ERROR_POLICY_IGNORE }
 Contains option for TLS error policy.
 

Functions

EAPI Ewk_Contextewk_context_default_get (void)
 
EAPI Ewk_Contextewk_context_new (void)
 
EAPI Ewk_Contextewk_context_new_with_extensions_path (const char *path)
 
EAPI Ewk_Application_Cache_Managerewk_context_application_cache_manager_get (const Ewk_Context *context)
 
EAPI Ewk_Cookie_Managerewk_context_cookie_manager_get (const Ewk_Context *context)
 
EAPI Ewk_Database_Managerewk_context_database_manager_get (const Ewk_Context *context)
 
EAPI Eina_Bool ewk_context_favicon_database_directory_set (Ewk_Context *context, const char *directory_path)
 
EAPI Ewk_Favicon_Databaseewk_context_favicon_database_get (const Ewk_Context *context)
 
EAPI Ewk_Storage_Managerewk_context_storage_manager_get (const Ewk_Context *context)
 
EAPI Eina_Bool ewk_context_url_scheme_register (Ewk_Context *context, const char *scheme, Ewk_Url_Scheme_Request_Cb callback, void *user_data)
 
EAPI void ewk_context_history_callbacks_set (Ewk_Context *context, Ewk_History_Navigation_Cb navigate_func, Ewk_History_Client_Redirection_Cb client_redirect_func, Ewk_History_Server_Redirection_Cb server_redirect_func, Ewk_History_Title_Update_Cb title_update_func, Ewk_History_Populate_Visited_Links_Cb populate_visited_links_func, void *data)
 
EAPI void ewk_context_download_callbacks_set (Ewk_Context *context, Ewk_Download_Requested_Cb download_requested_func, Ewk_Download_Failed_Cb download_failed_func, Ewk_Download_Cancelled_Cb download_cancelled_func, Ewk_Download_Finished_Cb download_finished_func, void *data)
 
EAPI void ewk_context_visited_link_add (Ewk_Context *context, const char *visited_url)
 
EAPI Eina_Bool ewk_context_cache_model_set (Ewk_Context *context, Ewk_Cache_Model cache_model)
 
EAPI Ewk_Cache_Model ewk_context_cache_model_get (const Ewk_Context *context)
 
EAPI Eina_Bool ewk_context_additional_plugin_path_set (Ewk_Context *context, const char *path)
 
EAPI void ewk_context_resource_cache_clear (Ewk_Context *context)
 
EAPI Eina_Bool ewk_context_message_post_to_extensions (Ewk_Context *context, const char *name, const Eina_Value *body)
 
EAPI void ewk_context_message_from_extensions_callback_set (Ewk_Context *context, Ewk_Context_Message_From_Extension_Cb callback, void *user_data)
 
EAPI Ewk_TLS_Error_Policy ewk_context_tls_error_policy_get (const Ewk_Context *context)
 
EAPI void ewk_context_tls_error_policy_set (Ewk_Context *context, Ewk_TLS_Error_Policy tls_error_policy)
 
EAPI void ewk_context_preferred_languages_set (Eina_List *languages)
 
EAPI void ewk_context_tls_certificate_for_host_allow (Ewk_Context *context, const char *pem, const char *host)
 
EAPI Eina_Bool ewk_context_web_process_count_limit_set (Ewk_Context *context, unsigned count)
 
EAPI unsigned ewk_context_web_process_count_limit_get (const Ewk_Context *context)
 

Detailed Description

Describes the context API.

Note
ewk_context encapsulates all pages related to specific use of WebKit.

Applications have the option of creating a context different than the default one and use it for a group of pages. All pages in the same context share the same preferences, visited link set, local storage, etc.

A process model can be specified per context. The default one is the shared model where the web-engine process is shared among the pages in the context. The second model allows each page to use a separate web-engine process. This latter model is currently not supported by WebKit2/EFL.

Typedef Documentation

typedef struct EwkObject Ewk_Context

Declare Ewk_Context as Ewk_Object.

See also
Ewk_Object
typedef void(* Ewk_Context_Message_From_Extension_Cb) (const char *name, const Eina_Value *body, void *user_data)

Callback to receive message from extension.

Parameters
namename of message from extension
bodybody of message from extendion
user_datauser_data will be passsed when receiving message from extension
See also
ewk_context_message_from_extensions_callback_set
ewk_extension_message_post

Enumeration Type Documentation

Contains option for cache model.

Enumerator
EWK_CACHE_MODEL_DOCUMENT_VIEWER 

Use the smallest cache capacity.

EWK_CACHE_MODEL_DOCUMENT_BROWSER 

Use bigger cache capacity than EWK_CACHE_MODEL_DOCUMENT_VIEWER.

EWK_CACHE_MODEL_PRIMARY_WEBBROWSER 

Use the biggest cache capacity.

Function Documentation

EAPI Eina_Bool ewk_context_additional_plugin_path_set ( Ewk_Context context,
const char *  path 
)

Sets additional plugin path for context.

Parameters
contextcontext object to set additional plugin path
paththe path to be used for plugins
Returns
EINA_TRUE on success or EINA_FALSE on failure
EAPI Ewk_Application_Cache_Manager* ewk_context_application_cache_manager_get ( const Ewk_Context context)

Gets the application cache manager instance for this context.

Parameters
contextcontext object to query.
Returns
Ewk_Cookie_Manager object instance or NULL in case of failure.
EAPI Ewk_Cache_Model ewk_context_cache_model_get ( const Ewk_Context context)

Gets the cache model for context.

Parameters
contextcontext object to query.
Returns
the cache model for the context.
EAPI Eina_Bool ewk_context_cache_model_set ( Ewk_Context context,
Ewk_Cache_Model  cache_model 
)

Set cache_model as the cache model for context.

By default, it is EWK_CACHE_MODEL_DOCUMENT_VIEWER.

Parameters
contextcontext object to update.
cache_modela Ewk_Cache_Model.
Returns
EINA_TRUE on success or EINA_FALSE on failure
EAPI Ewk_Cookie_Manager* ewk_context_cookie_manager_get ( const Ewk_Context context)

Gets the cookie manager instance for this context.

Parameters
contextcontext object to query.
Returns
Ewk_Cookie_Manager object instance or NULL in case of failure.
EAPI Ewk_Database_Manager* ewk_context_database_manager_get ( const Ewk_Context context)

Gets the database manager instance for this context.

Parameters
contextcontext object to query
Returns
Ewk_Database_Manager object instance or NULL in case of failure
EAPI Ewk_Context* ewk_context_default_get ( void  )

Gets default Ewk_Context instance.

The returned Ewk_Context object should not be unref'ed if application does not call ewk_context_ref() for that.

Returns
Ewk_Context object.
EAPI void ewk_context_download_callbacks_set ( Ewk_Context context,
Ewk_Download_Requested_Cb  download_requested_func,
Ewk_Download_Failed_Cb  download_failed_func,
Ewk_Download_Cancelled_Cb  download_cancelled_func,
Ewk_Download_Finished_Cb  download_finished_func,
void *  data 
)

Sets download callbacks for the given context.

To stop listening for download events, you may call this function with NULL for the callbacks.

Parameters
contextcontext object to set download callbacks
download_requested_functhe function to call when new download is requested (may be NULL).
download_failed_functhe function to call when a download job has failed (may be NULL).
download_cancelled_functhe function to call when a download job is cancelled (may be NULL).
download_finished_functhe function to call when a download job is finished (may be NULL).
dataUser data (may be NULL).
EAPI Eina_Bool ewk_context_favicon_database_directory_set ( Ewk_Context context,
const char *  directory_path 
)

Sets the favicon database directory for this context.

Sets the directory path to be used to store the favicons database for context on disk. Passing NULL as directory_path will result in using the default directory for the platform.

Calling this method also means enabling the favicons database for its use from the applications, it is therefore expected to be called only once. Further calls for the same instance of context will not have any effect.

Parameters
contextcontext object to update
directory_pathdatabase directory path to set
Returns
EINA_TRUE if successful, EINA_FALSE otherwise
EAPI Ewk_Favicon_Database* ewk_context_favicon_database_get ( const Ewk_Context context)

Gets the favicon database instance for this context.

Parameters
contextcontext object to query.
Returns
Ewk_Favicon_Database object instance or NULL in case of failure.
EAPI void ewk_context_history_callbacks_set ( Ewk_Context context,
Ewk_History_Navigation_Cb  navigate_func,
Ewk_History_Client_Redirection_Cb  client_redirect_func,
Ewk_History_Server_Redirection_Cb  server_redirect_func,
Ewk_History_Title_Update_Cb  title_update_func,
Ewk_History_Populate_Visited_Links_Cb  populate_visited_links_func,
void *  data 
)

Sets history callbacks for the given context.

To stop listening for history events, you may call this function with NULL for the callbacks.

Parameters
contextcontext object to set history callbacks
navigate_funcThe function to call when ewk_view did navigation (may be NULL).
client_redirect_funcThe function to call when ewk_view performed a client redirect (may be NULL).
server_redirect_funcThe function to call when ewk_view performed a server redirect (may be NULL).
title_update_funcThe function to call when history title is updated (may be NULL).
populate_visited_links_funcThe function is called when client is asked to provide visited links from a client-managed storage (may be NULL).
dataUser data (may be NULL).
EAPI void ewk_context_message_from_extensions_callback_set ( Ewk_Context context,
Ewk_Context_Message_From_Extension_Cb  callback,
void *  user_data 
)

Sets callback for received extension message.

Client can pass NULL for callback to stop listening for messages.

Parameters
contextcontext object
callbackcallback for received injected bundle message or NULL
user_datauser data
EAPI Eina_Bool ewk_context_message_post_to_extensions ( Ewk_Context context,
const char *  name,
const Eina_Value *  body 
)

Posts message to extensions asynchronously.

Note
body only supports EINA_VALUE_TYPE_STRINGSHARE or EINA_VALUE_TYPE_STRING, now.
Parameters
contextcontext object to post message to extensions
namemessage name
bodymessage body
Returns
EINA_TRUE on success of EINA_FALSE on failure or when the type of body is not supported.
EAPI Ewk_Context* ewk_context_new ( void  )

Creates a new Ewk_Context.

The returned Ewk_Context object should be unref'ed after use.

Returns
Ewk_Context object on success or NULL on failure
See also
ewk_object_unref
ewk_context_new_with_extensions_path
EAPI Ewk_Context* ewk_context_new_with_extensions_path ( const char *  path)

Creates a new Ewk_Context.

The returned Ewk_Context object should be unref'ed after use.

Parameters
pathdirectory path of extensions
Returns
Ewk_Context object on success or NULL on failure
Note
All shared objects which have ewk_extension_init() in the given path will be loaded.
See also
ewk_object_unref
ewk_context_new
Ewk_Extension_Initialize_Function
EAPI void ewk_context_preferred_languages_set ( Eina_List *  languages)

Sets the list of preferred languages.

Sets the list of preferred langages. This list will be used to build the "Accept-Language" header that will be included in the network requests. Client can pass NULL for languages to clear what is set before.

Parameters
languagesthe list of preferred languages (char* as data) or NULL
Note
all contexts will be affected.
EAPI void ewk_context_resource_cache_clear ( Ewk_Context context)

Clears HTTP caches in local storage and all resources cached in memory such as images, CSS, JavaScript, XSL, and fonts for context.

Parameters
contextcontext object to clear all resource caches
EAPI Ewk_Storage_Manager* ewk_context_storage_manager_get ( const Ewk_Context context)

Gets the storage manager instance for this context.

Parameters
contextcontext object to query.
Returns
Ewk_Storage_Manager object instance or NULL in case of failure.
EAPI void ewk_context_tls_certificate_for_host_allow ( Ewk_Context context,
const char *  pem,
const char *  host 
)

Allows accepting the specified TLS certificate for the speficied host.

Parameters
contextcontext object to allow accepting a specific certificate for a specific host
pemthe certificate to be accepted in PEM format
hostthe host for which the certificate is to be accepted
EAPI Ewk_TLS_Error_Policy ewk_context_tls_error_policy_get ( const Ewk_Context context)

Gets TLS error policy for context.

Parameters
contextcontext object to get TLS error policy
Returns
The TLS errors policy for the context
EAPI void ewk_context_tls_error_policy_set ( Ewk_Context context,
Ewk_TLS_Error_Policy  tls_error_policy 
)

Sets TLS error policy for context.

Sets how TLS certificate errors should be handled. The available policies are listed in Ewk_TLS_Error_Policy enumeration.

Parameters
contextcontext object to set TLS error policy
tls_error_policya Ewk_TLS_Error_Policy
EAPI Eina_Bool ewk_context_url_scheme_register ( Ewk_Context context,
const char *  scheme,
Ewk_Url_Scheme_Request_Cb  callback,
void *  user_data 
)

Register scheme in context.

When an URL request with scheme is made in the Ewk_Context, the callback function provided will be called with a Ewk_Url_Scheme_Request.

It is possible to handle URL scheme requests asynchronously, by calling ewk_object_ref() on the Ewk_Url_Scheme_Request and calling ewk_url_scheme_request_finish() later when the data of the request is available.

To replace registered callback with new callback, calls ewk_context_url_scheme_register() with new callback again.

Parameters
contexta Ewk_Context object.
schemethe network scheme to register
callbackthe function to be called when an URL request with scheme is made.
user_datadata to pass to callback function
1 static void custom_url_scheme_request_cb(Ewk_Url_Scheme_Request *request, void *user_data)
2 {
3  const char *scheme;
4  char *contents_data = NULL;
5  unsigned contents_length = 0;
6 
7  scheme = ewk_url_scheme_request_scheme_get(request);
8  if (!strcmp(scheme, "myapp")) {
9  // Initialize contents_data with a welcome page, and set its length to contents_length
10  } else {
11  Eina_Strbuf *buf = eina_strbuf_new();
12  eina_strbuf_append_printf(buf, "&lt;html&gt;&lt;body&gt;&lt;p&gt;Invalid application: %s&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;", scheme);
13  contents_data = eina_strbuf_string_steal(buf);
14  contents_length = strlen(contents_data);
15  eina_strbuf_free(buf);
16  }
17  ewk_url_scheme_request_finish(request, contents_data, contents_length, "text/html");
18  free(contents_data);
19 }
EAPI void ewk_context_visited_link_add ( Ewk_Context context,
const char *  visited_url 
)

Registers the given visited_url as visited link in context visited link cache.

This function shall be invoked as a response to populateVisitedLinks callback of the history cient.

Parameters
contextcontext object to add visited link data
visited_urlvisited url
See also
Ewk_Context_History_Client
EAPI unsigned ewk_context_web_process_count_limit_get ( const Ewk_Context context)

Gets the maximum number of web processes that can be created at the same time for the context.

Parameters
contextcontext object to get webprocess count limit
Returns
the maximum number of web processes, or 0 if there isn't a limit
EAPI Eina_Bool ewk_context_web_process_count_limit_set ( Ewk_Context context,
unsigned  count 
)

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.

Parameters
contextcontext object to set webprocess count limit
countthe maximum number of web processes
Returns
EINA_TRUE on success or EINA_FALSE on failure