Skip to content

Commit 8d3c8fd

Browse files
varumugam123spenap
authored andcommitted
Add a property to WebKitURIResponse to check if the response is from a main frame resource
Change-Id: Id4236df7add410e2a1f027d5cf0cb5ca6174178b
1 parent 75a9cce commit 8d3c8fd

4 files changed

Lines changed: 47 additions & 2 deletions

File tree

Source/WebKit/Shared/API/glib/WebKitURIResponse.cpp

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ enum {
4646
PROP_CONTENT_LENGTH,
4747
PROP_MIME_TYPE,
4848
PROP_SUGGESTED_FILENAME,
49-
PROP_HTTP_HEADERS
49+
PROP_HTTP_HEADERS,
50+
PROP_IS_MAIN_FRAME
5051
};
5152

5253
struct _WebKitURIResponsePrivate {
@@ -55,6 +56,7 @@ struct _WebKitURIResponsePrivate {
5556
CString mimeType;
5657
CString suggestedFilename;
5758
GUniquePtr<SoupMessageHeaders> httpHeaders;
59+
gboolean isMainFrame;
5860
};
5961

6062
WEBKIT_DEFINE_FINAL_TYPE(WebKitURIResponse, webkit_uri_response, G_TYPE_OBJECT, GObject)
@@ -82,6 +84,9 @@ static void webkitURIResponseGetProperty(GObject* object, guint propId, GValue*
8284
case PROP_HTTP_HEADERS:
8385
g_value_set_boxed(value, webkit_uri_response_get_http_headers(response));
8486
break;
87+
case PROP_IS_MAIN_FRAME:
88+
g_value_set_boolean(value, webkit_uri_response_is_main_frame(response));
89+
break;
8590
default:
8691
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
8792
}
@@ -166,6 +171,22 @@ static void webkit_uri_response_class_init(WebKitURIResponseClass* responseClass
166171
nullptr, nullptr,
167172
SOUP_TYPE_MESSAGE_HEADERS,
168173
WEBKIT_PARAM_READABLE));
174+
175+
/**
176+
* WebKitURIResponse:is-main-frame:
177+
*
178+
* Indication of the origin of the response, TRUE if the response is for main frame, FALSE otherwise
179+
*
180+
*/
181+
g_object_class_install_property(
182+
objectClass,
183+
PROP_IS_MAIN_FRAME,
184+
g_param_spec_boolean(
185+
"is-main-frame",
186+
_("Is main frame response"),
187+
_("Whether the response is for the main frame"),
188+
FALSE,
189+
WEBKIT_PARAM_READABLE));
169190
}
170191

171192
/**
@@ -286,13 +307,31 @@ SoupMessageHeaders* webkit_uri_response_get_http_headers(WebKitURIResponse* resp
286307
return response->priv->httpHeaders.get();
287308
}
288309

310+
/**
311+
* webkit_uri_response_is_main_frame:
312+
* @response: a #WebKitURIResponse
313+
*
314+
* Returns: (transfer none): TRUE if the response is for a request from main frame or FALSE
315+
*/
316+
gboolean webkit_uri_response_is_main_frame(WebKitURIResponse* response)
317+
{
318+
g_return_val_if_fail(WEBKIT_IS_URI_RESPONSE(response), false);
319+
return response->priv->isMainFrame;
320+
}
321+
289322
WebKitURIResponse* webkitURIResponseCreateForResourceResponse(const WebCore::ResourceResponse& resourceResponse)
290323
{
291324
WebKitURIResponse* uriResponse = WEBKIT_URI_RESPONSE(g_object_new(WEBKIT_TYPE_URI_RESPONSE, NULL));
292325
uriResponse->priv->resourceResponse = resourceResponse;
293326
return uriResponse;
294327
}
295328

329+
void webkitURIResponseSetIsMainFrame(WebKitURIResponse* response, gboolean isMainFrame)
330+
{
331+
g_return_if_fail(WEBKIT_IS_URI_RESPONSE(response));
332+
response->priv->isMainFrame = isMainFrame;
333+
}
334+
296335
const WebCore::ResourceResponse& webkitURIResponseGetResourceResponse(WebKitURIResponse* uriResponse)
297336
{
298337
return uriResponse->priv->resourceResponse;

Source/WebKit/Shared/API/glib/WebKitURIResponsePrivate.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include <WebCore/ResourceResponse.h>
3131

3232
WebKitURIResponse* webkitURIResponseCreateForResourceResponse(const WebCore::ResourceResponse&);
33+
void webkitURIResponseSetIsMainFrame(WebKitURIResponse* response, gboolean isMainFrame);
3334
const WebCore::ResourceResponse& webkitURIResponseGetResourceResponse(WebKitURIResponse*);
3435

3536
#endif // WebKitURIResponsePrivate_h

Source/WebKit/UIProcess/API/glib/WebKitResponsePolicyDecision.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,10 @@ WebKitURIRequest* webkit_response_policy_decision_get_request(WebKitResponsePoli
141141
WebKitURIResponse* webkit_response_policy_decision_get_response(WebKitResponsePolicyDecision* decision)
142142
{
143143
g_return_val_if_fail(WEBKIT_IS_RESPONSE_POLICY_DECISION(decision), nullptr);
144-
if (!decision->priv->response)
144+
if (!decision->priv->response) {
145145
decision->priv->response = adoptGRef(webkitURIResponseCreateForResourceResponse(decision->priv->navigationResponse->response()));
146+
webkitURIResponseSetIsMainFrame(decision->priv->response.get(), decision->priv->navigationResponse->frame().isMainFrame());
147+
}
146148
return decision->priv->response.get();
147149
}
148150

Source/WebKit/UIProcess/API/glib/WebKitURIResponse.h.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ webkit_uri_response_get_suggested_filename (WebKitURIResponse *response);
6767
WEBKIT_API SoupMessageHeaders *
6868
webkit_uri_response_get_http_headers (WebKitURIResponse *response);
6969

70+
WEBKIT_API gboolean
71+
webkit_uri_response_is_main_frame (WebKitURIResponse *response);
72+
7073
G_END_DECLS
7174

7275
#endif

0 commit comments

Comments
 (0)