[GTK] Encode/decode Null ResourceResponse objects in WebKit2
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 24 Feb 2012 13:30:15 +0000 (13:30 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 24 Feb 2012 13:30:15 +0000 (13:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=79471

Reviewed by Philippe Normand.

* Shared/gtk/WebCoreArgumentCodersGtk.cpp:
(CoreIPC::::encode): Check whether ResourceResponse is Null before
encoding it.
(CoreIPC::::decode): Check whether response is Null and create a
Null ResourceResponse object in such case.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp

index 3abc4a2..5f8f08c 100644 (file)
@@ -1,3 +1,16 @@
+2012-02-24  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Encode/decode Null ResourceResponse objects in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=79471
+
+        Reviewed by Philippe Normand.
+
+        * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
+        (CoreIPC::::encode): Check whether ResourceResponse is Null before
+        encoding it.
+        (CoreIPC::::decode): Check whether response is Null and create a
+        Null ResourceResponse object in such case.
+
 2012-02-24  Shinya Kawanaka  <shinyak@chromium.org>
 
         SpellCheckRequest needs to know the context where the spellcheck happened.
index fee595f..9d6e25c 100644 (file)
@@ -99,6 +99,11 @@ bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRe
 
 void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
 {
+    bool responseIsNull = resourceResponse.isNull();
+    encoder->encode(responseIsNull);
+    if (responseIsNull)
+        return;
+
     encoder->encode(resourceResponse.url().string());
     encoder->encode(static_cast<int32_t>(resourceResponse.httpStatusCode()));
 
@@ -115,6 +120,14 @@ void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const Res
 
 bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
 {
+    bool responseIsNull;
+    if (!decoder->decode(responseIsNull))
+        return false;
+    if (responseIsNull) {
+        resourceResponse = ResourceResponse();
+        return true;
+    }
+
     ResourceResponse response;
 
     String url;