Changeset 107043 in webkit
- Timestamp:
- Feb 7, 2012 11:21:31 PM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 3 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r107028 r107043 1 2012-02-07 Martin Robinson <mrobinson@igalia.com> 2 3 [GTK] [WK2] Add WebKitResponsePolicyDecision 4 https://bugs.webkit.org/show_bug.cgi?id=76789 5 6 Reviewed by Philippe Normand. 7 8 Add a WebKitResponsePolicyDecision GObject, use it for response 9 policy decisions and add a test. 10 11 * GNUmakefile.am: Added new source files to the list. 12 * UIProcess/API/gtk/WebKitPolicyClient.cpp: 13 (decidePolicyForResponseCallback): Added this callback which creates the request 14 and fires the signal. 15 (attachPolicyClientToPage): Added new callback to the C API policy client. 16 * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp: Added. 17 * UIProcess/API/gtk/WebKitResponsePolicyDecision.h: Added. 18 * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h: Added. 19 * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Added new docs. 20 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto. 21 * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp: 22 (testResponsePolicy): Added this test for response policy decisions. 23 (serverCallback): Added a SoupServer to test policy response policy decisions. 24 (beforeAll): Ditto. 25 (afterAll): Ditto. 26 1 27 2012-02-07 Timothy Hatcher <timothy@apple.com> 2 28 -
trunk/Source/WebKit2/GNUmakefile.am
r106961 r107043 91 91 $(WebKit2)/UIProcess/API/gtk/WebKitNavigationPolicyDecision.h \ 92 92 $(WebKit2)/UIProcess/API/gtk/WebKitPolicyDecision.h \ 93 $(WebKit2)/UIProcess/API/gtk/WebKitResponsePolicyDecision.h \ 93 94 $(WebKit2)/UIProcess/API/gtk/WebKitSettings.h \ 94 95 $(WebKit2)/UIProcess/API/gtk/WebKitURIRequest.h \ … … 550 551 Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.h \ 551 552 Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h \ 553 Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp \ 554 Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecision.h \ 555 Source/WebKit2/UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h \ 552 556 Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp \ 553 557 Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h \ -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPolicyClient.cpp
r106142 r107043 24 24 #include "WebKitPolicyDecision.h" 25 25 #include "WebKitPrivate.h" 26 #include "WebKitResponsePolicyDecisionPrivate.h" 26 27 #include "WebKitWebViewBasePrivate.h" 27 28 #include "WebKitWebViewPrivate.h" … … 58 59 } 59 60 61 static void decidePolicyForResponseCallback(WKPageRef page, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) 62 { 63 GRefPtr<WebKitResponsePolicyDecision> decision = 64 adoptGRef(webkitResponsePolicyDecisionCreate(request, response, listener)); 65 webkitWebViewMakePolicyDecision(WEBKIT_WEB_VIEW(clientInfo), 66 WEBKIT_POLICY_DECISION_TYPE_RESPONSE, 67 WEBKIT_POLICY_DECISION(decision.get())); 68 } 69 60 70 void attachPolicyClientToPage(WebKitWebView* webView) 61 71 { … … 65 75 decidePolicyForNavigationActionCallback, 66 76 decidePolicyForNewWindowActionCallback, 67 0, //decidePolicyForResponseCallback,77 decidePolicyForResponseCallback, 68 78 0, // unableToImplementPolicy 69 79 }; -
trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
r106142 r107043 24 24 <xi:include href="xml/WebKitPolicyDecision.xml"/> 25 25 <xi:include href="xml/WebKitNavigationPolicyDecision.xml"/> 26 <xi:include href="xml/WebKitResponsePolicyDecision.xml"/> 26 27 <xi:include href="xml/WebKitError.xml"/> 27 28 </chapter> -
trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt
r106961 r107043 369 369 370 370 <SECTION> 371 <FILE>WebKitResponsePolicyDecision</FILE> 372 WebKitResponsePolicyDecision 373 webkit_response_policy_decision_get_request 374 webkit_response_policy_decision_get_response 375 376 <SUBSECTION Standard> 377 WebKitResponsePolicyDecisionClass 378 WEBKIT_TYPE_RESPONSE_POLICY_DECISION 379 WEBKIT_RESPONSE_POLICY_DECISION 380 WEBKIT_IS_RESPONSE_POLICY_DECISION 381 WEBKIT_RESPONSE_POLICY_DECISION_CLASS 382 WEBKIT_IS_RESPONSE_POLICY_DECISION_CLASS 383 WEBKIT_RESPONSE_POLICY_DECISION_GET_CLASS 384 385 <SUBSECTION Private> 386 WebKitResponsePolicyDecisionPrivate 387 webkit_response_policy_decision_get_type 388 </SECTION> 389 390 <SECTION> 371 391 <FILE>WebKitError</FILE> 372 392 WEBKIT_NETWORK_ERROR -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp
r106142 r107043 21 21 22 22 #include "LoadTrackingTest.h" 23 #include "WebKitTestServer.h" 23 24 #include <wtf/gobject/GRefPtr.h> 24 25 #include <wtf/text/CString.h> 26 27 static WebKitTestServer* kServer; 25 28 26 29 class PolicyClientTest: public LoadTrackingTest { … … 141 144 test->waitUntilLoadFinished(); 142 145 g_assert_cmpint(test->m_loadEvents.size(), ==, 0); 146 } 147 148 static void testResponsePolicy(PolicyClientTest* test, gconstpointer) 149 { 150 test->m_policyDecisionTypeFilter = WEBKIT_POLICY_DECISION_TYPE_RESPONSE; 151 152 test->m_policyDecisionResponse = PolicyClientTest::Use; 153 test->loadURI(kServer->getURIForPath("/").data()); 154 test->waitUntilLoadFinished(); 155 g_assert_cmpint(test->m_loadEvents.size(), ==, 3); 156 g_assert_cmpint(test->m_loadEvents[0], ==, LoadTrackingTest::ProvisionalLoadStarted); 157 g_assert_cmpint(test->m_loadEvents[1], ==, LoadTrackingTest::LoadCommitted); 158 g_assert_cmpint(test->m_loadEvents[2], ==, LoadTrackingTest::LoadFinished); 159 160 test->m_respondToPolicyDecisionAsynchronously = true; 161 test->loadURI(kServer->getURIForPath("/").data()); 162 test->waitUntilLoadFinished(); 163 g_assert_cmpint(test->m_loadEvents.size(), ==, 3); 164 g_assert_cmpint(test->m_loadEvents[0], ==, LoadTrackingTest::ProvisionalLoadStarted); 165 g_assert_cmpint(test->m_loadEvents[1], ==, LoadTrackingTest::LoadCommitted); 166 g_assert_cmpint(test->m_loadEvents[2], ==, LoadTrackingTest::LoadFinished); 167 168 test->m_respondToPolicyDecisionAsynchronously = false; 169 test->m_policyDecisionResponse = PolicyClientTest::Ignore; 170 test->loadURI(kServer->getURIForPath("/").data()); 171 test->waitUntilLoadFinished(); 172 173 g_assert_cmpint(test->m_loadEvents.size(), ==, 3); 174 g_assert_cmpint(test->m_loadEvents[0], ==, LoadTrackingTest::ProvisionalLoadStarted); 175 g_assert_cmpint(test->m_loadEvents[1], ==, LoadTrackingTest::ProvisionalLoadFailed); 176 g_assert_cmpint(test->m_loadEvents[2], ==, LoadTrackingTest::LoadFinished); 143 177 } 144 178 … … 192 226 } 193 227 228 static void serverCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer) 229 { 230 if (message->method != SOUP_METHOD_GET) { 231 soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED); 232 return; 233 } 234 235 soup_message_set_status(message, SOUP_STATUS_OK); 236 237 static const char* responseString = "<html><body>Testing!</body></html>"; 238 soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, responseString, strlen(responseString)); 239 soup_message_body_complete(message->response_body); 240 } 241 194 242 void beforeAll() 195 243 { 244 kServer = new WebKitTestServer(); 245 kServer->run(serverCallback); 246 196 247 PolicyClientTest::add("WebKitPolicyClient", "navigation-policy", testNavigationPolicy); 248 PolicyClientTest::add("WebKitPolicyClient", "response-policy", testResponsePolicy); 197 249 PolicyClientTest::add("WebKitPolicyClient", "new-window-policy", testNewWindowPolicy); 198 250 } … … 200 252 void afterAll() 201 253 { 202 } 254 delete kServer; 255 }
Note: See TracChangeset
for help on using the changeset viewer.