<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[178606] trunk/Source/JavaScriptCore</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/178606">178606</a></dd>
<dt>Author</dt> <dd>burg@cs.washington.edu</dd>
<dt>Date</dt> <dd>2015-01-16 15:17:45 -0800 (Fri, 16 Jan 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Web Inspector: code generator should introduce typedefs for protocol types that are arrays
https://bugs.webkit.org/show_bug.cgi?id=140557
Reviewed by Joseph Pecoraro.
Currently, there is no generated type name for "array" type declarations such as Console.CallStack.
This makes it longwinded and confusing to use the type in C++ code.
This patch adds a typedef for array type declarations, so types such as Console::CallStack
can be referred to directly, rather than using Inspector::Protocol::Array<Console::CallFrame>.
Some tests were updated to cover array type declarations used as parameters and type members.
* inspector/ScriptCallStack.cpp: Use the new typedef.
(Inspector::ScriptCallStack::buildInspectorArray):
* inspector/ScriptCallStack.h:
* inspector/scripts/codegen/cpp_generator.py:
(CppGenerator.cpp_protocol_type_for_type): If an ArrayType is nominal, use the typedef'd name instead.
* inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(_generate_typedefs_for_domain): Also generate typedefs for array type declarations.
(_generate_typedefs_for_domain.Inspector):
* inspector/scripts/codegen/models.py: Save the name of an ArrayType when it is a type declaration.
(ArrayType.__init__):
(Protocol.resolve_types):
(Protocol.lookup_type_reference):
* inspector/scripts/tests/commands-with-async-attribute.json:
* inspector/scripts/tests/commands-with-optional-call-return-parameters.json:
* inspector/scripts/tests/events-with-optional-parameters.json:
* inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
* inspector/scripts/tests/expected/type-declaration-array-type.json-result:
* inspector/scripts/tests/expected/type-declaration-object-type.json-result:
* inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
* inspector/scripts/tests/type-declaration-object-type.json:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallStackcpp">trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorScriptCallStackh">trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generatorpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegenmodelspy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestscommandswithasyncattributejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestscommandswithoptionalcallreturnparametersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestseventswithoptionalparametersjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedeventswithoptionalparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationobjecttypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationobjecttypejson">trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -1,5 +1,43 @@
</span><span class="cx"> 2015-01-16 Brian J. Burg <burg@cs.washington.edu>
</span><span class="cx">
</span><ins>+ Web Inspector: code generator should introduce typedefs for protocol types that are arrays
+ https://bugs.webkit.org/show_bug.cgi?id=140557
+
+ Reviewed by Joseph Pecoraro.
+
+ Currently, there is no generated type name for "array" type declarations such as Console.CallStack.
+ This makes it longwinded and confusing to use the type in C++ code.
+
+ This patch adds a typedef for array type declarations, so types such as Console::CallStack
+ can be referred to directly, rather than using Inspector::Protocol::Array<Console::CallFrame>.
+
+ Some tests were updated to cover array type declarations used as parameters and type members.
+
+ * inspector/ScriptCallStack.cpp: Use the new typedef.
+ (Inspector::ScriptCallStack::buildInspectorArray):
+ * inspector/ScriptCallStack.h:
+ * inspector/scripts/codegen/cpp_generator.py:
+ (CppGenerator.cpp_protocol_type_for_type): If an ArrayType is nominal, use the typedef'd name instead.
+ * inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
+ (_generate_typedefs_for_domain): Also generate typedefs for array type declarations.
+ (_generate_typedefs_for_domain.Inspector):
+ * inspector/scripts/codegen/models.py: Save the name of an ArrayType when it is a type declaration.
+ (ArrayType.__init__):
+ (Protocol.resolve_types):
+ (Protocol.lookup_type_reference):
+ * inspector/scripts/tests/commands-with-async-attribute.json:
+ * inspector/scripts/tests/commands-with-optional-call-return-parameters.json:
+ * inspector/scripts/tests/events-with-optional-parameters.json:
+ * inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
+ * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
+ * inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
+ * inspector/scripts/tests/expected/type-declaration-array-type.json-result:
+ * inspector/scripts/tests/expected/type-declaration-object-type.json-result:
+ * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
+ * inspector/scripts/tests/type-declaration-object-type.json:
+
+2015-01-16 Brian J. Burg <burg@cs.washington.edu>
+
</ins><span class="cx"> Web Replay: purge remaining PassRefPtr uses and minor cleanup
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=140456
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallStackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallStack.cpp        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -107,9 +107,9 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-Ref<Inspector::Protocol::Array<Inspector::Protocol::Console::CallFrame>> ScriptCallStack::buildInspectorArray() const
</del><ins>+Ref<Inspector::Protocol::Console::StackTrace> ScriptCallStack::buildInspectorArray() const
</ins><span class="cx"> {
</span><del>- auto frames = Inspector::Protocol::Array<Inspector::Protocol::Console::CallFrame>::create();
</del><ins>+ auto frames = Inspector::Protocol::Console::StackTrace::create();
</ins><span class="cx"> for (size_t i = 0; i < m_frames.size(); i++)
</span><span class="cx"> frames->addItem(m_frames.at(i).buildInspectorObject());
</span><span class="cx"> return WTF::move(frames);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorScriptCallStackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/ScriptCallStack.h        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> bool isEqual(ScriptCallStack*) const;
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>- Ref<Inspector::Protocol::Array<Inspector::Protocol::Console::CallFrame>> buildInspectorArray() const;
</del><ins>+ Ref<Inspector::Protocol::Console::StackTrace> buildInspectorArray() const;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegencpp_generatorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -93,10 +93,11 @@
</span><span class="cx"> def cpp_protocol_type_for_type(_type):
</span><span class="cx"> if isinstance(_type, ObjectType) and len(_type.members) == 0:
</span><span class="cx"> return 'Inspector::InspectorObject'
</span><del>- if isinstance(_type, (ObjectType, AliasedType, EnumType)):
</del><ins>+ if isinstance(_type, ArrayType):
+ if _type.raw_name() is None: # Otherwise, fall through and use typedef'd name.
+ return 'Inspector::Protocol::Array<%s>' % CppGenerator.cpp_protocol_type_for_type(_type.element_type)
+ if isinstance(_type, (ObjectType, AliasedType, EnumType, ArrayType)):
</ins><span class="cx"> return 'Inspector::Protocol::%s::%s' % (_type.type_domain().domain_name, _type.raw_name())
</span><del>- if isinstance(_type, ArrayType):
- return 'Inspector::Protocol::Array<%s>' % CppGenerator.cpp_protocol_type_for_type(_type.element_type)
</del><span class="cx"> if isinstance(_type, PrimitiveType):
</span><span class="cx"> return CppGenerator.cpp_name_for_primitive_type(_type)
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -134,7 +134,8 @@
</span><span class="cx">
</span><span class="cx"> def _generate_typedefs_for_domain(self, domain):
</span><span class="cx"> primitive_declarations = filter(lambda decl: isinstance(decl.type, AliasedType), domain.type_declarations)
</span><del>- if len(primitive_declarations) == 0:
</del><ins>+ array_declarations = filter(lambda decl: isinstance(decl.type, ArrayType), domain.type_declarations)
+ if len(primitive_declarations) == 0 and len(array_declarations) == 0:
</ins><span class="cx"> return ''
</span><span class="cx">
</span><span class="cx"> sections = []
</span><span class="lines">@@ -146,9 +147,17 @@
</span><span class="cx"> typedef_lines.append('typedef %s %s;' % (primitive_name, declaration.type_name))
</span><span class="cx"> sections.append('\n'.join(typedef_lines))
</span><span class="cx">
</span><ins>+ for declaration in array_declarations:
+ element_type = CppGenerator.cpp_protocol_type_for_type(declaration.type.element_type)
+ typedef_lines = []
+ if len(declaration.description) > 0:
+ typedef_lines.append('/* %s */' % declaration.description)
+ typedef_lines.append('typedef Inspector::Protocol::Array<%s> %s;' % (element_type, declaration.type_name))
+ sections.append('\n'.join(typedef_lines))
+
</ins><span class="cx"> lines = []
</span><span class="cx"> lines.append('namespace %s {' % domain.domain_name)
</span><del>- lines.append('\n\n'.join(sections))
</del><ins>+ lines.append('\n'.join(sections))
</ins><span class="cx"> lines.append('} // %s' % domain.domain_name)
</span><span class="cx"> return self.wrap_with_guard_for_domain(domain, '\n'.join(lines))
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegenmodelspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -224,7 +224,8 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> class ArrayType(Type):
</span><del>- def __init__(self, element_type_ref, domain):
</del><ins>+ def __init__(self, name, element_type_ref, domain):
+ self._name = name
</ins><span class="cx"> self._domain = domain
</span><span class="cx"> self._element_type_ref = element_type_ref
</span><span class="cx"> self.element_type = None
</span><span class="lines">@@ -426,7 +427,7 @@
</span><span class="cx"> primitive_type_ref = TypeReference(declaration.type_ref.type_kind, None, None, None)
</span><span class="cx"> type_instance = EnumType(declaration.type_name, domain, declaration.type_ref.enum_values, primitive_type_ref)
</span><span class="cx"> elif kind == "array":
</span><del>- type_instance = ArrayType(declaration.type_ref.array_type_ref, domain)
</del><ins>+ type_instance = ArrayType(declaration.type_name, declaration.type_ref.array_type_ref, domain)
</ins><span class="cx"> elif kind == "object":
</span><span class="cx"> type_instance = ObjectType(declaration.type_name, domain, declaration.type_members)
</span><span class="cx"> else:
</span><span class="lines">@@ -452,7 +453,7 @@
</span><span class="cx"> def lookup_type_reference(self, type_ref, domain):
</span><span class="cx"> # If reference is to an anonymous array type, create a fresh instance.
</span><span class="cx"> if type_ref.type_kind == "array":
</span><del>- type_instance = ArrayType(type_ref.array_type_ref, domain)
</del><ins>+ type_instance = ArrayType(None, type_ref.array_type_ref, domain)
</ins><span class="cx"> type_instance.resolve_type_references(self)
</span><span class="cx"> log.debug("< Created fresh type instance for anonymous array type: %s" % type_instance.qualified_name())
</span><span class="cx"> return type_instance
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestscommandswithasyncattributejson"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-async-attribute.json        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -12,6 +12,11 @@
</span><span class="cx"> "enum": ["red", "green", "blue"]
</span><span class="cx"> },
</span><span class="cx"> {
</span><ins>+ "id": "ColorList",
+ "type": "array",
+ "items": { "$ref": "PrimaryColors" }
+ },
+ {
</ins><span class="cx"> "id": "Error",
</span><span class="cx"> "type": "object",
</span><span class="cx"> "description": "Database error.",
</span><span class="lines">@@ -37,6 +42,7 @@
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId", "optional": true },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error", "optional": true },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors", "optional": true },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList", "optional": true },
</ins><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"], "optional": true }
</span><span class="cx"> ]
</span><span class="cx"> },
</span><span class="lines">@@ -56,6 +62,7 @@
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId", "optional": true },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error", "optional": true },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors", "optional": true },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList", "optional": true },
</ins><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"], "optional": true }
</span><span class="cx"> ]
</span><span class="cx"> },
</span><span class="lines">@@ -73,6 +80,7 @@
</span><span class="cx"> { "name": "payload", "type": "any" },
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId" },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error" },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList" },
</ins><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors" },
</span><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"] }
</span><span class="cx"> ]
</span><span class="lines">@@ -93,6 +101,7 @@
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId" },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error" },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors" },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList" },
</ins><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"] }
</span><span class="cx"> ]
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestscommandswithoptionalcallreturnparametersjson"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/commands-with-optional-call-return-parameters.json        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -12,6 +12,11 @@
</span><span class="cx"> "enum": ["red", "green", "blue"]
</span><span class="cx"> },
</span><span class="cx"> {
</span><ins>+ "id": "ColorList",
+ "type": "array",
+ "items": { "$ref": "PrimaryColors" }
+ },
+ {
</ins><span class="cx"> "id": "Error",
</span><span class="cx"> "type": "object",
</span><span class="cx"> "description": "Database error.",
</span><span class="lines">@@ -33,6 +38,7 @@
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId", "optional": true },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error", "optional": true },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors", "optional": true },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList", "optional": true },
</ins><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"], "optional": true }
</span><span class="cx"> ],
</span><span class="cx"> "returns": [
</span><span class="lines">@@ -44,6 +50,7 @@
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId", "optional": true },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error", "optional": true },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors", "optional": true },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList", "optional": true },
</ins><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"], "optional": true }
</span><span class="cx"> ]
</span><span class="cx"> },
</span><span class="lines">@@ -58,6 +65,7 @@
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId" },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error" },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors" },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList" },
</ins><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"] }
</span><span class="cx"> ],
</span><span class="cx"> "returns": [
</span><span class="lines">@@ -69,6 +77,7 @@
</span><span class="cx"> { "name": "databaseId", "$ref": "DatabaseId" },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error" },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors" },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList" },
</ins><span class="cx"> { "name": "printColor", "type": "string", "enum": ["cyan", "magenta", "yellow", "black"] }
</span><span class="cx"> ]
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestseventswithoptionalparametersjson"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/events-with-optional-parameters.json        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -12,6 +12,11 @@
</span><span class="cx"> "values": ["red", "green", "blue"]
</span><span class="cx"> },
</span><span class="cx"> {
</span><ins>+ "id": "ColorList",
+ "type": "array",
+ "items": { "$ref": "PrimaryColors" }
+ },
+ {
</ins><span class="cx"> "id": "Error",
</span><span class="cx"> "type": "object",
</span><span class="cx"> "description": "Database error.",
</span><span class="lines">@@ -32,6 +37,7 @@
</span><span class="cx"> { "name": "payload", "type": "any", "optional": true },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error", "optional": true },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors", "optional": true },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList", "optional": true },
</ins><span class="cx"> { "name": "printColor", "type": "string", "values": ["cyan", "magenta", "yellow", "black"], "optional": true }
</span><span class="cx"> ]
</span><span class="cx"> },
</span><span class="lines">@@ -45,6 +51,7 @@
</span><span class="cx"> { "name": "payload", "type": "any" },
</span><span class="cx"> { "name": "sqlError", "$ref": "Error" },
</span><span class="cx"> { "name": "screenColor", "$ref": "PrimaryColors" },
</span><ins>+ { "name": "alternateColors", "$ref": "ColorList" },
</ins><span class="cx"> { "name": "printColor", "type": "string", "values": ["cyan", "magenta", "yellow", "black"] }
</span><span class="cx"> ]
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -98,10 +98,10 @@
</span><span class="cx"> // Database.
</span><span class="cx"> InspectorBackend.registerDatabaseDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "Database");
</span><span class="cx"> InspectorBackend.registerEnum("Database.PrimaryColors", {Red: "red", Green: "green", Blue: "blue"});
</span><del>-InspectorBackend.registerCommand("Database.executeSQLSyncOptionalReturnValues", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
-InspectorBackend.registerCommand("Database.executeSQLAsyncOptionalReturnValues", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
-InspectorBackend.registerCommand("Database.executeSQLSync", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
-InspectorBackend.registerCommand("Database.executeSQLAsync", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
</del><ins>+InspectorBackend.registerCommand("Database.executeSQLSyncOptionalReturnValues", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "alternateColors", "printColor"]);
+InspectorBackend.registerCommand("Database.executeSQLAsyncOptionalReturnValues", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "alternateColors", "printColor"]);
+InspectorBackend.registerCommand("Database.executeSQLSync", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "alternateColors", "screenColor", "printColor"]);
+InspectorBackend.registerCommand("Database.executeSQLAsync", [{"name": "databaseId", "type": "number", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "alternateColors", "printColor"]);
</ins><span class="cx"> InspectorBackend.activateDomain("Database");
</span><span class="cx"> ### End File: InspectorBackendCommands.js
</span><span class="cx">
</span><span class="lines">@@ -168,18 +168,18 @@
</span><span class="cx"> Yellow = 5,
</span><span class="cx"> Black = 6,
</span><span class="cx"> }; // enum class PrintColor
</span><del>- virtual void executeSQLSyncOptionalReturnValues(ErrorString&, int in_databaseId, const String& in_query, RefPtr<Inspector::Protocol::Array<String>>& opt_out_columnNames, Inspector::Protocol::OptOutput<String>* opt_out_notes, Inspector::Protocol::OptOutput<double>* opt_out_timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* opt_out_values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* opt_out_payload, Inspector::Protocol::OptOutput<int>* opt_out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& opt_out_sqlError, Inspector::Protocol::Database::PrimaryColors* opt_out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
</del><ins>+ virtual void executeSQLSyncOptionalReturnValues(ErrorString&, int in_databaseId, const String& in_query, RefPtr<Inspector::Protocol::Array<String>>& opt_out_columnNames, Inspector::Protocol::OptOutput<String>* opt_out_notes, Inspector::Protocol::OptOutput<double>* opt_out_timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* opt_out_values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* opt_out_payload, Inspector::Protocol::OptOutput<int>* opt_out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& opt_out_sqlError, Inspector::Protocol::Database::PrimaryColors* opt_out_screenColor, RefPtr<Inspector::Protocol::Database::ColorList>& opt_out_alternateColors, InspectorDatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
</ins><span class="cx"> class ExecuteSQLAsyncOptionalReturnValuesCallback : public Inspector::InspectorBackendDispatcher::CallbackBase {
</span><span class="cx"> public:
</span><span class="cx"> ExecuteSQLAsyncOptionalReturnValuesCallback(Ref<Inspector::InspectorBackendDispatcher>&&, int id);
</span><del>- void sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, Inspector::Protocol::OptOutput<String>* notes, Inspector::Protocol::OptOutput<double>* timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* payload, Inspector::Protocol::OptOutput<int>* databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, Inspector::Protocol::OptOutput<String>* screenColor, Inspector::Protocol::OptOutput<String>* printColor);
</del><ins>+ void sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, Inspector::Protocol::OptOutput<String>* notes, Inspector::Protocol::OptOutput<double>* timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* payload, Inspector::Protocol::OptOutput<int>* databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, Inspector::Protocol::OptOutput<String>* screenColor, RefPtr<Inspector::Protocol::Database::ColorList>&& alternateColors, Inspector::Protocol::OptOutput<String>* printColor);
</ins><span class="cx"> };
</span><span class="cx"> virtual void executeSQLAsyncOptionalReturnValues(ErrorString&, int in_databaseId, const String& in_query, Ref<ExecuteSQLAsyncOptionalReturnValuesCallback>&& callback) = 0;
</span><del>- virtual void executeSQLSync(ErrorString&, int in_databaseId, const String& in_query, RefPtr<Inspector::Protocol::Array<String>>& out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
</del><ins>+ virtual void executeSQLSync(ErrorString&, int in_databaseId, const String& in_query, RefPtr<Inspector::Protocol::Array<String>>& out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& out_sqlError, RefPtr<Inspector::Protocol::Database::ColorList>& out_alternateColors, Inspector::Protocol::Database::PrimaryColors* out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
</ins><span class="cx"> class ExecuteSQLAsyncCallback : public Inspector::InspectorBackendDispatcher::CallbackBase {
</span><span class="cx"> public:
</span><span class="cx"> ExecuteSQLAsyncCallback(Ref<Inspector::InspectorBackendDispatcher>&&, int id);
</span><del>- void sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, const String& notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, const String& screenColor, const String& printColor);
</del><ins>+ void sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, const String& notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, const String& screenColor, RefPtr<Inspector::Protocol::Database::ColorList>&& alternateColors, const String& printColor);
</ins><span class="cx"> };
</span><span class="cx"> virtual void executeSQLAsync(ErrorString&, int in_databaseId, const String& in_query, Ref<ExecuteSQLAsyncCallback>&& callback) = 0;
</span><span class="cx"> protected:
</span><span class="lines">@@ -322,8 +322,9 @@
</span><span class="cx"> Inspector::Protocol::OptOutput<Inspector::Protocol::Database::DatabaseId> out_databaseId;
</span><span class="cx"> RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
</span><span class="cx"> Inspector::Protocol::Database::PrimaryColors out_screenColor;
</span><ins>+ RefPtr<Inspector::Protocol::Database::ColorList> out_alternateColors;
</ins><span class="cx"> InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
</span><del>- m_agent->executeSQLSyncOptionalReturnValues(error, in_databaseId, in_query, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, &out_printColor);
</del><ins>+ m_agent->executeSQLSyncOptionalReturnValues(error, in_databaseId, in_query, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, out_alternateColors, &out_printColor);
</ins><span class="cx">
</span><span class="cx"> if (!error.length()) {
</span><span class="cx"> if (out_columnNames)
</span><span class="lines">@@ -342,6 +343,8 @@
</span><span class="cx"> result->setObject(ASCIILiteral("sqlError"), out_sqlError);
</span><span class="cx"> if (out_screenColor.isAssigned())
</span><span class="cx"> result->setString(ASCIILiteral("screenColor"), out_screenColor.getValue());
</span><ins>+ if (out_alternateColors)
+ result->setArray(ASCIILiteral("alternateColors"), out_alternateColors);
</ins><span class="cx"> if (out_printColor.isAssigned())
</span><span class="cx"> result->setString(ASCIILiteral("printColor"), out_printColor.getValue());
</span><span class="cx"> }
</span><span class="lines">@@ -350,7 +353,7 @@
</span><span class="cx">
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::ExecuteSQLAsyncOptionalReturnValuesCallback(Ref<InspectorBackendDispatcher>&& backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(WTF::move(backendDispatcher), id) { }
</span><span class="cx">
</span><del>-void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, Inspector::Protocol::OptOutput<String>* notes, Inspector::Protocol::OptOutput<double>* timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* payload, Inspector::Protocol::OptOutput<int>* databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, Inspector::Protocol::OptOutput<String>* screenColor, Inspector::Protocol::OptOutput<String>* printColor)
</del><ins>+void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback::sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, Inspector::Protocol::OptOutput<String>* notes, Inspector::Protocol::OptOutput<double>* timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* payload, Inspector::Protocol::OptOutput<int>* databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, Inspector::Protocol::OptOutput<String>* screenColor, RefPtr<Inspector::Protocol::Database::ColorList>&& alternateColors, Inspector::Protocol::OptOutput<String>* printColor)
</ins><span class="cx"> {
</span><span class="cx"> Ref<InspectorObject> jsonMessage = InspectorObject::create();
</span><span class="cx"> if (columnNames)
</span><span class="lines">@@ -369,6 +372,8 @@
</span><span class="cx"> jsonMessage->setObject(ASCIILiteral("sqlError"), sqlError);
</span><span class="cx"> if (screenColor.isAssigned())
</span><span class="cx"> jsonMessage->setString(ASCIILiteral("screenColor"), screenColor.getValue());
</span><ins>+ if (alternateColors)
+ jsonMessage->setArray(ASCIILiteral("alternateColors"), alternateColors);
</ins><span class="cx"> if (printColor.isAssigned())
</span><span class="cx"> jsonMessage->setString(ASCIILiteral("printColor"), printColor.getValue());
</span><span class="cx"> sendIfActive(WTF::move(jsonMessage), ErrorString());
</span><span class="lines">@@ -435,9 +440,10 @@
</span><span class="cx"> Inspector::InspectorValue out_payload;
</span><span class="cx"> Inspector::Protocol::Database::DatabaseId out_databaseId;
</span><span class="cx"> RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
</span><ins>+ RefPtr<Inspector::Protocol::Database::ColorList> out_alternateColors;
</ins><span class="cx"> Inspector::Protocol::Database::PrimaryColors out_screenColor;
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
</span><del>- m_agent->executeSQLSync(error, in_databaseId, in_query, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, &out_printColor);
</del><ins>+ m_agent->executeSQLSync(error, in_databaseId, in_query, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, out_alternateColors, &out_screenColor, &out_printColor);
</ins><span class="cx">
</span><span class="cx"> if (!error.length()) {
</span><span class="cx"> result->setArray(ASCIILiteral("columnNames"), out_columnNames);
</span><span class="lines">@@ -447,6 +453,7 @@
</span><span class="cx"> result->setValue(ASCIILiteral("payload"), out_payload);
</span><span class="cx"> result->setInteger(ASCIILiteral("databaseId"), out_databaseId);
</span><span class="cx"> result->setObject(ASCIILiteral("sqlError"), out_sqlError);
</span><ins>+ result->setArray(ASCIILiteral("alternateColors"), out_alternateColors);
</ins><span class="cx"> result->setString(ASCIILiteral("screenColor"), Inspector::Protocol::getEnumConstantValue(out_screenColor));
</span><span class="cx"> result->setString(ASCIILiteral("printColor"), Inspector::Protocol::getEnumConstantValue(out_printColor));
</span><span class="cx"> }
</span><span class="lines">@@ -455,7 +462,7 @@
</span><span class="cx">
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::ExecuteSQLAsyncCallback(Ref<InspectorBackendDispatcher>&& backendDispatcher, int id) : Inspector::InspectorBackendDispatcher::CallbackBase(WTF::move(backendDispatcher), id) { }
</span><span class="cx">
</span><del>-void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, const String& notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, const String& screenColor, const String& printColor)
</del><ins>+void InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback::sendSuccess(RefPtr<Inspector::Protocol::Array<String>>&& columnNames, const String& notes, double timestamp, Inspector::InspectorObject values, Inspector::InspectorValue payload, int databaseId, RefPtr<Inspector::Protocol::Database::Error>&& sqlError, const String& screenColor, RefPtr<Inspector::Protocol::Database::ColorList>&& alternateColors, const String& printColor)
</ins><span class="cx"> {
</span><span class="cx"> Ref<InspectorObject> jsonMessage = InspectorObject::create();
</span><span class="cx"> jsonMessage->setArray(ASCIILiteral("columnNames"), columnNames);
</span><span class="lines">@@ -466,6 +473,7 @@
</span><span class="cx"> jsonMessage->setInteger(ASCIILiteral("databaseId"), databaseId);
</span><span class="cx"> jsonMessage->setObject(ASCIILiteral("sqlError"), sqlError);
</span><span class="cx"> jsonMessage->setString(ASCIILiteral("screenColor"), Inspector::Protocol::getEnumConstantValue(screenColor));
</span><ins>+ jsonMessage->setArray(ASCIILiteral("alternateColors"), alternateColors);
</ins><span class="cx"> jsonMessage->setString(ASCIILiteral("printColor"), Inspector::Protocol::getEnumConstantValue(printColor));
</span><span class="cx"> sendIfActive(WTF::move(jsonMessage), ErrorString());
</span><span class="cx"> }
</span><span class="lines">@@ -663,6 +671,7 @@
</span><span class="cx"> namespace Database {
</span><span class="cx"> /* Unique identifier of Database object. */
</span><span class="cx"> typedef int DatabaseId;
</span><ins>+typedef Inspector::Protocol::Array<Inspector::Protocol::Database::PrimaryColors> ColorList;
</ins><span class="cx"> } // Database
</span><span class="cx"> // End of typedefs.
</span><span class="cx">
</span><span class="lines">@@ -1054,13 +1063,14 @@
</span><span class="cx"> backendDispatcher()->sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor) {
</del><ins>+ id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, RWIProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor) {
</ins><span class="cx"> Ref<InspectorObject> resultObject = InspectorObject::create();
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
</span><ins>+ THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> if (columnNames)
</span><span class="cx"> resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
</span><span class="cx"> if (notes)
</span><span class="lines">@@ -1077,6 +1087,8 @@
</span><span class="cx"> resultObject->setObject(ASCIILiteral("sqlError"), [*sqlError toInspectorObject]);
</span><span class="cx"> if (screenColor)
</span><span class="cx"> resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(*screenColor));
</span><ins>+ if (alternateColors)
+ resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(*alternateColors));
</ins><span class="cx"> if (printColor)
</span><span class="cx"> resultObject->setString(ASCIILiteral("printColor"), toProtocolString(*printColor));
</span><span class="cx"> backendDispatcher()->sendResponse(callId, WTF::move(resultObject), String());
</span><span class="lines">@@ -1094,13 +1106,14 @@
</span><span class="cx"> backendDispatcher()->sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor) {
</del><ins>+ id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, RWIProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor) {
</ins><span class="cx"> Ref<InspectorObject> resultObject = InspectorObject::create();
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
</span><ins>+ THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> if (columnNames)
</span><span class="cx"> resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
</span><span class="cx"> if (notes)
</span><span class="lines">@@ -1117,6 +1130,8 @@
</span><span class="cx"> resultObject->setObject(ASCIILiteral("sqlError"), [*sqlError toInspectorObject]);
</span><span class="cx"> if (screenColor)
</span><span class="cx"> resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(*screenColor));
</span><ins>+ if (alternateColors)
+ resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(*alternateColors));
</ins><span class="cx"> if (printColor)
</span><span class="cx"> resultObject->setString(ASCIILiteral("printColor"), toProtocolString(*printColor));
</span><span class="cx"> backendDispatcher()->sendResponse(callId, WTF::move(resultObject), String());
</span><span class="lines">@@ -1134,13 +1149,14 @@
</span><span class="cx"> backendDispatcher()->sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLSyncPrintColor printColor) {
</del><ins>+ id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, NSArray/*<NSString>*/ *alternateColors, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLSyncPrintColor printColor) {
</ins><span class="cx"> Ref<InspectorObject> resultObject = InspectorObject::create();
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
</span><ins>+ THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
</span><span class="cx"> resultObject->setString(ASCIILiteral("notes"), notes);
</span><span class="cx"> resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
</span><span class="lines">@@ -1148,6 +1164,7 @@
</span><span class="cx"> resultObject->setValue(ASCIILiteral("payload"), [payload toInspectorObject]);
</span><span class="cx"> resultObject->setInteger(ASCIILiteral("databaseId"), databaseId);
</span><span class="cx"> resultObject->setObject(ASCIILiteral("sqlError"), [sqlError toInspectorObject]);
</span><ins>+ resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(alternateColors));
</ins><span class="cx"> resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(screenColor));
</span><span class="cx"> resultObject->setString(ASCIILiteral("printColor"), toProtocolString(printColor));
</span><span class="cx"> backendDispatcher()->sendResponse(callId, WTF::move(resultObject), String());
</span><span class="lines">@@ -1165,13 +1182,14 @@
</span><span class="cx"> backendDispatcher()->sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLAsyncPrintColor printColor) {
</del><ins>+ id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, NSArray/*<NSString>*/ *alternateColors, RWIProtocolDatabaseExecuteSQLAsyncPrintColor printColor) {
</ins><span class="cx"> Ref<InspectorObject> resultObject = InspectorObject::create();
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
</span><ins>+ THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
</span><span class="cx"> resultObject->setString(ASCIILiteral("notes"), notes);
</span><span class="cx"> resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
</span><span class="lines">@@ -1180,6 +1198,7 @@
</span><span class="cx"> resultObject->setInteger(ASCIILiteral("databaseId"), databaseId);
</span><span class="cx"> resultObject->setObject(ASCIILiteral("sqlError"), [sqlError toInspectorObject]);
</span><span class="cx"> resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(screenColor));
</span><ins>+ resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(alternateColors));
</ins><span class="cx"> resultObject->setString(ASCIILiteral("printColor"), toProtocolString(printColor));
</span><span class="cx"> backendDispatcher()->sendResponse(callId, WTF::move(resultObject), String());
</span><span class="cx"> };
</span><span class="lines">@@ -1507,10 +1526,10 @@
</span><span class="cx">
</span><span class="cx"> @protocol RWIProtocolDatabaseDomainHandler <NSObject>
</span><span class="cx"> @required
</span><del>-- (void)executeSQLSyncOptionalReturnValuesWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
-- (void)executeSQLAsyncOptionalReturnValuesWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
-- (void)executeSQLSyncWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLSyncPrintColor printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
-- (void)executeSQLAsyncWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLAsyncPrintColor printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
</del><ins>+- (void)executeSQLSyncOptionalReturnValuesWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, RWIProtocolDatabaseExecuteSQLSyncOptionalReturnValuesPrintColor *printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
+- (void)executeSQLAsyncOptionalReturnValuesWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, RWIProtocolDatabaseExecuteSQLAsyncOptionalReturnValuesPrintColor *printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
+- (void)executeSQLSyncWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, NSArray/*<NSString>*/ *alternateColors, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteSQLSyncPrintColor printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
+- (void)executeSQLAsyncWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, NSArray/*<NSString>*/ *alternateColors, RWIProtocolDatabaseExecuteSQLAsyncPrintColor printColor))successCallback databaseId:(int)databaseId query:(NSString *)query;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -51,8 +51,8 @@
</span><span class="cx"> class AlternateInspectorDatabaseBackendDispatcher : public AlternateInspectorBackendDispatcher {
</span><span class="cx"> public:
</span><span class="cx"> virtual ~AlternateInspectorDatabaseBackendDispatcher() { }
</span><del>- virtual void executeAllOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const String* in_printColor) = 0;
- virtual void executeNoOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const String& in_printColor) = 0;
</del><ins>+ virtual void executeAllOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String* in_printColor) = 0;
+ virtual void executeNoOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String& in_printColor) = 0;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -95,8 +95,8 @@
</span><span class="cx">
</span><span class="cx"> // Database.
</span><span class="cx"> InspectorBackend.registerEnum("Database.PrimaryColors", {Red: "red", Green: "green", Blue: "blue"});
</span><del>-InspectorBackend.registerCommand("Database.executeAllOptionalParameters", [{"name": "columnNames", "type": "object", "optional": true}, {"name": "notes", "type": "string", "optional": true}, {"name": "timestamp", "type": "number", "optional": true}, {"name": "values", "type": "object", "optional": true}, {"name": "payload", "type": "object", "optional": true}, {"name": "databaseId", "type": "number", "optional": true}, {"name": "sqlError", "type": "object", "optional": true}, {"name": "screenColor", "type": "string", "optional": true}, {"name": "
printColor", "type": "string", "optional": true}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
-InspectorBackend.registerCommand("Database.executeNoOptionalParameters", [{"name": "columnNames", "type": "object", "optional": false}, {"name": "notes", "type": "string", "optional": false}, {"name": "timestamp", "type": "number", "optional": false}, {"name": "values", "type": "object", "optional": false}, {"name": "payload", "type": "object", "optional": false}, {"name": "databaseId", "type": "number", "optional": false}, {"name": "sqlError", "type": "object", "optional": false}, {"name": "screenColor", "type": "string", "optional": false}, {"name": "print
Color", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "printColor"]);
</del><ins>+InspectorBackend.registerCommand("Database.executeAllOptionalParameters", [{"name": "columnNames", "type": "object", "optional": true}, {"name": "notes", "type": "string", "optional": true}, {"name": "timestamp", "type": "number", "optional": true}, {"name": "values", "type": "object", "optional": true}, {"name": "payload", "type": "object", "optional": true}, {"name": "databaseId", "type": "number", "optional": true}, {"name": "sqlError", "type": "object", "optional": true}, {"name": "screenColor", "type": "string", "optional": true}, {"name": "a
lternateColors", "type": "object", "optional": true}, {"name": "printColor", "type": "string", "optional": true}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "alternateColors", "printColor"]);
+InspectorBackend.registerCommand("Database.executeNoOptionalParameters", [{"name": "columnNames", "type": "object", "optional": false}, {"name": "notes", "type": "string", "optional": false}, {"name": "timestamp", "type": "number", "optional": false}, {"name": "values", "type": "object", "optional": false}, {"name": "payload", "type": "object", "optional": false}, {"name": "databaseId", "type": "number", "optional": false}, {"name": "sqlError", "type": "object", "optional": false}, {"name": "screenColor", "type": "string", "optional": false}, {"name": "alter
nateColors", "type": "object", "optional": false}, {"name": "printColor", "type": "string", "optional": false}], ["columnNames", "notes", "timestamp", "values", "payload", "databaseId", "sqlError", "screenColor", "alternateColors", "printColor"]);
</ins><span class="cx"> InspectorBackend.activateDomain("Database");
</span><span class="cx"> ### End File: InspectorBackendCommands.js
</span><span class="cx">
</span><span class="lines">@@ -163,8 +163,8 @@
</span><span class="cx"> Yellow = 5,
</span><span class="cx"> Black = 6,
</span><span class="cx"> }; // enum class PrintColor
</span><del>- virtual void executeAllOptionalParameters(ErrorString&, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const String* in_printColor, RefPtr<Inspector::Protocol::Array<String>>& opt_out_columnNames, Inspector::Protocol::OptOutput<String>* opt_out_notes, Inspector::Protocol::OptOutput<double>* opt_out_timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* opt_out_values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* opt_out_payload, Inspector::Protocol::OptOutput<int>* opt_out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& opt_out_sqlError, Inspector::Pr
otocol::Database::PrimaryColors* opt_out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
- virtual void executeNoOptionalParameters(ErrorString&, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const String& in_printColor, RefPtr<Inspector::Protocol::Array<String>>& out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, InspectorDatabaseBackendDispatcherHandler::PrintColor* out_printColor) = 0;
</del><ins>+ virtual void executeAllOptionalParameters(ErrorString&, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String* in_printColor, RefPtr<Inspector::Protocol::Array<String>>& opt_out_columnNames, Inspector::Protocol::OptOutput<String>* opt_out_notes, Inspector::Protocol::OptOutput<double>* opt_out_timestamp, Inspector::Protocol::OptOutput<Inspector::InspectorObject>* opt_out_values, Inspector::Protocol::OptOutput<Inspector::InspectorValue>* opt_out_payload, Inspector::Protocol::OptOutput<int>* opt_out_databaseId, RefPtr<In
spector::Protocol::Database::Error>& opt_out_sqlError, Inspector::Protocol::Database::PrimaryColors* opt_out_screenColor, RefPtr<Inspector::Protocol::Database::ColorList>& opt_out_alternateColors, InspectorDatabaseBackendDispatcherHandler::PrintColor* opt_out_printColor) = 0;
+ virtual void executeNoOptionalParameters(ErrorString&, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String& in_printColor, RefPtr<Inspector::Protocol::Array<String>>& out_columnNames, String* out_notes, double* out_timestamp, Inspector::InspectorObject* out_values, Inspector::InspectorValue* out_payload, int* out_databaseId, RefPtr<Inspector::Protocol::Database::Error>& out_sqlError, Inspector::Protocol::Database::PrimaryColors* out_screenColor, RefPtr<Inspector::Protocol::Database::ColorList>& out_alternateColors, InspectorDatabaseBackendDispatche
rHandler::PrintColor* out_printColor) = 0;
</ins><span class="cx"> protected:
</span><span class="cx"> virtual ~InspectorDatabaseBackendDispatcherHandler();
</span><span class="cx"> };
</span><span class="lines">@@ -290,6 +290,8 @@
</span><span class="cx"> RefPtr<Inspector::InspectorObject> in_sqlError = InspectorBackendDispatcher::getObject(paramsContainer.get(), ASCIILiteral("sqlError"), &sqlError_valueFound, protocolErrors.get());
</span><span class="cx"> bool screenColor_valueFound = false;
</span><span class="cx"> String in_screenColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral("screenColor"), &screenColor_valueFound, protocolErrors.get());
</span><ins>+ bool alternateColors_valueFound = false;
+ RefPtr<Inspector::InspectorArray> in_alternateColors = InspectorBackendDispatcher::getArray(paramsContainer.get(), ASCIILiteral("alternateColors"), &alternateColors_valueFound, protocolErrors.get());
</ins><span class="cx"> bool printColor_valueFound = false;
</span><span class="cx"> String in_printColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral("printColor"), &printColor_valueFound, protocolErrors.get());
</span><span class="cx"> if (protocolErrors->length()) {
</span><span class="lines">@@ -300,7 +302,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> if (m_alternateDispatcher) {
</span><del>- m_alternateDispatcher->executeAllOptionalParameters(callId, columnNames_valueFound ? in_columnNames.copyRef() : nullptr, notes_valueFound ? &in_notes : nullptr, timestamp_valueFound ? &in_timestamp : nullptr, values_valueFound ? in_values.copyRef() : nullptr, payload_valueFound ? in_payload.copyRef() : nullptr, databaseId_valueFound ? &in_databaseId : nullptr, sqlError_valueFound ? in_sqlError.copyRef() : nullptr, screenColor_valueFound ? &in_screenColor : nullptr, printColor_valueFound ? &in_printColor : nullptr);
</del><ins>+ m_alternateDispatcher->executeAllOptionalParameters(callId, columnNames_valueFound ? in_columnNames.copyRef() : nullptr, notes_valueFound ? &in_notes : nullptr, timestamp_valueFound ? &in_timestamp : nullptr, values_valueFound ? in_values.copyRef() : nullptr, payload_valueFound ? in_payload.copyRef() : nullptr, databaseId_valueFound ? &in_databaseId : nullptr, sqlError_valueFound ? in_sqlError.copyRef() : nullptr, screenColor_valueFound ? &in_screenColor : nullptr, alternateColors_valueFound ? in_alternateColors.copyRef() : nullptr, printColor_valueFound ? &in_printColor : nullptr);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="lines">@@ -315,8 +317,9 @@
</span><span class="cx"> Inspector::Protocol::OptOutput<Inspector::Protocol::Database::DatabaseId> out_databaseId;
</span><span class="cx"> RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
</span><span class="cx"> Inspector::Protocol::Database::PrimaryColors out_screenColor;
</span><ins>+ RefPtr<Inspector::Protocol::Database::ColorList> out_alternateColors;
</ins><span class="cx"> InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
</span><del>- m_agent->executeAllOptionalParameters(error, columnNames_valueFound ? in_columnNames.copyRef() : nullptr, notes_valueFound ? &in_notes : nullptr, timestamp_valueFound ? &in_timestamp : nullptr, values_valueFound ? in_values.copyRef() : nullptr, payload_valueFound ? in_payload.copyRef() : nullptr, databaseId_valueFound ? &in_databaseId : nullptr, sqlError_valueFound ? in_sqlError.copyRef() : nullptr, screenColor_valueFound ? &in_screenColor : nullptr, printColor_valueFound ? &in_printColor : nullptr, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, &out_printColor);
</del><ins>+ m_agent->executeAllOptionalParameters(error, columnNames_valueFound ? in_columnNames.copyRef() : nullptr, notes_valueFound ? &in_notes : nullptr, timestamp_valueFound ? &in_timestamp : nullptr, values_valueFound ? in_values.copyRef() : nullptr, payload_valueFound ? in_payload.copyRef() : nullptr, databaseId_valueFound ? &in_databaseId : nullptr, sqlError_valueFound ? in_sqlError.copyRef() : nullptr, screenColor_valueFound ? &in_screenColor : nullptr, alternateColors_valueFound ? in_alternateColors.copyRef() : nullptr, printColor_valueFound ? &in_printColor : nullptr, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, out_alternateColors, &out_printColor);
</ins><span class="cx">
</span><span class="cx"> if (!error.length()) {
</span><span class="cx"> if (out_columnNames)
</span><span class="lines">@@ -335,6 +338,8 @@
</span><span class="cx"> result->setObject(ASCIILiteral("sqlError"), out_sqlError);
</span><span class="cx"> if (out_screenColor.isAssigned())
</span><span class="cx"> result->setString(ASCIILiteral("screenColor"), out_screenColor.getValue());
</span><ins>+ if (out_alternateColors)
+ result->setArray(ASCIILiteral("alternateColors"), out_alternateColors);
</ins><span class="cx"> if (out_printColor.isAssigned())
</span><span class="cx"> result->setString(ASCIILiteral("printColor"), out_printColor.getValue());
</span><span class="cx"> }
</span><span class="lines">@@ -354,6 +359,7 @@
</span><span class="cx"> int in_databaseId = InspectorBackendDispatcher::getInteger(paramsContainer.get(), ASCIILiteral("databaseId"), nullptr, protocolErrors.get());
</span><span class="cx"> RefPtr<Inspector::InspectorObject> in_sqlError = InspectorBackendDispatcher::getObject(paramsContainer.get(), ASCIILiteral("sqlError"), nullptr, protocolErrors.get());
</span><span class="cx"> String in_screenColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral("screenColor"), nullptr, protocolErrors.get());
</span><ins>+ RefPtr<Inspector::InspectorArray> in_alternateColors = InspectorBackendDispatcher::getArray(paramsContainer.get(), ASCIILiteral("alternateColors"), nullptr, protocolErrors.get());
</ins><span class="cx"> String in_printColor = InspectorBackendDispatcher::getString(paramsContainer.get(), ASCIILiteral("printColor"), nullptr, protocolErrors.get());
</span><span class="cx"> if (protocolErrors->length()) {
</span><span class="cx"> String errorMessage = String::format("Some arguments of method '%s' can't be processed", "Database.executeNoOptionalParameters");
</span><span class="lines">@@ -363,7 +369,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> if (m_alternateDispatcher) {
</span><del>- m_alternateDispatcher->executeNoOptionalParameters(callId, in_columnNames.copyRef(), in_notes, in_timestamp, in_values.copyRef(), in_payload.copyRef(), in_databaseId, in_sqlError.copyRef(), in_screenColor, in_printColor);
</del><ins>+ m_alternateDispatcher->executeNoOptionalParameters(callId, in_columnNames.copyRef(), in_notes, in_timestamp, in_values.copyRef(), in_payload.copyRef(), in_databaseId, in_sqlError.copyRef(), in_screenColor, in_alternateColors.copyRef(), in_printColor);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="lines">@@ -378,8 +384,9 @@
</span><span class="cx"> Inspector::Protocol::Database::DatabaseId out_databaseId;
</span><span class="cx"> RefPtr<Inspector::Protocol::Database::Error> out_sqlError;
</span><span class="cx"> Inspector::Protocol::Database::PrimaryColors out_screenColor;
</span><ins>+ RefPtr<Inspector::Protocol::Database::ColorList> out_alternateColors;
</ins><span class="cx"> InspectorDatabaseBackendDispatcherHandler::PrintColor out_printColor;
</span><del>- m_agent->executeNoOptionalParameters(error, in_columnNames.copyRef(), in_notes, in_timestamp, in_values.copyRef(), in_payload.copyRef(), in_databaseId, in_sqlError.copyRef(), in_screenColor, in_printColor, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, &out_printColor);
</del><ins>+ m_agent->executeNoOptionalParameters(error, in_columnNames.copyRef(), in_notes, in_timestamp, in_values.copyRef(), in_payload.copyRef(), in_databaseId, in_sqlError.copyRef(), in_screenColor, in_alternateColors.copyRef(), in_printColor, out_columnNames, &out_notes, &out_timestamp, out_values, &out_payload, &out_databaseId, out_sqlError, &out_screenColor, out_alternateColors, &out_printColor);
</ins><span class="cx">
</span><span class="cx"> if (!error.length()) {
</span><span class="cx"> result->setArray(ASCIILiteral("columnNames"), out_columnNames);
</span><span class="lines">@@ -390,6 +397,7 @@
</span><span class="cx"> result->setInteger(ASCIILiteral("databaseId"), out_databaseId);
</span><span class="cx"> result->setObject(ASCIILiteral("sqlError"), out_sqlError);
</span><span class="cx"> result->setString(ASCIILiteral("screenColor"), Inspector::Protocol::getEnumConstantValue(out_screenColor));
</span><ins>+ result->setArray(ASCIILiteral("alternateColors"), out_alternateColors);
</ins><span class="cx"> result->setString(ASCIILiteral("printColor"), Inspector::Protocol::getEnumConstantValue(out_printColor));
</span><span class="cx"> }
</span><span class="cx"> m_backendDispatcher->sendResponse(callId, WTF::move(result), error);
</span><span class="lines">@@ -556,6 +564,7 @@
</span><span class="cx"> namespace Database {
</span><span class="cx"> /* Unique identifier of Database object. */
</span><span class="cx"> typedef int DatabaseId;
</span><ins>+typedef Inspector::Protocol::Array<Inspector::Protocol::Database::PrimaryColors> ColorList;
</ins><span class="cx"> } // Database
</span><span class="cx"> // End of typedefs.
</span><span class="cx">
</span><span class="lines">@@ -759,8 +768,8 @@
</span><span class="cx"> class ObjCInspectorDatabaseBackendDispatcher final : public AlternateInspectorDatabaseBackendDispatcher {
</span><span class="cx"> public:
</span><span class="cx"> ObjCInspectorDatabaseBackendDispatcher(id<RWIProtocolDatabaseDomainHandler> handler) { m_delegate = handler; }
</span><del>- virtual void executeAllOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const String* in_printColor) override;
- virtual void executeNoOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const String& in_printColor) override;
</del><ins>+ virtual void executeAllOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String* in_printColor) override;
+ virtual void executeNoOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String& in_printColor) override;
</ins><span class="cx"> private:
</span><span class="cx"> RetainPtr<id<RWIProtocolDatabaseDomainHandler>> m_delegate;
</span><span class="cx"> };
</span><span class="lines">@@ -939,19 +948,20 @@
</span><span class="cx">
</span><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><del>-void ObjCInspectorDatabaseBackendDispatcher::executeAllOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const String* in_printColor)
</del><ins>+void ObjCInspectorDatabaseBackendDispatcher::executeAllOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String* in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String* in_printColor)
</ins><span class="cx"> {
</span><span class="cx"> id errorCallback = ^(NSString *error) {
</span><span class="cx"> backendDispatcher()->sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor) {
</del><ins>+ id successCallback = ^(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor) {
</ins><span class="cx"> Ref<InspectorObject> resultObject = InspectorObject::create();
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(columnNames, @"columnNames");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(notes, @"notes");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(values, @"values");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
</span><ins>+ THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> if (columnNames)
</span><span class="cx"> resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(*columnNames));
</span><span class="cx"> if (notes)
</span><span class="lines">@@ -968,6 +978,8 @@
</span><span class="cx"> resultObject->setObject(ASCIILiteral("sqlError"), [*sqlError toInspectorObject]);
</span><span class="cx"> if (screenColor)
</span><span class="cx"> resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(*screenColor));
</span><ins>+ if (alternateColors)
+ resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(*alternateColors));
</ins><span class="cx"> if (printColor)
</span><span class="cx"> resultObject->setString(ASCIILiteral("printColor"), toProtocolString(*printColor));
</span><span class="cx"> backendDispatcher()->sendResponse(callId, WTF::move(resultObject), String());
</span><span class="lines">@@ -997,26 +1009,30 @@
</span><span class="cx"> RWIProtocolDatabasePrimaryColors o_in_screenColor;
</span><span class="cx"> if (in_screenColor)
</span><span class="cx"> o_in_screenColor = fromProtocolString<RWIProtocolDatabasePrimaryColors>(*in_screenColor);
</span><ins>+ NSArray/*<NSString>*/ *o_in_alternateColors;
+ if (in_alternateColors)
+ o_in_alternateColors = objcStringArray(in_alternateColors.copyRef());
</ins><span class="cx"> RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor o_in_printColor;
</span><span class="cx"> if (in_printColor)
</span><span class="cx"> o_in_printColor = fromProtocolString<RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor>(*in_printColor);
</span><span class="cx">
</span><del>- [m_delegate executeAllOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:(in_columnNames ? &o_in_columnNames : nil) notes:(in_notes ? &o_in_notes : nil) timestamp:(in_timestamp ? &o_in_timestamp : nil) values:(in_values ? &o_in_values : nil) payload:(in_payload ? &o_in_payload : nil) databaseId:(in_databaseId ? &o_in_databaseId : nil) sqlError:(in_sqlError ? &o_in_sqlError : nil) screenColor:(in_screenColor ? &o_in_screenColor : nil) printColor:(in_printColor ? &o_in_printColor : nil)];
</del><ins>+ [m_delegate executeAllOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:(in_columnNames ? &o_in_columnNames : nil) notes:(in_notes ? &o_in_notes : nil) timestamp:(in_timestamp ? &o_in_timestamp : nil) values:(in_values ? &o_in_values : nil) payload:(in_payload ? &o_in_payload : nil) databaseId:(in_databaseId ? &o_in_databaseId : nil) sqlError:(in_sqlError ? &o_in_sqlError : nil) screenColor:(in_screenColor ? &o_in_screenColor : nil) alternateColors:(in_alternateColors ? &o_in_alternateColors : nil) printColor:(in_printColor ? &o_in_printColor : nil)];
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void ObjCInspectorDatabaseBackendDispatcher::executeNoOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const String& in_printColor)
</del><ins>+void ObjCInspectorDatabaseBackendDispatcher::executeNoOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>&& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>&& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>&& in_sqlError, const String& in_screenColor, const RefPtr<Inspector::InspectorArray>&& in_alternateColors, const String& in_printColor)
</ins><span class="cx"> {
</span><span class="cx"> id errorCallback = ^(NSString *error) {
</span><span class="cx"> backendDispatcher()->sendResponse(callId, InspectorObject::create(), error);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor) {
</del><ins>+ id successCallback = ^(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, NSArray/*<NSString>*/ *alternateColors, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor) {
</ins><span class="cx"> Ref<InspectorObject> resultObject = InspectorObject::create();
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(columnNames, @"columnNames");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(notes, @"notes");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(values, @"values");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
</span><ins>+ THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> resultObject->setArray(ASCIILiteral("columnNames"), inspectorStringArray(columnNames));
</span><span class="cx"> resultObject->setString(ASCIILiteral("notes"), notes);
</span><span class="cx"> resultObject->setDouble(ASCIILiteral("timestamp"), timestamp);
</span><span class="lines">@@ -1025,6 +1041,7 @@
</span><span class="cx"> resultObject->setInteger(ASCIILiteral("databaseId"), databaseId);
</span><span class="cx"> resultObject->setObject(ASCIILiteral("sqlError"), [sqlError toInspectorObject]);
</span><span class="cx"> resultObject->setString(ASCIILiteral("screenColor"), toProtocolString(screenColor));
</span><ins>+ resultObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(alternateColors));
</ins><span class="cx"> resultObject->setString(ASCIILiteral("printColor"), toProtocolString(printColor));
</span><span class="cx"> backendDispatcher()->sendResponse(callId, WTF::move(resultObject), String());
</span><span class="cx"> };
</span><span class="lines">@@ -1037,9 +1054,10 @@
</span><span class="cx"> int o_in_databaseId = in_databaseId;
</span><span class="cx"> RWIProtocolDatabaseError *o_in_sqlError = [[[RWIProtocolDatabaseError alloc] initWithInspectorObject:in_sqlError.copyRef()] autorelease];
</span><span class="cx"> RWIProtocolDatabasePrimaryColors o_in_screenColor = fromProtocolString<RWIProtocolDatabasePrimaryColors>(in_screenColor);
</span><ins>+ NSArray/*<NSString>*/ *o_in_alternateColors = objcStringArray(in_alternateColors.copyRef());
</ins><span class="cx"> RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor o_in_printColor = fromProtocolString<RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor>(in_printColor);
</span><span class="cx">
</span><del>- [m_delegate executeNoOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:o_in_columnNames notes:o_in_notes timestamp:o_in_timestamp values:o_in_values payload:o_in_payload databaseId:o_in_databaseId sqlError:o_in_sqlError screenColor:o_in_screenColor printColor:o_in_printColor];
</del><ins>+ [m_delegate executeNoOptionalParametersWithErrorCallback:errorCallback successCallback:successCallback columnNames:o_in_columnNames notes:o_in_notes timestamp:o_in_timestamp values:o_in_values payload:o_in_payload databaseId:o_in_databaseId sqlError:o_in_sqlError screenColor:o_in_screenColor alternateColors:o_in_alternateColors printColor:o_in_printColor];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -1359,8 +1377,8 @@
</span><span class="cx">
</span><span class="cx"> @protocol RWIProtocolDatabaseDomainHandler <NSObject>
</span><span class="cx"> @required
</span><del>-- (void)executeAllOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor))successCallback columnNames:(NSArray/*<NSString>*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload databaseId:(int *)databaseId sqlError:(RWIProtocolDatabaseError **)sqlError screenColor:(RWIProtocolDatabasePrimaryColors *)screenColor printColor:(RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *)printColor;
-- (void)executeNoOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor))successCallback columnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload databaseId:(int)databaseId sqlError:(RWIProtocolDatabaseError *)sqlError screenColor:(RWIProtocolDatabasePrimaryColors)screenColor printColor:(RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor)printColor;
</del><ins>+- (void)executeAllOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ **columnNames, NSString **notes, double *timestamp, RWIProtocolJSONObject **values, RWIProtocolJSONObject **payload, int *databaseId, RWIProtocolDatabaseError **sqlError, RWIProtocolDatabasePrimaryColors *screenColor, NSArray/*<NSString>*/ **alternateColors, RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *printColor))successCallback columnNames:(NSArray/*<NSString>*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload databaseId:(int *)databaseId sqlError:(RWIProtocolDatabaseError **)sqlError screenColor:(RWIProtocolDatabasePrimaryColors *)screenColor alternateColors:(NSArray/*<NSString>*/ **)alternateColors printColor:(RWIProtocolDatabaseExecuteAllOptionalParametersPrintColor *)printColor;
+- (void)executeNoOptionalParametersWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(NSArray/*<NSString>*/ *columnNames, NSString *notes, double timestamp, RWIProtocolJSONObject *values, RWIProtocolJSONObject *payload, int databaseId, RWIProtocolDatabaseError *sqlError, RWIProtocolDatabasePrimaryColors screenColor, NSArray/*<NSString>*/ *alternateColors, RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor printColor))successCallback columnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload databaseId:(int)databaseId sqlError:(RWIProtocolDatabaseError *)sqlError screenColor:(RWIProtocolDatabasePrimaryColors)screenColor alternateColors:(NSArray/*<NSString>*/ *)alternateColors printColor:(RWIProtocolDatabaseExecuteNoOptionalParametersPrintColor)printColor;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedeventswithoptionalparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -90,8 +90,8 @@
</span><span class="cx">
</span><span class="cx"> // Database.
</span><span class="cx"> InspectorBackend.registerDatabaseDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "Database");
</span><del>-InspectorBackend.registerEvent("Database.didExecuteOptionalParameters", ["columnNames", "notes", "timestamp", "values", "payload", "sqlError", "screenColor", "printColor"]);
-InspectorBackend.registerEvent("Database.didExecuteNoOptionalParameters", ["columnNames", "notes", "timestamp", "values", "payload", "sqlError", "screenColor", "printColor"]);
</del><ins>+InspectorBackend.registerEvent("Database.didExecuteOptionalParameters", ["columnNames", "notes", "timestamp", "values", "payload", "sqlError", "screenColor", "alternateColors", "printColor"]);
+InspectorBackend.registerEvent("Database.didExecuteNoOptionalParameters", ["columnNames", "notes", "timestamp", "values", "payload", "sqlError", "screenColor", "alternateColors", "printColor"]);
</ins><span class="cx"> InspectorBackend.activateDomain("Database");
</span><span class="cx"> ### End File: InspectorBackendCommands.js
</span><span class="cx">
</span><span class="lines">@@ -250,8 +250,8 @@
</span><span class="cx"> class InspectorDatabaseFrontendDispatcher {
</span><span class="cx"> public:
</span><span class="cx"> InspectorDatabaseFrontendDispatcher(InspectorFrontendChannel* inspectorFrontendChannel) : m_inspectorFrontendChannel(inspectorFrontendChannel) { }
</span><del>- void didExecuteOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String* const notes, const double* const timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, const String* const printColor);
- void didExecuteNoOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String& notes, double timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors& screenColor, const String& printColor);
</del><ins>+ void didExecuteOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String* const notes, const double* const timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, RefPtr<Inspector::Protocol::Database::ColorList> alternateColors, const String* const printColor);
+ void didExecuteNoOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String& notes, double timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors& screenColor, RefPtr<Inspector::Protocol::Database::ColorList> alternateColors, const String& printColor);
</ins><span class="cx"> private:
</span><span class="cx"> InspectorFrontendChannel* m_inspectorFrontendChannel;
</span><span class="cx"> };
</span><span class="lines">@@ -303,7 +303,7 @@
</span><span class="cx">
</span><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><del>-void InspectorDatabaseFrontendDispatcher::didExecuteOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String* const notes, const double* const timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, const String* const printColor)
</del><ins>+void InspectorDatabaseFrontendDispatcher::didExecuteOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String* const notes, const double* const timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors* const screenColor, RefPtr<Inspector::Protocol::Database::ColorList> alternateColors, const String* const printColor)
</ins><span class="cx"> {
</span><span class="cx"> Ref<InspectorObject> jsonMessage = InspectorObject::create();
</span><span class="cx"> jsonMessage->setString(ASCIILiteral("method"), ASCIILiteral("Database.didExecuteOptionalParameters"));
</span><span class="lines">@@ -322,6 +322,8 @@
</span><span class="cx"> paramsObject->setObject(ASCIILiteral("sqlError"), sqlError);
</span><span class="cx"> if (screenColor)
</span><span class="cx"> paramsObject->setString(ASCIILiteral("screenColor"), *screenColor);
</span><ins>+ if (alternateColors)
+ paramsObject->setArray(ASCIILiteral("alternateColors"), alternateColors);
</ins><span class="cx"> if (printColor)
</span><span class="cx"> paramsObject->setString(ASCIILiteral("printColor"), *printColor);
</span><span class="cx"> jsonMessage->setObject(ASCIILiteral("params"), WTF::move(paramsObject));
</span><span class="lines">@@ -329,7 +331,7 @@
</span><span class="cx"> m_inspectorFrontendChannel->sendMessageToFrontend(jsonMessage->toJSONString());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void InspectorDatabaseFrontendDispatcher::didExecuteNoOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String& notes, double timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors& screenColor, const String& printColor)
</del><ins>+void InspectorDatabaseFrontendDispatcher::didExecuteNoOptionalParameters(RefPtr<Inspector::Protocol::Array<String>> columnNames, const String& notes, double timestamp, RefPtr<Inspector::InspectorObject> values, RefPtr<Inspector::InspectorValue> payload, RefPtr<Inspector::Protocol::Database::Error> sqlError, const Inspector::Protocol::Database::PrimaryColors& screenColor, RefPtr<Inspector::Protocol::Database::ColorList> alternateColors, const String& printColor)
</ins><span class="cx"> {
</span><span class="cx"> Ref<InspectorObject> jsonMessage = InspectorObject::create();
</span><span class="cx"> jsonMessage->setString(ASCIILiteral("method"), ASCIILiteral("Database.didExecuteNoOptionalParameters"));
</span><span class="lines">@@ -341,6 +343,7 @@
</span><span class="cx"> paramsObject->setValue(ASCIILiteral("payload"), payload);
</span><span class="cx"> paramsObject->setObject(ASCIILiteral("sqlError"), sqlError);
</span><span class="cx"> paramsObject->setString(ASCIILiteral("screenColor"), screenColor);
</span><ins>+ paramsObject->setArray(ASCIILiteral("alternateColors"), alternateColors);
</ins><span class="cx"> paramsObject->setString(ASCIILiteral("printColor"), printColor);
</span><span class="cx"> jsonMessage->setObject(ASCIILiteral("params"), WTF::move(paramsObject));
</span><span class="cx">
</span><span class="lines">@@ -409,8 +412,8 @@
</span><span class="cx"> namespace Database {
</span><span class="cx"> /* Unique identifier of Database object. */
</span><span class="cx"> typedef String DatabaseId;
</span><del>-
</del><span class="cx"> typedef String PrimaryColors;
</span><ins>+typedef Inspector::Protocol::Array<Inspector::Protocol::Database::PrimaryColors> ColorList;
</ins><span class="cx"> } // Database
</span><span class="cx"> // End of typedefs.
</span><span class="cx">
</span><span class="lines">@@ -868,7 +871,7 @@
</span><span class="cx"> return self;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)didExecuteOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload sqlError:(RWIProtocolDatabaseError **)sqlError screenColor:(NSString **)screenColor printColor:(NSString **)printColor
</del><ins>+- (void)didExecuteOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload sqlError:(RWIProtocolDatabaseError **)sqlError screenColor:(NSString **)screenColor alternateColors:(NSArray/*<NSString>*/ **)alternateColors printColor:(NSString **)printColor
</ins><span class="cx"> {
</span><span class="cx"> InspectorFrontendChannel* frontendChannel = _controller->frontendChannel();
</span><span class="cx"> if (!frontendChannel)
</span><span class="lines">@@ -880,6 +883,7 @@
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(sqlError, @"sqlError");
</span><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(screenColor, @"screenColor");
</span><ins>+ THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(printColor, @"printColor");
</span><span class="cx">
</span><span class="cx"> Ref<InspectorObject> jsonMessage = InspectorObject::create();
</span><span class="lines">@@ -899,13 +903,15 @@
</span><span class="cx"> paramsObject->setObject(ASCIILiteral("sqlError"), [(*sqlError) toInspectorObject]);
</span><span class="cx"> if (screenColor)
</span><span class="cx"> paramsObject->setString(ASCIILiteral("screenColor"), (*screenColor));
</span><ins>+ if (alternateColors)
+ paramsObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray((*alternateColors)));
</ins><span class="cx"> if (printColor)
</span><span class="cx"> paramsObject->setString(ASCIILiteral("printColor"), (*printColor));
</span><span class="cx"> jsonMessage->setObject(ASCIILiteral("params"), WTF::move(paramsObject));
</span><span class="cx"> frontendChannel->sendMessageToFrontend(jsonMessage->toJSONString());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)didExecuteNoOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload sqlError:(RWIProtocolDatabaseError *)sqlError screenColor:(NSString *)screenColor printColor:(NSString *)printColor
</del><ins>+- (void)didExecuteNoOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload sqlError:(RWIProtocolDatabaseError *)sqlError screenColor:(NSString *)screenColor alternateColors:(NSArray/*<NSString>*/ *)alternateColors printColor:(NSString *)printColor
</ins><span class="cx"> {
</span><span class="cx"> InspectorFrontendChannel* frontendChannel = _controller->frontendChannel();
</span><span class="cx"> if (!frontendChannel)
</span><span class="lines">@@ -917,6 +923,7 @@
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(sqlError, @"sqlError");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(screenColor, @"screenColor");
</span><ins>+ THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(alternateColors, @"alternateColors");
</ins><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(printColor, @"printColor");
</span><span class="cx">
</span><span class="cx"> Ref<InspectorObject> jsonMessage = InspectorObject::create();
</span><span class="lines">@@ -929,6 +936,7 @@
</span><span class="cx"> paramsObject->setValue(ASCIILiteral("payload"), [payload toInspectorObject]);
</span><span class="cx"> paramsObject->setObject(ASCIILiteral("sqlError"), [sqlError toInspectorObject]);
</span><span class="cx"> paramsObject->setString(ASCIILiteral("screenColor"), screenColor);
</span><ins>+ paramsObject->setArray(ASCIILiteral("alternateColors"), inspectorStringArray(alternateColors));
</ins><span class="cx"> paramsObject->setString(ASCIILiteral("printColor"), printColor);
</span><span class="cx"> jsonMessage->setObject(ASCIILiteral("params"), WTF::move(paramsObject));
</span><span class="cx"> frontendChannel->sendMessageToFrontend(jsonMessage->toJSONString());
</span><span class="lines">@@ -991,8 +999,8 @@
</span><span class="cx">
</span><span class="cx"> __attribute__((visibility ("default")))
</span><span class="cx"> @interface RWIProtocolDatabaseDomainEventDispatcher : NSObject
</span><del>-- (void)didExecuteOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload sqlError:(RWIProtocolDatabaseError **)sqlError screenColor:(NSString **)screenColor printColor:(NSString **)printColor;
-- (void)didExecuteNoOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload sqlError:(RWIProtocolDatabaseError *)sqlError screenColor:(NSString *)screenColor printColor:(NSString *)printColor;
</del><ins>+- (void)didExecuteOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ **)columnNames notes:(NSString **)notes timestamp:(double *)timestamp values:(RWIProtocolJSONObject **)values payload:(RWIProtocolJSONObject **)payload sqlError:(RWIProtocolDatabaseError **)sqlError screenColor:(NSString **)screenColor alternateColors:(NSArray/*<NSString>*/ **)alternateColors printColor:(NSString **)printColor;
+- (void)didExecuteNoOptionalParametersWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload sqlError:(RWIProtocolDatabaseError *)sqlError screenColor:(NSString *)screenColor alternateColors:(NSArray/*<NSString>*/ *)alternateColors printColor:(NSString *)printColor;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -356,6 +356,11 @@
</span><span class="cx">
</span><span class="cx"> namespace Runtime {
</span><span class="cx"> typedef int ObjectId;
</span><ins>+typedef Inspector::Protocol::Array<int> LuckyNumbers;
+typedef Inspector::Protocol::Array<String> BabyNames;
+typedef Inspector::Protocol::Array<Inspector::Protocol::Runtime::ObjectId> NewObjects;
+typedef Inspector::Protocol::Array<Inspector::Protocol::Debugger::BreakpointId> OldObjects;
+typedef Inspector::Protocol::Array<Inspector::Protocol::Debugger::Reason> StopReasons;
</ins><span class="cx"> } // Runtime
</span><span class="cx"> // End of typedefs.
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationobjecttypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -354,8 +354,12 @@
</span><span class="cx"> // End of forward declarations.
</span><span class="cx">
</span><span class="cx">
</span><ins>+// Typedefs.
+namespace Database {
+typedef Inspector::Protocol::Array<Inspector::Protocol::Database::Error> ErrorList;
+} // Database
+// End of typedefs.
</ins><span class="cx">
</span><del>-
</del><span class="cx"> String getEnumConstantValue(int code);
</span><span class="cx">
</span><span class="cx"> template<typename T> String getEnumConstantValue(T enumValue)
</span><span class="lines">@@ -503,6 +507,11 @@
</span><span class="cx"> {
</span><span class="cx"> InspectorObjectBase::setObject(ASCIILiteral("error"), WTF::move(value));
</span><span class="cx"> }
</span><ins>+
+ void setErrorList(RefPtr<Inspector::Protocol::Database::ErrorList> value)
+ {
+ InspectorObjectBase::setArray(ASCIILiteral("errorList"), WTF::move(value));
+ }
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class ParameterBundle : public Inspector::InspectorObjectBase {
</span><span class="lines">@@ -515,7 +524,8 @@
</span><span class="cx"> ValuesSet = 1 << 3,
</span><span class="cx"> PayloadSet = 1 << 4,
</span><span class="cx"> ErrorSet = 1 << 5,
</span><del>- AllFieldsSet = (ColumnNamesSet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet)
</del><ins>+ ErrorListSet = 1 << 6,
+ AllFieldsSet = (ColumnNamesSet | NotesSet | TimestampSet | ValuesSet | PayloadSet | ErrorSet | ErrorListSet)
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> template<int STATE>
</span><span class="lines">@@ -578,6 +588,13 @@
</span><span class="cx"> return castState<ErrorSet>();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ Builder<STATE | ErrorListSet>& setErrorList(RefPtr<Inspector::Protocol::Database::ErrorList> value)
+ {
+ COMPILE_ASSERT(!(STATE & ErrorListSet), property_errorList_already_set);
+ m_result->setArray(ASCIILiteral("errorList"), value);
+ return castState<ErrorListSet>();
+ }
+
</ins><span class="cx"> Ref<ParameterBundle> release()
</span><span class="cx"> {
</span><span class="cx"> COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
</span><span class="lines">@@ -597,6 +614,7 @@
</span><span class="cx"> * .setValues(...)
</span><span class="cx"> * .setPayload(...)
</span><span class="cx"> * .setError(...)
</span><ins>+ * .setErrorList(...)
</ins><span class="cx"> * .release();
</span><span class="cx"> */
</span><span class="cx"> static Builder<NoFieldsSet> create()
</span><span class="lines">@@ -1230,17 +1248,19 @@
</span><span class="cx"> /* optional */ @property (nonatomic, retain) RWIProtocolJSONObject *values;
</span><span class="cx"> /* optional */ @property (nonatomic, retain) RWIProtocolJSONObject *payload;
</span><span class="cx"> /* optional */ @property (nonatomic, retain) RWIProtocolDatabaseError *error;
</span><ins>+/* optional */ @property (nonatomic, copy) NSArray/*<RWIProtocolDatabaseError>*/ *errorList;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> __attribute__((visibility ("default")))
</span><span class="cx"> @interface RWIProtocolDatabaseParameterBundle : RWIProtocolJSONObject
</span><del>-- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(RWIProtocolDatabaseError *)error;
</del><ins>+- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(RWIProtocolDatabaseError *)error errorList:(NSArray/*<RWIProtocolDatabaseError>*/ *)errorList;
</ins><span class="cx"> /* required */ @property (nonatomic, copy) NSArray/*<NSString>*/ *columnNames;
</span><span class="cx"> /* required */ @property (nonatomic, copy) NSString *notes;
</span><span class="cx"> /* required */ @property (nonatomic, assign) double timestamp;
</span><span class="cx"> /* required */ @property (nonatomic, retain) RWIProtocolJSONObject *values;
</span><span class="cx"> /* required */ @property (nonatomic, retain) RWIProtocolJSONObject *payload;
</span><span class="cx"> /* required */ @property (nonatomic, retain) RWIProtocolDatabaseError *error;
</span><ins>+/* required */ @property (nonatomic, copy) NSArray/*<RWIProtocolDatabaseError>*/ *errorList;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> __attribute__((visibility ("default")))
</span><span class="lines">@@ -1416,11 +1436,22 @@
</span><span class="cx"> return (RWIProtocolDatabaseError *)[super objectForKey:@"error"];
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+- (void)setErrorList:(NSArray/*<RWIProtocolDatabaseError>*/ *)errorList
+{
+ THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(errorList, [RWIProtocolDatabaseError class]);
+ [super setInspectorArray:inspectorObjectArray(errorList) forKey:@"errorList"];
+}
+
+- (NSArray/*<RWIProtocolDatabaseError>*/ *)errorList
+{
+ return objcArray<RWIProtocolDatabaseError>([super inspectorArrayForKey:@"errorList"]);
+}
+
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> @implementation RWIProtocolDatabaseParameterBundle
</span><span class="cx">
</span><del>-- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(RWIProtocolDatabaseError *)error;
</del><ins>+- (instancetype)initWithColumnNames:(NSArray/*<NSString>*/ *)columnNames notes:(NSString *)notes timestamp:(double)timestamp values:(RWIProtocolJSONObject *)values payload:(RWIProtocolJSONObject *)payload error:(RWIProtocolDatabaseError *)error errorList:(NSArray/*<RWIProtocolDatabaseError>*/ *)errorList;
</ins><span class="cx"> {
</span><span class="cx"> self = [super init];
</span><span class="cx"> if (!self)
</span><span class="lines">@@ -1431,6 +1462,8 @@
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(values, @"values");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload, @"payload");
</span><span class="cx"> THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(error, @"error");
</span><ins>+ THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(errorList, @"errorList");
+ THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(errorList, [RWIProtocolDatabaseError class]);
</ins><span class="cx">
</span><span class="cx"> self.columnNames = columnNames;
</span><span class="cx"> self.notes = notes;
</span><span class="lines">@@ -1438,6 +1471,7 @@
</span><span class="cx"> self.values = values;
</span><span class="cx"> self.payload = payload;
</span><span class="cx"> self.error = error;
</span><ins>+ self.errorList = errorList;
</ins><span class="cx">
</span><span class="cx"> return self;
</span><span class="cx"> }
</span><span class="lines">@@ -1502,6 +1536,17 @@
</span><span class="cx"> return (RWIProtocolDatabaseError *)[super objectForKey:@"error"];
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+- (void)setErrorList:(NSArray/*<RWIProtocolDatabaseError>*/ *)errorList
+{
+ THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(errorList, [RWIProtocolDatabaseError class]);
+ [super setInspectorArray:inspectorObjectArray(errorList) forKey:@"errorList"];
+}
+
+- (NSArray/*<RWIProtocolDatabaseError>*/ *)errorList
+{
+ return objcArray<RWIProtocolDatabaseError>([super inspectorArrayForKey:@"errorList"]);
+}
+
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> @implementation RWIProtocolDatabaseObjectWithPropertyNameConflicts
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -357,7 +357,6 @@
</span><span class="cx"> // Typedefs.
</span><span class="cx"> namespace Test {
</span><span class="cx"> typedef int CastedObjectId;
</span><del>-
</del><span class="cx"> typedef int UncastedObjectId;
</span><span class="cx"> } // Test
</span><span class="cx"> // End of typedefs.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsteststypedeclarationobjecttypejson"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json (178605 => 178606)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json        2015-01-16 22:51:30 UTC (rev 178605)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/type-declaration-object-type.json        2015-01-16 23:17:45 UTC (rev 178606)
</span><span class="lines">@@ -13,6 +13,11 @@
</span><span class="cx"> ]
</span><span class="cx"> },
</span><span class="cx"> {
</span><ins>+ "id": "ErrorList",
+ "type": "array",
+ "items": { "$ref": "Error" }
+ },
+ {
</ins><span class="cx"> "id": "OptionalParameterBundle",
</span><span class="cx"> "type": "object",
</span><span class="cx"> "properties": [
</span><span class="lines">@@ -21,7 +26,8 @@
</span><span class="cx"> { "name": "timestamp", "type": "number", "optional": true },
</span><span class="cx"> { "name": "values", "type": "object", "optional": true },
</span><span class="cx"> { "name": "payload", "type": "any", "optional": true },
</span><del>- { "name": "error", "$ref": "Error", "optional": true }
</del><ins>+ { "name": "error", "$ref": "Error", "optional": true },
+ { "name": "errorList", "$ref": "ErrorList", "optional": true }
</ins><span class="cx"> ]
</span><span class="cx"> },
</span><span class="cx"> {
</span><span class="lines">@@ -33,7 +39,8 @@
</span><span class="cx"> { "name": "timestamp", "type": "number" },
</span><span class="cx"> { "name": "values", "type": "object" },
</span><span class="cx"> { "name": "payload", "type": "any" },
</span><del>- { "name": "error", "$ref": "Error" }
</del><ins>+ { "name": "error", "$ref": "Error" },
+ { "name": "errorList", "$ref": "ErrorList" }
</ins><span class="cx"> ]
</span><span class="cx"> },
</span><span class="cx"> {
</span></span></pre>
</div>
</div>
</body>
</html>