<!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>[175151] trunk/Source</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/175151">175151</a></dd>
<dt>Author</dt> <dd>joepeck@webkit.org</dd>
<dt>Date</dt> <dd>2014-10-23 16:43:14 -0700 (Thu, 23 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Web Inspector: Provide a way to have alternate inspector agents
https://bugs.webkit.org/show_bug.cgi?id=137901
Reviewed by Brian Burg.
Source/JavaScriptCore:
Provide a way to use alternate inspector agents debugging a JSContext.
Expose a very slim private API that a client could use to know when
an inspector has connected/disconnected, and a way to register its
augmentative agents.
* Configurations/FeatureDefines.xcconfig:
* JavaScriptCore.xcodeproj/project.pbxproj:
New feature guard. New files.
* API/JSContextRef.cpp:
(JSGlobalContextGetAugmentableInspectorController):
* API/JSContextRefInspectorSupport.h: Added.
Access to the private interface from a JSContext.
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::connectFrontend):
(Inspector::JSGlobalObjectInspectorController::disconnectFrontend):
* inspector/JSGlobalObjectInspectorController.h:
* inspector/augmentable/AugmentableInspectorController.h: Added.
(Inspector::AugmentableInspectorController::~AugmentableInspectorController):
(Inspector::AugmentableInspectorController::connected):
* inspector/augmentable/AugmentableInspectorControllerClient.h: Added.
(Inspector::AugmentableInspectorControllerClient::~AugmentableInspectorControllerClient):
* inspector/augmentable/AlternateDispatchableAgent.h: Added.
(Inspector::AlternateDispatchableAgent::AlternateDispatchableAgent):
Provide the private APIs a client could use to add alternate agents using alternate backend dispatchers.
* inspector/scripts/codegen/__init__.py:
* inspector/scripts/generate-inspector-protocol-bindings.py:
(generate_from_specification):
New includes, and use the new generator.
* inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py: Added.
(AlternateBackendDispatcherHeaderGenerator):
(AlternateBackendDispatcherHeaderGenerator.__init__):
(AlternateBackendDispatcherHeaderGenerator.output_filename):
(AlternateBackendDispatcherHeaderGenerator.generate_output):
(AlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(AlternateBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
Generate the abstract AlternateInspectorBackendDispatcher interfaces.
* inspector/scripts/codegen/generate_backend_dispatcher_header.py:
(BackendDispatcherHeaderGenerator.generate_output):
(BackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains):
(BackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains.AlternateInspector):
Forward declare alternate dispatchers, and allow setting an alternate dispatcher on a domain dispatcher.
* inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:
(BackendDispatcherImplementationGenerator.generate_output):
(BackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
Check for and dispatch on an AlternateInspectorBackendDispatcher if there is one for this domain.
* inspector/scripts/codegen/generator_templates.py:
(AlternateInspectorBackendDispatcher):
(AlternateInspector):
Template boilerplate for prelude and postlude.
* inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
* inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
* inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
* inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
* inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
* inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
* inspector/scripts/tests/expected/type-declaration-array-type.json-result:
* inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
* inspector/scripts/tests/expected/type-declaration-object-type.json-result:
* inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
Rebaseline tests.
Source/WebCore:
* Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
* Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
* Configurations/FeatureDefines.xcconfig:
Source/WTF:
* wtf/FeatureDefines.h:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreAPIJSContextRefcpp">trunk/Source/JavaScriptCore/API/JSContextRef.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreConfigurationsFeatureDefinesxcconfig">trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllercpp">trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllerh">trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegen__init__py">trunk/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerator_templatespy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptsgenerateinspectorprotocolbindingspy">trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpecteddomainswithvaryingcommandsizesjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedeventswithoptionalparametersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedgeneratedomainswithfeatureguardsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedsametypeiddifferentdomainjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedshadowedoptionaltypesettersjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationaliasedprimitivetypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationenumtypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationobjecttypejsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult">trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfFeatureDefinesh">trunk/Source/WTF/wtf/FeatureDefines.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreConfigurationsFeatureDefinesxcconfig">trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacConfigurationsFeatureDefinesxcconfig">trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2ConfigurationsFeatureDefinesxcconfig">trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreAPIJSContextRefInspectorSupporth">trunk/Source/JavaScriptCore/API/JSContextRefInspectorSupport.h</a></li>
<li>trunk/Source/JavaScriptCore/inspector/augmentable/</li>
<li><a href="#trunkSourceJavaScriptCoreinspectoraugmentableAlternateDispatchableAgenth">trunk/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoraugmentableAugmentableInspectorControllerh">trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoraugmentableAugmentableInspectorControllerClienth">trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorControllerClient.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_alternate_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreAPIJSContextRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/API/JSContextRef.cpp (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSContextRef.cpp        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/API/JSContextRef.cpp        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -45,6 +45,10 @@
</span><span class="cx"> #include "JSGlobalObjectInspectorController.h"
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "JSContextRefInspectorSupport.h"
+#endif
+
</ins><span class="cx"> #if OS(DARWIN)
</span><span class="cx"> #include <mach-o/dyld.h>
</span><span class="cx">
</span><span class="lines">@@ -410,4 +414,19 @@
</span><span class="cx"> UNUSED_PARAM(runLoop);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><ins>+#endif // USE(CF)
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+Inspector::AugmentableInspectorController* JSGlobalContextGetAugmentableInspectorController(JSGlobalContextRef ctx)
+{
+ if (!ctx) {
+ ASSERT_NOT_REACHED();
+ return nullptr;
+ }
+
+ ExecState* exec = toJS(ctx);
+ JSLockHolder lock(exec);
+
+ return &exec->vmEntryGlobalObject()->inspectorController();
+}
</ins><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreAPIJSContextRefInspectorSupporth"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/API/JSContextRefInspectorSupport.h (0 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/API/JSContextRefInspectorSupport.h         (rev 0)
+++ trunk/Source/JavaScriptCore/API/JSContextRefInspectorSupport.h        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. 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. ``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
+ * 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.
+ */
+
+#ifndef JSContextRefInspectorSupport_h
+#define JSContextRefInspectorSupport_h
+
+#ifndef __cplusplus
+#error Requires C++ Support.
+#endif
+
+#include <JavaScriptCore/JSContextRefPrivate.h>
+
+namespace Inspector {
+class AugmentableInspectorController;
+}
+
+extern "C" {
+JS_EXPORT Inspector::AugmentableInspectorController* JSGlobalContextGetAugmentableInspectorController(JSGlobalContextRef);
+}
+
+#endif // JSContextRefInspectorSupport_h
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,82 @@
</span><ins>+2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
+
+ Web Inspector: Provide a way to have alternate inspector agents
+ https://bugs.webkit.org/show_bug.cgi?id=137901
+
+ Reviewed by Brian Burg.
+
+ Provide a way to use alternate inspector agents debugging a JSContext.
+ Expose a very slim private API that a client could use to know when
+ an inspector has connected/disconnected, and a way to register its
+ augmentative agents.
+
+ * Configurations/FeatureDefines.xcconfig:
+ * JavaScriptCore.xcodeproj/project.pbxproj:
+ New feature guard. New files.
+
+ * API/JSContextRef.cpp:
+ (JSGlobalContextGetAugmentableInspectorController):
+ * API/JSContextRefInspectorSupport.h: Added.
+ Access to the private interface from a JSContext.
+
+ * inspector/JSGlobalObjectInspectorController.cpp:
+ (Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
+ (Inspector::JSGlobalObjectInspectorController::connectFrontend):
+ (Inspector::JSGlobalObjectInspectorController::disconnectFrontend):
+ * inspector/JSGlobalObjectInspectorController.h:
+ * inspector/augmentable/AugmentableInspectorController.h: Added.
+ (Inspector::AugmentableInspectorController::~AugmentableInspectorController):
+ (Inspector::AugmentableInspectorController::connected):
+ * inspector/augmentable/AugmentableInspectorControllerClient.h: Added.
+ (Inspector::AugmentableInspectorControllerClient::~AugmentableInspectorControllerClient):
+ * inspector/augmentable/AlternateDispatchableAgent.h: Added.
+ (Inspector::AlternateDispatchableAgent::AlternateDispatchableAgent):
+ Provide the private APIs a client could use to add alternate agents using alternate backend dispatchers.
+
+ * inspector/scripts/codegen/__init__.py:
+ * inspector/scripts/generate-inspector-protocol-bindings.py:
+ (generate_from_specification):
+ New includes, and use the new generator.
+
+ * inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py: Added.
+ (AlternateBackendDispatcherHeaderGenerator):
+ (AlternateBackendDispatcherHeaderGenerator.__init__):
+ (AlternateBackendDispatcherHeaderGenerator.output_filename):
+ (AlternateBackendDispatcherHeaderGenerator.generate_output):
+ (AlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
+ (AlternateBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
+ Generate the abstract AlternateInspectorBackendDispatcher interfaces.
+
+ * inspector/scripts/codegen/generate_backend_dispatcher_header.py:
+ (BackendDispatcherHeaderGenerator.generate_output):
+ (BackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains):
+ (BackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains.AlternateInspector):
+ Forward declare alternate dispatchers, and allow setting an alternate dispatcher on a domain dispatcher.
+
+ * inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:
+ (BackendDispatcherImplementationGenerator.generate_output):
+ (BackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
+ Check for and dispatch on an AlternateInspectorBackendDispatcher if there is one for this domain.
+
+ * inspector/scripts/codegen/generator_templates.py:
+ (AlternateInspectorBackendDispatcher):
+ (AlternateInspector):
+ Template boilerplate for prelude and postlude.
+
+ * inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
+ * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
+ * inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
+ * inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
+ * inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
+ * inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
+ * inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
+ * inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
+ * inspector/scripts/tests/expected/type-declaration-array-type.json-result:
+ * inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
+ * inspector/scripts/tests/expected/type-declaration-object-type.json-result:
+ * inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
+ Rebaseline tests.
+
</ins><span class="cx"> 2014-10-23 Michael Saboff <msaboff@apple.com>
</span><span class="cx">
</span><span class="cx"> offsets.rb:183:in `buildOffsetsMap': unhandled exception - is offlineasm dependency tracking broken? (132668)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -121,6 +121,15 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><span class="cx"> ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</span><ins>+
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_$(PLATFORM_NAME));
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphonesimulator = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos);
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR))
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1080 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1090 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_101000 = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1185,6 +1185,13 @@
</span><span class="cx">                 A5CEEE14187F3BAD00E55C99 /* InspectorAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5CEEE12187F3BAD00E55C99 /* InspectorAgent.cpp */; };
</span><span class="cx">                 A5D0A1BB1862301B00C7B496 /* InspectorEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A5D0A1BA1862301B00C7B496 /* InspectorEnvironment.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A5D2E665195E174000A518E7 /* JSContextRefInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A5D2E664195E173800A518E7 /* JSContextRefInternal.h */; };
</span><ins>+                A5EA70E719F5B1010098F5EC /* AugmentableInspectorController.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EA70E419F5B1010098F5EC /* AugmentableInspectorController.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                A5EA70E819F5B1010098F5EC /* AugmentableInspectorControllerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EA70E519F5B1010098F5EC /* AugmentableInspectorControllerClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                A5EA70E919F5B1010098F5EC /* AlternateDispatchableAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EA70E619F5B1010098F5EC /* AlternateDispatchableAgent.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                A5EA70EB19F5B3D50098F5EC /* generate_alternate_backend_dispatcher_header.py in Resources */ = {isa = PBXBuildFile; fileRef = A5EA70EA19F5B3D50098F5EC /* generate_alternate_backend_dispatcher_header.py */; };
+                A5EA70EC19F5B3EA0098F5EC /* generate_alternate_backend_dispatcher_header.py in Headers */ = {isa = PBXBuildFile; fileRef = A5EA70EA19F5B3D50098F5EC /* generate_alternate_backend_dispatcher_header.py */; settings = {ATTRIBUTES = (Private, ); }; };
+                A5EA70EE19F5B5C40098F5EC /* JSContextRefInspectorSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EA70ED19F5B5C40098F5EC /* JSContextRefInspectorSupport.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                A5EA710E19F6DF810098F5EC /* InspectorAlternateBackendDispatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EA710D19F6DF810098F5EC /* InspectorAlternateBackendDispatchers.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 A5FD0067189AFE9C00633231 /* ScriptArguments.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5FD0065189AFE9C00633231 /* ScriptArguments.cpp */; };
</span><span class="cx">                 A5FD0068189AFE9C00633231 /* ScriptArguments.h in Headers */ = {isa = PBXBuildFile; fileRef = A5FD0066189AFE9C00633231 /* ScriptArguments.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A5FD006D189B00AA00633231 /* ScriptCallFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5FD0069189B00A900633231 /* ScriptCallFrame.cpp */; };
</span><span class="lines">@@ -2854,6 +2861,12 @@
</span><span class="cx">                 A5CEEE13187F3BAD00E55C99 /* InspectorAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorAgent.h; sourceTree = "<group>"; };
</span><span class="cx">                 A5D0A1BA1862301B00C7B496 /* InspectorEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorEnvironment.h; sourceTree = "<group>"; };
</span><span class="cx">                 A5D2E664195E173800A518E7 /* JSContextRefInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSContextRefInternal.h; sourceTree = "<group>"; };
</span><ins>+                A5EA70E419F5B1010098F5EC /* AugmentableInspectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AugmentableInspectorController.h; sourceTree = "<group>"; };
+                A5EA70E519F5B1010098F5EC /* AugmentableInspectorControllerClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AugmentableInspectorControllerClient.h; sourceTree = "<group>"; };
+                A5EA70E619F5B1010098F5EC /* AlternateDispatchableAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlternateDispatchableAgent.h; sourceTree = "<group>"; };
+                A5EA70EA19F5B3D50098F5EC /* generate_alternate_backend_dispatcher_header.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = generate_alternate_backend_dispatcher_header.py; sourceTree = "<group>"; };
+                A5EA70ED19F5B5C40098F5EC /* JSContextRefInspectorSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSContextRefInspectorSupport.h; sourceTree = "<group>"; };
+                A5EA710D19F6DF810098F5EC /* InspectorAlternateBackendDispatchers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorAlternateBackendDispatchers.h; sourceTree = "<group>"; };
</ins><span class="cx">                 A5FD0065189AFE9C00633231 /* ScriptArguments.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptArguments.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A5FD0066189AFE9C00633231 /* ScriptArguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptArguments.h; sourceTree = "<group>"; };
</span><span class="cx">                 A5FD0069189B00A900633231 /* ScriptCallFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptCallFrame.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -3904,6 +3917,7 @@
</span><span class="cx">                                 86E3C609167BAB87006D760A /* JSContextInternal.h */,
</span><span class="cx">                                 14BD5A290A3E91F600BAF59C /* JSContextRef.cpp */,
</span><span class="cx">                                 14BD5A2A0A3E91F600BAF59C /* JSContextRef.h */,
</span><ins>+                                A5EA70ED19F5B5C40098F5EC /* JSContextRefInspectorSupport.h */,
</ins><span class="cx">                                 A5D2E664195E173800A518E7 /* JSContextRefInternal.h */,
</span><span class="cx">                                 148CD1D7108CF902008163C6 /* JSContextRefPrivate.h */,
</span><span class="cx">                                 A72028B41797601E0098028C /* JSCTestRunnerUtils.cpp */,
</span><span class="lines">@@ -4011,6 +4025,7 @@
</span><span class="cx">                                 BCD203E70E1718F4002C7E82 /* DatePrototype.lut.h */,
</span><span class="cx">                                 6514F21818B3E1670098FF8B /* InitBytecodes.asm */,
</span><span class="cx">                                 A513E5C6185F9436007E95AD /* InjectedScriptSource.h */,
</span><ins>+                                A5EA710D19F6DF810098F5EC /* InspectorAlternateBackendDispatchers.h */,
</ins><span class="cx">                                 A53243961856A475002ED692 /* InspectorBackendCommands.js */,
</span><span class="cx">                                 A532438118568317002ED692 /* InspectorBackendDispatchers.cpp */,
</span><span class="cx">                                 A532438218568317002ED692 /* InspectorBackendDispatchers.h */,
</span><span class="lines">@@ -5143,6 +5158,7 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 A513E5CC185FB992007E95AD /* agents */,
</span><ins>+                                A5EA70E319F5B0E20098F5EC /* augmentable */,
</ins><span class="cx">                                 A532438D185696CA002ED692 /* protocol */,
</span><span class="cx">                                 A5BA15E01823409D00A82E69 /* remote */,
</span><span class="cx">                                 A532438E185696CE002ED692 /* scripts */,
</span><span class="lines">@@ -5223,6 +5239,16 @@
</span><span class="cx">                         path = remote;
</span><span class="cx">                         sourceTree = "<group>";
</span><span class="cx">                 };
</span><ins>+                A5EA70E319F5B0E20098F5EC /* augmentable */ = {
+                        isa = PBXGroup;
+                        children = (
+                                A5EA70E419F5B1010098F5EC /* AugmentableInspectorController.h */,
+                                A5EA70E519F5B1010098F5EC /* AugmentableInspectorControllerClient.h */,
+                                A5EA70E619F5B1010098F5EC /* AlternateDispatchableAgent.h */,
+                        );
+                        path = augmentable;
+                        sourceTree = "<group>";
+                };
</ins><span class="cx">                 A7D8019F1880D66E0026C39B /* builtins */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -5240,6 +5266,7 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 C4703CC2192844CC0013FBEA /* __init__.py */,
</span><ins>+                                A5EA70EA19F5B3D50098F5EC /* generate_alternate_backend_dispatcher_header.py */,
</ins><span class="cx">                                 C4703CC3192844CC0013FBEA /* generate_backend_commands.py */,
</span><span class="cx">                                 C4703CC4192844CC0013FBEA /* generate_backend_dispatcher_header.py */,
</span><span class="cx">                                 C4703CC5192844CC0013FBEA /* generate_backend_dispatcher_implementation.py */,
</span><span class="lines">@@ -5298,7 +5325,9 @@
</span><span class="cx">                                 0F6B1CB91861244C00845D97 /* ArityCheckMode.h in Headers */,
</span><span class="cx">                                 A1A009C11831A26E00CF8711 /* ARM64Assembler.h in Headers */,
</span><span class="cx">                                 86D3B2C410156BDE002865E7 /* ARMAssembler.h in Headers */,
</span><ins>+                                A5EA710E19F6DF810098F5EC /* InspectorAlternateBackendDispatchers.h in Headers */,
</ins><span class="cx">                                 C49FE4AB19AAC86100F40CE9 /* generate_protocol_types_header.py in Headers */,
</span><ins>+                                A5EA70EC19F5B3EA0098F5EC /* generate_alternate_backend_dispatcher_header.py in Headers */,
</ins><span class="cx">                                 6AD2CB4D19B9140100065719 /* DebuggerEvalEnabler.h in Headers */,
</span><span class="cx">                                 C49FE4AC19AAC86100F40CE9 /* generate_protocol_types_implementation.py in Headers */,
</span><span class="cx">                                 658D3A5619638268003C45D6 /* VMEntryRecord.h in Headers */,
</span><span class="lines">@@ -5427,6 +5456,7 @@
</span><span class="cx">                                 0FC712DF17CD877C008CC93C /* DeferredCompilationCallback.h in Headers */,
</span><span class="cx">                                 2A2825D018341F2D0087FBA9 /* DelayedReleaseScope.h in Headers */,
</span><span class="cx">                                 A77A423E17A0BBFD00A8DB81 /* DFGAbstractHeap.h in Headers */,
</span><ins>+                                A5EA70E819F5B1010098F5EC /* AugmentableInspectorControllerClient.h in Headers */,
</ins><span class="cx">                                 A704D90317A0BAA8006BA554 /* DFGAbstractInterpreter.h in Headers */,
</span><span class="cx">                                 A704D90417A0BAA8006BA554 /* DFGAbstractInterpreterInlines.h in Headers */,
</span><span class="cx">                                 0F620177143FCD3F0068B77C /* DFGAbstractValue.h in Headers */,
</span><span class="lines">@@ -5530,6 +5560,7 @@
</span><span class="cx">                                 0F4CED5F18CEA7AB00802FE0 /* PolymorphicGetByIdList.h in Headers */,
</span><span class="cx">                                 0F235BEE17178E7300690C7F /* DFGOSRExitPreparation.h in Headers */,
</span><span class="cx">                                 0FFFC95C14EF90AF00C72532 /* DFGPhase.h in Headers */,
</span><ins>+                                A5EA70EE19F5B5C40098F5EC /* JSContextRefInspectorSupport.h in Headers */,
</ins><span class="cx">                                 A78A977B179738B8009DF744 /* DFGPlan.h in Headers */,
</span><span class="cx">                                 0FBE0F7516C1DB0B0082C5E8 /* DFGPredictionInjectionPhase.h in Headers */,
</span><span class="cx">                                 0FFFC95E14EF90B700C72532 /* DFGPredictionPropagationPhase.h in Headers */,
</span><span class="lines">@@ -5731,6 +5762,7 @@
</span><span class="cx">                                 BC18C4140E16F5CD00B34460 /* JavaScriptCore.h in Headers */,
</span><span class="cx">                                 BC18C4150E16F5CD00B34460 /* JavaScriptCorePrefix.h in Headers */,
</span><span class="cx">                                 1429D9300ED22D7000B89619 /* JIT.h in Headers */,
</span><ins>+                                A5EA70E919F5B1010098F5EC /* AlternateDispatchableAgent.h in Headers */,
</ins><span class="cx">                                 86CCEFDE0F413F8900FD7F9E /* JITCode.h in Headers */,
</span><span class="cx">                                 0F0776BF14FF002B00102332 /* JITCompilationEffort.h in Headers */,
</span><span class="cx">                                 0FAF7EFE165BA91F000C8455 /* JITDisassembler.h in Headers */,
</span><span class="lines">@@ -5979,6 +6011,7 @@
</span><span class="cx">                                 0F9FC8C414E1B60000D52AE0 /* PolymorphicPutByIdList.h in Headers */,
</span><span class="cx">                                 0F98206116BFE38300240D02 /* PreciseJumpTargets.h in Headers */,
</span><span class="cx">                                 868916B0155F286300CB2B9A /* PrivateName.h in Headers */,
</span><ins>+                                A5EA70E719F5B1010098F5EC /* AugmentableInspectorController.h in Headers */,
</ins><span class="cx">                                 BC18C4500E16F5CD00B34460 /* Profile.h in Headers */,
</span><span class="cx">                                 95CD45770E1C4FDD0085358E /* ProfileGenerator.h in Headers */,
</span><span class="cx">                                 BC18C4510E16F5CD00B34460 /* ProfileNode.h in Headers */,
</span><span class="lines">@@ -6353,6 +6386,7 @@
</span><span class="cx">                         buildActionMask = 2147483647;
</span><span class="cx">                         files = (
</span><span class="cx">                                 C49FE4A919AAC83E00F40CE9 /* generate_protocol_types_header.py in Resources */,
</span><ins>+                                A5EA70EB19F5B3D50098F5EC /* generate_alternate_backend_dispatcher_header.py in Resources */,
</ins><span class="cx">                                 A53F1AC018C90F8F0072EB6D /* framework.sb in Resources */,
</span><span class="cx">                                 C49FE4AA19AAC83E00F40CE9 /* generate_protocol_types_implementation.py in Resources */,
</span><span class="cx">                         );
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -61,6 +61,9 @@
</span><span class="cx"> , m_inspectorFrontendChannel(nullptr)
</span><span class="cx"> , m_includeNativeCallStackWithExceptions(true)
</span><span class="cx"> , m_isAutomaticInspection(false)
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , m_augmentingClient(nullptr)
+#endif
</ins><span class="cx"> {
</span><span class="cx"> auto runtimeAgent = std::make_unique<JSGlobalObjectRuntimeAgent>(m_injectedScriptManager.get(), m_globalObject);
</span><span class="cx"> auto consoleAgent = std::make_unique<JSGlobalObjectConsoleAgent>(m_injectedScriptManager.get());
</span><span class="lines">@@ -101,6 +104,11 @@
</span><span class="cx"> m_inspectorBackendDispatcher = InspectorBackendDispatcher::create(frontendChannel);
</span><span class="cx">
</span><span class="cx"> m_agents.didCreateFrontendAndBackend(frontendChannel, m_inspectorBackendDispatcher.get());
</span><ins>+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_augmentingClient)
+ m_augmentingClient->inspectorConnected();
+#endif
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void JSGlobalObjectInspectorController::disconnectFrontend(InspectorDisconnectReason reason)
</span><span class="lines">@@ -115,6 +123,11 @@
</span><span class="cx"> m_inspectorFrontendChannel = nullptr;
</span><span class="cx">
</span><span class="cx"> m_isAutomaticInspection = false;
</span><ins>+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_augmentingClient)
+ m_augmentingClient->inspectorDisconnected();
+#endif
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void JSGlobalObjectInspectorController::dispatchMessageFromFrontend(const String& message)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -34,6 +34,10 @@
</span><span class="cx"> #include <wtf/Noncopyable.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "AugmentableInspectorController.h"
+#endif
+
</ins><span class="cx"> namespace JSC {
</span><span class="cx"> class ConsoleClient;
</span><span class="cx"> class ExecState;
</span><span class="lines">@@ -52,7 +56,12 @@
</span><span class="cx"> class JSGlobalObjectConsoleClient;
</span><span class="cx"> class ScriptCallStack;
</span><span class="cx">
</span><del>-class JSGlobalObjectInspectorController final : public InspectorEnvironment {
</del><ins>+class JSGlobalObjectInspectorController final
+ : public InspectorEnvironment
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , public AugmentableInspectorController
+#endif
+{
</ins><span class="cx"> WTF_MAKE_NONCOPYABLE(JSGlobalObjectInspectorController);
</span><span class="cx"> WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><span class="lines">@@ -71,6 +80,7 @@
</span><span class="cx"> void reportAPIException(JSC::ExecState*, JSC::JSValue exception);
</span><span class="cx">
</span><span class="cx"> JSC::ConsoleClient* consoleClient() const;
</span><ins>+ InspectorAgentRegistry& inspectorAgentRegistry() { return m_agents; }
</ins><span class="cx">
</span><span class="cx"> virtual bool developerExtrasEnabled() const override { return true; }
</span><span class="cx"> virtual bool canAccessInspectedScriptState(JSC::ExecState*) const override { return true; }
</span><span class="lines">@@ -80,6 +90,14 @@
</span><span class="cx"> virtual void didCallInjectedScriptFunction(JSC::ExecState*) override { }
</span><span class="cx"> virtual void frontendInitialized() override;
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ virtual AugmentableInspectorControllerClient* augmentableInspectorControllerClient() const override { return m_augmentingClient; }
+ virtual void setAugmentableInspectorControllerClient(AugmentableInspectorControllerClient* client) override { m_augmentingClient = client; }
+
+ virtual InspectorFrontendChannel* frontendChannel() const override { return m_inspectorFrontendChannel; }
+ virtual InspectorAgentRegistry& agentRegistry() override { return m_agents; }
+#endif
+
</ins><span class="cx"> private:
</span><span class="cx"> void appendAPIBacktrace(ScriptCallStack* callStack);
</span><span class="cx">
</span><span class="lines">@@ -93,6 +111,10 @@
</span><span class="cx"> RefPtr<InspectorBackendDispatcher> m_inspectorBackendDispatcher;
</span><span class="cx"> bool m_includeNativeCallStackWithExceptions;
</span><span class="cx"> bool m_isAutomaticInspection;
</span><ins>+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ AugmentableInspectorControllerClient* m_augmentingClient;
+#endif
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoraugmentableAlternateDispatchableAgenth"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h (0 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h         (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/augmentable/AlternateDispatchableAgent.h        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -0,0 +1,70 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. 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. ``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
+ * 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.
+ */
+
+#ifndef AlternateDispatchableAgent_h
+#define AlternateDispatchableAgent_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorAlternateBackendDispatchers.h"
+#include "InspectorBackendDispatchers.h"
+#include <JavaScriptCore/InspectorAgentBase.h>
+#include <wtf/Forward.h>
+
+namespace Inspector {
+
+template<typename BackendDispatcher, typename AlternateDispatcher>
+class AlternateDispatchableAgent final : public InspectorAgentBase {
+ WTF_MAKE_FAST_ALLOCATED;
+public:
+ AlternateDispatchableAgent(const String& domainName, std::unique_ptr<AlternateDispatcher> alternateDispatcher)
+ : InspectorAgentBase(domainName)
+ , m_alternateDispatcher(WTF::move(alternateDispatcher))
+ {
+ }
+
+ virtual void didCreateFrontendAndBackend(InspectorFrontendChannel*, InspectorBackendDispatcher* backendDispatcher) override
+ {
+ m_backendDispatcher = BackendDispatcher::create(backendDispatcher, nullptr);
+ m_backendDispatcher->setAlternateDispatcher(m_alternateDispatcher.get());
+ m_alternateDispatcher->setBackendDispatcher(backendDispatcher);
+ }
+
+ virtual void willDestroyFrontendAndBackend(InspectorDisconnectReason) override
+ {
+ m_backendDispatcher = nullptr;
+ m_alternateDispatcher->setBackendDispatcher(nullptr);
+ }
+
+private:
+ std::unique_ptr<AlternateDispatcher> m_alternateDispatcher;
+ RefPtr<BackendDispatcher> m_backendDispatcher;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // AlternateDispatchableAgent_h
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoraugmentableAugmentableInspectorControllerh"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h (0 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h         (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -0,0 +1,54 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. 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. ``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
+ * 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.
+ */
+
+#ifndef AugmentableInspectorController_h
+#define AugmentableInspectorController_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include <JavaScriptCore/AugmentableInspectorControllerClient.h>
+#include <JavaScriptCore/InspectorAgentRegistry.h>
+#include <JavaScriptCore/InspectorFrontendChannel.h>
+
+namespace Inspector {
+
+class AugmentableInspectorController {
+public:
+ virtual ~AugmentableInspectorController() { }
+
+ virtual AugmentableInspectorControllerClient* augmentableInspectorControllerClient() const = 0;
+ virtual void setAugmentableInspectorControllerClient(AugmentableInspectorControllerClient*) = 0;
+
+ virtual InspectorFrontendChannel* frontendChannel() const = 0;
+ virtual InspectorAgentRegistry& agentRegistry() = 0;
+
+ bool connected() const { return !!frontendChannel(); }
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(AugmentableInspectorController_h)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoraugmentableAugmentableInspectorControllerClienth"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorControllerClient.h (0 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorControllerClient.h         (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorControllerClient.h        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. 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. ``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
+ * 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.
+ */
+
+#ifndef AugmentableInspectorControllerClient_h
+#define AugmentableInspectorControllerClient_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+namespace Inspector {
+
+class AugmentableInspectorControllerClient {
+public:
+ virtual ~AugmentableInspectorControllerClient() { }
+ virtual void inspectorConnected() = 0;
+ virtual void inspectorDisconnected() = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(AugmentableInspectorControllerClient_h)
</ins></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegen__init__py"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/__init__.py        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -3,6 +3,7 @@
</span><span class="cx"> from models import *
</span><span class="cx"> from generator import *
</span><span class="cx">
</span><ins>+from generate_alternate_backend_dispatcher_header import *
</ins><span class="cx"> from generate_backend_commands import *
</span><span class="cx"> from generate_backend_dispatcher_header import *
</span><span class="cx"> from generate_backend_dispatcher_implementation import *
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_alternate_backend_dispatcher_headerpy"></a>
<div class="addfile"><h4>Added: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py (0 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py         (rev 0)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -0,0 +1,91 @@
</span><ins>+#!/usr/bin/env python
+#
+# Copyright (c) 2014 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.
+
+
+import logging
+import string
+import re
+from string import Template
+
+from generator import Generator
+from generator_templates import GeneratorTemplates as Templates
+
+log = logging.getLogger('global')
+
+
+class AlternateBackendDispatcherHeaderGenerator(Generator):
+ def __init__(self, model, input_filepath):
+ Generator.__init__(self, model, input_filepath)
+
+ def output_filename(self):
+ return 'InspectorAlternateBackendDispatchers.h'
+
+ def generate_output(self):
+ headers = [
+ '"InspectorProtocolTypes.h"',
+ '<JavaScriptCore/InspectorBackendDispatcher.h>',
+ ]
+
+ header_args = {
+ 'headerGuardString': re.sub('\W+', '_', self.output_filename()),
+ 'includes': '\n'.join(['#include ' + header for header in headers]),
+ }
+
+ domains = self.domains_to_generate()
+ sections = []
+ sections.append(self.generate_license())
+ sections.append(Template(Templates.AlternateDispatchersHeaderPrelude).substitute(None, **header_args))
+ sections.append('\n'.join(filter(None, map(self._generate_handler_declarations_for_domain, domains))))
+ sections.append(Template(Templates.AlternateDispatchersHeaderPostlude).substitute(None, **header_args))
+ return '\n\n'.join(sections)
+
+ def _generate_handler_declarations_for_domain(self, domain):
+ if not domain.commands:
+ return ''
+
+ command_declarations = []
+ for command in domain.commands:
+ command_declarations.append(self._generate_handler_declaration_for_command(command))
+
+ handler_args = {
+ 'domainName': domain.domain_name,
+ 'commandDeclarations': '\n'.join(command_declarations),
+ }
+
+ return Generator.wrap_with_guard_for_domain(domain, Template(Templates.AlternateBackendDispatcherHeaderDomainHandlerInterfaceDeclaration).substitute(None, **handler_args))
+
+ def _generate_handler_declaration_for_command(self, command):
+ lines = []
+ parameters = ['long callId']
+ for _parameter in command.call_parameters:
+ parameters.append('%s in_%s' % (Generator.type_string_for_unchecked_formal_in_parameter(_parameter), _parameter.parameter_name))
+
+ command_args = {
+ 'commandName': command.command_name,
+ 'parameters': ', '.join(parameters),
+ }
+ lines.append(' virtual void %(commandName)s(%(parameters)s) = 0;' % command_args)
+ return '\n'.join(lines)
</ins><span class="cx">Property changes on: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4>Added: svn:executable</h4></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -62,16 +62,30 @@
</span><span class="cx"> 'typedefs': '\n'.join(['typedef %s %s;' % typedef for typedef in typedefs]),
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ domains = self.domains_to_generate()
+
</ins><span class="cx"> sections = []
</span><span class="cx"> sections.append(self.generate_license())
</span><span class="cx"> sections.append(Template(Templates.CppHeaderPrelude).substitute(None, **header_args))
</span><del>- sections.extend(map(self._generate_handler_declarations_for_domain, self.domains_to_generate()))
- sections.extend(map(self._generate_dispatcher_declarations_for_domain, self.domains_to_generate()))
</del><ins>+ sections.append(self._generate_alternate_handler_forward_declarations_for_domains(domains))
+ sections.extend(map(self._generate_handler_declarations_for_domain, domains))
+ sections.extend(map(self._generate_dispatcher_declarations_for_domain, domains))
</ins><span class="cx"> sections.append(Template(Templates.CppHeaderPostlude).substitute(None, **header_args))
</span><span class="cx"> return "\n\n".join(sections)
</span><span class="cx">
</span><span class="cx"> # Private methods.
</span><span class="cx">
</span><ins>+ def _generate_alternate_handler_forward_declarations_for_domains(self, domains):
+ if not domains:
+ return ''
+
+ lines = []
+ lines.append('#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)')
+ for domain in domains:
+ lines.append(Generator.wrap_with_guard_for_domain(domain, 'class AlternateInspector%sBackendDispatcher;' % domain.domain_name))
+ lines.append('#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)')
+ return '\n'.join(lines)
+
</ins><span class="cx"> def _generate_handler_declarations_for_domain(self, domain):
</span><span class="cx"> classComponents = ['class']
</span><span class="cx"> exportMacro = self.model().framework.setting('export_macro', None)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -52,9 +52,15 @@
</span><span class="cx"> '<inspector/InspectorValues.h>',
</span><span class="cx"> '<wtf/text/CString.h>']
</span><span class="cx">
</span><ins>+ secondary_includes = ['#include %s' % header for header in secondary_headers]
+ secondary_includes.append('')
+ secondary_includes.append('#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)')
+ secondary_includes.append('#include "InspectorAlternateBackendDispatchers.h"')
+ secondary_includes.append('#endif')
+
</ins><span class="cx"> header_args = {
</span><span class="cx"> 'primaryInclude': '"InspectorBackendDispatchers.h"',
</span><del>- 'secondaryIncludes': "\n".join(['#include %s' % header for header in secondary_headers]),
</del><ins>+ 'secondaryIncludes': '\n'.join(secondary_includes),
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> sections = []
</span><span class="lines">@@ -162,6 +168,7 @@
</span><span class="cx"> in_parameter_declarations = []
</span><span class="cx"> out_parameter_declarations = []
</span><span class="cx"> out_parameter_assignments = []
</span><ins>+ alternate_dispatcher_method_parameters = ['callId']
</ins><span class="cx"> method_parameters = ['error']
</span><span class="cx">
</span><span class="cx"> for parameter in command.call_parameters:
</span><span class="lines">@@ -180,8 +187,11 @@
</span><span class="cx"> in_parameter_declarations.append(' %(parameterType)s in_%(parameterName)s = InspectorBackendDispatcher::%(keyedGetMethod)s(paramsContainerPtr, ASCIILiteral("%(parameterName)s"), %(successOutParam)s, protocolErrorsPtr);' % param_args)
</span><span class="cx">
</span><span class="cx"> if parameter.is_optional:
</span><del>- method_parameters.append('%(parameterName)s_valueFound ? &in_%(parameterName)s : nullptr' % param_args)
</del><ins>+ optional_in_parameter_string = '%(parameterName)s_valueFound ? &in_%(parameterName)s : nullptr' % param_args
+ alternate_dispatcher_method_parameters.append(optional_in_parameter_string)
+ method_parameters.append(optional_in_parameter_string)
</ins><span class="cx"> else:
</span><ins>+ alternate_dispatcher_method_parameters.append('in_' + parameter.parameter_name)
</ins><span class="cx"> method_parameters.append('in_' + parameter.parameter_name)
</span><span class="cx">
</span><span class="cx"> if command.is_async:
</span><span class="lines">@@ -226,8 +236,9 @@
</span><span class="cx"> 'domainName': domain.domain_name,
</span><span class="cx"> 'callbackName': '%sCallback' % ucfirst(command.command_name),
</span><span class="cx"> 'commandName': command.command_name,
</span><del>- 'inParameterDeclarations': "\n".join(in_parameter_declarations),
- 'invocationParameters': ", ".join(method_parameters)
</del><ins>+ 'inParameterDeclarations': '\n'.join(in_parameter_declarations),
+ 'invocationParameters': ', '.join(method_parameters),
+ 'alternateInvocationParameters': ', '.join(alternate_dispatcher_method_parameters),
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> lines = []
</span><span class="lines">@@ -240,6 +251,14 @@
</span><span class="cx"> if len(command.call_parameters) > 0:
</span><span class="cx"> lines.append(Template(Templates.BackendDispatcherImplementationPrepareCommandArguments).substitute(None, **command_args))
</span><span class="cx">
</span><ins>+ lines.append('#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)')
+ lines.append(' if (m_alternateDispatcher) {')
+ lines.append(' m_alternateDispatcher->%(commandName)s(%(alternateInvocationParameters)s);' % command_args)
+ lines.append(' return;')
+ lines.append(' }')
+ lines.append('#endif')
+ lines.append('')
+
</ins><span class="cx"> lines.append(' ErrorString error;')
</span><span class="cx"> lines.append(' RefPtr<InspectorObject> result = InspectorObject::create();')
</span><span class="cx"> if command.is_async:
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerator_templatespy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generator_templates.py        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -95,6 +95,39 @@
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="cx"> """)
</span><span class="cx">
</span><ins>+ AlternateDispatchersHeaderPrelude = (
+ """#ifndef ${headerGuardString}
+#define ${headerGuardString}
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+${includes}
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+""")
+
+ AlternateDispatchersHeaderPostlude = (
+ """} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(${headerGuardString})""")
+
+ AlternateBackendDispatcherHeaderDomainHandlerInterfaceDeclaration = (
+ """class AlternateInspector${domainName}BackendDispatcher : public AlternateInspectorBackendDispatcher {
+public:
+ virtual ~AlternateInspector${domainName}BackendDispatcher() { }
+${commandDeclarations}
+};""")
+
</ins><span class="cx"> BackendDispatcherHeaderDomainHandlerDeclaration = (
</span><span class="cx"> """${classAndExportMacro} Inspector${domainName}BackendDispatcherHandler {
</span><span class="cx"> public:
</span><span class="lines">@@ -112,6 +145,12 @@
</span><span class="cx"> private:
</span><span class="cx"> Inspector${domainName}BackendDispatcher(Inspector::InspectorBackendDispatcher*, Inspector${domainName}BackendDispatcherHandler*);
</span><span class="cx"> Inspector${domainName}BackendDispatcherHandler* m_agent;
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+ void setAlternateDispatcher(AlternateInspector${domainName}BackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+ AlternateInspector${domainName}BackendDispatcher* m_alternateDispatcher;
+#endif
</ins><span class="cx"> };""")
</span><span class="cx">
</span><span class="cx"> BackendDispatcherHeaderAsyncCommandDeclaration = (
</span><span class="lines">@@ -170,6 +209,9 @@
</span><span class="cx"> Inspector${domainName}BackendDispatcher::Inspector${domainName}BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, Inspector${domainName}BackendDispatcherHandler* agent)
</span><span class="cx"> : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx"> , m_agent(agent)
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , m_alternateDispatcher(nullptr)
+#endif
</ins><span class="cx"> {
</span><span class="cx"> m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("${domainName}"), this);
</span><span class="cx"> }""")
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptsgenerateinspectorprotocolbindingspy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -50,6 +50,7 @@
</span><span class="cx"> from models import *
</span><span class="cx"> from generator import *
</span><span class="cx">
</span><ins>+ from generate_alternate_backend_dispatcher_header import *
</ins><span class="cx"> from generate_backend_commands import *
</span><span class="cx"> from generate_backend_dispatcher_header import *
</span><span class="cx"> from generate_backend_dispatcher_implementation import *
</span><span class="lines">@@ -118,6 +119,7 @@
</span><span class="cx"> protocol.resolve_types()
</span><span class="cx">
</span><span class="cx"> generators = []
</span><ins>+ generators.append(AlternateBackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
</ins><span class="cx"> generators.append(BackendCommandsGenerator(protocol, primary_specification_filepath))
</span><span class="cx"> generators.append(BackendDispatcherHeaderGenerator(protocol, primary_specification_filepath))
</span><span class="cx"> generators.append(BackendDispatcherImplementationGenerator(protocol, primary_specification_filepath))
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithasyncattributejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,69 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+class AlternateInspectorDatabaseBackendDispatcher : public AlternateInspectorBackendDispatcher {
+public:
+ virtual ~AlternateInspectorDatabaseBackendDispatcher() { }
+ virtual void executeSQLSyncOptionalReturnValues(long callId, int in_databaseId, const String& in_query) = 0;
+ virtual void executeSQLAsyncOptionalReturnValues(long callId, int in_databaseId, const String& in_query) = 0;
+ virtual void executeSQLSync(long callId, int in_databaseId, const String& in_query) = 0;
+ virtual void executeSQLAsync(long callId, int in_databaseId, const String& in_query) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -84,6 +150,10 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateInspectorDatabaseBackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
</ins><span class="cx"> class InspectorDatabaseBackendDispatcherHandler {
</span><span class="cx"> public:
</span><span class="cx"> // Named after parameter 'screenColor' while generating command/event executeSQLSyncOptionalReturnValues.
</span><span class="lines">@@ -129,6 +199,12 @@
</span><span class="cx"> private:
</span><span class="cx"> InspectorDatabaseBackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler* m_agent;
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+ void setAlternateDispatcher(AlternateInspectorDatabaseBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+ AlternateInspectorDatabaseBackendDispatcher* m_alternateDispatcher;
+#endif
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -178,6 +254,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler::~InspectorDatabaseBackendDispatcherHandler() { }
</span><span class="lines">@@ -190,6 +270,9 @@
</span><span class="cx"> InspectorDatabaseBackendDispatcher::InspectorDatabaseBackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</span><span class="cx"> : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx"> , m_agent(agent)
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , m_alternateDispatcher(nullptr)
+#endif
</ins><span class="cx"> {
</span><span class="cx"> m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("Database"), this);
</span><span class="cx"> }
</span><span class="lines">@@ -224,6 +307,13 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->executeSQLSyncOptionalReturnValues(callId, in_databaseId, in_query);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
</span><span class="lines">@@ -300,6 +390,13 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->executeSQLAsyncOptionalReturnValues(callId, in_databaseId, in_query);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> RefPtr<InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback> callback = adoptRef(new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncOptionalReturnValuesCallback(m_backendDispatcher,callId));
</span><span class="lines">@@ -326,6 +423,13 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->executeSQLSync(callId, in_databaseId, in_query);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
</span><span class="lines">@@ -384,6 +488,13 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->executeSQLAsync(callId, in_databaseId, in_query);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> RefPtr<InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback> callback = adoptRef(new InspectorDatabaseBackendDispatcherHandler::ExecuteSQLAsyncCallback(m_backendDispatcher,callId));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedcommandswithoptionalcallreturnparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,67 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+class AlternateInspectorDatabaseBackendDispatcher : public AlternateInspectorBackendDispatcher {
+public:
+ virtual ~AlternateInspectorDatabaseBackendDispatcher() { }
+ virtual void executeAllOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>* in_columnNames, const String* in_notes, const double* in_timestamp, const RefPtr<Inspector::InspectorObject>* in_values, const Inspector::InspectorValue* in_payload, const int* in_databaseId, const RefPtr<Inspector::InspectorObject>* in_sqlError, const String* in_screenColor, const String* in_printColor) = 0;
+ virtual void executeNoOptionalParameters(long callId, const RefPtr<Inspector::InspectorArray>& in_columnNames, const String& in_notes, double in_timestamp, const RefPtr<Inspector::InspectorObject>& in_values, Inspector::InspectorValue in_payload, int in_databaseId, const RefPtr<Inspector::InspectorObject>& in_sqlError, const String& in_screenColor, const String& in_printColor) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -81,6 +145,10 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateInspectorDatabaseBackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
</ins><span class="cx"> class InspectorDatabaseBackendDispatcherHandler {
</span><span class="cx"> public:
</span><span class="cx"> // Named after parameter 'screenColor' while generating command/event executeAllOptionalParameters.
</span><span class="lines">@@ -112,6 +180,12 @@
</span><span class="cx"> private:
</span><span class="cx"> InspectorDatabaseBackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorDatabaseBackendDispatcherHandler*);
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler* m_agent;
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+ void setAlternateDispatcher(AlternateInspectorDatabaseBackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+ AlternateInspectorDatabaseBackendDispatcher* m_alternateDispatcher;
+#endif
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -161,6 +235,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx"> InspectorDatabaseBackendDispatcherHandler::~InspectorDatabaseBackendDispatcherHandler() { }
</span><span class="lines">@@ -173,6 +251,9 @@
</span><span class="cx"> InspectorDatabaseBackendDispatcher::InspectorDatabaseBackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorDatabaseBackendDispatcherHandler* agent)
</span><span class="cx"> : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx"> , m_agent(agent)
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , m_alternateDispatcher(nullptr)
+#endif
</ins><span class="cx"> {
</span><span class="cx"> m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("Database"), this);
</span><span class="cx"> }
</span><span class="lines">@@ -219,6 +300,13 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->executeAllOptionalParameters(callId, columnNames_valueFound ? &in_columnNames : nullptr, notes_valueFound ? &in_notes : nullptr, timestamp_valueFound ? &in_timestamp : nullptr, values_valueFound ? &in_values : nullptr, payload_valueFound ? &in_payload : nullptr, databaseId_valueFound ? &in_databaseId : nullptr, sqlError_valueFound ? &in_sqlError : nullptr, screenColor_valueFound ? &in_screenColor : nullptr, printColor_valueFound ? &in_printColor : nullptr);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
</span><span class="lines">@@ -276,6 +364,13 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->executeNoOptionalParameters(callId, in_columnNames, in_notes, in_timestamp, in_values, in_payload, in_databaseId, in_sqlError, in_screenColor, in_printColor);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> RefPtr<Inspector::Protocol::Array<String>> out_columnNames;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpecteddomainswithvaryingcommandsizesjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,77 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 domains-with-varying-command-sizes.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+class AlternateInspectorNetwork1BackendDispatcher : public AlternateInspectorBackendDispatcher {
+public:
+ virtual ~AlternateInspectorNetwork1BackendDispatcher() { }
+ virtual void loadResource1(long callId) = 0;
+};
+class AlternateInspectorNetwork3BackendDispatcher : public AlternateInspectorBackendDispatcher {
+public:
+ virtual ~AlternateInspectorNetwork3BackendDispatcher() { }
+ virtual void loadResource1(long callId) = 0;
+ virtual void loadResource2(long callId) = 0;
+ virtual void loadResource3(long callId) = 0;
+ virtual void loadResource4(long callId) = 0;
+ virtual void loadResource5(long callId) = 0;
+ virtual void loadResource6(long callId) = 0;
+ virtual void loadResource7(long callId) = 0;
+};
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -89,6 +163,11 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+class AlternateInspectorNetwork1BackendDispatcher;
+class AlternateInspectorNetwork3BackendDispatcher;
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
</ins><span class="cx"> class InspectorNetwork1BackendDispatcherHandler {
</span><span class="cx"> public:
</span><span class="cx"> virtual void loadResource1(ErrorString&) = 0;
</span><span class="lines">@@ -118,6 +197,12 @@
</span><span class="cx"> private:
</span><span class="cx"> InspectorNetwork1BackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
</span><span class="cx"> InspectorNetwork1BackendDispatcherHandler* m_agent;
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+ void setAlternateDispatcher(AlternateInspectorNetwork1BackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+ AlternateInspectorNetwork1BackendDispatcher* m_alternateDispatcher;
+#endif
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class InspectorNetwork3BackendDispatcher final : public Inspector::InspectorSupplementalBackendDispatcher {
</span><span class="lines">@@ -135,6 +220,12 @@
</span><span class="cx"> private:
</span><span class="cx"> InspectorNetwork3BackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorNetwork3BackendDispatcherHandler*);
</span><span class="cx"> InspectorNetwork3BackendDispatcherHandler* m_agent;
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+ void setAlternateDispatcher(AlternateInspectorNetwork3BackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+ AlternateInspectorNetwork3BackendDispatcher* m_alternateDispatcher;
+#endif
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace Inspector
</span><span class="lines">@@ -184,6 +275,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx"> InspectorNetwork1BackendDispatcherHandler::~InspectorNetwork1BackendDispatcherHandler() { }
</span><span class="lines">@@ -197,6 +292,9 @@
</span><span class="cx"> InspectorNetwork1BackendDispatcher::InspectorNetwork1BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</span><span class="cx"> : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx"> , m_agent(agent)
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , m_alternateDispatcher(nullptr)
+#endif
</ins><span class="cx"> {
</span><span class="cx"> m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("Network1"), this);
</span><span class="cx"> }
</span><span class="lines">@@ -213,6 +311,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork1BackendDispatcher::loadResource1(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource1(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource1(error);
</span><span class="lines">@@ -228,6 +333,9 @@
</span><span class="cx"> InspectorNetwork3BackendDispatcher::InspectorNetwork3BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork3BackendDispatcherHandler* agent)
</span><span class="cx"> : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx"> , m_agent(agent)
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , m_alternateDispatcher(nullptr)
+#endif
</ins><span class="cx"> {
</span><span class="cx"> m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("Network3"), this);
</span><span class="cx"> }
</span><span class="lines">@@ -268,6 +376,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource1(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource1(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource1(error);
</span><span class="lines">@@ -277,6 +392,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource2(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource2(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource2(error);
</span><span class="lines">@@ -286,6 +408,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource3(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource3(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource3(error);
</span><span class="lines">@@ -295,6 +424,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource4(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource4(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource4(error);
</span><span class="lines">@@ -304,6 +440,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource5(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource5(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource5(error);
</span><span class="lines">@@ -313,6 +456,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource6(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource6(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource6(error);
</span><span class="lines">@@ -322,6 +472,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork3BackendDispatcher::loadResource7(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource7(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource7(error);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedeventswithoptionalparametersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/events-with-optional-parameters.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 events-with-optional-parameters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -81,6 +140,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -128,6 +189,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedgeneratedomainswithfeatureguardsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,68 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 generate-domains-with-feature-guards.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+#if PLATFORM(WEB_COMMANDS)
+class AlternateInspectorNetwork1BackendDispatcher : public AlternateInspectorBackendDispatcher {
+public:
+ virtual ~AlternateInspectorNetwork1BackendDispatcher() { }
+ virtual void loadResource(long callId) = 0;
+};
+#endif // PLATFORM(WEB_COMMANDS)
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -84,7 +149,13 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</ins><span class="cx"> #if PLATFORM(WEB_COMMANDS)
</span><ins>+class AlternateInspectorNetwork1BackendDispatcher;
+#endif // PLATFORM(WEB_COMMANDS)
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#if PLATFORM(WEB_COMMANDS)
</ins><span class="cx"> class InspectorNetwork1BackendDispatcherHandler {
</span><span class="cx"> public:
</span><span class="cx"> virtual void loadResource(ErrorString&) = 0;
</span><span class="lines">@@ -103,6 +174,12 @@
</span><span class="cx"> private:
</span><span class="cx"> InspectorNetwork1BackendDispatcher(Inspector::InspectorBackendDispatcher*, InspectorNetwork1BackendDispatcherHandler*);
</span><span class="cx"> InspectorNetwork1BackendDispatcherHandler* m_agent;
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+public:
+ void setAlternateDispatcher(AlternateInspectorNetwork1BackendDispatcher* alternateDispatcher) { m_alternateDispatcher = alternateDispatcher; }
+private:
+ AlternateInspectorNetwork1BackendDispatcher* m_alternateDispatcher;
+#endif
</ins><span class="cx"> };
</span><span class="cx"> #endif // PLATFORM(WEB_COMMANDS)
</span><span class="cx">
</span><span class="lines">@@ -153,6 +230,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(WEB_COMMANDS)
</span><span class="lines">@@ -168,6 +249,9 @@
</span><span class="cx"> InspectorNetwork1BackendDispatcher::InspectorNetwork1BackendDispatcher(InspectorBackendDispatcher* backendDispatcher, InspectorNetwork1BackendDispatcherHandler* agent)
</span><span class="cx"> : InspectorSupplementalBackendDispatcher(backendDispatcher)
</span><span class="cx"> , m_agent(agent)
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ , m_alternateDispatcher(nullptr)
+#endif
</ins><span class="cx"> {
</span><span class="cx"> m_backendDispatcher->registerDispatcherForDomain(ASCIILiteral("Network1"), this);
</span><span class="cx"> }
</span><span class="lines">@@ -184,6 +268,13 @@
</span><span class="cx">
</span><span class="cx"> void InspectorNetwork1BackendDispatcher::loadResource(long callId, const InspectorObject&)
</span><span class="cx"> {
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+ if (m_alternateDispatcher) {
+ m_alternateDispatcher->loadResource(callId);
+ return;
+ }
+#endif
+
</ins><span class="cx"> ErrorString error;
</span><span class="cx"> RefPtr<InspectorObject> result = InspectorObject::create();
</span><span class="cx"> m_agent->loadResource(error);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedsametypeiddifferentdomainjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/same-type-id-different-domain.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 same-type-id-different-domain.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -75,6 +134,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -122,6 +183,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedshadowedoptionaltypesettersjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 shadowed-optional-type-setters.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -75,6 +134,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -122,6 +183,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationaliasedprimitivetypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 type-declaration-aliased-primitive-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -75,6 +134,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -122,6 +183,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationarraytypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-array-type.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 type-declaration-array-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -78,6 +137,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -125,6 +186,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationenumtypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-enum-type.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 type-declaration-enum-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -79,6 +138,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -126,6 +187,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtypedeclarationobjecttypejsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-declaration-object-type.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 type-declaration-object-type.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -75,6 +134,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -122,6 +183,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptstestsexpectedtyperequiringruntimecastsjsonresult"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/JavaScriptCore/inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,62 @@
</span><ins>+### Begin File: InspectorAlternateBackendDispatchers.h
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013, 2014 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 type-requiring-runtime-casts.json
+// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
+
+#ifndef InspectorAlternateBackendDispatchers_h
+#define InspectorAlternateBackendDispatchers_h
+
+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#include "InspectorProtocolTypes.h"
+#include <JavaScriptCore/InspectorBackendDispatcher.h>
+
+namespace Inspector {
+
+class AlternateInspectorBackendDispatcher {
+public:
+ void setBackendDispatcher(PassRefPtr<InspectorBackendDispatcher> dispatcher) { m_backendDispatcher = dispatcher; }
+ InspectorBackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
+private:
+ RefPtr<InspectorBackendDispatcher> m_backendDispatcher;
+};
+
+
+
+
+} // namespace Inspector
+
+#endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+
+#endif // !defined(InspectorAlternateBackendDispatchers_h)
+### End File: InspectorAlternateBackendDispatchers.h
+
</ins><span class="cx"> ### Begin File: InspectorBackendCommands.js
</span><span class="cx"> /*
</span><span class="cx"> * Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -79,6 +138,8 @@
</span><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><ins>+
+
</ins><span class="cx"> } // namespace Inspector
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(INSPECTOR)
</span><span class="lines">@@ -126,6 +187,10 @@
</span><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
+#include "InspectorAlternateBackendDispatchers.h"
+#endif
+
</ins><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WTF/ChangeLog        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
+
+ Web Inspector: Provide a way to have alternate inspector agents
+ https://bugs.webkit.org/show_bug.cgi?id=137901
+
+ Reviewed by Brian Burg.
+
+ * wtf/FeatureDefines.h:
+
</ins><span class="cx"> 2014-10-23 Alberto Garcia <berto@igalia.com>
</span><span class="cx">
</span><span class="cx"> [GTK] Fix build on Hurd
</span></span></pre></div>
<a id="trunkSourceWTFwtfFeatureDefinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/FeatureDefines.h (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/FeatureDefines.h        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WTF/wtf/FeatureDefines.h        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -82,6 +82,10 @@
</span><span class="cx"> #define ENABLE_ICONDATABASE 0
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
+#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
+#endif
+
</ins><span class="cx"> #if !defined(ENABLE_LETTERPRESS)
</span><span class="cx"> #define ENABLE_LETTERPRESS 1
</span><span class="cx"> #endif
</span><span class="lines">@@ -192,7 +196,11 @@
</span><span class="cx"> #if !defined(ENABLE_REMOTE_INSPECTOR)
</span><span class="cx"> #define ENABLE_REMOTE_INSPECTOR 1
</span><span class="cx"> #endif
</span><ins>+
+#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
+#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
</ins><span class="cx"> #endif
</span><ins>+#endif
</ins><span class="cx">
</span><span class="cx"> #if !defined(ENABLE_SMOOTH_SCROLLING)
</span><span class="cx"> #define ENABLE_SMOOTH_SCROLLING 1
</span><span class="lines">@@ -495,6 +503,10 @@
</span><span class="cx"> #define ENABLE_INSPECTOR 1
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
+#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 0
+#endif
+
</ins><span class="cx"> #if !defined(ENABLE_JAVASCRIPT_I18N_API)
</span><span class="cx"> #define ENABLE_JAVASCRIPT_I18N_API 0
</span><span class="cx"> #endif
</span><span class="lines">@@ -763,6 +775,10 @@
</span><span class="cx"> #error "ENABLE(REMOTE_INSPECTOR) requires ENABLE(INSPECTOR)"
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) && !ENABLE(REMOTE_INSPECTOR)
+#error "ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) requires ENABLE(REMOTE_INSPECTOR)"
+#endif
+
</ins><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS) && !ENABLE(TOUCH_EVENTS)
</span><span class="cx"> #error "ENABLE(IOS_TOUCH_EVENTS) requires ENABLE(TOUCH_EVENTS)"
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WebCore/ChangeLog        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
+
+ Web Inspector: Provide a way to have alternate inspector agents
+ https://bugs.webkit.org/show_bug.cgi?id=137901
+
+ Reviewed by Brian Burg.
+
+ * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2014-10-23 Simon Fraser <simon.fraser@apple.com>
</span><span class="cx">
</span><span class="cx"> Don't assume that style.overflowX() == style.overflowY()
</span></span></pre></div>
<a id="trunkSourceWebCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -121,6 +121,15 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><span class="cx"> ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</span><ins>+
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_$(PLATFORM_NAME));
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphonesimulator = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos);
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR))
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1080 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1090 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_101000 = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
+
+ Web Inspector: Provide a way to have alternate inspector agents
+ https://bugs.webkit.org/show_bug.cgi?id=137901
+
+ Reviewed by Brian Burg.
+
+ * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2014-10-23 Tim Horton <timothy_horton@apple.com>
</span><span class="cx">
</span><span class="cx"> Add some SPI headers for NSExtension and NSSharingService{Picker}
</span></span></pre></div>
<a id="trunkSourceWebKitmacConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -121,6 +121,15 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><span class="cx"> ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</span><ins>+
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_$(PLATFORM_NAME));
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphonesimulator = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos);
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR))
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1080 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1090 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_101000 = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WebKit2/ChangeLog        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
+
+ Web Inspector: Provide a way to have alternate inspector agents
+ https://bugs.webkit.org/show_bug.cgi?id=137901
+
+ Reviewed by Brian Burg.
+
+ * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2014-10-23 Tim Horton <timothy_horton@apple.com>
</span><span class="cx">
</span><span class="cx"> Add some SPI headers for NSExtension and NSSharingService{Picker}
</span></span></pre></div>
<a id="trunkSourceWebKit2ConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig (175150 => 175151)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig        2014-10-23 23:36:19 UTC (rev 175150)
+++ trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig        2014-10-23 23:43:14 UTC (rev 175151)
</span><span class="lines">@@ -121,6 +121,15 @@
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphoneos = ENABLE_INPUT_TYPE_WEEK;
</span><span class="cx"> ENABLE_INPUT_TYPE_WEEK_iphonesimulator = $(ENABLE_INPUT_TYPE_WEEK_iphoneos);
</span><span class="cx"> ENABLE_INSPECTOR = ENABLE_INSPECTOR;
</span><ins>+
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_$(PLATFORM_NAME));
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphonesimulator = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_iphoneos);
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx = $(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR))
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1080 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_1090 = ;
+ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS_macosx_101000 = ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS;
+
</ins><span class="cx"> ENABLE_IOS_AIRPLAY = $(ENABLE_IOS_AIRPLAY_$(PLATFORM_NAME));
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphoneos = ENABLE_IOS_AIRPLAY;
</span><span class="cx"> ENABLE_IOS_AIRPLAY_iphonesimulator = $(ENABLE_IOS_AIRPLAY_iphoneos);
</span></span></pre>
</div>
</div>
</body>
</html>