<!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>[210309] 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/210309">210309</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2017-01-04 17:22:41 -0800 (Wed, 04 Jan 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: teach the protocol generator about platform-specific types, events, and commands
https://bugs.webkit.org/show_bug.cgi?id=166003
&lt;rdar://problem/28718990&gt;

Reviewed by Joseph Pecoraro.

This patch implements parser, model, and generator-side changes to account for
platform-specific types, events, and commands. The 'platform' property is parsed
for top-level definitions and assumed to be the 'generic' platform if none is specified.

Since the generator's platform setting acts to filter definitions with an incompatible platform,
all generators must be modified to consult a list of filtered types/commands/events for
a domain instead of directly accessing Domain.{type_declarations, commands, events}. To prevent
accidental misuse, hide those fields behind accessors (e.g., `all_type_declarations()`) so that they
are still accessible if truly necessary, but not used by default and caused an error if not migrated.

* inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
(CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator.domains_to_generate):
(CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
(CppBackendDispatcherImplementationGenerator.domains_to_generate):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
(CppFrontendDispatcherHeaderGenerator.domains_to_generate):
(CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
(CppFrontendDispatcherImplementationGenerator.domains_to_generate):
(CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
* inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(CppProtocolTypesHeaderGenerator._generate_forward_declarations):
(_generate_typedefs_for_domain):
(_generate_builders_for_domain):
(_generate_forward_declarations_for_binding_traits):
(_generate_declarations_for_enum_conversion_methods):
* inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
(CppProtocolTypesImplementationGenerator._generate_open_field_names):
(CppProtocolTypesImplementationGenerator._generate_builders_for_domain):
* inspector/scripts/codegen/generate_js_backend_commands.py:
(JSBackendCommandsGenerator.should_generate_domain):
(JSBackendCommandsGenerator.domains_to_generate):
(JSBackendCommandsGenerator.generate_domain):
(JSBackendCommandsGenerator.domains_to_generate.should_generate_domain): Deleted.
* inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
(ObjCBackendDispatcherHeaderGenerator.domains_to_generate):
(ObjCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations):
(ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain):
* inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
(ObjCBackendDispatcherImplementationGenerator):
(ObjCBackendDispatcherImplementationGenerator.domains_to_generate):
(ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain):
(ObjCConfigurationImplementationGenerator): Deleted.
(ObjCConfigurationImplementationGenerator.__init__): Deleted.
(ObjCConfigurationImplementationGenerator.output_filename): Deleted.
(ObjCConfigurationImplementationGenerator.domains_to_generate): Deleted.
(ObjCConfigurationImplementationGenerator.generate_output): Deleted.
(ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_domain): Deleted.
(ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_command): Deleted.
(ObjCConfigurationImplementationGenerator._generate_success_block_for_command): Deleted.
(ObjCConfigurationImplementationGenerator._generate_success_block_for_command.and): Deleted.
(ObjCConfigurationImplementationGenerator._generate_conversions_for_command): Deleted.
(ObjCConfigurationImplementationGenerator._generate_conversions_for_command.in_param_expression): Deleted.
(ObjCConfigurationImplementationGenerator._generate_invocation_for_command): Deleted.
* inspector/scripts/codegen/generate_objc_configuration_header.py:
(ObjCConfigurationHeaderGenerator.generate_output):
(ObjCConfigurationHeaderGenerator._generate_properties_for_domain):
* inspector/scripts/codegen/generate_objc_configuration_implementation.py:
(ObjCConfigurationImplementationGenerator):
(ObjCConfigurationImplementationGenerator.generate_output):
(ObjCConfigurationImplementationGenerator._generate_configuration_implementation_for_domains):
(ObjCConfigurationImplementationGenerator._generate_ivars):
(ObjCConfigurationImplementationGenerator._generate_dealloc):
(ObjCBackendDispatcherImplementationGenerator): Deleted.
(ObjCBackendDispatcherImplementationGenerator.__init__): Deleted.
(ObjCBackendDispatcherImplementationGenerator.output_filename): Deleted.
(ObjCBackendDispatcherImplementationGenerator.generate_output): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_configuration_implementation_for_domains): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_ivars): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_dealloc): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_handler_setter_for_domain): Deleted.
(ObjCBackendDispatcherImplementationGenerator._generate_event_dispatcher_getter_for_domain): Deleted.
(ObjCBackendDispatcherImplementationGenerator._variable_name_prefix_for_domain): Deleted.
* inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
(ObjCFrontendDispatcherImplementationGenerator.domains_to_generate):
(ObjCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):
* inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator.generate_output):
(ObjCHeaderGenerator._generate_forward_declarations):
(ObjCHeaderGenerator._generate_enums):
(ObjCHeaderGenerator._generate_types):
(ObjCHeaderGenerator._generate_command_protocols):
(ObjCHeaderGenerator._generate_event_interfaces):
* inspector/scripts/codegen/generate_objc_internal_header.py:
(ObjCInternalHeaderGenerator.generate_output):
(ObjCInternalHeaderGenerator._generate_event_dispatcher_private_interfaces):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
(ObjCProtocolTypeConversionsHeaderGenerator.domains_to_generate):
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
(ObjCProtocolTypeConversionsImplementationGenerator.domains_to_generate):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):
* inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
(ObjCProtocolTypesImplementationGenerator.domains_to_generate):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementations):

* inspector/scripts/codegen/generator.py:
(Generator.can_generate_platform):
(Generator):
(Generator.type_declarations_for_domain):
(Generator.commands_for_domain):
(Generator.events_for_domain):
These are the core methods for computing whether a definition can be used given a target platform.

(Generator.calculate_types_requiring_shape_assertions):
(Generator._traverse_and_assign_enum_values):
* inspector/scripts/codegen/models.py:
(Protocol.parse_type_declaration):
(Protocol.parse_command):
(Protocol.parse_event):
(Protocol.resolve_types):

(Domain.__init__):
(Domain):
(Domain.all_type_declarations):
(Domain.all_commands):
(Domain.all_events):
Hide fields behind these accessors so it's really obvious when we are ignoring platform filtering.

(Domain.resolve_type_references):
(TypeDeclaration.__init__):
(Command.__init__):
(Event.__init__):
* inspector/scripts/codegen/objc_generator.py:
(ObjCGenerator.should_generate_types_for_domain):
(ObjCGenerator):
(ObjCGenerator.should_generate_commands_for_domain):
(ObjCGenerator.should_generate_events_for_domain):
(ObjCGenerator.should_generate_domain_types_filter): Deleted.
(ObjCGenerator.should_generate_domain_types_filter.should_generate_domain_types): Deleted.
(ObjCGenerator.should_generate_domain_command_handler_filter): Deleted.
(ObjCGenerator.should_generate_domain_command_handler_filter.should_generate_domain_command_handler): Deleted.
(ObjCGenerator.should_generate_domain_event_dispatcher_filter): Deleted.
(ObjCGenerator.should_generate_domain_event_dispatcher_filter.should_generate_domain_event_dispatcher): Deleted.
Clean up some messy code that essentially did the same definition filtering as we must do for platforms.
This will be enhanced in a future patch so that platform filtering will take priority over the target framework.

The results above need rebaselining because the class names for two generators were swapped by accident.
Fixing the names causes the order of generated files to change, and this generates ugly diffs because every
generated file includes the same copyright block at the top.

* inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
* inspector/scripts/tests/generic/expected/enum-values.json-result:
* inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
* inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
* inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result:
* inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
* inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
* inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:

* inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error: Added.
* inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error: Added.
* inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json: Added.
* inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json: Added.

Add error test cases for invalid platforms in commands, types, and events.

* inspector/scripts/tests/generic/definitions-with-mac-platform.json: Added.
* inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result: Added.
* inspector/scripts/tests/all/definitions-with-mac-platform.json: Added.
* inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result: Added.
* inspector/scripts/tests/ios/definitions-with-mac-platform.json: Added.
* inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: Added.
* inspector/scripts/tests/mac/definitions-with-mac-platform.json: Added.
* inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result: Added.

Add a basic 4-way test that generates code for each platform from the same specification.
With 'macos' platform for each definition, only 'all' and 'mac' generate anything interesting.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_alternate_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.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="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_js_backend_commandspy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_internal_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_types_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengeneratorpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegenmodelspy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegenobjc_generatorpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithasyncattributejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithoptionalcallreturnparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpecteddomainswithvaryingcommandsizesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedenumvaluesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedeventswithoptionalparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedgeneratedomainswithfeatureguardsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedsametypeiddifferentdomainjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedshadowedoptionaltypesettersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationaliasedprimitivetypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationarraytypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationenumtypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationobjecttypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtyperequiringruntimecastsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/all/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsalldefinitionswithmacplatformjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/all/definitions-with-mac-platform.json</a></li>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/all/expected/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsallexpecteddefinitionswithmacplatformjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericdefinitionswithmacplatformjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/definitions-with-mac-platform.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpecteddefinitionswithmacplatformjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailoncommandwithinvalidplatformjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypewithinvalidplatformjsonerror">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailoncommandwithinvalidplatformjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypewithinvalidplatformjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json</a></li>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsiosdefinitionswithmacplatformjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/definitions-with-mac-platform.json</a></li>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/expected/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsiosexpecteddefinitionswithmacplatformjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result</a></li>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsmacdefinitionswithmacplatformjson">trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json</a></li>
<li>trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/expected/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsmacexpecteddefinitionswithmacplatformjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/ChangeLog        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -1,3 +1,194 @@
</span><ins>+2016-12-21  Brian Burg  &lt;bburg@apple.com&gt;
+
+        Web Inspector: teach the protocol generator about platform-specific types, events, and commands
+        https://bugs.webkit.org/show_bug.cgi?id=166003
+        &lt;rdar://problem/28718990&gt;
+
+        Reviewed by Joseph Pecoraro.
+
+        This patch implements parser, model, and generator-side changes to account for
+        platform-specific types, events, and commands. The 'platform' property is parsed
+        for top-level definitions and assumed to be the 'generic' platform if none is specified.
+
+        Since the generator's platform setting acts to filter definitions with an incompatible platform,
+        all generators must be modified to consult a list of filtered types/commands/events for
+        a domain instead of directly accessing Domain.{type_declarations, commands, events}. To prevent
+        accidental misuse, hide those fields behind accessors (e.g., `all_type_declarations()`) so that they
+        are still accessible if truly necessary, but not used by default and caused an error if not migrated.
+
+        * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
+        (CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
+        (CppBackendDispatcherHeaderGenerator.domains_to_generate):
+        (CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
+        (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
+        (CppBackendDispatcherImplementationGenerator.domains_to_generate):
+        (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
+        (CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain):
+        (CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
+        (CppFrontendDispatcherHeaderGenerator.domains_to_generate):
+        (CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
+        (CppFrontendDispatcherImplementationGenerator.domains_to_generate):
+        (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
+        (CppProtocolTypesHeaderGenerator._generate_forward_declarations):
+        (_generate_typedefs_for_domain):
+        (_generate_builders_for_domain):
+        (_generate_forward_declarations_for_binding_traits):
+        (_generate_declarations_for_enum_conversion_methods):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
+        (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
+        (CppProtocolTypesImplementationGenerator._generate_open_field_names):
+        (CppProtocolTypesImplementationGenerator._generate_builders_for_domain):
+        * inspector/scripts/codegen/generate_js_backend_commands.py:
+        (JSBackendCommandsGenerator.should_generate_domain):
+        (JSBackendCommandsGenerator.domains_to_generate):
+        (JSBackendCommandsGenerator.generate_domain):
+        (JSBackendCommandsGenerator.domains_to_generate.should_generate_domain): Deleted.
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
+        (ObjCBackendDispatcherHeaderGenerator.domains_to_generate):
+        (ObjCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations):
+        (ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain):
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
+        (ObjCBackendDispatcherImplementationGenerator):
+        (ObjCBackendDispatcherImplementationGenerator.domains_to_generate):
+        (ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain):
+        (ObjCConfigurationImplementationGenerator): Deleted.
+        (ObjCConfigurationImplementationGenerator.__init__): Deleted.
+        (ObjCConfigurationImplementationGenerator.output_filename): Deleted.
+        (ObjCConfigurationImplementationGenerator.domains_to_generate): Deleted.
+        (ObjCConfigurationImplementationGenerator.generate_output): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_domain): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_command): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_success_block_for_command): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_success_block_for_command.and): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_conversions_for_command): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_conversions_for_command.in_param_expression): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_invocation_for_command): Deleted.
+        * inspector/scripts/codegen/generate_objc_configuration_header.py:
+        (ObjCConfigurationHeaderGenerator.generate_output):
+        (ObjCConfigurationHeaderGenerator._generate_properties_for_domain):
+        * inspector/scripts/codegen/generate_objc_configuration_implementation.py:
+        (ObjCConfigurationImplementationGenerator):
+        (ObjCConfigurationImplementationGenerator.generate_output):
+        (ObjCConfigurationImplementationGenerator._generate_configuration_implementation_for_domains):
+        (ObjCConfigurationImplementationGenerator._generate_ivars):
+        (ObjCConfigurationImplementationGenerator._generate_dealloc):
+        (ObjCBackendDispatcherImplementationGenerator): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator.__init__): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator.output_filename): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator.generate_output): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_configuration_implementation_for_domains): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_ivars): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_dealloc): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_handler_setter_for_domain): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_event_dispatcher_getter_for_domain): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._variable_name_prefix_for_domain): Deleted.
+        * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
+        (ObjCFrontendDispatcherImplementationGenerator.domains_to_generate):
+        (ObjCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):
+        * inspector/scripts/codegen/generate_objc_header.py:
+        (ObjCHeaderGenerator.generate_output):
+        (ObjCHeaderGenerator._generate_forward_declarations):
+        (ObjCHeaderGenerator._generate_enums):
+        (ObjCHeaderGenerator._generate_types):
+        (ObjCHeaderGenerator._generate_command_protocols):
+        (ObjCHeaderGenerator._generate_event_interfaces):
+        * inspector/scripts/codegen/generate_objc_internal_header.py:
+        (ObjCInternalHeaderGenerator.generate_output):
+        (ObjCInternalHeaderGenerator._generate_event_dispatcher_private_interfaces):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
+        (ObjCProtocolTypeConversionsHeaderGenerator.domains_to_generate):
+        (ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
+        (ObjCProtocolTypeConversionsImplementationGenerator.domains_to_generate):
+        (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
+        (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):
+        * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
+        (ObjCProtocolTypesImplementationGenerator.domains_to_generate):
+        (ObjCProtocolTypesImplementationGenerator.generate_type_implementations):
+
+        * inspector/scripts/codegen/generator.py:
+        (Generator.can_generate_platform):
+        (Generator):
+        (Generator.type_declarations_for_domain):
+        (Generator.commands_for_domain):
+        (Generator.events_for_domain):
+        These are the core methods for computing whether a definition can be used given a target platform.
+
+        (Generator.calculate_types_requiring_shape_assertions):
+        (Generator._traverse_and_assign_enum_values):
+        * inspector/scripts/codegen/models.py:
+        (Protocol.parse_type_declaration):
+        (Protocol.parse_command):
+        (Protocol.parse_event):
+        (Protocol.resolve_types):
+
+        (Domain.__init__):
+        (Domain):
+        (Domain.all_type_declarations):
+        (Domain.all_commands):
+        (Domain.all_events):
+        Hide fields behind these accessors so it's really obvious when we are ignoring platform filtering.
+
+        (Domain.resolve_type_references):
+        (TypeDeclaration.__init__):
+        (Command.__init__):
+        (Event.__init__):
+        * inspector/scripts/codegen/objc_generator.py:
+        (ObjCGenerator.should_generate_types_for_domain):
+        (ObjCGenerator):
+        (ObjCGenerator.should_generate_commands_for_domain):
+        (ObjCGenerator.should_generate_events_for_domain):
+        (ObjCGenerator.should_generate_domain_types_filter): Deleted.
+        (ObjCGenerator.should_generate_domain_types_filter.should_generate_domain_types): Deleted.
+        (ObjCGenerator.should_generate_domain_command_handler_filter): Deleted.
+        (ObjCGenerator.should_generate_domain_command_handler_filter.should_generate_domain_command_handler): Deleted.
+        (ObjCGenerator.should_generate_domain_event_dispatcher_filter): Deleted.
+        (ObjCGenerator.should_generate_domain_event_dispatcher_filter.should_generate_domain_event_dispatcher): Deleted.
+        Clean up some messy code that essentially did the same definition filtering as we must do for platforms.
+        This will be enhanced in a future patch so that platform filtering will take priority over the target framework.
+
+        The results above need rebaselining because the class names for two generators were swapped by accident.
+        Fixing the names causes the order of generated files to change, and this generates ugly diffs because every
+        generated file includes the same copyright block at the top.
+
+        * inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
+        * inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
+        * inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
+        * inspector/scripts/tests/generic/expected/enum-values.json-result:
+        * inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
+        * inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
+        * inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result:
+        * inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
+
+        * inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error: Added.
+        * inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error: Added.
+        * inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json: Added.
+        * inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json: Added.
+
+        Add error test cases for invalid platforms in commands, types, and events.
+
+        * inspector/scripts/tests/generic/definitions-with-mac-platform.json: Added.
+        * inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result: Added.
+        * inspector/scripts/tests/all/definitions-with-mac-platform.json: Added.
+        * inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result: Added.
+        * inspector/scripts/tests/ios/definitions-with-mac-platform.json: Added.
+        * inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: Added.
+        * inspector/scripts/tests/mac/definitions-with-mac-platform.json: Added.
+        * inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result: Added.
+
+        Add a basic 4-way test that generates code for each platform from the same specification.
+        With 'macos' platform for each definition, only 'all' and 'mac' generate anything interesting.
+
</ins><span class="cx"> 2017-01-03  Brian Burg  &lt;bburg@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: teach the protocol generator about platform-specific types, events, and commands
</span><span class="lines">@@ -6,6 +197,178 @@
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Joseph Pecoraro.
</span><span class="cx"> 
</span><ins>+        This patch implements parser, model, and generator-side changes to account for
+        platform-specific types, events, and commands. The 'platform' property is parsed
+        for top-level definitions and assumed to be the 'generic' platform if none is specified.
+
+        Since the generator's platform setting acts to filter definitions with an incompatible platform,
+        all generators must be modified to consult a list of filtered types/commands/events for
+        a domain instead of directly accessing Domain.{type_declarations, commands, events}. To prevent
+        accidental misuse, hide those fields behind accessors (e.g., `all_type_declarations()`) so that they
+        are still accessible if truly necessary, but not used by default and caused an error if not migrated.
+
+        * inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
+        (CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
+        (CppBackendDispatcherHeaderGenerator.domains_to_generate):
+        (CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
+        (CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
+        (CppBackendDispatcherImplementationGenerator.domains_to_generate):
+        (CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
+        (CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain):
+        (CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
+        (CppFrontendDispatcherHeaderGenerator.domains_to_generate):
+        (CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
+        (CppFrontendDispatcherImplementationGenerator.domains_to_generate):
+        (CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
+        (CppProtocolTypesHeaderGenerator._generate_forward_declarations):
+        (_generate_typedefs_for_domain):
+        (_generate_builders_for_domain):
+        (_generate_forward_declarations_for_binding_traits):
+        (_generate_declarations_for_enum_conversion_methods):
+        * inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
+        (CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
+        (CppProtocolTypesImplementationGenerator._generate_open_field_names):
+        (CppProtocolTypesImplementationGenerator._generate_builders_for_domain):
+        * inspector/scripts/codegen/generate_js_backend_commands.py:
+        (JSBackendCommandsGenerator.should_generate_domain):
+        (JSBackendCommandsGenerator.domains_to_generate):
+        (JSBackendCommandsGenerator.generate_domain):
+        (JSBackendCommandsGenerator.domains_to_generate.should_generate_domain): Deleted.
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
+        (ObjCBackendDispatcherHeaderGenerator.domains_to_generate):
+        (ObjCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations):
+        (ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain):
+        * inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
+        (ObjCBackendDispatcherImplementationGenerator):
+        (ObjCBackendDispatcherImplementationGenerator.domains_to_generate):
+        (ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain):
+        (ObjCConfigurationImplementationGenerator): Deleted.
+        (ObjCConfigurationImplementationGenerator.__init__): Deleted.
+        (ObjCConfigurationImplementationGenerator.output_filename): Deleted.
+        (ObjCConfigurationImplementationGenerator.domains_to_generate): Deleted.
+        (ObjCConfigurationImplementationGenerator.generate_output): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_domain): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_handler_implementation_for_command): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_success_block_for_command): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_success_block_for_command.and): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_conversions_for_command): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_conversions_for_command.in_param_expression): Deleted.
+        (ObjCConfigurationImplementationGenerator._generate_invocation_for_command): Deleted.
+        * inspector/scripts/codegen/generate_objc_configuration_header.py:
+        (ObjCConfigurationHeaderGenerator.generate_output):
+        (ObjCConfigurationHeaderGenerator._generate_properties_for_domain):
+        * inspector/scripts/codegen/generate_objc_configuration_implementation.py:
+        (ObjCConfigurationImplementationGenerator):
+        (ObjCConfigurationImplementationGenerator.generate_output):
+        (ObjCConfigurationImplementationGenerator._generate_configuration_implementation_for_domains):
+        (ObjCConfigurationImplementationGenerator._generate_ivars):
+        (ObjCConfigurationImplementationGenerator._generate_dealloc):
+        (ObjCBackendDispatcherImplementationGenerator): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator.__init__): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator.output_filename): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator.generate_output): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_configuration_implementation_for_domains): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_ivars): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_dealloc): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_handler_setter_for_domain): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._generate_event_dispatcher_getter_for_domain): Deleted.
+        (ObjCBackendDispatcherImplementationGenerator._variable_name_prefix_for_domain): Deleted.
+        * inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
+        (ObjCFrontendDispatcherImplementationGenerator.domains_to_generate):
+        (ObjCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):
+        * inspector/scripts/codegen/generate_objc_header.py:
+        (ObjCHeaderGenerator.generate_output):
+        (ObjCHeaderGenerator._generate_forward_declarations):
+        (ObjCHeaderGenerator._generate_enums):
+        (ObjCHeaderGenerator._generate_types):
+        (ObjCHeaderGenerator._generate_command_protocols):
+        (ObjCHeaderGenerator._generate_event_interfaces):
+        * inspector/scripts/codegen/generate_objc_internal_header.py:
+        (ObjCInternalHeaderGenerator.generate_output):
+        (ObjCInternalHeaderGenerator._generate_event_dispatcher_private_interfaces):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
+        (ObjCProtocolTypeConversionsHeaderGenerator.domains_to_generate):
+        (ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):
+        * inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
+        (ObjCProtocolTypeConversionsImplementationGenerator.domains_to_generate):
+        (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
+        (ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):
+        * inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
+        (ObjCProtocolTypesImplementationGenerator.domains_to_generate):
+        (ObjCProtocolTypesImplementationGenerator.generate_type_implementations):
+
+        * inspector/scripts/codegen/generator.py:
+        (Generator.can_generate_platform):
+        (Generator):
+        (Generator.type_declarations_for_domain):
+        (Generator.commands_for_domain):
+        (Generator.events_for_domain):
+        These are the core methods for computing whether a definition can be used given a target platform.
+
+        (Generator.calculate_types_requiring_shape_assertions):
+        (Generator._traverse_and_assign_enum_values):
+        * inspector/scripts/codegen/models.py:
+        (Protocol.parse_type_declaration):
+        (Protocol.parse_command):
+        (Protocol.parse_event):
+        (Protocol.resolve_types):
+
+        (Domain.__init__):
+        (Domain):
+        (Domain.all_type_declarations):
+        (Domain.all_commands):
+        (Domain.all_events):
+        Hide fields behind these accessors so it's really obvious when we are ignoring platform filtering.
+
+        (Domain.resolve_type_references):
+        (TypeDeclaration.__init__):
+        (Command.__init__):
+        (Event.__init__):
+        * inspector/scripts/codegen/objc_generator.py:
+        (ObjCGenerator.should_generate_types_for_domain):
+        (ObjCGenerator):
+        (ObjCGenerator.should_generate_commands_for_domain):
+        (ObjCGenerator.should_generate_events_for_domain):
+        (ObjCGenerator.should_generate_domain_types_filter): Deleted.
+        (ObjCGenerator.should_generate_domain_types_filter.should_generate_domain_types): Deleted.
+        (ObjCGenerator.should_generate_domain_command_handler_filter): Deleted.
+        (ObjCGenerator.should_generate_domain_command_handler_filter.should_generate_domain_command_handler): Deleted.
+        (ObjCGenerator.should_generate_domain_event_dispatcher_filter): Deleted.
+        (ObjCGenerator.should_generate_domain_event_dispatcher_filter.should_generate_domain_event_dispatcher): Deleted.
+        Clean up some messy code that essentially did the same definition filtering as we must do for platforms.
+        This will be enhanced in a future patch so that platform filtering will take priority over the target framework.
+
+        The following results need rebaselining because the class names for two generators were swapped by accident.
+        Fixing the names causes the order of generated files to change, and this generates ugly diffs because every
+        generated file includes the same copyright block at the top.
+
+        * inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
+        * inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
+        * inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
+        * inspector/scripts/tests/generic/expected/enum-values.json-result:
+        * inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
+        * inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
+        * inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result:
+        * inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
+        * inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
+
+2017-01-03  Brian Burg  &lt;bburg@apple.com&gt;
+
+        Web Inspector: teach the protocol generator about platform-specific types, events, and commands
+        https://bugs.webkit.org/show_bug.cgi?id=166003
+        &lt;rdar://problem/28718990&gt;
+
+        Reviewed by Joseph Pecoraro.
+
</ins><span class="cx">         Make it possible to test inspector protocol generator output for different platforms.
</span><span class="cx"> 
</span><span class="cx">         Move existing tests to the generic/ subdirectory, as they are to be generated
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_alternate_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -63,11 +63,13 @@
</span><span class="cx">         return '\n\n'.join(sections)
</span><span class="cx"> 
</span><span class="cx">     def _generate_handler_declarations_for_domain(self, domain):
</span><del>-        if not domain.commands:
</del><ins>+        commands = self.commands_for_domain(domain)
+
+        if not len(commands):
</ins><span class="cx">             return ''
</span><span class="cx"> 
</span><span class="cx">         command_declarations = []
</span><del>-        for command in domain.commands:
</del><ins>+        for command in commands:
</ins><span class="cx">             command_declarations.append(self._generate_handler_declaration_for_command(command))
</span><span class="cx"> 
</span><span class="cx">         handler_args = {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">         return &quot;%sBackendDispatchers.h&quot; % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(lambda domain: len(domain.commands) &gt; 0, Generator.domains_to_generate(self))
</del><ins>+        return filter(lambda domain: len(self.commands_for_domain(domain)) &gt; 0, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         headers = [
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">         used_enum_names = set()
</span><span class="cx"> 
</span><span class="cx">         command_declarations = []
</span><del>-        for command in domain.commands:
</del><ins>+        for command in self.commands_for_domain(domain):
</ins><span class="cx">             command_declarations.append(self._generate_handler_declaration_for_command(command, used_enum_names))
</span><span class="cx"> 
</span><span class="cx">         handler_args = {
</span><span class="lines">@@ -192,9 +192,10 @@
</span><span class="cx">             classComponents.append(exportMacro)
</span><span class="cx"> 
</span><span class="cx">         declarations = []
</span><del>-        if len(domain.commands) &gt; 0:
</del><ins>+        commands = self.commands_for_domain(domain)
+        if len(commands) &gt; 0:
</ins><span class="cx">             declarations.append('private:')
</span><del>-        declarations.extend(map(self._generate_dispatcher_declaration_for_command, domain.commands))
</del><ins>+        declarations.extend(map(self._generate_dispatcher_declaration_for_command, commands))
</ins><span class="cx"> 
</span><span class="cx">         declaration_args = {
</span><span class="cx">             'domainName': domain.domain_name,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">         return &quot;%sBackendDispatchers.cpp&quot; % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(lambda domain: len(domain.commands) &gt; 0, Generator.domains_to_generate(self))
</del><ins>+        return filter(lambda domain: len(self.commands_for_domain(domain)) &gt; 0, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         secondary_headers = [
</span><span class="lines">@@ -92,12 +92,14 @@
</span><span class="cx">         }
</span><span class="cx">         implementations.append(Template(CppTemplates.BackendDispatcherImplementationDomainConstructor).substitute(None, **constructor_args))
</span><span class="cx"> 
</span><del>-        if len(domain.commands) &lt;= 5:
</del><ins>+        commands = self.commands_for_domain(domain)
+
+        if len(commands) &lt;= 5:
</ins><span class="cx">             implementations.append(self._generate_small_dispatcher_switch_implementation_for_domain(domain))
</span><span class="cx">         else:
</span><span class="cx">             implementations.append(self._generate_large_dispatcher_switch_implementation_for_domain(domain))
</span><span class="cx"> 
</span><del>-        for command in domain.commands:
</del><ins>+        for command in commands:
</ins><span class="cx">             if command.is_async:
</span><span class="cx">                 implementations.append(self._generate_async_dispatcher_class_for_domain(command, domain))
</span><span class="cx">             implementations.append(self._generate_dispatcher_implementation_for_command(command, domain))
</span><span class="lines">@@ -105,10 +107,12 @@
</span><span class="cx">         return self.wrap_with_guard_for_domain(domain, '\n\n'.join(implementations))
</span><span class="cx"> 
</span><span class="cx">     def _generate_small_dispatcher_switch_implementation_for_domain(self, domain):
</span><ins>+        commands = self.commands_for_domain(domain)
+
</ins><span class="cx">         cases = []
</span><del>-        cases.append('    if (method == &quot;%s&quot;)' % domain.commands[0].command_name)
-        cases.append('        %s(requestId, WTFMove(parameters));' % domain.commands[0].command_name)
-        for command in domain.commands[1:]:
</del><ins>+        cases.append('    if (method == &quot;%s&quot;)' % commands[0].command_name)
+        cases.append('        %s(requestId, WTFMove(parameters));' % commands[0].command_name)
+        for command in commands[1:]:
</ins><span class="cx">             cases.append('    else if (method == &quot;%s&quot;)' % command.command_name)
</span><span class="cx">             cases.append('        %s(requestId, WTFMove(parameters));' % command.command_name)
</span><span class="cx"> 
</span><span class="lines">@@ -120,8 +124,10 @@
</span><span class="cx">         return Template(CppTemplates.BackendDispatcherImplementationSmallSwitch).substitute(None, **switch_args)
</span><span class="cx"> 
</span><span class="cx">     def _generate_large_dispatcher_switch_implementation_for_domain(self, domain):
</span><ins>+        commands = self.commands_for_domain(domain)
+
</ins><span class="cx">         cases = []
</span><del>-        for command in domain.commands:
</del><ins>+        for command in commands:
</ins><span class="cx">             args = {
</span><span class="cx">                 'domainName': domain.domain_name,
</span><span class="cx">                 'commandName': command.command_name
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx">         return &quot;%sFrontendDispatchers.h&quot; % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(lambda domain: len(domain.events) &gt; 0, Generator.domains_to_generate(self))
</del><ins>+        return filter(lambda domain: len(self.events_for_domain(domain)) &gt; 0, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         headers = [
</span><span class="lines">@@ -90,8 +90,9 @@
</span><span class="cx"> 
</span><span class="cx">         used_enum_names = set([])
</span><span class="cx"> 
</span><ins>+        events = self.events_for_domain(domain)
</ins><span class="cx">         event_declarations = []
</span><del>-        for event in domain.events:
</del><ins>+        for event in events:
</ins><span class="cx">             event_declarations.append(self._generate_dispatcher_declaration_for_event(event, domain, used_enum_names))
</span><span class="cx"> 
</span><span class="cx">         handler_args = {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_frontend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">         return &quot;%sFrontendDispatchers.cpp&quot; % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(lambda domain: len(domain.events) &gt; 0, Generator.domains_to_generate(self))
</del><ins>+        return filter(lambda domain: len(self.events_for_domain(domain)) &gt; 0, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         secondary_headers = [
</span><span class="lines">@@ -69,7 +69,8 @@
</span><span class="cx"> 
</span><span class="cx">     def _generate_dispatcher_implementations_for_domain(self, domain):
</span><span class="cx">         implementations = []
</span><del>-        for event in domain.events:
</del><ins>+        events = self.events_for_domain(domain)
+        for event in events:
</ins><span class="cx">             implementations.append(self._generate_dispatcher_implementation_for_event(event, domain))
</span><span class="cx"> 
</span><span class="cx">         return self.wrap_with_guard_for_domain(domain, '\n\n'.join(implementations))
</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 (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">         sections = []
</span><span class="cx"> 
</span><span class="cx">         for domain in domains:
</span><del>-            declaration_types = [decl.type for decl in domain.type_declarations]
</del><ins>+            declaration_types = [decl.type for decl in self.type_declarations_for_domain(domain)]
</ins><span class="cx">             object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types)
</span><span class="cx">             enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)
</span><span class="cx">             sorted(object_types, key=methodcaller('raw_name'))
</span><span class="lines">@@ -121,8 +121,9 @@
</span><span class="cx"> // End of typedefs.&quot;&quot;&quot; % '\n\n'.join(sections)
</span><span class="cx"> 
</span><span class="cx">     def _generate_typedefs_for_domain(self, domain):
</span><del>-        primitive_declarations = filter(lambda decl: isinstance(decl.type, AliasedType), domain.type_declarations)
-        array_declarations = filter(lambda decl: isinstance(decl.type, ArrayType), domain.type_declarations)
</del><ins>+        type_declarations = self.type_declarations_for_domain(domain)
+        primitive_declarations = filter(lambda decl: isinstance(decl.type, AliasedType), type_declarations)
+        array_declarations = filter(lambda decl: isinstance(decl.type, ArrayType), type_declarations)
</ins><span class="cx">         if len(primitive_declarations) == 0 and len(array_declarations) == 0:
</span><span class="cx">             return ''
</span><span class="cx"> 
</span><span class="lines">@@ -175,7 +176,8 @@
</span><span class="cx">     def _generate_builders_for_domain(self, domain):
</span><span class="cx">         sections = []
</span><span class="cx"> 
</span><del>-        for type_declaration in domain.type_declarations:
</del><ins>+        type_declarations = self.type_declarations_for_domain(domain)
+        for type_declaration in type_declarations:
</ins><span class="cx">             if isinstance(type_declaration.type, EnumType):
</span><span class="cx">                 sections.append(self._generate_struct_for_enum_declaration(type_declaration))
</span><span class="cx">             elif isinstance(type_declaration.type, ObjectType):
</span><span class="lines">@@ -336,7 +338,8 @@
</span><span class="cx">         type_arguments = []
</span><span class="cx"> 
</span><span class="cx">         for domain in self.domains_to_generate():
</span><del>-            declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), domain.type_declarations)
</del><ins>+            type_declarations = self.type_declarations_for_domain(domain)
+            declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), type_declarations)
</ins><span class="cx"> 
</span><span class="cx">             for type_declaration in declarations_to_generate:
</span><span class="cx">                 for type_member in type_declaration.type_members:
</span><span class="lines">@@ -385,7 +388,8 @@
</span><span class="cx">             return isinstance(type_member.type, EnumType) and type_member.type.is_anonymous
</span><span class="cx"> 
</span><span class="cx">         for domain in self.domains_to_generate():
</span><del>-            declaration_types = [decl.type for decl in domain.type_declarations]
</del><ins>+            type_declarations = self.type_declarations_for_domain(domain)
+            declaration_types = [decl.type for decl in type_declarations]
</ins><span class="cx">             object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types)
</span><span class="cx">             enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)
</span><span class="cx">             if len(object_types) + len(enum_types) == 0:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_protocol_types_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -118,7 +118,8 @@
</span><span class="cx">             ])
</span><span class="cx">             return body_lines
</span><span class="cx"> 
</span><del>-        declaration_types = [decl.type for decl in domain.type_declarations]
</del><ins>+        type_declarations = self.type_declarations_for_domain(domain)
+        declaration_types = [decl.type for decl in type_declarations]
</ins><span class="cx">         object_types = filter(lambda _type: isinstance(_type, ObjectType), declaration_types)
</span><span class="cx">         enum_types = filter(lambda _type: isinstance(_type, EnumType), declaration_types)
</span><span class="cx">         if len(object_types) + len(enum_types) == 0:
</span><span class="lines">@@ -158,7 +159,8 @@
</span><span class="cx">     def _generate_open_field_names(self):
</span><span class="cx">         lines = []
</span><span class="cx">         for domain in self.domains_to_generate():
</span><del>-            for type_declaration in filter(lambda decl: Generator.type_has_open_fields(decl.type), domain.type_declarations):
</del><ins>+            type_declarations = self.type_declarations_for_domain(domain)
+            for type_declaration in filter(lambda decl: Generator.type_has_open_fields(decl.type), type_declarations):
</ins><span class="cx">                 for type_member in sorted(type_declaration.type_members, key=lambda member: member.member_name):
</span><span class="cx">                     field_name = '::'.join(['Inspector', 'Protocol', domain.domain_name, ucfirst(type_declaration.type_name), ucfirst(type_member.member_name)])
</span><span class="cx">                     lines.append('const char* %s = &quot;%s&quot;;' % (field_name, type_member.member_name))
</span><span class="lines">@@ -167,7 +169,8 @@
</span><span class="cx"> 
</span><span class="cx">     def _generate_builders_for_domain(self, domain):
</span><span class="cx">         sections = []
</span><del>-        declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), domain.type_declarations)
</del><ins>+        type_declarations = self.type_declarations_for_domain(domain)
+        declarations_to_generate = filter(lambda decl: self.type_needs_shape_assertions(decl.type), type_declarations)
</ins><span class="cx"> 
</span><span class="cx">         for type_declaration in declarations_to_generate:
</span><span class="cx">             for type_member in type_declaration.type_members:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_js_backend_commandspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_js_backend_commands.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> #!/usr/bin/env python
</span><span class="cx"> #
</span><del>-# Copyright (c) 2014 Apple Inc. All rights reserved.
</del><ins>+# Copyright (c) 2014, 2016 Apple Inc. All rights reserved.
</ins><span class="cx"> # Copyright (c) 2014 University of Washington. All rights reserved.
</span><span class="cx"> #
</span><span class="cx"> # Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -43,13 +43,14 @@
</span><span class="cx">     def output_filename(self):
</span><span class="cx">         return &quot;InspectorBackendCommands.js&quot;
</span><span class="cx"> 
</span><ins>+    def should_generate_domain(self, domain):
+        type_declarations = self.type_declarations_for_domain(domain)
+        domain_enum_types = filter(lambda declaration: isinstance(declaration.type, EnumType), type_declarations)
+        return len(self.commands_for_domain(domain)) &gt; 0 or len(self.events_for_domain(domain)) &gt; 0 or len(domain_enum_types) &gt; 0
+
</ins><span class="cx">     def domains_to_generate(self):
</span><del>-        def should_generate_domain(domain):
-            domain_enum_types = filter(lambda declaration: isinstance(declaration.type, EnumType), domain.type_declarations)
-            return len(domain.commands) &gt; 0 or len(domain.events) &gt; 0 or len(domain_enum_types) &gt; 0
</del><ins>+        return filter(self.should_generate_domain, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><del>-        return filter(should_generate_domain, Generator.domains_to_generate(self))
-
</del><span class="cx">     def generate_output(self):
</span><span class="cx">         sections = []
</span><span class="cx">         sections.append(self.generate_license())
</span><span class="lines">@@ -64,11 +65,15 @@
</span><span class="cx"> 
</span><span class="cx">         lines.append('// %(domain)s.' % args)
</span><span class="cx"> 
</span><del>-        has_async_commands = any(map(lambda command: command.is_async, domain.commands))
-        if len(domain.events) &gt; 0 or has_async_commands:
</del><ins>+        type_declarations = self.type_declarations_for_domain(domain)
+        commands = self.commands_for_domain(domain)
+        events = self.events_for_domain(domain)
+
+        has_async_commands = any(map(lambda command: command.is_async, commands))
+        if len(events) &gt; 0 or has_async_commands:
</ins><span class="cx">             lines.append('InspectorBackend.register%(domain)sDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, &quot;%(domain)s&quot;);' % args)
</span><span class="cx"> 
</span><del>-        for declaration in domain.type_declarations:
</del><ins>+        for declaration in type_declarations:
</ins><span class="cx">             if declaration.type.is_enum():
</span><span class="cx">                 enum_args = {
</span><span class="cx">                     'domain': domain.domain_name,
</span><span class="lines">@@ -91,7 +96,7 @@
</span><span class="cx">         def is_anonymous_enum_param(param):
</span><span class="cx">             return isinstance(param.type, EnumType) and param.type.is_anonymous
</span><span class="cx"> 
</span><del>-        for event in domain.events:
</del><ins>+        for event in events:
</ins><span class="cx">             for param in filter(is_anonymous_enum_param, event.event_parameters):
</span><span class="cx">                 enum_args = {
</span><span class="cx">                     'domain': domain.domain_name,
</span><span class="lines">@@ -107,7 +112,7 @@
</span><span class="cx">             }
</span><span class="cx">             lines.append('InspectorBackend.registerEvent(&quot;%(domain)s.%(eventName)s&quot;, [%(params)s]);' % event_args)
</span><span class="cx"> 
</span><del>-        for command in domain.commands:
</del><ins>+        for command in commands:
</ins><span class="cx">             def generate_parameter_object(parameter):
</span><span class="cx">                 optional_string = &quot;true&quot; if parameter.is_optional else &quot;false&quot;
</span><span class="cx">                 pairs = []
</span><span class="lines">@@ -124,7 +129,7 @@
</span><span class="cx">             }
</span><span class="cx">             lines.append('InspectorBackend.registerCommand(&quot;%(domain)s.%(commandName)s&quot;, [%(callParams)s], [%(returnParams)s]);' % command_args)
</span><span class="cx"> 
</span><del>-        if domain.commands or domain.events:
</del><ins>+        if commands or events:
</ins><span class="cx">             activate_args = {
</span><span class="cx">                 'domain': domain.domain_name,
</span><span class="cx">                 'availability': domain.availability,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">         return '%sBackendDispatchers.h' % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), Generator.domains_to_generate(self))
</del><ins>+        return filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         headers = [
</span><span class="lines">@@ -71,16 +71,17 @@
</span><span class="cx">     def _generate_objc_forward_declarations(self):
</span><span class="cx">         lines = []
</span><span class="cx">         for domain in self.domains_to_generate():
</span><del>-            if domain.commands:
</del><ins>+            if self.commands_for_domain(domain):
</ins><span class="cx">                 lines.append('@protocol %s%sDomainHandler;' % (self.objc_prefix(), domain.domain_name))
</span><span class="cx">         return '\n'.join(lines)
</span><span class="cx"> 
</span><span class="cx">     def _generate_objc_handler_declarations_for_domain(self, domain):
</span><del>-        if not domain.commands:
</del><ins>+        commands = self.commands_for_domain(domain)
+        if not commands:
</ins><span class="cx">             return ''
</span><span class="cx"> 
</span><span class="cx">         command_declarations = []
</span><del>-        for command in domain.commands:
</del><ins>+        for command in commands:
</ins><span class="cx">             command_declarations.append(self._generate_objc_handler_declaration_for_command(command))
</span><span class="cx"> 
</span><span class="cx">         handler_args = {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> log = logging.getLogger('global')
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-class ObjCConfigurationImplementationGenerator(ObjCGenerator):
</del><ins>+class ObjCBackendDispatcherImplementationGenerator(ObjCGenerator):
</ins><span class="cx">     def __init__(self, *args, **kwargs):
</span><span class="cx">         ObjCGenerator.__init__(self, *args, **kwargs)
</span><span class="cx"> 
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">         return '%sBackendDispatchers.mm' % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), Generator.domains_to_generate(self))
</del><ins>+        return filter(self.should_generate_commands_for_domain, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         secondary_headers = [
</span><span class="lines">@@ -70,11 +70,13 @@
</span><span class="cx">         return '\n\n'.join(sections)
</span><span class="cx"> 
</span><span class="cx">     def _generate_handler_implementation_for_domain(self, domain):
</span><del>-        if not domain.commands:
</del><ins>+        commands = self.commands_for_domain(domain)
+
+        if not commands:
</ins><span class="cx">             return ''
</span><span class="cx"> 
</span><span class="cx">         command_declarations = []
</span><del>-        for command in domain.commands:
</del><ins>+        for command in commands:
</ins><span class="cx">             command_declarations.append(self._generate_handler_implementation_for_command(domain, command))
</span><span class="cx"> 
</span><span class="cx">         return '\n'.join(command_declarations)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -52,9 +52,6 @@
</span><span class="cx">             'includes': '\n'.join(['#import ' + header for header in headers]),
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        self._command_filter = ObjCGenerator.should_generate_domain_command_handler_filter(self.model())
-        self._event_filter = ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model())
-
</del><span class="cx">         domains = self.domains_to_generate()
</span><span class="cx">         sections = []
</span><span class="cx">         sections.append(self.generate_license())
</span><span class="lines">@@ -80,8 +77,9 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         lines = []
</span><del>-        if domain.commands and self._command_filter(domain):
</del><ins>+
+        if self.should_generate_commands_for_domain(domain):
</ins><span class="cx">             lines.append(Template(ObjCTemplates.ConfigurationCommandProperty).substitute(None, **property_args))
</span><del>-        if domain.events and self._event_filter(domain):
</del><ins>+        if self.should_generate_events_for_domain(domain):
</ins><span class="cx">             lines.append(Template(ObjCTemplates.ConfigurationEventProperty).substitute(None, **property_args))
</span><span class="cx">         return lines
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_configuration_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_configuration_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> log = logging.getLogger('global')
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-class ObjCBackendDispatcherImplementationGenerator(ObjCGenerator):
</del><ins>+class ObjCConfigurationImplementationGenerator(ObjCGenerator):
</ins><span class="cx">     def __init__(self, *args, **kwargs):
</span><span class="cx">         ObjCGenerator.__init__(self, *args, **kwargs)
</span><span class="cx"> 
</span><span class="lines">@@ -58,9 +58,6 @@
</span><span class="cx">             'secondaryIncludes': '\n'.join(['#import %s' % header for header in secondary_headers]),
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        self._command_filter = ObjCGenerator.should_generate_domain_command_handler_filter(self.model())
-        self._event_filter = ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model())
-
</del><span class="cx">         domains = self.domains_to_generate()
</span><span class="cx">         sections = []
</span><span class="cx">         sections.append(self.generate_license())
</span><span class="lines">@@ -90,10 +87,10 @@
</span><span class="cx">         lines.extend(self._generate_dealloc(domains))
</span><span class="cx">         lines.append('')
</span><span class="cx">         for domain in domains:
</span><del>-            if domain.commands and self._command_filter(domain):
</del><ins>+            if self.should_generate_commands_for_domain(domain):
</ins><span class="cx">                 lines.append(self._generate_handler_setter_for_domain(domain))
</span><span class="cx">                 lines.append('')
</span><del>-            if domain.events and self._event_filter(domain):
</del><ins>+            if self.should_generate_events_for_domain(domain):
</ins><span class="cx">                 lines.append(self._generate_event_dispatcher_getter_for_domain(domain))
</span><span class="cx">                 lines.append('')
</span><span class="cx">         lines.append('@end')
</span><span class="lines">@@ -102,11 +99,11 @@
</span><span class="cx">     def _generate_ivars(self, domains):
</span><span class="cx">         lines = []
</span><span class="cx">         for domain in domains:
</span><del>-            if domain.commands and self._command_filter(domain):
</del><ins>+            if self.should_generate_commands_for_domain(domain):
</ins><span class="cx">                 objc_class_name = '%s%sDomainHandler' % (self.objc_prefix(), domain.domain_name)
</span><span class="cx">                 ivar_name = '_%sHandler' % ObjCGenerator.variable_name_prefix_for_domain(domain)
</span><span class="cx">                 lines.append('    id&lt;%s&gt; %s;' % (objc_class_name, ivar_name))
</span><del>-            if domain.events and self._event_filter(domain):
</del><ins>+            if self.should_generate_events_for_domain(domain):
</ins><span class="cx">                 objc_class_name = '%s%sDomainEventDispatcher' % (self.objc_prefix(), domain.domain_name)
</span><span class="cx">                 ivar_name = '_%sEventDispatcher' % ObjCGenerator.variable_name_prefix_for_domain(domain)
</span><span class="cx">                 lines.append('    %s *%s;' % (objc_class_name, ivar_name))
</span><span class="lines">@@ -117,9 +114,9 @@
</span><span class="cx">         lines.append('- (void)dealloc')
</span><span class="cx">         lines.append('{')
</span><span class="cx">         for domain in domains:
</span><del>-            if domain.commands and self._command_filter(domain):
</del><ins>+            if self.should_generate_commands_for_domain(domain):
</ins><span class="cx">                 lines.append('    [_%sHandler release];' % ObjCGenerator.variable_name_prefix_for_domain(domain))
</span><del>-            if domain.events and self._event_filter(domain):
</del><ins>+            if self.should_generate_events_for_domain(domain):
</ins><span class="cx">                 lines.append('    [_%sEventDispatcher release];' % ObjCGenerator.variable_name_prefix_for_domain(domain))
</span><span class="cx">         lines.append('    [super dealloc];')
</span><span class="cx">         lines.append('}')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">         return '%sEventDispatchers.mm' % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), Generator.domains_to_generate(self))
</del><ins>+        return filter(self.should_generate_events_for_domain, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         secondary_headers = [
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">         return '\n\n'.join(sections)
</span><span class="cx"> 
</span><span class="cx">     def _generate_event_dispatcher_implementations(self, domain):
</span><del>-        if not domain.events:
</del><ins>+        if not self.should_generate_events_for_domain(domain):
</ins><span class="cx">             return ''
</span><span class="cx"> 
</span><span class="cx">         lines = []
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx">         lines.append('    return self;')
</span><span class="cx">         lines.append('}')
</span><span class="cx">         lines.append('')
</span><del>-        for event in domain.events:
</del><ins>+        for event in self.events_for_domain(domain):
</ins><span class="cx">             lines.append(self._generate_event(domain, event))
</span><span class="cx">             lines.append('')
</span><span class="cx">         lines.append('@end')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -60,9 +60,9 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         domains = self.domains_to_generate()
</span><del>-        type_domains = filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), domains)
-        command_domains = filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), domains)
-        event_domains = filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), domains)
</del><ins>+        type_domains = filter(self.should_generate_types_for_domain, domains)
+        command_domains = filter(self.should_generate_commands_for_domain, domains)
+        event_domains = filter(self.should_generate_events_for_domain, domains)
</ins><span class="cx"> 
</span><span class="cx">         # FIXME: &lt;https://webkit.org/b/138222&gt; Web Inspector: Reduce unnecessary enums/types generated in ObjC Protocol Interfaces
</span><span class="cx">         # Currently we generate enums/types for all types in the type_domains. For the built-in
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx">     def _generate_forward_declarations(self, domain):
</span><span class="cx">         lines = []
</span><del>-        for declaration in domain.type_declarations:
</del><ins>+        for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">             if (isinstance(declaration.type, ObjectType)):
</span><span class="cx">                 objc_name = self.objc_name_for_type(declaration.type)
</span><span class="cx">                 lines.append('@class %s;' % objc_name)
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">         lines = []
</span><span class="cx"> 
</span><span class="cx">         # Type enums and member enums.
</span><del>-        for declaration in domain.type_declarations:
</del><ins>+        for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">             if isinstance(declaration.type, EnumType):
</span><span class="cx">                 add_newline(lines)
</span><span class="cx">                 lines.append(self._generate_anonymous_enum_for_declaration(domain, declaration))
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">                         lines.append(self._generate_anonymous_enum_for_member(domain, declaration, member))
</span><span class="cx"> 
</span><span class="cx">         # Anonymous command enums.
</span><del>-        for command in domain.commands:
</del><ins>+        for command in self.commands_for_domain(domain):
</ins><span class="cx">             for parameter in command.call_parameters:
</span><span class="cx">                 if isinstance(parameter.type, EnumType) and parameter.type.is_anonymous:
</span><span class="cx">                     add_newline(lines)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx">                     lines.append(self._generate_anonymous_enum_for_parameter(domain, command.command_name, parameter))
</span><span class="cx"> 
</span><span class="cx">         # Anonymous event enums.
</span><del>-        for event in domain.events:
</del><ins>+        for event in self.events_for_domain(domain):
</ins><span class="cx">             for parameter in event.event_parameters:
</span><span class="cx">                 if isinstance(parameter.type, EnumType) and parameter.type.is_anonymous:
</span><span class="cx">                     add_newline(lines)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx">     def _generate_types(self, domain):
</span><span class="cx">         lines = []
</span><span class="cx">         # Type interfaces.
</span><del>-        for declaration in domain.type_declarations:
</del><ins>+        for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">             if isinstance(declaration.type, ObjectType):
</span><span class="cx">                 add_newline(lines)
</span><span class="cx">                 lines.append(self._generate_type_interface(domain, declaration))
</span><span class="lines">@@ -192,11 +192,11 @@
</span><span class="cx"> 
</span><span class="cx">     def _generate_command_protocols(self, domain):
</span><span class="cx">         lines = []
</span><del>-        if domain.commands:
</del><ins>+        if self.commands_for_domain(domain):
</ins><span class="cx">             objc_name = '%s%sDomainHandler' % (self.objc_prefix(), domain.domain_name)
</span><span class="cx">             lines.append('@protocol %s &lt;NSObject&gt;' % objc_name)
</span><span class="cx">             lines.append('@required')
</span><del>-            for command in domain.commands:
</del><ins>+            for command in self.commands_for_domain(domain):
</ins><span class="cx">                 lines.append(self._generate_single_command_protocol(domain, command))
</span><span class="cx">             lines.append('@end')
</span><span class="cx">         return '\n'.join(lines)
</span><span class="lines">@@ -218,11 +218,12 @@
</span><span class="cx"> 
</span><span class="cx">     def _generate_event_interfaces(self, domain):
</span><span class="cx">         lines = []
</span><del>-        if domain.events:
</del><ins>+        events = self.events_for_domain(domain)
+        if len(events):
</ins><span class="cx">             objc_name = '%s%sDomainEventDispatcher' % (self.objc_prefix(), domain.domain_name)
</span><span class="cx">             lines.append('__attribute__((visibility (&quot;default&quot;)))')
</span><span class="cx">             lines.append('@interface %s : NSObject' % objc_name)
</span><del>-            for event in domain.events:
</del><ins>+            for event in events:
</ins><span class="cx">                 lines.append(self._generate_single_event_interface(domain, event))
</span><span class="cx">             lines.append('@end')
</span><span class="cx">         return '\n'.join(lines)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_internal_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_internal_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -55,8 +55,7 @@
</span><span class="cx">             'includes': '\n'.join(['#import ' + header for header in sorted(headers)]),
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        domains = self.domains_to_generate()
-        event_domains = filter(ObjCGenerator.should_generate_domain_event_dispatcher_filter(self.model()), domains)
</del><ins>+        event_domains = filter(self.should_generate_events_for_domain, self.domains_to_generate())
</ins><span class="cx"> 
</span><span class="cx">         sections = []
</span><span class="cx">         sections.append(self.generate_license())
</span><span class="lines">@@ -67,7 +66,7 @@
</span><span class="cx"> 
</span><span class="cx">     def _generate_event_dispatcher_private_interfaces(self, domain):
</span><span class="cx">         lines = []
</span><del>-        if domain.events:
</del><ins>+        if len(self.events_for_domain(domain)):
</ins><span class="cx">             objc_name = '%s%sDomainEventDispatcher' % (self.objc_prefix(), domain.domain_name)
</span><span class="cx">             lines.append('@interface %s (Private)' % objc_name)
</span><span class="cx">             lines.append('- (instancetype)initWithController:(Inspector::AugmentableInspectorController*)controller;')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">         return '%sTypeConversions.h' % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), Generator.domains_to_generate(self))
</del><ins>+        return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         headers = [
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">         lines = []
</span><span class="cx"> 
</span><span class="cx">         # Type enums and member enums.
</span><del>-        for declaration in domain.type_declarations:
</del><ins>+        for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">             if isinstance(declaration.type, EnumType):
</span><span class="cx">                 add_newline(lines)
</span><span class="cx">                 lines.append(self._generate_anonymous_enum_conversion_for_declaration(domain, declaration))
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">                         lines.append(self._generate_anonymous_enum_conversion_for_member(domain, declaration, member))
</span><span class="cx"> 
</span><span class="cx">         # Anonymous command enums.
</span><del>-        for command in domain.commands:
</del><ins>+        for command in self.commands_for_domain(domain):
</ins><span class="cx">             for parameter in command.call_parameters:
</span><span class="cx">                 if (isinstance(parameter.type, EnumType) and parameter.type.is_anonymous):
</span><span class="cx">                     add_newline(lines)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">                     lines.append(self._generate_anonymous_enum_conversion_for_parameter(domain, command.command_name, parameter))
</span><span class="cx"> 
</span><span class="cx">         # Anonymous event enums.
</span><del>-        for event in domain.events:
</del><ins>+        for event in self.events_for_domain(domain):
</ins><span class="cx">             for parameter in event.event_parameters:
</span><span class="cx">                 if (isinstance(parameter.type, EnumType) and parameter.type.is_anonymous):
</span><span class="cx">                     add_newline(lines)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_type_conversions_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">         return '%sTypeConversions.mm' % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), Generator.domains_to_generate(self))
</del><ins>+        return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         secondary_headers = [
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">             lines.append('@interface %sTypeConversions (%sDomain)' % (self.protocol_name(), domain.domain_name))
</span><span class="cx">             lines.append('')
</span><span class="cx"> 
</span><del>-            for declaration in domain.type_declarations:
</del><ins>+            for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">                 lines.append(self._generate_type_factory_method_declaration(domain, declaration))
</span><span class="cx"> 
</span><span class="cx">             add_newline(lines)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">             lines.append('@implementation %sTypeConversions (%sDomain)' % (self.protocol_name(), domain.domain_name))
</span><span class="cx">             lines.append('')
</span><span class="cx"> 
</span><del>-            for declaration in domain.type_declarations:
</del><ins>+            for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">                 lines.append(self._generate_type_factory_method_implementation(domain, declaration))
</span><span class="cx">                 add_newline(lines)
</span><span class="cx">             lines.append('@end')
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_protocol_types_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_types_implementation.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">         return '%sTypes.mm' % self.protocol_name()
</span><span class="cx"> 
</span><span class="cx">     def domains_to_generate(self):
</span><del>-        return filter(ObjCGenerator.should_generate_domain_types_filter(self.model()), Generator.domains_to_generate(self))
</del><ins>+        return filter(self.should_generate_types_for_domain, Generator.domains_to_generate(self))
</ins><span class="cx"> 
</span><span class="cx">     def generate_output(self):
</span><span class="cx">         secondary_headers = [
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> 
</span><span class="cx">     def generate_type_implementations(self, domain):
</span><span class="cx">         lines = []
</span><del>-        for declaration in domain.type_declarations:
</del><ins>+        for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">             if (isinstance(declaration.type, ObjectType)):
</span><span class="cx">                 add_newline(lines)
</span><span class="cx">                 lines.append(self.generate_type_implementation(domain, declaration))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengeneratorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> from string import Template
</span><span class="cx"> 
</span><span class="cx"> from generator_templates import GeneratorTemplates as Templates
</span><del>-from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks
</del><ins>+from models import PrimitiveType, ObjectType, ArrayType, EnumType, AliasedType, Frameworks, Platforms
</ins><span class="cx"> 
</span><span class="cx"> log = logging.getLogger('global')
</span><span class="cx"> 
</span><span class="lines">@@ -91,6 +91,18 @@
</span><span class="cx">     def set_generator_setting(self, key, value):
</span><span class="cx">         self._settings[key] = value
</span><span class="cx"> 
</span><ins>+    def can_generate_platform(self, model_platform):
+        return model_platform is Platforms.Generic or self._platform is Platforms.All or model_platform is self._platform
+
+    def type_declarations_for_domain(self, domain):
+        return [type_declaration for type_declaration in domain.all_type_declarations() if self.can_generate_platform(type_declaration.platform)]
+
+    def commands_for_domain(self, domain):
+        return [command for command in domain.all_commands() if self.can_generate_platform(command.platform)]
+
+    def events_for_domain(self, domain):
+        return [event for event in domain.all_events() if self.can_generate_platform(event.platform)]
+
</ins><span class="cx">     # The goofy name is to disambiguate generator settings from framework settings.
</span><span class="cx">     def get_generator_setting(self, key, default=None):
</span><span class="cx">         return self._settings.get(key, default)
</span><span class="lines">@@ -165,7 +177,7 @@
</span><span class="cx"> 
</span><span class="cx">         found_types = set()
</span><span class="cx">         for domain in domains:
</span><del>-            for declaration in domain.type_declarations:
</del><ins>+            for declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">                 if declaration.type.qualified_name() in _TYPES_NEEDING_RUNTIME_CASTS:
</span><span class="cx">                     log.debug(&quot;&gt; Gathering types referenced by %s to generate shape assertions.&quot; % declaration.type.qualified_name())
</span><span class="cx">                     gather_transitively_referenced_types(declaration.type, found_types)
</span><span class="lines">@@ -181,17 +193,17 @@
</span><span class="cx">         domains = self.non_supplemental_domains()
</span><span class="cx"> 
</span><span class="cx">         for domain in domains:
</span><del>-            for type_declaration in domain.type_declarations:
</del><ins>+            for type_declaration in self.type_declarations_for_domain(domain):
</ins><span class="cx">                 all_types.append(type_declaration.type)
</span><span class="cx">                 for type_member in type_declaration.type_members:
</span><span class="cx">                     all_types.append(type_member.type)
</span><span class="cx"> 
</span><span class="cx">         for domain in domains:
</span><del>-            for event in domain.events:
</del><ins>+            for event in self.events_for_domain(domain):
</ins><span class="cx">                 all_types.extend([parameter.type for parameter in event.event_parameters])
</span><span class="cx"> 
</span><span class="cx">         for domain in domains:
</span><del>-            for command in domain.commands:
</del><ins>+            for command in self.commands_for_domain(domain):
</ins><span class="cx">                 all_types.extend([parameter.type for parameter in command.call_parameters])
</span><span class="cx">                 all_types.extend([parameter.type for parameter in command.return_parameters])
</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 (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/models.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -400,7 +400,8 @@
</span><span class="cx">             raise ParseException(&quot;Malformed domain specification: type declaration for %s has duplicate member names&quot; % json['id'])
</span><span class="cx"> 
</span><span class="cx">         type_ref = TypeReference(json['type'], json.get('$ref'), json.get('enum'), json.get('items'))
</span><del>-        return TypeDeclaration(json['id'], type_ref, json.get(&quot;description&quot;, &quot;&quot;), type_members)
</del><ins>+        platform = Platform.fromString(json.get('platform', 'generic'))
+        return TypeDeclaration(json['id'], type_ref, json.get(&quot;description&quot;, &quot;&quot;), platform, type_members)
</ins><span class="cx"> 
</span><span class="cx">     def parse_type_member(self, json):
</span><span class="cx">         check_for_required_properties(['name'], json, &quot;type member&quot;)
</span><span class="lines">@@ -434,7 +435,8 @@
</span><span class="cx">             if len(duplicate_names) &gt; 0:
</span><span class="cx">                 raise ParseException(&quot;Malformed domain specification: return parameter list for command %s has duplicate parameter names&quot; % json['name'])
</span><span class="cx"> 
</span><del>-        return Command(json['name'], call_parameters, return_parameters, json.get('description', &quot;&quot;), json.get('async', False))
</del><ins>+        platform = Platform.fromString(json.get('platform', 'generic'))
+        return Command(json['name'], call_parameters, return_parameters, json.get('description', &quot;&quot;), platform, json.get('async', False))
</ins><span class="cx"> 
</span><span class="cx">     def parse_event(self, json):
</span><span class="cx">         check_for_required_properties(['name'], json, &quot;event&quot;)
</span><span class="lines">@@ -451,7 +453,8 @@
</span><span class="cx">             if len(duplicate_names) &gt; 0:
</span><span class="cx">                 raise ParseException(&quot;Malformed domain specification: parameter list for event %s has duplicate parameter names&quot; % json['name'])
</span><span class="cx"> 
</span><del>-        return Event(json['name'], event_parameters, json.get('description', &quot;&quot;))
</del><ins>+        platform = Platform.fromString(json.get('platform', 'generic'))
+        return Event(json['name'], event_parameters, json.get('description', &quot;&quot;), platform)
</ins><span class="cx"> 
</span><span class="cx">     def parse_call_or_return_parameter(self, json):
</span><span class="cx">         check_for_required_properties(['name'], json, &quot;parameter&quot;)
</span><span class="lines">@@ -471,7 +474,7 @@
</span><span class="cx"> 
</span><span class="cx">         # Gather qualified type names from type declarations in each domain.
</span><span class="cx">         for domain in self.domains:
</span><del>-            for declaration in domain.type_declarations:
</del><ins>+            for declaration in domain.all_type_declarations():
</ins><span class="cx">                 # Basic sanity checking.
</span><span class="cx">                 if declaration.type_ref.referenced_type_name is not None:
</span><span class="cx">                     raise TypecheckException(&quot;Type declarations must name a base type, not a type reference.&quot;)
</span><span class="lines">@@ -555,21 +558,30 @@
</span><span class="cx">         self.feature_guard = feature_guard
</span><span class="cx">         self.availability = availability
</span><span class="cx">         self.is_supplemental = isSupplemental
</span><del>-        self.type_declarations = type_declarations
-        self.commands = commands
-        self.events = events
</del><ins>+        self._type_declarations = type_declarations
+        self._commands = commands
+        self._events = events
</ins><span class="cx"> 
</span><ins>+    def all_type_declarations(self):
+        return self._type_declarations
+
+    def all_commands(self):
+        return self._commands
+
+    def all_events(self):
+        return self._events
+
</ins><span class="cx">     def resolve_type_references(self, protocol):
</span><span class="cx">         log.debug(&quot;&gt; Resolving type declarations for domain: %s&quot; % self.domain_name)
</span><del>-        for declaration in self.type_declarations:
</del><ins>+        for declaration in self._type_declarations:
</ins><span class="cx">             declaration.resolve_type_references(protocol, self)
</span><span class="cx"> 
</span><span class="cx">         log.debug(&quot;&gt; Resolving types in commands for domain: %s&quot; % self.domain_name)
</span><del>-        for command in self.commands:
</del><ins>+        for command in self._commands:
</ins><span class="cx">             command.resolve_type_references(protocol, self)
</span><span class="cx"> 
</span><span class="cx">         log.debug(&quot;&gt; Resolving types in events for domain: %s&quot; % self.domain_name)
</span><del>-        for event in self.events:
</del><ins>+        for event in self._events:
</ins><span class="cx">             event.resolve_type_references(protocol, self)
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -578,10 +590,11 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class TypeDeclaration:
</span><del>-    def __init__(self, type_name, type_ref, description, type_members):
</del><ins>+    def __init__(self, type_name, type_ref, description, platform, type_members):
</ins><span class="cx">         self.type_name = type_name
</span><span class="cx">         self.type_ref = type_ref
</span><span class="cx">         self.description = description
</span><ins>+        self.platform = platform
</ins><span class="cx">         self.type_members = type_members
</span><span class="cx"> 
</span><span class="cx">         if self.type_name != ucfirst(self.type_name):
</span><span class="lines">@@ -625,11 +638,12 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class Command:
</span><del>-    def __init__(self, command_name, call_parameters, return_parameters, description, is_async):
</del><ins>+    def __init__(self, command_name, call_parameters, return_parameters, description, platform, is_async):
</ins><span class="cx">         self.command_name = command_name
</span><span class="cx">         self.call_parameters = call_parameters
</span><span class="cx">         self.return_parameters = return_parameters
</span><span class="cx">         self.description = description
</span><ins>+        self.platform = platform
</ins><span class="cx">         self.is_async = is_async
</span><span class="cx"> 
</span><span class="cx">     def resolve_type_references(self, protocol, domain):
</span><span class="lines">@@ -643,10 +657,11 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class Event:
</span><del>-    def __init__(self, event_name, event_parameters, description):
</del><ins>+    def __init__(self, event_name, event_parameters, description, platform):
</ins><span class="cx">         self.event_name = event_name
</span><span class="cx">         self.event_parameters = event_parameters
</span><span class="cx">         self.description = description
</span><ins>+        self.platform = platform
</ins><span class="cx"> 
</span><span class="cx">     def resolve_type_references(self, protocol, domain):
</span><span class="cx">         log.debug(&quot;&gt;&gt; Resolving type references for parameters in event: %s&quot; % self.event_name)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegenobjc_generatorpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/objc_generator.py        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -120,35 +120,38 @@
</span><span class="cx"> 
</span><span class="cx">     DOMAINS_TO_GENERATE = ['CSS', 'DOM', 'DOMStorage', 'Network', 'Page', 'Automation', 'GenericTypes']
</span><span class="cx"> 
</span><del>-    @staticmethod
-    def should_generate_domain_types_filter(model):
-        def should_generate_domain_types(domain):
-            if model.framework is Frameworks.Test:
-                return True
-            whitelist = set(ObjCGenerator.DOMAINS_TO_GENERATE)
-            whitelist.update(set(['Console', 'Debugger', 'Runtime']))
-            return domain.domain_name in whitelist
-        return should_generate_domain_types
</del><ins>+    def should_generate_types_for_domain(self, domain):
+        if not len(self.type_declarations_for_domain(domain)):
+            return False
</ins><span class="cx"> 
</span><del>-    @staticmethod
-    def should_generate_domain_command_handler_filter(model):
-        def should_generate_domain_command_handler(domain):
-            if model.framework is Frameworks.Test:
-                return True
-            whitelist = set(ObjCGenerator.DOMAINS_TO_GENERATE)
-            return domain.domain_name in whitelist
-        return should_generate_domain_command_handler
</del><ins>+        if self.model().framework is Frameworks.Test:
+            return True
</ins><span class="cx"> 
</span><del>-    @staticmethod
-    def should_generate_domain_event_dispatcher_filter(model):
-        def should_generate_domain_event_dispatcher(domain):
-            if model.framework is Frameworks.Test:
-                return True
-            whitelist = set(ObjCGenerator.DOMAINS_TO_GENERATE)
-            whitelist.add('Console')
-            return domain.domain_name in whitelist
-        return should_generate_domain_event_dispatcher
</del><ins>+        whitelist = set(ObjCGenerator.DOMAINS_TO_GENERATE)
+        whitelist.update(set(['Console', 'Debugger', 'Runtime']))
+        return domain.domain_name in whitelist
</ins><span class="cx"> 
</span><ins>+    def should_generate_commands_for_domain(self, domain):
+        if not len(self.commands_for_domain(domain)):
+            return False
+
+        if self.model().framework is Frameworks.Test:
+            return True
+
+        whitelist = set(ObjCGenerator.DOMAINS_TO_GENERATE)
+        return domain.domain_name in whitelist
+
+    def should_generate_events_for_domain(self, domain):
+        if not len(self.events_for_domain(domain)):
+            return False
+
+        if self.model().framework is Frameworks.Test:
+            return True
+
+        whitelist = set(ObjCGenerator.DOMAINS_TO_GENERATE)
+        whitelist.add('Console')
+        return domain.domain_name in whitelist
+
</ins><span class="cx">     # ObjC enum and type names.
</span><span class="cx"> 
</span><span class="cx">     def objc_name_for_type(self, type):
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsalldefinitionswithmacplatformjson"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/all/definitions-with-mac-platform.json (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/all/definitions-with-mac-platform.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/all/definitions-with-mac-platform.json        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Network&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;NetworkError&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ],
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;loadResource&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;resourceLoaded&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;A resource was loaded.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsallexpecteddefinitionswithmacplatformjsonresultfromrev210308trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedgeneratedomainswithfeatureguardsjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result (from rev 210308, trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result) (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,1172 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Network.
+InspectorBackend.registerNetworkDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, &quot;Network&quot;);
+InspectorBackend.registerEvent(&quot;Network.resourceLoaded&quot;, []);
+InspectorBackend.registerCommand(&quot;Network.loadResource&quot;, [], []);
+InspectorBackend.activateDomain(&quot;Network&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+class AlternateNetworkBackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateNetworkBackendDispatcher() { }
+    virtual void loadResource(long callId) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateNetworkBackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+class NetworkBackendDispatcherHandler {
+public:
+    virtual void loadResource(ErrorString&amp;) = 0;
+protected:
+    virtual ~NetworkBackendDispatcherHandler();
+};
+
+class NetworkBackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;NetworkBackendDispatcher&gt; create(BackendDispatcher&amp;, NetworkBackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void loadResource(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateNetworkBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateNetworkBackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    NetworkBackendDispatcher(BackendDispatcher&amp;, NetworkBackendDispatcherHandler*);
+    NetworkBackendDispatcherHandler* m_agent { nullptr };
+};
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+NetworkBackendDispatcherHandler::~NetworkBackendDispatcherHandler() { }
+
+Ref&lt;NetworkBackendDispatcher&gt; NetworkBackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, NetworkBackendDispatcherHandler* agent)
+{
+    return adoptRef(*new NetworkBackendDispatcher(backendDispatcher, agent));
+}
+
+NetworkBackendDispatcher::NetworkBackendDispatcher(BackendDispatcher&amp; backendDispatcher, NetworkBackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network&quot;), this);
+}
+
+void NetworkBackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;NetworkBackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    if (method == &quot;loadResource&quot;)
+        loadResource(requestId, WTFMove(parameters));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;Network&quot;, '.', method, &quot;' was not found&quot;));
+}
+
+void NetworkBackendDispatcher::loadResource(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+class NetworkFrontendDispatcher {
+public:
+    NetworkFrontendDispatcher(FrontendRouter&amp; frontendRouter) : m_frontendRouter(frontendRouter) { }
+    void resourceLoaded();
+private:
+    FrontendRouter&amp; m_frontendRouter;
+};
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+void NetworkFrontendDispatcher::resourceLoaded()
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network.resourceLoaded&quot;));
+
+    m_frontendRouter.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Network {
+class NetworkError;
+} // Network
+// End of forward declarations.
+
+
+
+
+namespace Network {
+class NetworkError : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        MessageSet = 1 &lt;&lt; 0,
+        CodeSet = 1 &lt;&lt; 1,
+        AllFieldsSet = (MessageSet | CodeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*NetworkError*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class NetworkError;
+    public:
+
+        Builder&lt;STATE | MessageSet&gt;&amp; setMessage(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; MessageSet), property_message_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;message&quot;), value);
+            return castState&lt;MessageSet&gt;();
+        }
+
+        Builder&lt;STATE | CodeSet&gt;&amp; setCode(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; CodeSet), property_code_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;code&quot;), value);
+            return castState&lt;CodeSet&gt;();
+        }
+
+        Ref&lt;NetworkError&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(NetworkError) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;NetworkError&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;NetworkError&gt; result = NetworkError::create()
+     *     .setMessage(...)
+     *     .setCode(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Network
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+@protocol TestProtocolNetworkDomainHandler;
+
+namespace Inspector {
+
+
+class ObjCInspectorNetworkBackendDispatcher final : public AlternateNetworkBackendDispatcher {
+public:
+    ObjCInspectorNetworkBackendDispatcher(id&lt;TestProtocolNetworkDomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void loadResource(long requestId) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolNetworkDomainHandler&gt;&gt; m_delegate;
+};
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+void ObjCInspectorNetworkBackendDispatcher::loadResource(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResourceWithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setNetworkHandler:) id&lt;TestProtocolNetworkDomainHandler&gt; networkHandler;
+@property (nonatomic, readonly) TestProtocolNetworkDomainEventDispatcher *networkEventDispatcher;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolNetworkDomainHandler&gt; _networkHandler;
+    TestProtocolNetworkDomainEventDispatcher *_networkEventDispatcher;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_networkHandler release];
+    [_networkEventDispatcher release];
+    [super dealloc];
+}
+
+- (void)setNetworkHandler:(id&lt;TestProtocolNetworkDomainHandler&gt;)handler
+{
+    if (handler == _networkHandler)
+        return;
+
+    [_networkHandler release];
+    _networkHandler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetworkBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;NetworkBackendDispatcher, AlternateNetworkBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolNetworkDomainHandler&gt;)networkHandler
+{
+    return _networkHandler;
+}
+
+- (TestProtocolNetworkDomainEventDispatcher *)networkEventDispatcher
+{
+    if (!_networkEventDispatcher)
+        _networkEventDispatcher = [[TestProtocolNetworkDomainEventDispatcher alloc] initWithController:_controller];
+    return _networkEventDispatcher;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolNetworkDomainEventDispatcher
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller;
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)resourceLoaded
+{
+    const FrontendRouter&amp; router = _controller-&gt;frontendRouter();
+
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network.resourceLoaded&quot;));
+    router.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+@end
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolNetworkError;
+
+
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolNetworkError : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithMessage:(NSString *)message code:(int)code;
+/* required */ @property (nonatomic, copy) NSString *message;
+/* required */ @property (nonatomic, assign) int code;
+@end
+
+@protocol TestProtocolNetworkDomainHandler &lt;NSObject&gt;
+@required
+- (void)loadResourceWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolNetworkDomainEventDispatcher : NSObject
+- (void)resourceLoaded;
+@end
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+@interface TestProtocolNetworkDomainEventDispatcher (Private)
+- (instancetype)initWithController:(Inspector::AugmentableInspectorController*)controller;
+@end
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (NetworkDomain)
+
++ (void)_parseNetworkError:(TestProtocolNetworkError **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (NetworkDomain)
+
++ (void)_parseNetworkError:(TestProtocolNetworkError **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolNetworkError alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolNetworkError
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;message&quot;], @&quot;message&quot;);
+    self.message = payload[@&quot;message&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;code&quot;], @&quot;code&quot;);
+    self.code = [payload[@&quot;code&quot;] integerValue];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithMessage:(NSString *)message code:(int)code
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @&quot;message&quot;);
+
+    self.message = message;
+    self.code = code;
+
+    return self;
+}
+
+- (void)setMessage:(NSString *)message
+{
+    [super setString:message forKey:@&quot;message&quot;];
+}
+
+- (NSString *)message
+{
+    return [super stringForKey:@&quot;message&quot;];
+}
+
+- (void)setCode:(int)code
+{
+    [super setInteger:code forKey:@&quot;code&quot;];
+}
+
+- (int)code
+{
+    return [super integerForKey:@&quot;code&quot;];
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericdefinitionswithmacplatformjson"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/definitions-with-mac-platform.json (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/definitions-with-mac-platform.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/definitions-with-mac-platform.json        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Network&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;NetworkError&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ],
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;loadResource&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;resourceLoaded&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;A resource was loaded.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithasyncattributejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -874,135 +874,6 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
- * Copyright (C) 2014 University of Washington. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
-// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
-
-#import &quot;config.h&quot;
-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
-#import &quot;TestProtocolBackendDispatchers.h&quot;
-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
-
-using namespace Inspector;
-
-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-    id&lt;TestProtocolDatabaseDomainHandler&gt; _databaseHandler;
-}
-
-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
-
-- (void)dealloc
-{
-    [_databaseHandler release];
-    [super dealloc];
-}
-
-- (void)setDatabaseHandler:(id&lt;TestProtocolDatabaseDomainHandler&gt;)handler
-{
-    if (handler == _databaseHandler)
-        return;
-
-    [_databaseHandler release];
-    _databaseHandler = [handler retain];
-
-    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorDatabaseBackendDispatcher&gt;(handler);
-    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;DatabaseBackendDispatcher, AlternateDatabaseBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Database&quot;), *_controller, WTFMove(alternateDispatcher));
-    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
-}
-
-- (id&lt;TestProtocolDatabaseDomainHandler&gt;)databaseHandler
-{
-    return _databaseHandler;
-}
-
-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
-### Begin File: TestProtocolConfiguration.h
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
- * Copyright (C) 2014 University of Washington. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
-// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
-
-#import &lt;WebInspector/TestProtocol.h&gt;
-
-__attribute__((visibility (&quot;default&quot;)))
-@interface TestProtocolConfiguration : NSObject
-@property (nonatomic, retain, setter=setDatabaseHandler:) id&lt;TestProtocolDatabaseDomainHandler&gt; databaseHandler;
-@end
-
-
-### End File: TestProtocolConfiguration.h
-
</del><span class="cx"> ### Begin File: TestProtocolBackendDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -1204,6 +1075,135 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.mm
</span><span class="cx"> 
</span><ins>+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setDatabaseHandler:) id&lt;TestProtocolDatabaseDomainHandler&gt; databaseHandler;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolDatabaseDomainHandler&gt; _databaseHandler;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_databaseHandler release];
+    [super dealloc];
+}
+
+- (void)setDatabaseHandler:(id&lt;TestProtocolDatabaseDomainHandler&gt;)handler
+{
+    if (handler == _databaseHandler)
+        return;
+
+    [_databaseHandler release];
+    _databaseHandler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorDatabaseBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;DatabaseBackendDispatcher, AlternateDatabaseBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Database&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolDatabaseDomainHandler&gt;)databaseHandler
+{
+    return _databaseHandler;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -1244,8 +1244,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedcommandswithoptionalcallreturnparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -773,135 +773,6 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
- * Copyright (C) 2014 University of Washington. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
-// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
-
-#import &quot;config.h&quot;
-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
-#import &quot;TestProtocolBackendDispatchers.h&quot;
-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
-
-using namespace Inspector;
-
-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-    id&lt;TestProtocolDatabaseDomainHandler&gt; _databaseHandler;
-}
-
-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
-
-- (void)dealloc
-{
-    [_databaseHandler release];
-    [super dealloc];
-}
-
-- (void)setDatabaseHandler:(id&lt;TestProtocolDatabaseDomainHandler&gt;)handler
-{
-    if (handler == _databaseHandler)
-        return;
-
-    [_databaseHandler release];
-    _databaseHandler = [handler retain];
-
-    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorDatabaseBackendDispatcher&gt;(handler);
-    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;DatabaseBackendDispatcher, AlternateDatabaseBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Database&quot;), *_controller, WTFMove(alternateDispatcher));
-    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
-}
-
-- (id&lt;TestProtocolDatabaseDomainHandler&gt;)databaseHandler
-{
-    return _databaseHandler;
-}
-
-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
-### Begin File: TestProtocolConfiguration.h
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
- * Copyright (C) 2014 University of Washington. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
-// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
-
-#import &lt;WebInspector/TestProtocol.h&gt;
-
-__attribute__((visibility (&quot;default&quot;)))
-@interface TestProtocolConfiguration : NSObject
-@property (nonatomic, retain, setter=setDatabaseHandler:) id&lt;TestProtocolDatabaseDomainHandler&gt; databaseHandler;
-@end
-
-
-### End File: TestProtocolConfiguration.h
-
</del><span class="cx"> ### Begin File: TestProtocolBackendDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -1061,6 +932,135 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.mm
</span><span class="cx"> 
</span><ins>+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setDatabaseHandler:) id&lt;TestProtocolDatabaseDomainHandler&gt; databaseHandler;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-optional-call-return-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolDatabaseDomainHandler&gt; _databaseHandler;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_databaseHandler release];
+    [super dealloc];
+}
+
+- (void)setDatabaseHandler:(id&lt;TestProtocolDatabaseDomainHandler&gt;)handler
+{
+    if (handler == _databaseHandler)
+        return;
+
+    [_databaseHandler release];
+    _databaseHandler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorDatabaseBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;DatabaseBackendDispatcher, AlternateDatabaseBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Database&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolDatabaseDomainHandler&gt;)databaseHandler
+{
+    return _databaseHandler;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -1101,8 +1101,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpecteddefinitionswithmacplatformjsonresultfromrev210308trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationaliasedprimitivetypejsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result (from rev 210308, trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result) (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,835 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+
+
+
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpecteddomainswithvaryingcommandsizesjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -745,8 +745,6 @@
</span><span class="cx">     RetainPtr&lt;id&lt;TestProtocolNetwork1DomainHandler&gt;&gt; m_delegate;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> class ObjCInspectorNetwork3BackendDispatcher final : public AlternateNetwork3BackendDispatcher {
</span><span class="cx"> public:
</span><span class="cx">     ObjCInspectorNetwork3BackendDispatcher(id&lt;TestProtocolNetwork3DomainHandler&gt; handler) { m_delegate = handler; }
</span><span class="lines">@@ -765,7 +763,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -797,82 +795,132 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
</del><ins>+namespace Inspector {
+
+void ObjCInspectorNetwork1BackendDispatcher::loadResource1(long requestId)
</ins><span class="cx"> {
</span><del>-    AugmentableInspectorController* _controller;
-    id&lt;TestProtocolNetwork1DomainHandler&gt; _network1Handler;
-    id&lt;TestProtocolNetwork3DomainHandler&gt; _network3Handler;
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource1WithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
</del><ins>+
+void ObjCInspectorNetwork3BackendDispatcher::loadResource1(long requestId)
</ins><span class="cx"> {
</span><del>-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource1WithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (void)dealloc
</del><ins>+void ObjCInspectorNetwork3BackendDispatcher::loadResource2(long requestId)
</ins><span class="cx"> {
</span><del>-    [_network1Handler release];
-    [_network3Handler release];
-    [super dealloc];
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource2WithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (void)setNetwork1Handler:(id&lt;TestProtocolNetwork1DomainHandler&gt;)handler
</del><ins>+void ObjCInspectorNetwork3BackendDispatcher::loadResource3(long requestId)
</ins><span class="cx"> {
</span><del>-    if (handler == _network1Handler)
-        return;
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
</ins><span class="cx"> 
</span><del>-    [_network1Handler release];
-    _network1Handler = [handler retain];
</del><ins>+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
</ins><span class="cx"> 
</span><del>-    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork1BackendDispatcher&gt;(handler);
-    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network1BackendDispatcher, AlternateNetwork1BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network1&quot;), *_controller, WTFMove(alternateDispatcher));
-    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
</del><ins>+    [m_delegate loadResource3WithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (id&lt;TestProtocolNetwork1DomainHandler&gt;)network1Handler
</del><ins>+void ObjCInspectorNetwork3BackendDispatcher::loadResource4(long requestId)
</ins><span class="cx"> {
</span><del>-    return _network1Handler;
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource4WithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (void)setNetwork3Handler:(id&lt;TestProtocolNetwork3DomainHandler&gt;)handler
</del><ins>+void ObjCInspectorNetwork3BackendDispatcher::loadResource5(long requestId)
</ins><span class="cx"> {
</span><del>-    if (handler == _network3Handler)
-        return;
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
</ins><span class="cx"> 
</span><del>-    [_network3Handler release];
-    _network3Handler = [handler retain];
</del><ins>+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
</ins><span class="cx"> 
</span><del>-    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork3BackendDispatcher&gt;(handler);
-    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network3BackendDispatcher, AlternateNetwork3BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network3&quot;), *_controller, WTFMove(alternateDispatcher));
-    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
</del><ins>+    [m_delegate loadResource5WithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (id&lt;TestProtocolNetwork3DomainHandler&gt;)network3Handler
</del><ins>+void ObjCInspectorNetwork3BackendDispatcher::loadResource6(long requestId)
</ins><span class="cx"> {
</span><del>-    return _network3Handler;
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResource6WithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-@end
</del><ins>+void ObjCInspectorNetwork3BackendDispatcher::loadResource7(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
</ins><span class="cx"> 
</span><ins>+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolConfiguration.mm
</del><ins>+    [m_delegate loadResource7WithErrorCallback:errorCallback successCallback:successCallback];
+}
</ins><span class="cx"> 
</span><ins>+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -915,7 +963,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -947,134 +995,82 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
-
-void ObjCInspectorNetwork1BackendDispatcher::loadResource1(long requestId)
</del><ins>+@implementation TestProtocolConfiguration
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
-
-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
-
-    [m_delegate loadResource1WithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolNetwork1DomainHandler&gt; _network1Handler;
+    id&lt;TestProtocolNetwork3DomainHandler&gt; _network3Handler;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-
-
-
-void ObjCInspectorNetwork3BackendDispatcher::loadResource1(long requestId)
</del><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
-
-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
-
-    [m_delegate loadResource1WithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ObjCInspectorNetwork3BackendDispatcher::loadResource2(long requestId)
</del><ins>+- (void)dealloc
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
-
-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
-
-    [m_delegate loadResource2WithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    [_network1Handler release];
+    [_network3Handler release];
+    [super dealloc];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ObjCInspectorNetwork3BackendDispatcher::loadResource3(long requestId)
</del><ins>+- (void)setNetwork1Handler:(id&lt;TestProtocolNetwork1DomainHandler&gt;)handler
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
</del><ins>+    if (handler == _network1Handler)
+        return;
</ins><span class="cx"> 
</span><del>-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
</del><ins>+    [_network1Handler release];
+    _network1Handler = [handler retain];
</ins><span class="cx"> 
</span><del>-    [m_delegate loadResource3WithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork1BackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network1BackendDispatcher, AlternateNetwork1BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network1&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ObjCInspectorNetwork3BackendDispatcher::loadResource4(long requestId)
</del><ins>+- (id&lt;TestProtocolNetwork1DomainHandler&gt;)network1Handler
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
-
-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
-
-    [m_delegate loadResource4WithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    return _network1Handler;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ObjCInspectorNetwork3BackendDispatcher::loadResource5(long requestId)
</del><ins>+- (void)setNetwork3Handler:(id&lt;TestProtocolNetwork3DomainHandler&gt;)handler
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
</del><ins>+    if (handler == _network3Handler)
+        return;
</ins><span class="cx"> 
</span><del>-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
</del><ins>+    [_network3Handler release];
+    _network3Handler = [handler retain];
</ins><span class="cx"> 
</span><del>-    [m_delegate loadResource5WithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork3BackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network3BackendDispatcher, AlternateNetwork3BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network3&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ObjCInspectorNetwork3BackendDispatcher::loadResource6(long requestId)
</del><ins>+- (id&lt;TestProtocolNetwork3DomainHandler&gt;)network3Handler
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
-
-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
-
-    [m_delegate loadResource6WithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    return _network3Handler;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ObjCInspectorNetwork3BackendDispatcher::loadResource7(long requestId)
-{
-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
</del><ins>+@end
</ins><span class="cx"> 
</span><del>-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
</del><span class="cx"> 
</span><del>-    [m_delegate loadResource7WithErrorCallback:errorCallback successCallback:successCallback];
-}
</del><ins>+### End File: TestProtocolConfiguration.mm
</ins><span class="cx"> 
</span><del>-
-} // namespace Inspector
-
-### End File: TestProtocolBackendDispatchers.mm
-
</del><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -1115,12 +1111,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span><span class="lines">@@ -1268,10 +1258,6 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolTypeConversions.h
</span><span class="lines">@@ -1316,21 +1302,12 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><del>-@interface TestProtocolTypeConversions (Network1Domain)
-
-@end
</del><span class="cx"> @interface TestProtocolTypeConversions (Network2Domain)
</span><span class="cx"> 
</span><span class="cx"> + (void)_parseLoaderId:(NSString **)outValue fromPayload:(id)payload;
</span><span class="cx"> 
</span><span class="cx"> @end
</span><del>-@interface TestProtocolTypeConversions (Network3Domain)
</del><span class="cx"> 
</span><del>-@end
-
-@implementation TestProtocolTypeConversions (Network1Domain)
-
-@end
</del><span class="cx"> @implementation TestProtocolTypeConversions (Network2Domain)
</span><span class="cx"> 
</span><span class="cx"> + (void)_parseLoaderId:(NSString **)outValue fromPayload:(id)payload
</span><span class="lines">@@ -1340,11 +1317,8 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span><del>-@implementation TestProtocolTypeConversions (Network3Domain)
</del><span class="cx"> 
</span><del>-@end
</del><span class="cx"> 
</span><del>-
</del><span class="cx"> ### End File: TestProtocolTypeConversions.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocolTypes.mm
</span><span class="lines">@@ -1391,8 +1365,4 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> ### End File: TestProtocolTypes.mm
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedenumvaluesjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -610,8 +610,6 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> class ObjCInspectorCommandDomainBackendDispatcher final : public AlternateCommandDomainBackendDispatcher {
</span><span class="cx"> public:
</span><span class="cx">     ObjCInspectorCommandDomainBackendDispatcher(id&lt;TestProtocolCommandDomainDomainHandler&gt; handler) { m_delegate = handler; }
</span><span class="lines">@@ -620,13 +618,11 @@
</span><span class="cx">     RetainPtr&lt;id&lt;TestProtocolCommandDomainDomainHandler&gt;&gt; m_delegate;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -658,71 +654,35 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-    id&lt;TestProtocolCommandDomainDomainHandler&gt; _commandDomainHandler;
-    TestProtocolEventDomainDomainEventDispatcher *_eventDomainEventDispatcher;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
</del><ins>+void ObjCInspectorCommandDomainBackendDispatcher::commandWithEnumReturnValue(long requestId)
</ins><span class="cx"> {
</span><del>-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [_commandDomainHandler release];
-    [_eventDomainEventDispatcher release];
-    [super dealloc];
-}
</del><ins>+    id successCallback = ^(TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue returnValue) {
+        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
+        resultObject-&gt;setString(ASCIILiteral(&quot;returnValue&quot;), toProtocolString(returnValue));
+        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
+    };
</ins><span class="cx"> 
</span><del>-- (void)setCommandDomainHandler:(id&lt;TestProtocolCommandDomainDomainHandler&gt;)handler
-{
-    if (handler == _commandDomainHandler)
-        return;
-
-    [_commandDomainHandler release];
-    _commandDomainHandler = [handler retain];
-
-    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorCommandDomainBackendDispatcher&gt;(handler);
-    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;CommandDomainBackendDispatcher, AlternateCommandDomainBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;CommandDomain&quot;), *_controller, WTFMove(alternateDispatcher));
-    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
</del><ins>+    [m_delegate commandWithEnumReturnValueWithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (id&lt;TestProtocolCommandDomainDomainHandler&gt;)commandDomainHandler
-{
-    return _commandDomainHandler;
-}
</del><span class="cx"> 
</span><del>-- (TestProtocolEventDomainDomainEventDispatcher *)eventDomainEventDispatcher
-{
-    if (!_eventDomainEventDispatcher)
-        _eventDomainEventDispatcher = [[TestProtocolEventDomainDomainEventDispatcher alloc] initWithController:_controller];
-    return _eventDomainEventDispatcher;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-@end
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -765,7 +725,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -797,38 +757,70 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolCommandDomainDomainHandler&gt; _commandDomainHandler;
+    TestProtocolEventDomainDomainEventDispatcher *_eventDomainEventDispatcher;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [_commandDomainHandler release];
+    [_eventDomainEventDispatcher release];
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><del>-void ObjCInspectorCommandDomainBackendDispatcher::commandWithEnumReturnValue(long requestId)
</del><ins>+- (void)setCommandDomainHandler:(id&lt;TestProtocolCommandDomainDomainHandler&gt;)handler
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
</del><ins>+    if (handler == _commandDomainHandler)
+        return;
</ins><span class="cx"> 
</span><del>-    id successCallback = ^(TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue returnValue) {
-        Ref&lt;InspectorObject&gt; resultObject = InspectorObject::create();
-        resultObject-&gt;setString(ASCIILiteral(&quot;returnValue&quot;), toProtocolString(returnValue));
-        backendDispatcher()-&gt;sendResponse(requestId, WTFMove(resultObject));
-    };
</del><ins>+    [_commandDomainHandler release];
+    _commandDomainHandler = [handler retain];
</ins><span class="cx"> 
</span><del>-    [m_delegate commandWithEnumReturnValueWithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorCommandDomainBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;CommandDomainBackendDispatcher, AlternateCommandDomainBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;CommandDomain&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (id&lt;TestProtocolCommandDomainDomainHandler&gt;)commandDomainHandler
+{
+    return _commandDomainHandler;
+}
</ins><span class="cx"> 
</span><ins>+- (TestProtocolEventDomainDomainEventDispatcher *)eventDomainEventDispatcher
+{
+    if (!_eventDomainEventDispatcher)
+        _eventDomainEventDispatcher = [[TestProtocolEventDomainDomainEventDispatcher alloc] initWithController:_controller];
+    return _eventDomainEventDispatcher;
+}
</ins><span class="cx"> 
</span><ins>+@end
</ins><span class="cx"> 
</span><del>-} // namespace Inspector
</del><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
</del><ins>+### End File: TestProtocolConfiguration.mm
</ins><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="lines">@@ -869,10 +861,6 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> @implementation TestProtocolEventDomainDomainEventDispatcher
</span><span class="cx"> {
</span><span class="cx">     AugmentableInspectorController* _controller;
</span><span class="lines">@@ -951,21 +939,8 @@
</span><span class="cx">     TestProtocolTypeDomainEnumBlue,
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-typedef NS_ENUM(NSInteger, TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue) {
-    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared,
-    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueCyan,
-    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueMagenta,
-    TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueYellow,
-};
</del><span class="cx"> 
</span><del>-typedef NS_ENUM(NSInteger, TestProtocolEventDomainEventWithEnumParameterParameter) {
-    TestProtocolEventDomainEventWithEnumParameterParameterShared,
-    TestProtocolEventDomainEventWithEnumParameterParameterBlack,
-    TestProtocolEventDomainEventWithEnumParameterParameterWhite,
-};
</del><span class="cx"> 
</span><del>-
-
</del><span class="cx"> @protocol TestProtocolCommandDomainDomainHandler &lt;NSObject&gt;
</span><span class="cx"> @required
</span><span class="cx"> - (void)commandWithEnumReturnValueWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)(TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue returnValue))successCallback;
</span><span class="lines">@@ -1091,62 +1066,6 @@
</span><span class="cx">     return TestProtocolTypeDomainEnumShared;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-
-inline String toProtocolString(TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue value)
-{
-    switch(value) {
-    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared:
-        return ASCIILiteral(&quot;shared&quot;);
-    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueCyan:
-        return ASCIILiteral(&quot;cyan&quot;);
-    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueMagenta:
-        return ASCIILiteral(&quot;magenta&quot;);
-    case TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueYellow:
-        return ASCIILiteral(&quot;yellow&quot;);
-    }
-}
-
-template&lt;&gt;
-inline TestProtocolCommandDomainCommandWithEnumReturnValueReturnValue fromProtocolString(const String&amp; value)
-{
-    if (value == &quot;shared&quot;)
-        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared;
-    if (value == &quot;cyan&quot;)
-        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueCyan;
-    if (value == &quot;magenta&quot;)
-        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueMagenta;
-    if (value == &quot;yellow&quot;)
-        return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueYellow;
-    ASSERT_NOT_REACHED();
-    return TestProtocolCommandDomainCommandWithEnumReturnValueReturnValueShared;
-}
-
-
-inline String toProtocolString(TestProtocolEventDomainEventWithEnumParameterParameter value)
-{
-    switch(value) {
-    case TestProtocolEventDomainEventWithEnumParameterParameterShared:
-        return ASCIILiteral(&quot;shared&quot;);
-    case TestProtocolEventDomainEventWithEnumParameterParameterBlack:
-        return ASCIILiteral(&quot;black&quot;);
-    case TestProtocolEventDomainEventWithEnumParameterParameterWhite:
-        return ASCIILiteral(&quot;white&quot;);
-    }
-}
-
-template&lt;&gt;
-inline TestProtocolEventDomainEventWithEnumParameterParameter fromProtocolString(const String&amp; value)
-{
-    if (value == &quot;shared&quot;)
-        return TestProtocolEventDomainEventWithEnumParameterParameterShared;
-    if (value == &quot;black&quot;)
-        return TestProtocolEventDomainEventWithEnumParameterParameterBlack;
-    if (value == &quot;white&quot;)
-        return TestProtocolEventDomainEventWithEnumParameterParameterWhite;
-    ASSERT_NOT_REACHED();
-    return TestProtocolEventDomainEventWithEnumParameterParameterShared;
-}
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolTypeConversions.h
</span><span class="lines">@@ -1196,13 +1115,7 @@
</span><span class="cx"> + (void)_parseTypeDomainEnum:(NSNumber **)outValue fromPayload:(id)payload;
</span><span class="cx"> 
</span><span class="cx"> @end
</span><del>-@interface TestProtocolTypeConversions (CommandDomainDomain)
</del><span class="cx"> 
</span><del>-@end
-@interface TestProtocolTypeConversions (EventDomainDomain)
-
-@end
-
</del><span class="cx"> @implementation TestProtocolTypeConversions (TypeDomainDomain)
</span><span class="cx"> 
</span><span class="cx"> + (void)_parseTypeDomainEnum:(NSNumber **)outValue fromPayload:(id)payload
</span><span class="lines">@@ -1212,14 +1125,8 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span><del>-@implementation TestProtocolTypeConversions (CommandDomainDomain)
</del><span class="cx"> 
</span><del>-@end
-@implementation TestProtocolTypeConversions (EventDomainDomain)
</del><span class="cx"> 
</span><del>-@end
-
-
</del><span class="cx"> ### End File: TestProtocolTypeConversions.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocolTypes.mm
</span><span class="lines">@@ -1266,8 +1173,4 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> ### End File: TestProtocolTypes.mm
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedeventswithoptionalparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -554,13 +554,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -592,51 +590,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-    TestProtocolDatabaseDomainEventDispatcher *_databaseEventDispatcher;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [_databaseEventDispatcher release];
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-- (TestProtocolDatabaseDomainEventDispatcher *)databaseEventDispatcher
-{
-    if (!_databaseEventDispatcher)
-        _databaseEventDispatcher = [[TestProtocolDatabaseDomainEventDispatcher alloc] initWithController:_controller];
-    return _databaseEventDispatcher;
-}
-
-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -678,7 +643,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -710,20 +675,51 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    TestProtocolDatabaseDomainEventDispatcher *_databaseEventDispatcher;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [_databaseEventDispatcher release];
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+- (TestProtocolDatabaseDomainEventDispatcher *)databaseEventDispatcher
+{
+    if (!_databaseEventDispatcher)
+        _databaseEventDispatcher = [[TestProtocolDatabaseDomainEventDispatcher alloc] initWithController:_controller];
+    return _databaseEventDispatcher;
+}
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
</del><ins>+@end
</ins><span class="cx"> 
</span><ins>+
+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailoncommandwithinvalidplatformjsonerror"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Unknown platform: invalid
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedfailontypewithinvalidplatformjsonerror"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+ERROR: Unknown platform: invalid
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedgeneratedomainswithfeatureguardsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -613,15 +613,11 @@
</span><span class="cx"> };
</span><span class="cx"> #endif // PLATFORM(WEB_COMMANDS)
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -653,71 +649,35 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-    id&lt;TestProtocolNetwork1DomainHandler&gt; _network1Handler;
-    TestProtocolNetwork3DomainEventDispatcher *_network3EventDispatcher;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
</del><ins>+#if PLATFORM(WEB_COMMANDS)
+void ObjCInspectorNetwork1BackendDispatcher::loadResource(long requestId)
</ins><span class="cx"> {
</span><del>-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [_network1Handler release];
-    [_network3EventDispatcher release];
-    [super dealloc];
-}
</del><ins>+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
</ins><span class="cx"> 
</span><del>-- (void)setNetwork1Handler:(id&lt;TestProtocolNetwork1DomainHandler&gt;)handler
-{
-    if (handler == _network1Handler)
-        return;
-
-    [_network1Handler release];
-    _network1Handler = [handler retain];
-
-    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork1BackendDispatcher&gt;(handler);
-    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network1BackendDispatcher, AlternateNetwork1BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network1&quot;), *_controller, WTFMove(alternateDispatcher));
-    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
</del><ins>+    [m_delegate loadResourceWithErrorCallback:errorCallback successCallback:successCallback];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (id&lt;TestProtocolNetwork1DomainHandler&gt;)network1Handler
-{
-    return _network1Handler;
-}
</del><ins>+#endif // PLATFORM(WEB_COMMANDS)
</ins><span class="cx"> 
</span><del>-- (TestProtocolNetwork3DomainEventDispatcher *)network3EventDispatcher
-{
-    if (!_network3EventDispatcher)
-        _network3EventDispatcher = [[TestProtocolNetwork3DomainEventDispatcher alloc] initWithController:_controller];
-    return _network3EventDispatcher;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-@end
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -760,7 +720,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -792,39 +752,71 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolNetwork1DomainHandler&gt; _network1Handler;
+    TestProtocolNetwork3DomainEventDispatcher *_network3EventDispatcher;
+}
</ins><span class="cx"> 
</span><del>-#if PLATFORM(WEB_COMMANDS)
-void ObjCInspectorNetwork1BackendDispatcher::loadResource(long requestId)
</del><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
</ins><span class="cx"> {
</span><del>-    id errorCallback = ^(NSString *error) {
-        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
-        backendDispatcher()-&gt;sendPendingErrors();
-    };
</del><ins>+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><del>-    id successCallback = ^{
-        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
-    };
-
-    [m_delegate loadResourceWithErrorCallback:errorCallback successCallback:successCallback];
</del><ins>+- (void)dealloc
+{
+    [_network1Handler release];
+    [_network3EventDispatcher release];
+    [super dealloc];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-#endif // PLATFORM(WEB_COMMANDS)
</del><ins>+- (void)setNetwork1Handler:(id&lt;TestProtocolNetwork1DomainHandler&gt;)handler
+{
+    if (handler == _network1Handler)
+        return;
</ins><span class="cx"> 
</span><ins>+    [_network1Handler release];
+    _network1Handler = [handler retain];
</ins><span class="cx"> 
</span><ins>+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetwork1BackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;Network1BackendDispatcher, AlternateNetwork1BackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network1&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
</ins><span class="cx"> 
</span><ins>+- (id&lt;TestProtocolNetwork1DomainHandler&gt;)network1Handler
+{
+    return _network1Handler;
+}
</ins><span class="cx"> 
</span><ins>+- (TestProtocolNetwork3DomainEventDispatcher *)network3EventDispatcher
+{
+    if (!_network3EventDispatcher)
+        _network3EventDispatcher = [[TestProtocolNetwork3DomainEventDispatcher alloc] initWithController:_controller];
+    return _network3EventDispatcher;
+}
</ins><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+@end
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
</del><span class="cx"> 
</span><ins>+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -864,10 +856,6 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> @implementation TestProtocolNetwork3DomainEventDispatcher
</span><span class="cx"> {
</span><span class="cx">     AugmentableInspectorController* _controller;
</span><span class="lines">@@ -1044,10 +1032,6 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolTypeConversions.h
</span><span class="lines">@@ -1092,21 +1076,12 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><del>-@interface TestProtocolTypeConversions (Network1Domain)
-
-@end
</del><span class="cx"> @interface TestProtocolTypeConversions (Network2Domain)
</span><span class="cx"> 
</span><span class="cx"> + (void)_parseNetworkError:(TestProtocolNetwork2NetworkError **)outValue fromPayload:(id)payload;
</span><span class="cx"> 
</span><span class="cx"> @end
</span><del>-@interface TestProtocolTypeConversions (Network3Domain)
</del><span class="cx"> 
</span><del>-@end
-
-@implementation TestProtocolTypeConversions (Network1Domain)
-
-@end
</del><span class="cx"> @implementation TestProtocolTypeConversions (Network2Domain)
</span><span class="cx"> 
</span><span class="cx"> + (void)_parseNetworkError:(TestProtocolNetwork2NetworkError **)outValue fromPayload:(id)payload
</span><span class="lines">@@ -1116,11 +1091,8 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span><del>-@implementation TestProtocolTypeConversions (Network3Domain)
</del><span class="cx"> 
</span><del>-@end
</del><span class="cx"> 
</span><del>-
</del><span class="cx"> ### End File: TestProtocolTypeConversions.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocolTypes.mm
</span><span class="lines">@@ -1165,8 +1137,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> @implementation TestProtocolNetwork2NetworkError
</span><span class="cx"> 
</span><span class="cx"> - (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
</span><span class="lines">@@ -1226,6 +1196,4 @@
</span><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> ### End File: TestProtocolTypes.mm
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedsametypeiddifferentdomainjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -422,15 +422,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -462,42 +458,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -538,7 +510,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -570,22 +542,42 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><ins>+@end
</ins><span class="cx"> 
</span><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+### End File: TestProtocolConfiguration.mm
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
-
</del><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -626,10 +618,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedshadowedoptionaltypesettersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -545,13 +545,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -583,42 +581,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -659,7 +633,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -691,20 +665,42 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+@end
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
</del><span class="cx"> 
</span><ins>+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -745,8 +741,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationaliasedprimitivetypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -417,13 +417,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -455,42 +453,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -531,7 +505,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -563,20 +537,42 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+@end
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
</del><span class="cx"> 
</span><ins>+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -617,8 +613,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationarraytypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -495,15 +495,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -535,42 +531,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -611,7 +583,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -643,22 +615,42 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><ins>+@end
</ins><span class="cx"> 
</span><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+### End File: TestProtocolConfiguration.mm
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
-
</del><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -699,10 +691,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationenumtypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -515,13 +515,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -553,42 +551,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -629,7 +603,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -661,20 +635,42 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+@end
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
</del><span class="cx"> 
</span><ins>+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -715,8 +711,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationobjecttypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -882,15 +882,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -922,42 +918,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -998,7 +970,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -1030,22 +1002,42 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><ins>+@end
</ins><span class="cx"> 
</span><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+### End File: TestProtocolConfiguration.mm
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
-
</del><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -1086,10 +1078,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtyperequiringruntimecastsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result (210308 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result        2017-01-05 01:17:07 UTC (rev 210308)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -842,13 +842,11 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> } // namespace Inspector
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolBackendDispatchers.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolConfiguration.mm
</del><ins>+### Begin File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -880,42 +878,18 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><del>-#import &quot;TestProtocolConfiguration.h&quot;
-
-#import &quot;TestProtocolInternal.h&quot;
</del><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><del>-#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
-#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
-#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
-#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</del><span class="cx"> 
</span><del>-using namespace Inspector;
</del><ins>+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
</ins><span class="cx"> 
</span><del>-@implementation TestProtocolConfiguration
-{
-    AugmentableInspectorController* _controller;
-}
</del><ins>+namespace Inspector {
</ins><span class="cx"> 
</span><del>-- (instancetype)initWithController:(AugmentableInspectorController*)controller
-{
-    self = [super init];
-    if (!self)
-        return nil;
-    ASSERT(controller);
-    _controller = controller;
-    return self;
-}
</del><ins>+} // namespace Inspector
</ins><span class="cx"> 
</span><del>-- (void)dealloc
-{
-    [super dealloc];
-}
</del><ins>+### End File: TestProtocolBackendDispatchers.mm
</ins><span class="cx"> 
</span><del>-@end
-
-
-### End File: TestProtocolConfiguration.mm
-
</del><span class="cx"> ### Begin File: TestProtocolConfiguration.h
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -956,7 +930,7 @@
</span><span class="cx"> 
</span><span class="cx"> ### End File: TestProtocolConfiguration.h
</span><span class="cx"> 
</span><del>-### Begin File: TestProtocolBackendDispatchers.mm
</del><ins>+### Begin File: TestProtocolConfiguration.mm
</ins><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="cx">  * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</span><span class="lines">@@ -988,20 +962,42 @@
</span><span class="cx"> // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
</span><span class="cx"> 
</span><span class="cx"> #import &quot;config.h&quot;
</span><ins>+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
</ins><span class="cx"> #import &quot;TestProtocolBackendDispatchers.h&quot;
</span><ins>+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
</ins><span class="cx"> 
</span><del>-#include &quot;TestProtocolInternal.h&quot;
-#include &quot;TestProtocolTypeConversions.h&quot;
-#include &lt;JavaScriptCore/InspectorValues.h&gt;
</del><ins>+using namespace Inspector;
</ins><span class="cx"> 
</span><del>-namespace Inspector {
</del><ins>+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
</ins><span class="cx"> 
</span><ins>+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
</ins><span class="cx"> 
</span><ins>+- (void)dealloc
+{
+    [super dealloc];
+}
</ins><span class="cx"> 
</span><del>-} // namespace Inspector
</del><ins>+@end
</ins><span class="cx"> 
</span><del>-### End File: TestProtocolBackendDispatchers.mm
</del><span class="cx"> 
</span><ins>+### End File: TestProtocolConfiguration.mm
+
</ins><span class="cx"> ### Begin File: TestProtocolEventDispatchers.mm
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -1042,8 +1038,6 @@
</span><span class="cx"> using namespace Inspector;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-
</del><span class="cx"> ### End File: TestProtocolEventDispatchers.mm
</span><span class="cx"> 
</span><span class="cx"> ### Begin File: TestProtocol.h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailoncommandwithinvalidplatformjson"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Overlay&quot;,
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;processPoints&quot;,
+            &quot;platform&quot;: &quot;invalid&quot;,
+            &quot;parameters&quot;: [
+                { &quot;name&quot;: &quot;point1&quot;, &quot;type&quot;: &quot;number&quot; },
+                { &quot;name&quot;: &quot;point2&quot;, &quot;type&quot;: &quot;number&quot; }
+            ],
+            &quot;returns&quot;: [
+                { &quot;name&quot;: &quot;result&quot;, &quot;type&quot;: &quot;string&quot; }
+            ]
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsgenericfailontypewithinvalidplatformjson"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Runtime&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;RemoteObjectId&quot;,
+            &quot;type&quot;: &quot;string&quot;,
+            &quot;platform&quot;: &quot;invalid&quot;,
+            &quot;description&quot;: &quot;Unique object identifier.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsiosdefinitionswithmacplatformjson"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/definitions-with-mac-platform.json (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/definitions-with-mac-platform.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/definitions-with-mac-platform.json        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Network&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;NetworkError&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ],
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;loadResource&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;resourceLoaded&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;A resource was loaded.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsiosexpecteddefinitionswithmacplatformjsonresultfromrev210308trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedtypedeclarationaliasedprimitivetypejsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result (from rev 210308, trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result) (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,835 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+
+
+
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+
+
+namespace Inspector {
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [super dealloc];
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+
+
+
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsmacdefinitionswithmacplatformjson"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+{
+    &quot;domain&quot;: &quot;Network&quot;,
+    &quot;types&quot;: [
+        {
+            &quot;id&quot;: &quot;NetworkError&quot;,
+            &quot;type&quot;: &quot;object&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;properties&quot;: [
+                { &quot;name&quot;: &quot;message&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;Error message.&quot; },
+                { &quot;name&quot;: &quot;code&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Error code.&quot; }
+            ]
+        }
+    ],
+    &quot;commands&quot;: [
+        {
+            &quot;name&quot;: &quot;loadResource&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;Loads a resource in the context of a frame on the inspected page without cross origin checks.&quot;
+        }
+    ],
+    &quot;events&quot;: [
+        {
+            &quot;name&quot;: &quot;resourceLoaded&quot;,
+            &quot;platform&quot;: &quot;macos&quot;,
+            &quot;description&quot;: &quot;A resource was loaded.&quot;
+        }
+    ]
+}
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsmacexpecteddefinitionswithmacplatformjsonresultfromrev210308trunkSourceJavaScriptCoreinspectorscriptstestsgenericexpectedgeneratedomainswithfeatureguardsjsonresult"></a>
<div class="copfile"><h4>Copied: trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result (from rev 210308, trunk/Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result) (0 => 210309)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result                                (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result        2017-01-05 01:22:41 UTC (rev 210309)
</span><span class="lines">@@ -0,0 +1,1172 @@
</span><ins>+### Begin File: InspectorBackendCommands.js
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+// Network.
+InspectorBackend.registerNetworkDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, &quot;Network&quot;);
+InspectorBackend.registerEvent(&quot;Network.resourceLoaded&quot;, []);
+InspectorBackend.registerCommand(&quot;Network.loadResource&quot;, [], []);
+InspectorBackend.activateDomain(&quot;Network&quot;);
+### End File: InspectorBackendCommands.js
+
+### Begin File: TestAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include &quot;TestProtocolTypes.h&quot;
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;JavaScriptCore/InspectorBackendDispatcher.h&gt;
+
+namespace Inspector {
+
+class AlternateBackendDispatcher {
+public:
+    void setBackendDispatcher(RefPtr&lt;BackendDispatcher&gt;&amp;&amp; dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
+    BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+    RefPtr&lt;BackendDispatcher&gt; m_backendDispatcher;
+};
+
+
+class AlternateNetworkBackendDispatcher : public AlternateBackendDispatcher {
+public:
+    virtual ~AlternateNetworkBackendDispatcher() { }
+    virtual void loadResource(long callId) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+### End File: TestAlternateBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorBackendDispatcher.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+typedef String ErrorString;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateNetworkBackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+class NetworkBackendDispatcherHandler {
+public:
+    virtual void loadResource(ErrorString&amp;) = 0;
+protected:
+    virtual ~NetworkBackendDispatcherHandler();
+};
+
+class NetworkBackendDispatcher final : public SupplementalBackendDispatcher {
+public:
+    static Ref&lt;NetworkBackendDispatcher&gt; create(BackendDispatcher&amp;, NetworkBackendDispatcherHandler*);
+    void dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message) override;
+private:
+    void loadResource(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp; parameters);
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+    void setAlternateDispatcher(AlternateNetworkBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+    AlternateNetworkBackendDispatcher* m_alternateDispatcher { nullptr };
+#endif
+private:
+    NetworkBackendDispatcher(BackendDispatcher&amp;, NetworkBackendDispatcherHandler*);
+    NetworkBackendDispatcherHandler* m_agent { nullptr };
+};
+
+} // namespace Inspector
+### End File: TestBackendDispatchers.h
+
+### Begin File: TestBackendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestBackendDispatchers.h&quot;
+
+#include &lt;inspector/InspectorFrontendRouter.h&gt;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include &quot;TestAlternateBackendDispatchers.h&quot;
+#endif
+
+namespace Inspector {
+
+NetworkBackendDispatcherHandler::~NetworkBackendDispatcherHandler() { }
+
+Ref&lt;NetworkBackendDispatcher&gt; NetworkBackendDispatcher::create(BackendDispatcher&amp; backendDispatcher, NetworkBackendDispatcherHandler* agent)
+{
+    return adoptRef(*new NetworkBackendDispatcher(backendDispatcher, agent));
+}
+
+NetworkBackendDispatcher::NetworkBackendDispatcher(BackendDispatcher&amp; backendDispatcher, NetworkBackendDispatcherHandler* agent)
+    : SupplementalBackendDispatcher(backendDispatcher)
+    , m_agent(agent)
+{
+    m_backendDispatcher-&gt;registerDispatcherForDomain(ASCIILiteral(&quot;Network&quot;), this);
+}
+
+void NetworkBackendDispatcher::dispatch(long requestId, const String&amp; method, Ref&lt;InspectorObject&gt;&amp;&amp; message)
+{
+    Ref&lt;NetworkBackendDispatcher&gt; protect(*this);
+
+    RefPtr&lt;InspectorObject&gt; parameters;
+    message-&gt;getObject(ASCIILiteral(&quot;params&quot;), parameters);
+
+    if (method == &quot;loadResource&quot;)
+        loadResource(requestId, WTFMove(parameters));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::MethodNotFound, makeString('\'', &quot;Network&quot;, '.', method, &quot;' was not found&quot;));
+}
+
+void NetworkBackendDispatcher::loadResource(long requestId, RefPtr&lt;InspectorObject&gt;&amp;&amp;)
+{
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+    if (m_alternateDispatcher) {
+        m_alternateDispatcher-&gt;loadResource(requestId);
+        return;
+    }
+#endif
+
+    ErrorString error;
+    Ref&lt;InspectorObject&gt; result = InspectorObject::create();
+    m_agent-&gt;loadResource(error);
+
+    if (!error.length())
+        m_backendDispatcher-&gt;sendResponse(requestId, WTFMove(result));
+    else
+        m_backendDispatcher-&gt;reportProtocolError(BackendDispatcher::ServerError, WTFMove(error));
+}
+
+} // namespace Inspector
+
+### End File: TestBackendDispatchers.cpp
+
+### Begin File: TestFrontendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &quot;TestProtocolObjects.h&quot;
+#include &lt;inspector/InspectorValues.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace Inspector {
+
+class FrontendRouter;
+
+class NetworkFrontendDispatcher {
+public:
+    NetworkFrontendDispatcher(FrontendRouter&amp; frontendRouter) : m_frontendRouter(frontendRouter) { }
+    void resourceLoaded();
+private:
+    FrontendRouter&amp; m_frontendRouter;
+};
+
+} // namespace Inspector
+### End File: TestFrontendDispatchers.h
+
+### Begin File: TestFrontendDispatchers.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestFrontendDispatchers.h&quot;
+
+#include &quot;InspectorFrontendRouter.h&quot;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+void NetworkFrontendDispatcher::resourceLoaded()
+{
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network.resourceLoaded&quot;));
+
+    m_frontendRouter.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+} // namespace Inspector
+
+### End File: TestFrontendDispatchers.cpp
+
+### Begin File: TestProtocolObjects.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#pragma once
+
+#include &lt;inspector/InspectorProtocolTypes.h&gt;
+#include &lt;wtf/Assertions.h&gt;
+
+namespace Inspector {
+
+
+
+namespace Protocol {
+
+// Forward declarations.
+namespace Network {
+class NetworkError;
+} // Network
+// End of forward declarations.
+
+
+
+
+namespace Network {
+class NetworkError : public Inspector::InspectorObjectBase {
+public:
+    enum {
+        NoFieldsSet = 0,
+        MessageSet = 1 &lt;&lt; 0,
+        CodeSet = 1 &lt;&lt; 1,
+        AllFieldsSet = (MessageSet | CodeSet)
+    };
+
+    template&lt;int STATE&gt;
+    class Builder {
+    private:
+        RefPtr&lt;InspectorObject&gt; m_result;
+
+        template&lt;int STEP&gt; Builder&lt;STATE | STEP&gt;&amp; castState()
+        {
+            return *reinterpret_cast&lt;Builder&lt;STATE | STEP&gt;*&gt;(this);
+        }
+
+        Builder(Ref&lt;/*NetworkError*/InspectorObject&gt;&amp;&amp; object)
+            : m_result(WTFMove(object))
+        {
+            COMPILE_ASSERT(STATE == NoFieldsSet, builder_created_in_non_init_state);
+        }
+        friend class NetworkError;
+    public:
+
+        Builder&lt;STATE | MessageSet&gt;&amp; setMessage(const String&amp; value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; MessageSet), property_message_already_set);
+            m_result-&gt;setString(ASCIILiteral(&quot;message&quot;), value);
+            return castState&lt;MessageSet&gt;();
+        }
+
+        Builder&lt;STATE | CodeSet&gt;&amp; setCode(int value)
+        {
+            COMPILE_ASSERT(!(STATE &amp; CodeSet), property_code_already_set);
+            m_result-&gt;setInteger(ASCIILiteral(&quot;code&quot;), value);
+            return castState&lt;CodeSet&gt;();
+        }
+
+        Ref&lt;NetworkError&gt; release()
+        {
+            COMPILE_ASSERT(STATE == AllFieldsSet, result_is_not_ready);
+            COMPILE_ASSERT(sizeof(NetworkError) == sizeof(InspectorObject), cannot_cast);
+
+            Ref&lt;InspectorObject&gt; result = m_result.releaseNonNull();
+            return WTFMove(*reinterpret_cast&lt;Ref&lt;NetworkError&gt;*&gt;(&amp;result));
+        }
+    };
+
+    /*
+     * Synthetic constructor:
+     * Ref&lt;NetworkError&gt; result = NetworkError::create()
+     *     .setMessage(...)
+     *     .setCode(...)
+     *     .release();
+     */
+    static Builder&lt;NoFieldsSet&gt; create()
+    {
+        return Builder&lt;NoFieldsSet&gt;(InspectorObject::create());
+    }
+};
+
+} // Network
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+### End File: TestProtocolObjects.h
+
+### Begin File: TestProtocolObjects.cpp
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &quot;config.h&quot;
+#include &quot;TestProtocolObjects.h&quot;
+
+#include &lt;wtf/Optional.h&gt;
+#include &lt;wtf/text/CString.h&gt;
+
+namespace Inspector {
+
+namespace Protocol {
+
+
+
+} // namespace Protocol
+
+} // namespace Inspector
+
+### End File: TestProtocolObjects.cpp
+
+### Begin File: TestProtocolBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#include &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#include &lt;wtf/RetainPtr.h&gt;
+
+@protocol TestProtocolNetworkDomainHandler;
+
+namespace Inspector {
+
+
+class ObjCInspectorNetworkBackendDispatcher final : public AlternateNetworkBackendDispatcher {
+public:
+    ObjCInspectorNetworkBackendDispatcher(id&lt;TestProtocolNetworkDomainHandler&gt; handler) { m_delegate = handler; }
+    virtual void loadResource(long requestId) override;
+private:
+    RetainPtr&lt;id&lt;TestProtocolNetworkDomainHandler&gt;&gt; m_delegate;
+};
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.h
+
+### Begin File: TestProtocolBackendDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+
+#include &quot;TestProtocolInternal.h&quot;
+#include &quot;TestProtocolTypeConversions.h&quot;
+#include &lt;JavaScriptCore/InspectorValues.h&gt;
+
+namespace Inspector {
+
+void ObjCInspectorNetworkBackendDispatcher::loadResource(long requestId)
+{
+    id errorCallback = ^(NSString *error) {
+        backendDispatcher()-&gt;reportProtocolError(requestId, BackendDispatcher::ServerError, error);
+        backendDispatcher()-&gt;sendPendingErrors();
+    };
+
+    id successCallback = ^{
+        backendDispatcher()-&gt;sendResponse(requestId, InspectorObject::create());
+    };
+
+    [m_delegate loadResourceWithErrorCallback:errorCallback successCallback:successCallback];
+}
+
+
+} // namespace Inspector
+
+### End File: TestProtocolBackendDispatchers.mm
+
+### Begin File: TestProtocolConfiguration.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;WebInspector/TestProtocol.h&gt;
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolConfiguration : NSObject
+@property (nonatomic, retain, setter=setNetworkHandler:) id&lt;TestProtocolNetworkDomainHandler&gt; networkHandler;
+@property (nonatomic, readonly) TestProtocolNetworkDomainEventDispatcher *networkEventDispatcher;
+@end
+
+
+### End File: TestProtocolConfiguration.h
+
+### Begin File: TestProtocolConfiguration.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolConfiguration.h&quot;
+
+#import &quot;TestProtocolInternal.h&quot;
+#import &quot;TestProtocolBackendDispatchers.h&quot;
+#import &lt;JavaScriptCore/AlternateDispatchableAgent.h&gt;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorAlternateBackendDispatchers.h&gt;
+#import &lt;JavaScriptCore/InspectorBackendDispatchers.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolConfiguration
+{
+    AugmentableInspectorController* _controller;
+    id&lt;TestProtocolNetworkDomainHandler&gt; _networkHandler;
+    TestProtocolNetworkDomainEventDispatcher *_networkEventDispatcher;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)dealloc
+{
+    [_networkHandler release];
+    [_networkEventDispatcher release];
+    [super dealloc];
+}
+
+- (void)setNetworkHandler:(id&lt;TestProtocolNetworkDomainHandler&gt;)handler
+{
+    if (handler == _networkHandler)
+        return;
+
+    [_networkHandler release];
+    _networkHandler = [handler retain];
+
+    auto alternateDispatcher = std::make_unique&lt;ObjCInspectorNetworkBackendDispatcher&gt;(handler);
+    auto alternateAgent = std::make_unique&lt;AlternateDispatchableAgent&lt;NetworkBackendDispatcher, AlternateNetworkBackendDispatcher&gt;&gt;(ASCIILiteral(&quot;Network&quot;), *_controller, WTFMove(alternateDispatcher));
+    _controller-&gt;appendExtraAgent(WTFMove(alternateAgent));
+}
+
+- (id&lt;TestProtocolNetworkDomainHandler&gt;)networkHandler
+{
+    return _networkHandler;
+}
+
+- (TestProtocolNetworkDomainEventDispatcher *)networkEventDispatcher
+{
+    if (!_networkEventDispatcher)
+        _networkEventDispatcher = [[TestProtocolNetworkDomainEventDispatcher alloc] initWithController:_controller];
+    return _networkEventDispatcher;
+}
+
+@end
+
+
+### End File: TestProtocolConfiguration.mm
+
+### Begin File: TestProtocolEventDispatchers.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+using namespace Inspector;
+
+@implementation TestProtocolNetworkDomainEventDispatcher
+{
+    AugmentableInspectorController* _controller;
+}
+
+- (instancetype)initWithController:(AugmentableInspectorController*)controller;
+{
+    self = [super init];
+    if (!self)
+        return nil;
+    ASSERT(controller);
+    _controller = controller;
+    return self;
+}
+
+- (void)resourceLoaded
+{
+    const FrontendRouter&amp; router = _controller-&gt;frontendRouter();
+
+    Ref&lt;InspectorObject&gt; jsonMessage = InspectorObject::create();
+    jsonMessage-&gt;setString(ASCIILiteral(&quot;method&quot;), ASCIILiteral(&quot;Network.resourceLoaded&quot;));
+    router.sendEvent(jsonMessage-&gt;toJSONString());
+}
+
+@end
+
+
+### End File: TestProtocolEventDispatchers.mm
+
+### Begin File: TestProtocol.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &lt;Foundation/Foundation.h&gt;
+
+#import &lt;WebInspector/RWIProtocolJSONObject.h&gt;
+
+
+@class TestProtocolNetworkError;
+
+
+
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolNetworkError : RWIProtocolJSONObject
+- (instancetype)initWithPayload:(NSDictionary&lt;NSString *, id&gt; *)payload;
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject;
+- (instancetype)initWithMessage:(NSString *)message code:(int)code;
+/* required */ @property (nonatomic, copy) NSString *message;
+/* required */ @property (nonatomic, assign) int code;
+@end
+
+@protocol TestProtocolNetworkDomainHandler &lt;NSObject&gt;
+@required
+- (void)loadResourceWithErrorCallback:(void(^)(NSString *error))errorCallback successCallback:(void(^)())successCallback;
+@end
+
+__attribute__((visibility (&quot;default&quot;)))
+@interface TestProtocolNetworkDomainEventDispatcher : NSObject
+- (void)resourceLoaded;
+@end
+
+
+### End File: TestProtocol.h
+
+### Begin File: TestProtocolInternal.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolJSONObjectPrivate.h&quot;
+#import &lt;JavaScriptCore/AugmentableInspectorController.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+
+@interface TestProtocolNetworkDomainEventDispatcher (Private)
+- (instancetype)initWithController:(Inspector::AugmentableInspectorController*)controller;
+@end
+
+
+### End File: TestProtocolInternal.h
+
+### Begin File: TestProtocolTypeConversions.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;TestProtocol.h&quot;
+#import &lt;WebInspector/RWIProtocolArrayConversions.h&gt;
+
+namespace Inspector {
+
+template&lt;typename ObjCEnumType&gt;
+ObjCEnumType fromProtocolString(const String&amp; value);
+
+
+
+} // namespace Inspector
+
+### End File: TestProtocolTypeConversions.h
+
+### Begin File: TestProtocolTypeConversions.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolTypeConversions.h&quot;
+
+#import &quot;TestProtocol.h&quot;
+#import &quot;TestProtocolTypeParser.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+
+using namespace Inspector;
+
+@interface TestProtocolTypeConversions (NetworkDomain)
+
++ (void)_parseNetworkError:(TestProtocolNetworkError **)outValue fromPayload:(id)payload;
+
+@end
+
+@implementation TestProtocolTypeConversions (NetworkDomain)
+
++ (void)_parseNetworkError:(TestProtocolNetworkError **)outValue fromPayload:(id)payload
+{
+    THROW_EXCEPTION_FOR_BAD_TYPE(payload, [NSDictionary class]);
+    *outValue = [[TestProtocolNetworkError alloc] initWithPayload:payload];
+}
+
+@end
+
+
+### End File: TestProtocolTypeConversions.mm
+
+### Begin File: TestProtocolTypes.mm
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014 University of Washington. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// DO NOT EDIT THIS FILE. It is automatically generated from definitions-with-mac-platform.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#import &quot;config.h&quot;
+#import &quot;TestProtocolInternal.h&quot;
+
+#import &quot;TestProtocolTypeConversions.h&quot;
+#import &lt;WebInspector/RWIProtocolJSONObjectPrivate.h&gt;
+#import &lt;JavaScriptCore/InspectorValues.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+
+using namespace Inspector;
+
+
+@implementation TestProtocolNetworkError
+
+- (instancetype)initWithPayload:(nonnull NSDictionary&lt;NSString *, id&gt; *)payload
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;message&quot;], @&quot;message&quot;);
+    self.message = payload[@&quot;message&quot;];
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(payload[@&quot;code&quot;], @&quot;code&quot;);
+    self.code = [payload[@&quot;code&quot;] integerValue];
+
+    return self;
+}
+- (instancetype)initWithJSONObject:(RWIProtocolJSONObject *)jsonObject
+{
+    if (!(self = [super initWithInspectorObject:[jsonObject toInspectorObject].get()]))
+        return nil;
+
+    return self;
+}
+
+- (instancetype)initWithMessage:(NSString *)message code:(int)code
+{
+    if (!(self = [super init]))
+        return nil;
+
+    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(message, @&quot;message&quot;);
+
+    self.message = message;
+    self.code = code;
+
+    return self;
+}
+
+- (void)setMessage:(NSString *)message
+{
+    [super setString:message forKey:@&quot;message&quot;];
+}
+
+- (NSString *)message
+{
+    return [super stringForKey:@&quot;message&quot;];
+}
+
+- (void)setCode:(int)code
+{
+    [super setInteger:code forKey:@&quot;code&quot;];
+}
+
+- (int)code
+{
+    return [super integerForKey:@&quot;code&quot;];
+}
+
+@end
+
+
+### End File: TestProtocolTypes.mm
</ins></span></pre>
</div>
</div>

</body>
</html>