File: WebKitWebContext.h.in

package info (click to toggle)
webkit2gtk 2.48.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 429,764 kB
  • sloc: cpp: 3,697,587; javascript: 194,444; ansic: 169,997; python: 46,499; asm: 19,295; ruby: 18,528; perl: 16,602; xml: 4,650; yacc: 2,360; sh: 2,098; java: 1,993; lex: 1,327; pascal: 366; makefile: 298
file content (430 lines) | stat: -rw-r--r-- 18,861 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
/*
 * Copyright (C) 2011 Igalia S.L.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 */

@API_SINGLE_HEADER_CHECK@

#ifndef WebKitWebContext_h
#define WebKitWebContext_h

#include <glib-object.h>
#include <@API_INCLUDE_PREFIX@/WebKitAutomationSession.h>
#include <@API_INCLUDE_PREFIX@/WebKitCookieManager.h>
#include <@API_INCLUDE_PREFIX@/WebKitDefines.h>
#include <@API_INCLUDE_PREFIX@/WebKitDownload.h>
#if !ENABLE(2022_GLIB_API)
#include <@API_INCLUDE_PREFIX@/WebKitFaviconDatabase.h>
#endif
#include <@API_INCLUDE_PREFIX@/WebKitGeolocationManager.h>
#include <@API_INCLUDE_PREFIX@/WebKitNetworkProxySettings.h>
#if ENABLE(2022_GLIB_API)
#include <@API_INCLUDE_PREFIX@/WebKitNetworkSession.h>
#endif
#include <@API_INCLUDE_PREFIX@/WebKitSecurityManager.h>
#include <@API_INCLUDE_PREFIX@/WebKitURISchemeRequest.h>
#include <@API_INCLUDE_PREFIX@/WebKitUserMessage.h>
#include <@API_INCLUDE_PREFIX@/WebKitWebsiteDataManager.h>

G_BEGIN_DECLS

#define WEBKIT_TYPE_WEB_CONTEXT            (webkit_web_context_get_type())
#if !ENABLE(2022_GLIB_API)
#define WEBKIT_WEB_CONTEXT(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_CONTEXT, WebKitWebContext))
#define WEBKIT_WEB_CONTEXT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  WEBKIT_TYPE_WEB_CONTEXT, WebKitWebContextClass))
#define WEBKIT_IS_WEB_CONTEXT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_CONTEXT))
#define WEBKIT_IS_WEB_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  WEBKIT_TYPE_WEB_CONTEXT))
#define WEBKIT_WEB_CONTEXT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  WEBKIT_TYPE_WEB_CONTEXT, WebKitWebContextClass))

WEBKIT_DECLARE_TYPE (WebKitWebContext, webkit_web_context, WEBKIT, WEB_CONTEXT, GObject)

struct _WebKitWebContextClass {
    GObjectClass parent;

    /*< public >*/
    void     (* download_started)                    (WebKitWebContext        *context,
                                                      WebKitDownload          *download);
    void     (* initialize_web_extensions)           (WebKitWebContext        *context);
    void     (* initialize_notification_permissions) (WebKitWebContext        *context);
    void     (* automation_started)                  (WebKitWebContext        *context,
                                                      WebKitAutomationSession *session);
    gboolean (* user_message_received)               (WebKitWebContext        *context,
                                                      WebKitUserMessage       *message);

    /*< private >*/
    void (*_webkit_reserved0) (void);
    void (*_webkit_reserved1) (void);
    void (*_webkit_reserved2) (void);
};
#else
WEBKIT_DECLARE_FINAL_TYPE (WebKitWebContext, webkit_web_context, WEBKIT, WEB_CONTEXT, GObject)
#endif

/**
 * WebKitCacheModel:
 * @WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER: Disable the cache completely, which
 *   substantially reduces memory usage. Useful for applications that only
 *   access a single local file, with no navigation to other pages. No remote
 *   resources will be cached.
 * @WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER: A cache model optimized for viewing
 *   a series of local files -- for example, a documentation viewer or a website
 *   designer. WebKit will cache a moderate number of resources.
 * @WEBKIT_CACHE_MODEL_WEB_BROWSER: Improve document load speed substantially
 *   by caching a very large number of resources and previously viewed content.
 *
 * Enum values used for determining the #WebKitWebContext cache model.
 */
typedef enum {
    WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER,
    WEBKIT_CACHE_MODEL_WEB_BROWSER,
    WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER
} WebKitCacheModel;

#if !ENABLE(2022_GLIB_API)
/**
 * WebKitProcessModel:
 * @WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS: Deprecated 2.26.
 * @WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES: Use one process
 *   for each #WebKitWebView, while still allowing for some of them to
 *   share a process in certain situations. The main advantage
 *   of this process model is that the rendering process for a web view
 *   can crash while the rest of the views keep working normally. This
 *   process model is indicated for applications which may use a number
 *   of web views and the content of in each must not interfere with the
 *   rest — for example a full-fledged web browser with support for
 *   multiple tabs.
 *
 * Enum values used for determining the #WebKitWebContext process model.
 *
 * Since: 2.4
 *
 * Deprecated: 2.40
 */
typedef enum {
    WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS,
    WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES,
} WebKitProcessModel;
#endif

/**
 * WebKitURISchemeRequestCallback:
 * @request: the #WebKitURISchemeRequest
 * @user_data: user data passed to the callback
 *
 * Type definition for a function that will be called back when an URI request is
 * made for a user registered URI scheme.
 */
typedef void (* WebKitURISchemeRequestCallback) (WebKitURISchemeRequest *request,
                                                 gpointer                user_data);

WEBKIT_API WebKitWebContext *
webkit_web_context_get_default                      (void);

WEBKIT_API WebKitWebContext *
webkit_web_context_new                              (void);

#if !ENABLE(2022_GLIB_API)
WEBKIT_API WebKitWebContext *
webkit_web_context_new_ephemeral                    (void);

WEBKIT_API WebKitWebContext *
webkit_web_context_new_with_website_data_manager    (WebKitWebsiteDataManager      *manager);

WEBKIT_API WebKitWebsiteDataManager *
webkit_web_context_get_website_data_manager         (WebKitWebContext              *context);

WEBKIT_API gboolean
webkit_web_context_is_ephemeral                     (WebKitWebContext              *context);
#endif

WEBKIT_API gboolean
webkit_web_context_is_automation_allowed            (WebKitWebContext              *context);

WEBKIT_API void
webkit_web_context_set_automation_allowed           (WebKitWebContext              *context,
                                                     gboolean                       allowed);

#if ENABLE(2022_GLIB_API)
WEBKIT_API WebKitNetworkSession *
webkit_web_context_get_network_session_for_automation(WebKitWebContext             *context);
#endif

WEBKIT_API void
webkit_web_context_set_cache_model                  (WebKitWebContext              *context,
                                                     WebKitCacheModel               cache_model);
WEBKIT_API WebKitCacheModel
webkit_web_context_get_cache_model                  (WebKitWebContext              *context);

#if !ENABLE(2022_GLIB_API)
WEBKIT_DEPRECATED void
webkit_web_context_set_web_process_count_limit      (WebKitWebContext              *context,
                                                     guint                          limit);

WEBKIT_DEPRECATED guint
webkit_web_context_get_web_process_count_limit      (WebKitWebContext              *context);
#endif

#if !ENABLE(2022_GLIB_API)
WEBKIT_API void
webkit_web_context_clear_cache                      (WebKitWebContext              *context);

WEBKIT_DEPRECATED_FOR(webkit_website_data_manager_set_network_proxy_settings) void
webkit_web_context_set_network_proxy_settings       (WebKitWebContext              *context,
                                                     WebKitNetworkProxyMode         proxy_mode,
                                                     WebKitNetworkProxySettings    *proxy_settings);

WEBKIT_API WebKitDownload *
webkit_web_context_download_uri                     (WebKitWebContext              *context,
                                                     const gchar                   *uri);

WEBKIT_API WebKitCookieManager *
webkit_web_context_get_cookie_manager               (WebKitWebContext              *context);
#endif

WEBKIT_API WebKitGeolocationManager *
webkit_web_context_get_geolocation_manager          (WebKitWebContext              *context);

#if !ENABLE(2022_GLIB_API)
WEBKIT_API WebKitFaviconDatabase *
webkit_web_context_get_favicon_database             (WebKitWebContext              *context);

WEBKIT_API void
webkit_web_context_set_favicon_database_directory   (WebKitWebContext              *context,
                                                     const gchar                   *path);
WEBKIT_API const gchar *
webkit_web_context_get_favicon_database_directory   (WebKitWebContext              *context);
#endif

WEBKIT_API WebKitSecurityManager *
webkit_web_context_get_security_manager             (WebKitWebContext              *context);

#if !ENABLE(2022_GLIB_API)
WEBKIT_DEPRECATED void
webkit_web_context_set_additional_plugins_directory (WebKitWebContext              *context,
                                                     const gchar                   *directory);

WEBKIT_DEPRECATED void
webkit_web_context_get_plugins                      (WebKitWebContext              *context,
                                                     GCancellable                  *cancellable,
                                                     GAsyncReadyCallback            callback,
                                                     gpointer                       user_data);

WEBKIT_DEPRECATED GList *
webkit_web_context_get_plugins_finish               (WebKitWebContext              *context,
                                                     GAsyncResult                  *result,
                                                     GError                       **error);
#endif

WEBKIT_API void
webkit_web_context_register_uri_scheme              (WebKitWebContext              *context,
                                                     const gchar                   *scheme,
                                                     WebKitURISchemeRequestCallback callback,
                                                     gpointer                       user_data,
                                                     GDestroyNotify                 user_data_destroy_func);

#if !ENABLE(2022_GLIB_API)
WEBKIT_API void
webkit_web_context_set_sandbox_enabled              (WebKitWebContext              *context,
                                                     gboolean                       enabled);

WEBKIT_API gboolean
webkit_web_context_get_sandbox_enabled              (WebKitWebContext              *context);
#endif

WEBKIT_API void
webkit_web_context_add_path_to_sandbox              (WebKitWebContext              *context,
                                                     const char                    *path,
                                                     gboolean                       read_only);

WEBKIT_API gboolean
webkit_web_context_get_spell_checking_enabled       (WebKitWebContext              *context);

WEBKIT_API void
webkit_web_context_set_spell_checking_enabled       (WebKitWebContext              *context,
                                                     gboolean                       enabled);
WEBKIT_API const gchar * const *
webkit_web_context_get_spell_checking_languages     (WebKitWebContext              *context);

WEBKIT_API void
webkit_web_context_set_spell_checking_languages     (WebKitWebContext              *context,
                                                     const gchar * const           *languages);

WEBKIT_API void
webkit_web_context_set_preferred_languages          (WebKitWebContext              *context,
                                                     const gchar * const           *languages);

#if !ENABLE(2022_GLIB_API)
WEBKIT_DEPRECATED_FOR(webkit_website_data_manager_set_tls_errors_policy) void
webkit_web_context_set_tls_errors_policy            (WebKitWebContext              *context,
                                                     WebKitTLSErrorsPolicy          policy);

WEBKIT_DEPRECATED_FOR(webkit_website_data_manager_get_tls_errors_policy) WebKitTLSErrorsPolicy
webkit_web_context_get_tls_errors_policy            (WebKitWebContext              *context);
#endif

#if ENABLE(2022_GLIB_API)
/**
 * webkit_web_context_set_web_process_extensions_directory:
 * @context: a #WebKitWebContext
 * @directory: the directory to add
 *
 * Set the directory where WebKit will look for web process 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-process-extensions to call this method
 * before anything is loaded.
 *
 * If your web process extension is installed to an unusual location,
 * then you may also need to call webkit_web_context_add_path_to_sandbox().
 */
WEBKIT_API void
webkit_web_context_set_web_process_extensions_directory (WebKitWebContext              *context,
                                                         const gchar                   *directory);

/**
 * webkit_web_context_set_web_process_extensions_initialization_user_data:
 * @context: a #WebKitWebContext
 * @user_data: a #GVariant
 *
 * Set user data to be passed to Web Extensions on initialization.
 *
 * The data will be passed to the
 * #WebKitWebProcessExtensionInitializeWithUserDataFunction.
 * 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-process-extensions to call this method
 * before anything is loaded.
 *
 * Since: 2.4
 */
WEBKIT_API void
webkit_web_context_set_web_process_extensions_initialization_user_data
                                                    (WebKitWebContext              *context,
                                                     GVariant                      *user_data);

/**
 * WebKitWebContext::initialize-web-process-extensions:
 * @context: the #WebKitWebContext
 *
 * This signal is emitted when a new web process is about to be
 * launched. It signals the most appropriate moment to use
 * webkit_web_context_set_web_process_extensions_initialization_user_data()
 * and webkit_web_context_set_web_process_extensions_directory().
 *
 * Since: 2.4
 */
#else
/**
 * webkit_web_context_set_web_extensions_directory:
 * @context: a #WebKitWebContext
 * @directory: the directory to add
 *
 * Set the directory where WebKit will look for web process 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.
 */
WEBKIT_API void
webkit_web_context_set_web_extensions_directory     (WebKitWebContext              *context,
                                                     const gchar                   *directory);

/**
 * webkit_web_context_set_web_extensions_initialization_user_data:
 * @context: a #WebKitWebContext
 * @user_data: a #GVariant
 *
 * Set user data to be passed to web process 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.
 *
 * Since: 2.4
 */
WEBKIT_API void
webkit_web_context_set_web_extensions_initialization_user_data
                                                    (WebKitWebContext              *context,
                                                     GVariant                      *user_data);

/**
 * WebKitWebContext::initialize-web-extensions:
 * @context: the #WebKitWebContext
 *
 * This signal is emitted when a new web process is about to be
 * launched. It signals the most appropriate moment to use
 * webkit_web_context_set_web_extensions_initialization_user_data()
 * and webkit_web_context_set_web_extensions_directory().
 *
 * Since: 2.4
 */
#endif

#if !ENABLE(2022_GLIB_API)
WEBKIT_API void
webkit_web_context_prefetch_dns                     (WebKitWebContext              *context,
                                                     const gchar                   *hostname);

#if PLATFORM(GTK)
WEBKIT_DEPRECATED_FOR(webkit_web_context_new_with_website_data_manager) void
webkit_web_context_set_disk_cache_directory         (WebKitWebContext              *context,
                                                     const gchar                   *directory);
#endif

WEBKIT_API void
webkit_web_context_allow_tls_certificate_for_host   (WebKitWebContext              *context,
                                                     GTlsCertificate               *certificate,
                                                     const gchar                   *host);

WEBKIT_DEPRECATED void
webkit_web_context_set_process_model                (WebKitWebContext              *context,
                                                     WebKitProcessModel             process_model);

WEBKIT_DEPRECATED WebKitProcessModel
webkit_web_context_get_process_model                (WebKitWebContext              *context);
#endif

WEBKIT_API void
webkit_web_context_initialize_notification_permissions
                                                    (WebKitWebContext              *context,
                                                     GList                         *allowed_origins,
                                                     GList                         *disallowed_origins);

WEBKIT_API void
webkit_web_context_send_message_to_all_extensions   (WebKitWebContext              *context,
                                                     WebKitUserMessage             *message);

#if PLATFORM(GTK) && !USE(GTK4)
WEBKIT_DEPRECATED void
webkit_web_context_set_use_system_appearance_for_scrollbars (WebKitWebContext      *context,
                                                             gboolean               enabled);

WEBKIT_DEPRECATED gboolean
webkit_web_context_get_use_system_appearance_for_scrollbars (WebKitWebContext      *context);
#endif

WEBKIT_API const gchar*
webkit_web_context_get_time_zone_override           (WebKitWebContext              *context);

G_END_DECLS

#endif