Strasbourg, July 27th, 2014
by Adrian Perez
screenshot by Alex Diavatis
gsettings set org.gnome.Epiphany \ process-model one-secondary-process-per-web-view // or 'shared-secondary-process'
int main(int argc, char **argv) { webkit_web_context_set_process_model ( webkit_web_context_get_default (), WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES); /* The rest of the application code, unmodified */ }
by Adrian Perez
GtkWidget *view, *related_view, *unrelated_view; void create_views () { /* Create two views which share a Web Process */ view = webkit_web_view_new (); related_view = webkit_web_view_new_with_related_view (WEBKIT_WEB_VIEW (view)); /* This view will spawn a new Web Process */ unrelated_view = webkit_web_view_new (); }
#define WEB_EXTENSIONS_DIRECTORY /* ... */ int main (int argc, char **argv) { WebKitWebContext *context = webkit_web_context_get_default (); GVariant *data = get_data_for_web_extensions (); webkit_web_context_set_web_extensions_directory ( context, WEB_EXTENSIONS_DIRECTORY); webkit_web_context_set_web_extensions_initialization_user_data ( context, data); GtkWidget *view = webkit_web_view_new (); /* ... */ }
void webkit_web_extension_initialize_with_user_data ( WebKitWebExtension *extension, GVariant *user_data) { /* Initialize the extension, using “user_data” */ }
#define WEB_EXTENSIONS_DIRECTORY /* ... */ static void initialize_web_extensions (WebKitWebContext *context, gpointer user_data) { /* Web Extensions get a different ID for each Web Process */ static guint32 unique_id = 0; webkit_web_context_set_web_extensions_directory ( context, WEB_EXTENSIONS_DIRECTORY); webkit_web_context_set_web_extensions_initialization_user_data ( context, g_variant_new_uint32 (unique_id++)); } int main (int argc, char **argv) { g_signal_connect (webkit_web_context_get_default (), "initialize-web-extensions", G_CALLBACK (initialize_web_extensions), NULL); GtkWidget *view = webkit_web_view_new (); /* ... */ }
screencast by Carlos Garnacho
screencast by Claudio Saavedra
screencast by Claudio Saavedra
screenshot by Claudio Saavedra
screenshot by Claudio Saavedra