Title: [175059] trunk/Source/_javascript_Core
Revision
175059
Author
[email protected]
Date
2014-10-22 12:11:18 -0700 (Wed, 22 Oct 2014)

Log Message

Web Inspector: Fix generator importing of protocol type "any", treat as value
https://bugs.webkit.org/show_bug.cgi?id=137931

Patch by Joseph Pecoraro <[email protected]> on 2014-10-22
Reviewed by Timothy Hatcher.

Treat incoming "any" objects as InspectorValues, which can be any type.
Add the necessary boilerplate to import.

* inspector/InspectorBackendDispatcher.cpp:
(Inspector::AsMethodBridges::asValue):
(Inspector::InspectorBackendDispatcher::getValue):
* inspector/InspectorBackendDispatcher.h:
* inspector/scripts/codegen/generator.py:
(Generator.keyed_get_method_for_type):
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (175058 => 175059)


--- trunk/Source/_javascript_Core/ChangeLog	2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-10-22 19:11:18 UTC (rev 175059)
@@ -1,3 +1,21 @@
+2014-10-22  Joseph Pecoraro  <[email protected]>
+
+        Web Inspector: Fix generator importing of protocol type "any", treat as value
+        https://bugs.webkit.org/show_bug.cgi?id=137931
+
+        Reviewed by Timothy Hatcher.
+
+        Treat incoming "any" objects as InspectorValues, which can be any type.
+        Add the necessary boilerplate to import.
+
+        * inspector/InspectorBackendDispatcher.cpp:
+        (Inspector::AsMethodBridges::asValue):
+        (Inspector::InspectorBackendDispatcher::getValue):
+        * inspector/InspectorBackendDispatcher.h:
+        * inspector/scripts/codegen/generator.py:
+        (Generator.keyed_get_method_for_type):
+        * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
+
 2014-10-22  Michael Saboff  <[email protected]>
 
         REGRESSION(r174996): Broke C_LOOP

Modified: trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.cpp (175058 => 175059)


--- trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.cpp	2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.cpp	2014-10-22 19:11:18 UTC (rev 175059)
@@ -227,6 +227,7 @@
     static bool asBoolean(InspectorValue& value, bool& output) { return value.asBoolean(output); }
     static bool asObject(InspectorValue& value, RefPtr<InspectorObject>& output) { return value.asObject(output); }
     static bool asArray(InspectorValue& value, RefPtr<InspectorArray>& output) { return value.asArray(output); }
+    static bool asValue(InspectorValue& value, RefPtr<InspectorValue>& output) { return value.asValue(output); }
 };
 
 int InspectorBackendDispatcher::getInteger(InspectorObject* object, const String& name, bool* valueFound, InspectorArray* protocolErrors)
@@ -259,6 +260,11 @@
     return getPropertyValue<PassRefPtr<InspectorArray>, RefPtr<InspectorArray>, InspectorArray*>(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asArray, "Array");
 }
 
+PassRefPtr<InspectorValue> InspectorBackendDispatcher::getValue(InspectorObject* object, const String& name, bool* valueFound, InspectorArray* protocolErrors)
+{
+    return getPropertyValue<PassRefPtr<InspectorValue>, RefPtr<InspectorValue>, InspectorValue*>(object, name, valueFound, protocolErrors, nullptr, AsMethodBridges::asValue, "Value");
+}
+
 } // namespace Inspector
 
 #endif // ENABLE(INSPECTOR)

Modified: trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.h (175058 => 175059)


--- trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.h	2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/InspectorBackendDispatcher.h	2014-10-22 19:11:18 UTC (rev 175059)
@@ -90,6 +90,7 @@
     static double getDouble(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
     static String getString(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
     static bool getBoolean(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
+    static PassRefPtr<InspectorValue> getValue(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
     static PassRefPtr<InspectorObject> getObject(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
     static PassRefPtr<InspectorArray> getArray(InspectorObject*, const String& name, bool* valueFound, InspectorArray* protocolErrors);
 

Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py (175058 => 175059)


--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py	2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generator.py	2014-10-22 19:11:18 UTC (rev 175059)
@@ -235,6 +235,8 @@
                 return 'getInteger'
             elif _type.raw_name() is 'number':
                 return 'getDouble'
+            elif _type.raw_name() is 'any':
+                return 'getValue'
             else:
                 return 'get' + ucfirst(_type.raw_name())
         if isinstance(_type, AliasedType):

Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (175058 => 175059)


--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result	2014-10-22 18:59:04 UTC (rev 175058)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result	2014-10-22 19:11:18 UTC (rev 175059)
@@ -204,7 +204,7 @@
     bool values_valueFound = false;
     RefPtr<Inspector::InspectorObject> in_values = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral("values"), &values_valueFound, protocolErrorsPtr);
     bool payload_valueFound = false;
-    RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getAny(paramsContainerPtr, ASCIILiteral("payload"), &payload_valueFound, protocolErrorsPtr);
+    RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getValue(paramsContainerPtr, ASCIILiteral("payload"), &payload_valueFound, protocolErrorsPtr);
     bool databaseId_valueFound = false;
     int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), &databaseId_valueFound, protocolErrorsPtr);
     bool sqlError_valueFound = false;
@@ -265,7 +265,7 @@
     String in_notes = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("notes"), nullptr, protocolErrorsPtr);
     double in_timestamp = InspectorBackendDispatcher::getDouble(paramsContainerPtr, ASCIILiteral("timestamp"), nullptr, protocolErrorsPtr);
     RefPtr<Inspector::InspectorObject> in_values = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral("values"), nullptr, protocolErrorsPtr);
-    RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getAny(paramsContainerPtr, ASCIILiteral("payload"), nullptr, protocolErrorsPtr);
+    RefPtr<Inspector::InspectorValue> in_payload = InspectorBackendDispatcher::getValue(paramsContainerPtr, ASCIILiteral("payload"), nullptr, protocolErrorsPtr);
     int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainerPtr, ASCIILiteral("databaseId"), nullptr, protocolErrorsPtr);
     RefPtr<Inspector::InspectorObject> in_sqlError = InspectorBackendDispatcher::getObject(paramsContainerPtr, ASCIILiteral("sqlError"), nullptr, protocolErrorsPtr);
     String in_screenColor = InspectorBackendDispatcher::getString(paramsContainerPtr, ASCIILiteral("screenColor"), nullptr, protocolErrorsPtr);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to