1/*
2 * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther
3 * Copyright (C) 2008 Jan Michael C. Alonzo
4 * Copyright (C) 2008 Collabora Ltd.
5 * Copyright (C) 2010 Igalia S.L.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB.  If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 */
22
23#ifndef webkitglobals_h
24#define webkitglobals_h
25
26#include "webkitdefines.h"
27#include <glib.h>
28#include <gtk/gtk.h>
29#include <libsoup/soup.h>
30
31G_BEGIN_DECLS
32
33/**
34 * WebKitCacheModel:
35 * @WEBKIT_CACHE_MODEL_DEFAULT: The default cache model. This is
36 *   WEBKIT_CACHE_MODEL_WEB_BROWSER.
37 * @WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER: Disable the cache completely, which
38 *   substantially reduces memory usage. Useful for applications that only
39 *   access a single local file, with no navigation to other pages. No remote
40 *   resources will be cached.
41 * @WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER: A cache model optimized for viewing
42 *   a series of local files -- for example, a documentation viewer or a website
43 *   designer. WebKit will cache a moderate number of resources.
44 * @WEBKIT_CACHE_MODEL_WEB_BROWSER: Improve document load speed substantially
45 *   by caching a very large number of resources and previously viewed content.
46 *
47 * Enum values used for determining the webview cache model.
48 *
49 **/
50typedef enum {
51    WEBKIT_CACHE_MODEL_DEFAULT,
52    WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER,
53    WEBKIT_CACHE_MODEL_WEB_BROWSER,
54    WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER,
55} WebKitCacheModel;
56
57/**
58 * WebKitContextMenuAction:
59 * @WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION: No action, used by separator menu items.
60 * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK: Open current link.
61 * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW: Open current link in a new window.
62 * @WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK: Download link destination.
63 * @WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD: Copy link location to the clipboard.
64 * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW: Open current image in a new window.
65 * @WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK: Download current image.
66 * @WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD: Copy current image to the clipboard.
67 * @WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD: Copy curent image location to the clipboard.
68 * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW: Open current frame in a new window.
69 * @WEBKIT_CONTEXT_MENU_ACTION_GO_BACK: Load the previous history item.
70 * @WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD: Load the next history item.
71 * @WEBKIT_CONTEXT_MENU_ACTION_STOP: Stop any ongoing loading operation.
72 * @WEBKIT_CONTEXT_MENU_ACTION_RELOAD: Reload the conents of current view.
73 * @WEBKIT_CONTEXT_MENU_ACTION_COPY: Copy current selection the clipboard.
74 * @WEBKIT_CONTEXT_MENU_ACTION_CUT: Cut current selection to the clipboard.
75 * @WEBKIT_CONTEXT_MENU_ACTION_PASTE: Paste clipboard contents.
76 * @WEBKIT_CONTEXT_MENU_ACTION_DELETE: Delete current selection.
77 * @WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL: Select all text.
78 * @WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS: Input methods menu.
79 * @WEBKIT_CONTEXT_MENU_ACTION_UNICODE: Unicode menu.
80 * @WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS: Guess spelling.
81 * @WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND: No guesses found.
82 * @WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING: Ignore spelling.
83 * @WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING: Learn spelling.
84 * @WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR: Ignore grammar.
85 * @WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU: Font menu.
86 * @WEBKIT_CONTEXT_MENU_ACTION_BOLD: Bold.
87 * @WEBKIT_CONTEXT_MENU_ACTION_ITALIC: Italic.
88 * @WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE: Underline.
89 * @WEBKIT_CONTEXT_MENU_ACTION_OUTLINE: Outline.
90 * @WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT: Open current element in the inspector.
91 * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_MEDIA_IN_NEW_WINDOW: Open current media element in a new window.
92 * @WEBKIT_CONTEXT_MENU_ACTION_COPY_MEDIA_LINK_TO_CLIPBOARD: Copy media link location in to the clipboard.
93 * @WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS: Enable or disable media controls.
94 * @WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP: Enable or disable media loop.
95 * @WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN: Show current video element in fullscreen mode.
96 * @WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY_PAUSE: Play or pause current media element.
97 * @WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE: Mute current media element.
98 *
99 * Enum values used to denote actions of items in the default context menu.
100 *
101 * Since: 1.10
102 */
103typedef enum {
104    WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION = 0,
105    WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK,
106    WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW,
107    WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK,
108    WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD,
109    WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW,
110    WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK,
111    WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD,
112    WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD,
113    WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW,
114    WEBKIT_CONTEXT_MENU_ACTION_GO_BACK,
115    WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD,
116    WEBKIT_CONTEXT_MENU_ACTION_STOP,
117    WEBKIT_CONTEXT_MENU_ACTION_RELOAD,
118    WEBKIT_CONTEXT_MENU_ACTION_COPY,
119    WEBKIT_CONTEXT_MENU_ACTION_CUT,
120    WEBKIT_CONTEXT_MENU_ACTION_PASTE,
121    WEBKIT_CONTEXT_MENU_ACTION_DELETE,
122    WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL,
123    WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS,
124    WEBKIT_CONTEXT_MENU_ACTION_UNICODE,
125    WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS,
126    WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND,
127    WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING,
128    WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING,
129    WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR,
130    WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU,
131    WEBKIT_CONTEXT_MENU_ACTION_BOLD,
132    WEBKIT_CONTEXT_MENU_ACTION_ITALIC,
133    WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE,
134    WEBKIT_CONTEXT_MENU_ACTION_OUTLINE,
135    WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT,
136    WEBKIT_CONTEXT_MENU_ACTION_OPEN_MEDIA_IN_NEW_WINDOW,
137    WEBKIT_CONTEXT_MENU_ACTION_COPY_MEDIA_LINK_TO_CLIPBOARD,
138    WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS,
139    WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP,
140    WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN,
141    WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY_PAUSE,
142    WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE
143} WebKitContextMenuAction;
144
145/**
146 * WebKitSecurityPolicy:
147 * @WEBKIT_SECURITY_POLICY_LOCAL: Local URI scheme, other non-local pages
148 *   cannot link to or access URIs of this scheme.
149 * @WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME: Pages loaded with this URI scheme
150 *   cannot access pages loaded with any other URI scheme.
151 * @WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED: Pages cannot display these URIs
152 *   unless they are from the same scheme.
153 * @WEBKIT_SECURITY_POLICY_SECURE: Secure URI scheme, doesn't generate mixed
154 *   content warnings when included by an HTTPS page.
155 * @WEBKIT_SECURITY_POLICY_CORS_ENABLED: URI scheme that can be sent
156 *   CORS (Cross-origin resource sharing) requests. See W3C CORS specification
157 *   http://www.w3.org/TR/cors/.
158 * @WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT: Strictly empty documents allowed
159 *   to commit synchronously.
160 *
161 * Flags used to represent the security policy of a URI scheme.
162 *
163 * Since: 2.0
164 */
165typedef enum {
166    WEBKIT_SECURITY_POLICY_LOCAL                     = 1 << 1,
167    WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME = 1 << 2,
168    WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED          = 1 << 3,
169    WEBKIT_SECURITY_POLICY_SECURE                    = 1 << 4,
170    WEBKIT_SECURITY_POLICY_CORS_ENABLED              = 1 << 5,
171    WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT            = 1 << 6
172} WebKitSecurityPolicy;
173
174WEBKIT_API SoupSession*
175webkit_get_default_session                      (void);
176
177WEBKIT_API WebKitWebPluginDatabase *
178webkit_get_web_plugin_database                  (void);
179
180#if !defined(WEBKIT_DISABLE_DEPRECATED)
181WEBKIT_API WebKitIconDatabase *
182webkit_get_icon_database                        (void);
183#endif
184
185WEBKIT_API WebKitFaviconDatabase *
186webkit_get_favicon_database                     (void);
187
188WEBKIT_API void
189webkit_set_cache_model                          (WebKitCacheModel     cache_model);
190
191WEBKIT_API WebKitCacheModel
192webkit_get_cache_model                          (void);
193
194WEBKIT_API GObject*
195webkit_get_text_checker                        (void);
196
197WEBKIT_API void
198webkit_set_text_checker                        (GObject*  checker);
199
200WEBKIT_API WebKitContextMenuAction
201webkit_context_menu_item_get_action            (GtkMenuItem* item);
202
203WEBKIT_API void
204webkit_set_security_policy_for_uri_scheme      (const gchar         *scheme,
205                                                WebKitSecurityPolicy policy);
206
207WEBKIT_API WebKitSecurityPolicy
208webkit_get_security_policy_for_uri_scheme      (const gchar         *scheme);
209
210G_END_DECLS
211
212#endif
213