4958e7b1123ca39f7e095c89370add8a8781470b
[WebKit-https.git] / Source / WebKit / UIProcess / API / wpe / WebKitWebViewWPE.cpp
1 /*
2  * Copyright (C) 2017 Igalia S.L.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19
20 #include "config.h"
21 #include "WebKitWebView.h"
22
23 #include "WebKitWebViewPrivate.h"
24
25 gboolean webkitWebViewAuthenticate(WebKitWebView*, WebKitAuthenticationRequest*)
26 {
27     return FALSE;
28 }
29
30 gboolean webkitWebViewScriptDialog(WebKitWebView*, WebKitScriptDialog*)
31 {
32     return FALSE;
33 }
34
35 gboolean webkitWebViewRunFileChooser(WebKitWebView*, WebKitFileChooserRequest*)
36 {
37     return FALSE;
38 }
39
40 /**
41  * webkit_web_view_new:
42  * @backend: (transfer full): a #WebKitWebViewBackend
43  *
44  * Creates a new #WebKitWebView with the default #WebKitWebContext and
45  * no #WebKitUserContentManager associated with it.
46  * See also webkit_web_view_new_with_context(),
47  * webkit_web_view_new_with_user_content_manager(), and
48  * webkit_web_view_new_with_settings().
49  *
50  * Returns: The newly created #WebKitWebView
51  */
52 WebKitWebView* webkit_web_view_new(WebKitWebViewBackend* backend)
53 {
54     g_return_val_if_fail(backend, nullptr);
55
56     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
57         "backend", backend,
58         "web-context", webkit_web_context_get_default(),
59         nullptr));
60 }
61
62 /**
63  * webkit_web_view_new_with_context:
64  * @backend: (transfer full): a #WebKitWebViewBackend
65  * @context: the #WebKitWebContext to be used by the #WebKitWebView
66  *
67  * Creates a new #WebKitWebView with the given #WebKitWebContext and
68  * no #WebKitUserContentManager associated with it.
69  * See also webkit_web_view_new_with_user_content_manager() and
70  * webkit_web_view_new_with_settings().
71  *
72  * Returns: The newly created #WebKitWebView
73  */
74 WebKitWebView* webkit_web_view_new_with_context(WebKitWebViewBackend* backend, WebKitWebContext* context)
75 {
76     g_return_val_if_fail(backend, nullptr);
77     g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), nullptr);
78
79     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
80         "backend", backend,
81         "is-ephemeral", webkit_web_context_is_ephemeral(context),
82         "web-context", context,
83         nullptr));
84 }
85
86 /**
87  * webkit_web_view_new_with_related_view: (constructor)
88  * @backend: (transfer full): a #WebKitWebViewBackend
89  * @web_view: the related #WebKitWebView
90  *
91  * Creates a new #WebKitWebView sharing the same web process with @web_view.
92  * This method doesn't have any effect when %WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS
93  * process model is used, because a single web process is shared for all the web views in the
94  * same #WebKitWebContext. When using %WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES process model,
95  * this method should always be used when creating the #WebKitWebView in the #WebKitWebView::create signal.
96  * You can also use this method to implement other process models based on %WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES,
97  * like for example, sharing the same web process for all the views in the same security domain.
98  *
99  * The newly created #WebKitWebView will also have the same #WebKitUserContentManager
100  * and #WebKitSettings as @web_view.
101  *
102  * Returns: (transfer full): The newly created #WebKitWebView
103  *
104  * Since: 2.4
105  */
106 WebKitWebView* webkit_web_view_new_with_related_view(WebKitWebViewBackend* backend, WebKitWebView* webView)
107 {
108     g_return_val_if_fail(backend, nullptr);
109     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), nullptr);
110
111     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
112         "backend", backend,
113         "user-content-manager", webkit_web_view_get_user_content_manager(webView),
114         "settings", webkit_web_view_get_settings(webView),
115         "related-view", webView,
116         nullptr));
117 }
118
119 /**
120  * webkit_web_view_new_with_settings:
121  * @backend: (nullable) (transfer full): a #WebKitWebViewBackend, or %NULL to use the default
122  * @settings: a #WebKitSettings
123  *
124  * Creates a new #WebKitWebView with the given #WebKitSettings.
125  * See also webkit_web_view_new_with_context(), and
126  * webkit_web_view_new_with_user_content_manager().
127  *
128  * Returns: The newly created #WebKitWebView
129  *
130  * Since: 2.6
131  */
132 WebKitWebView* webkit_web_view_new_with_settings(WebKitWebViewBackend* backend, WebKitSettings* settings)
133 {
134     g_return_val_if_fail(backend, nullptr);
135     g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), nullptr);
136
137     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
138         "backend", backend,
139         "settings", settings,
140         nullptr));
141 }
142
143 /**
144  * webkit_web_view_new_with_user_content_manager:
145  * @backend: (transfer full): a #WebKitWebViewBackend
146  * @user_content_manager: a #WebKitUserContentManager.
147  *
148  * Creates a new #WebKitWebView with the given #WebKitUserContentManager.
149  * The content loaded in the view may be affected by the content injected
150  * in the view by the user content manager.
151  *
152  * Returns: The newly created #WebKitWebView
153  *
154  * Since: 2.6
155  */
156 WebKitWebView* webkit_web_view_new_with_user_content_manager(WebKitWebViewBackend* backend, WebKitUserContentManager* userContentManager)
157 {
158     g_return_val_if_fail(backend, nullptr);
159     g_return_val_if_fail(WEBKIT_IS_USER_CONTENT_MANAGER(userContentManager), nullptr);
160
161     return WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
162         "backend", backend,
163         "user-content-manager", userContentManager,
164         nullptr));
165 }