<!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>[189340] trunk</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/189340">189340</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-09-03 21:54:09 -0700 (Thu, 03 Sep 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/189338">r189338</a>.
https://bugs.webkit.org/show_bug.cgi?id=148785
Caused tons of crashes (Requested by cdumez on #webkit).
Reverted changeset:
"Web Inspector: InspectorController should support multiple
frontend channels"
https://bugs.webkit.org/show_bug.cgi?id=148538
http://trac.webkit.org/changeset/189338
Patch by Commit Queue <commit-queue@webkit.org> on 2015-09-03</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreCMakeListstxt">trunk/Source/JavaScriptCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp">trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorBackendDispatcherh">trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h</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="#trunkSourceJavaScriptCoreinspectoragentsInspectorAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorConsoleAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorDebuggerAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorRuntimeAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoraugmentableAugmentableInspectorControllerh">trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorremoteRemoteInspectorDebuggableh">trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggable.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorremoteRemoteInspectorDebuggableConnectionmm">trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggableConnection.mm</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_alternate_backend_dispatcher_headerpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy">trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectDebuggablecpp">trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeJSGlobalObjectDebuggableh">trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorClienth">trunk/Source/WebCore/inspector/InspectorClient.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorControllercpp">trunk/Source/WebCore/inspector/InspectorController.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorControllerh">trunk/Source/WebCore/inspector/InspectorController.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDatabaseAgentcpp">trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp">trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorResourceAgentcpp">trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerInspectorControllercpp">trunk/Source/WebCore/inspector/WorkerInspectorController.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerInspectorControllerh">trunk/Source/WebCore/inspector/WorkerInspectorController.h</a></li>
<li><a href="#trunkSourceWebCorepagePageDebuggablecpp">trunk/Source/WebCore/page/PageDebuggable.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageDebuggableh">trunk/Source/WebCore/page/PageDebuggable.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebInspectorClienth">trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebInspectorClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebInspectorClientcpp">trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreSupportWebInspectorClienth">trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebInspectorClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebInspectorClienth">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebInspectorcpp">trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebInspectorh">trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.h</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreemacDumpRenderTreemm">trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
<li><a href="#trunkToolsDumpRenderTreewinDumpRenderTreecpp">trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorFrontendRoutercpp">trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInspectorFrontendRouterh">trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.h</a></li>
<li><a href="#trunkSourceWebCoreForwardingHeadersinspectorInspectorFrontendRouterh">trunk/Source/WebCore/ForwardingHeaders/inspector/InspectorFrontendRouter.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/CMakeLists.txt (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/CMakeLists.txt        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/CMakeLists.txt        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -323,7 +323,6 @@
</span><span class="cx"> inspector/InjectedScriptManager.cpp
</span><span class="cx"> inspector/InjectedScriptModule.cpp
</span><span class="cx"> inspector/InspectorAgentRegistry.cpp
</span><del>- inspector/InspectorFrontendRouter.cpp
</del><span class="cx"> inspector/InspectorBackendDispatcher.cpp
</span><span class="cx"> inspector/InspectorValues.cpp
</span><span class="cx"> inspector/JSGlobalObjectConsoleClient.cpp
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-09-03 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r189338.
+ https://bugs.webkit.org/show_bug.cgi?id=148785
+
+ Caused tons of crashes (Requested by cdumez on #webkit).
+
+ Reverted changeset:
+
+ "Web Inspector: InspectorController should support multiple
+ frontend channels"
+ https://bugs.webkit.org/show_bug.cgi?id=148538
+ http://trac.webkit.org/changeset/189338
+
</ins><span class="cx"> 2015-09-03 Yusuke Suzuki <utatane.tea@gmail.com>
</span><span class="cx">
</span><span class="cx"> [ES6] Instantiate Module Environment bindings and execute module
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -595,7 +595,6 @@
</span><span class="cx"> <ClCompile Include="..\inspector\InjectedScriptModule.cpp" />
</span><span class="cx"> <ClCompile Include="..\inspector\InspectorAgentRegistry.cpp" />
</span><span class="cx"> <ClCompile Include="..\inspector\InspectorBackendDispatcher.cpp" />
</span><del>- <ClCompile Include="..\inspector\InspectorFrontendRouter.cpp" />
</del><span class="cx"> <ClCompile Include="..\inspector\InspectorValues.cpp" />
</span><span class="cx"> <ClCompile Include="..\inspector\JSInjectedScriptHost.cpp" />
</span><span class="cx"> <ClCompile Include="..\inspector\JSInjectedScriptHostPrototype.cpp" />
</span><span class="lines">@@ -1386,7 +1385,6 @@
</span><span class="cx"> <ClInclude Include="..\inspector\InspectorBackendDispatcher.h" />
</span><span class="cx"> <ClInclude Include="..\inspector\InspectorEnvironment.h" />
</span><span class="cx"> <ClInclude Include="..\inspector\InspectorFrontendChannel.h" />
</span><del>- <ClInclude Include="..\inspector\InspectorFrontendRouter.h" />
</del><span class="cx"> <ClInclude Include="..\inspector\InspectorValues.h" />
</span><span class="cx"> <ClInclude Include="..\inspector\JSInjectedScriptHost.h" />
</span><span class="cx"> <ClInclude Include="..\inspector\JSInjectedScriptHostPrototype.h" />
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1195,8 +1195,6 @@
</span><span class="cx">                 99E45A2618A1B2590026D88F /* EncodedValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 99E45A2118A1B2590026D88F /* EncodedValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99E45A2718A1B2590026D88F /* InputCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 99E45A2218A1B2590026D88F /* InputCursor.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 99E45A2818A1B2590026D88F /* NondeterministicInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 99E45A2318A1B2590026D88F /* NondeterministicInput.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                99F1A6FE1B8E6D9400463B26 /* InspectorFrontendRouter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 99F1A6FC1B8E6D9400463B26 /* InspectorFrontendRouter.cpp */; };
-                99F1A7011B98FBEC00463B26 /* InspectorFrontendRouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 99F1A7001B98FBEC00463B26 /* InspectorFrontendRouter.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 9E729407190F01A5001A91B5 /* InitializeThreading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E178636C0D9BEEC300D74E75 /* InitializeThreading.cpp */; };
</span><span class="cx">                 9E729408190F021E001A91B5 /* InitializeLLVMPOSIX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FCEFAC51805E75500472CE4 /* InitializeLLVMPOSIX.cpp */; };
</span><span class="cx">                 9E72940B190F0514001A91B5 /* BundlePath.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E72940A190F0514001A91B5 /* BundlePath.h */; };
</span><span class="lines">@@ -3065,8 +3063,6 @@
</span><span class="cx">                 99E45A2118A1B2590026D88F /* EncodedValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EncodedValue.h; sourceTree = "<group>"; };
</span><span class="cx">                 99E45A2218A1B2590026D88F /* InputCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputCursor.h; sourceTree = "<group>"; };
</span><span class="cx">                 99E45A2318A1B2590026D88F /* NondeterministicInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NondeterministicInput.h; sourceTree = "<group>"; };
</span><del>-                99F1A6FC1B8E6D9400463B26 /* InspectorFrontendRouter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorFrontendRouter.cpp; sourceTree = "<group>"; };
-                99F1A7001B98FBEC00463B26 /* InspectorFrontendRouter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorFrontendRouter.h; sourceTree = "<group>"; };
</del><span class="cx">                 9B4954E81A6640DB002815A6 /* ParserFunctionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ParserFunctionInfo.h; sourceTree = "<group>"; };
</span><span class="cx">                 9E729409190F0306001A91B5 /* BundlePath.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BundlePath.mm; sourceTree = "<group>"; };
</span><span class="cx">                 9E72940A190F0514001A91B5 /* BundlePath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BundlePath.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -5717,7 +5713,6 @@
</span><span class="cx">                 A5BA15DF1823409200A82E69 /* inspector */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                99F1A7001B98FBEC00463B26 /* InspectorFrontendRouter.h */,
</del><span class="cx">                                 A513E5CC185FB992007E95AD /* agents */,
</span><span class="cx">                                 A5EA70E319F5B0E20098F5EC /* augmentable */,
</span><span class="cx">                                 A532438D185696CA002ED692 /* protocol */,
</span><span class="lines">@@ -5749,7 +5744,6 @@
</span><span class="cx">                                 A593CF7B1840360300BFCE27 /* InspectorBackendDispatcher.h */,
</span><span class="cx">                                 A5D0A1BA1862301B00C7B496 /* InspectorEnvironment.h */,
</span><span class="cx">                                 A5945594182479EB00CC3843 /* InspectorFrontendChannel.h */,
</span><del>-                                99F1A6FC1B8E6D9400463B26 /* InspectorFrontendRouter.cpp */,
</del><span class="cx">                                 A55D93AB18514F7900400DED /* InspectorProtocolTypes.h */,
</span><span class="cx">                                 A593CF801840377100BFCE27 /* InspectorValues.cpp */,
</span><span class="cx">                                 A593CF811840377100BFCE27 /* InspectorValues.h */,
</span><span class="lines">@@ -5913,7 +5907,6 @@
</span><span class="cx">                                 A1A009C11831A26E00CF8711 /* ARM64Assembler.h in Headers */,
</span><span class="cx">                                 0F898F321B27689F0083A33C /* DFGIntegerRangeOptimizationPhase.h in Headers */,
</span><span class="cx">                                 86D3B2C410156BDE002865E7 /* ARMAssembler.h in Headers */,
</span><del>-                                99F1A7011B98FBEC00463B26 /* InspectorFrontendRouter.h in Headers */,
</del><span class="cx">                                 7964656A1B952FF0003059EE /* GetPutInfo.h in Headers */,
</span><span class="cx">                                 797E07AA1B8FCFB9008400BA /* JSGlobalLexicalEnvironment.h in Headers */,
</span><span class="cx">                                 0FE050281AA9095600D33B33 /* ScopedArguments.h in Headers */,
</span><span class="lines">@@ -7948,7 +7941,6 @@
</span><span class="cx">                                 C225494315F7DBAA0065E898 /* SlotVisitor.cpp in Sources */,
</span><span class="cx">                                 9330402C0E6A764000786E6A /* SmallStrings.cpp in Sources */,
</span><span class="cx">                                 E3EF88741B66DF23003F26CB /* JSPropertyNameIterator.cpp in Sources */,
</span><del>-                                99F1A6FE1B8E6D9400463B26 /* InspectorFrontendRouter.cpp in Sources */,
</del><span class="cx">                                 0F8F2B9E17306C8D007DBDA5 /* SourceCode.cpp in Sources */,
</span><span class="cx">                                 0F493AFA16D0CAD30084508B /* SourceProvider.cpp in Sources */,
</span><span class="cx">                                 E33E8D1C1B9013C300346B52 /* JSNativeStdFunction.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorBackendDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> #include "InspectorBackendDispatcher.h"
</span><span class="cx">
</span><span class="cx"> #include "InspectorFrontendChannel.h"
</span><del>-#include "InspectorFrontendRouter.h"
</del><span class="cx"> #include "InspectorValues.h"
</span><span class="cx"> #include <wtf/TemporaryChange.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="lines">@@ -36,15 +35,6 @@
</span><span class="cx">
</span><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><del>-SupplementalBackendDispatcher::SupplementalBackendDispatcher(BackendDispatcher& backendDispatcher)
- : m_backendDispatcher(backendDispatcher)
-{
-}
-
-SupplementalBackendDispatcher::~SupplementalBackendDispatcher()
-{
-}
-
</del><span class="cx"> BackendDispatcher::CallbackBase::CallbackBase(Ref<BackendDispatcher>&& backendDispatcher, long requestId)
</span><span class="cx"> : m_backendDispatcher(WTF::move(backendDispatcher))
</span><span class="cx"> , m_requestId(requestId)
</span><span class="lines">@@ -79,28 +69,15 @@
</span><span class="cx"> m_backendDispatcher->sendResponse(m_requestId, WTF::move(partialMessage));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-BackendDispatcher::BackendDispatcher(Ref<FrontendRouter>&& router)
- : m_frontendRouter(WTF::move(router))
</del><ins>+Ref<BackendDispatcher> BackendDispatcher::create(FrontendChannel* frontendChannel)
</ins><span class="cx"> {
</span><ins>+ return adoptRef(*new BackendDispatcher(frontendChannel));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-Ref<BackendDispatcher> BackendDispatcher::create(Ref<FrontendRouter>&& router)
-{
- return adoptRef(*new BackendDispatcher(WTF::move(router)));
-}
-
-bool BackendDispatcher::isActive() const
-{
- return m_frontendRouter->hasFrontends();
-}
-
</del><span class="cx"> void BackendDispatcher::registerDispatcherForDomain(const String& domain, SupplementalBackendDispatcher* dispatcher)
</span><span class="cx"> {
</span><del>- ASSERT_ARG(dispatcher, dispatcher);
-
- // FIXME: <https://webkit.org/b/148492> Agents should only register with the backend once,
- // and we should re-add the assertion that only one dispatcher is registered per domain.
- m_dispatchers.set(domain, dispatcher);
</del><ins>+ auto result = m_dispatchers.add(domain, dispatcher);
+ ASSERT_UNUSED(result, result.isNewEntry);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void BackendDispatcher::dispatch(const String& message)
</span><span class="lines">@@ -188,6 +165,9 @@
</span><span class="cx">
</span><span class="cx"> void BackendDispatcher::sendResponse(long requestId, RefPtr<InspectorObject>&& result)
</span><span class="cx"> {
</span><ins>+ if (!m_frontendChannel)
+ return;
+
</ins><span class="cx"> ASSERT(!m_protocolErrors.size());
</span><span class="cx">
</span><span class="cx"> // The JSON-RPC 2.0 specification requires that the "error" member have the value 'null'
</span><span class="lines">@@ -195,7 +175,7 @@
</span><span class="cx"> Ref<InspectorObject> responseMessage = InspectorObject::create();
</span><span class="cx"> responseMessage->setObject(ASCIILiteral("result"), result);
</span><span class="cx"> responseMessage->setInteger(ASCIILiteral("id"), requestId);
</span><del>- m_frontendRouter->sendResponse(responseMessage->toJSONString());
</del><ins>+ m_frontendChannel->sendMessageToFrontend(responseMessage->toJSONString());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void BackendDispatcher::sendPendingErrors()
</span><span class="lines">@@ -210,6 +190,9 @@
</span><span class="cx"> -32000, // ServerError
</span><span class="cx"> };
</span><span class="cx">
</span><ins>+ if (!m_frontendChannel)
+ return;
+
</ins><span class="cx"> // To construct the error object, only use the last error's code and message.
</span><span class="cx"> // Per JSON-RPC 2.0, Section 5.1, the 'data' member may contain nested errors,
</span><span class="cx"> // but only one top-level Error object should be sent per request.
</span><span class="lines">@@ -244,7 +227,7 @@
</span><span class="cx"> message->setValue(ASCIILiteral("id"), InspectorValue::null());
</span><span class="cx"> }
</span><span class="cx">
</span><del>- m_frontendRouter->sendResponse(message->toJSONString());
</del><ins>+ m_frontendChannel->sendMessageToFrontend(message->toJSONString());
</ins><span class="cx">
</span><span class="cx"> m_protocolErrors.clear();
</span><span class="cx"> m_currentRequestId = Nullopt;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorBackendDispatcherh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/InspectorBackendDispatcher.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -35,14 +35,15 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="cx"> class BackendDispatcher;
</span><del>-class FrontendRouter;
</del><ins>+class FrontendChannel;
</ins><span class="cx">
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx">
</span><span class="cx"> class SupplementalBackendDispatcher : public RefCounted<SupplementalBackendDispatcher> {
</span><span class="cx"> public:
</span><del>- SupplementalBackendDispatcher(BackendDispatcher&);
- virtual ~SupplementalBackendDispatcher();
</del><ins>+ SupplementalBackendDispatcher(BackendDispatcher& backendDispatcher)
+ : m_backendDispatcher(backendDispatcher) { }
+ virtual ~SupplementalBackendDispatcher() { }
</ins><span class="cx"> virtual void dispatch(long requestId, const String& method, Ref<InspectorObject>&& message) = 0;
</span><span class="cx"> protected:
</span><span class="cx"> Ref<BackendDispatcher> m_backendDispatcher;
</span><span class="lines">@@ -50,7 +51,7 @@
</span><span class="cx">
</span><span class="cx"> class BackendDispatcher : public RefCounted<BackendDispatcher> {
</span><span class="cx"> public:
</span><del>- JS_EXPORT_PRIVATE static Ref<BackendDispatcher> create(Ref<FrontendRouter>&&);
</del><ins>+ JS_EXPORT_PRIVATE static Ref<BackendDispatcher> create(FrontendChannel*);
</ins><span class="cx">
</span><span class="cx"> class JS_EXPORT_PRIVATE CallbackBase : public RefCounted<CallbackBase> {
</span><span class="cx"> public:
</span><span class="lines">@@ -68,7 +69,8 @@
</span><span class="cx"> bool m_alreadySent { false };
</span><span class="cx"> };
</span><span class="cx">
</span><del>- bool isActive() const;
</del><ins>+ void clearFrontend() { m_frontendChannel = nullptr; }
+ bool isActive() const { return !!m_frontendChannel; }
</ins><span class="cx">
</span><span class="cx"> bool hasProtocolErrors() const { return m_protocolErrors.size() > 0; }
</span><span class="cx">
</span><span class="lines">@@ -102,9 +104,12 @@
</span><span class="cx"> RefPtr<InspectorArray> getArray(InspectorObject*, const String& name, bool* valueFound);
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- BackendDispatcher(Ref<FrontendRouter>&&);
</del><ins>+ BackendDispatcher(FrontendChannel* channel)
+ : m_frontendChannel(channel)
+ {
+ }
</ins><span class="cx">
</span><del>- Ref<FrontendRouter> m_frontendRouter;
</del><ins>+ FrontendChannel* m_frontendChannel;
</ins><span class="cx"> HashMap<String, SupplementalBackendDispatcher*> m_dispatchers;
</span><span class="cx">
</span><span class="cx"> // Protocol errors reported for the top-level request being processed.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorFrontendRoutercpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,110 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 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. 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.
- */
-
-#include "config.h"
-#include "InspectorFrontendRouter.h"
-
-#include "InspectorFrontendChannel.h"
-#include <wtf/Assertions.h>
-
-namespace Inspector {
-
-Ref<FrontendRouter> FrontendRouter::create()
-{
- return adoptRef(*new FrontendRouter);
-}
-
-void FrontendRouter::connectFrontend(FrontendChannel* connection)
-{
- ASSERT_ARG(connection, connection);
-
- if (m_connections.contains(connection)) {
- ASSERT_NOT_REACHED();
- return;
- }
-
- m_connections.append(connection);
-}
-
-void FrontendRouter::disconnectFrontend(FrontendChannel* connection)
-{
- ASSERT_ARG(connection, connection);
-
- if (!m_connections.contains(connection)) {
- ASSERT_NOT_REACHED();
- return;
- }
-
- m_connections.removeFirst(connection);
-}
-
-void FrontendRouter::disconnectAllFrontends()
-{
- m_connections.clear();
-}
-
-// FIXME: <https://webkit.org/b/148492> remove this method once agents move to using FrontendRouter directly.
-FrontendChannel* FrontendRouter::leakChannel() const
-{
- if (m_connections.size())
- return m_connections.at(0);
-
- return nullptr;
-}
-
-bool FrontendRouter::hasLocalFrontend() const
-{
- for (auto* connection : m_connections) {
- if (connection->connectionType() == FrontendChannel::ConnectionType::Local)
- return true;
- }
-
- return false;
-}
-
-bool FrontendRouter::hasRemoteFrontend() const
-{
- for (auto* connection : m_connections) {
- if (connection->connectionType() == FrontendChannel::ConnectionType::Remote)
- return true;
- }
-
- return false;
-}
-
-void FrontendRouter::sendEvent(const String& message) const
-{
- for (auto* connection : m_connections)
- connection->sendMessageToFrontend(message);
-}
-
-void FrontendRouter::sendResponse(const String& message) const
-{
- // FIXME: send responses to the appropriate frontend.
- for (auto* connection : m_connections)
- connection->sendMessageToFrontend(message);
-}
-
-} // namespace Inspector
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInspectorFrontendRouterh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/InspectorFrontendRouter.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,60 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 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. 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.
- */
-
-#ifndef InspectorFrontendRouter_h
-#define InspectorFrontendRouter_h
-
-#include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
-
-namespace Inspector {
-
-class FrontendChannel;
-
-class JS_EXPORT_PRIVATE FrontendRouter : public RefCounted<FrontendRouter> {
-public:
- static Ref<FrontendRouter> create();
-
- bool hasFrontends() const { return !m_connections.isEmpty(); }
- bool hasLocalFrontend() const;
- bool hasRemoteFrontend() const;
-
- void connectFrontend(FrontendChannel*);
- void disconnectFrontend(FrontendChannel*);
- void disconnectAllFrontends();
-
- // FIXME: <https://webkit.org/b/148492> remove this method once agents move to using FrontendRouter directly.
- FrontendChannel* leakChannel() const;
-
- void sendEvent(const String& message) const;
- void sendResponse(const String& message) const;
-
-private:
- Vector<FrontendChannel*, 2> m_connections;
-};
-
-} // namespace Inspector
-
-#endif // !defined(InspectorFrontendRouter_h)
</del></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> #include "InspectorAgent.h"
</span><span class="cx"> #include "InspectorBackendDispatcher.h"
</span><span class="cx"> #include "InspectorFrontendChannel.h"
</span><del>-#include "InspectorFrontendRouter.h"
</del><span class="cx"> #include "JSGlobalObject.h"
</span><span class="cx"> #include "JSGlobalObjectConsoleAgent.h"
</span><span class="cx"> #include "JSGlobalObjectConsoleClient.h"
</span><span class="lines">@@ -64,8 +63,7 @@
</span><span class="cx"> JSGlobalObjectInspectorController::JSGlobalObjectInspectorController(JSGlobalObject& globalObject)
</span><span class="cx"> : m_globalObject(globalObject)
</span><span class="cx"> , m_injectedScriptManager(std::make_unique<InjectedScriptManager>(*this, InjectedScriptHost::create()))
</span><del>- , m_frontendRouter(FrontendRouter::create())
- , m_backendDispatcher(BackendDispatcher::create(m_frontendRouter.copyRef()))
</del><ins>+ , m_frontendChannel(nullptr)
</ins><span class="cx"> , m_executionStopwatch(Stopwatch::create())
</span><span class="cx"> , m_includeNativeCallStackWithExceptions(true)
</span><span class="cx"> , m_isAutomaticInspection(false)
</span><span class="lines">@@ -100,25 +98,23 @@
</span><span class="cx">
</span><span class="cx"> void JSGlobalObjectInspectorController::globalObjectDestroyed()
</span><span class="cx"> {
</span><del>- disconnectAllFrontends();
</del><ins>+ disconnectFrontend(DisconnectReason::InspectedTargetDestroyed);
</ins><span class="cx">
</span><span class="cx"> m_injectedScriptManager->disconnect();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void JSGlobalObjectInspectorController::connectFrontend(FrontendChannel* frontendChannel, bool isAutomaticInspection)
</span><span class="cx"> {
</span><del>- ASSERT_ARG(frontendChannel, frontendChannel);
</del><ins>+ ASSERT(!m_frontendChannel);
+ ASSERT(!m_backendDispatcher);
</ins><span class="cx">
</span><span class="cx"> m_isAutomaticInspection = isAutomaticInspection;
</span><span class="cx">
</span><del>- bool connectedFirstFrontend = !m_frontendRouter->hasFrontends();
- m_frontendRouter->connectFrontend(frontendChannel);
</del><ins>+ m_frontendChannel = frontendChannel;
+ m_backendDispatcher = BackendDispatcher::create(frontendChannel);
</ins><span class="cx">
</span><del>- if (!connectedFirstFrontend)
- return;
</del><ins>+ m_agents.didCreateFrontendAndBackend(frontendChannel, m_backendDispatcher.get());
</ins><span class="cx">
</span><del>- m_agents.didCreateFrontendAndBackend(frontendChannel, &m_backendDispatcher.get());
-
</del><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx"> m_inspectorAgent->activateExtraDomains(m_agents.extraDomains());
</span><span class="cx">
</span><span class="lines">@@ -127,32 +123,17 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void JSGlobalObjectInspectorController::disconnectFrontend(FrontendChannel* frontendChannel)
</del><ins>+void JSGlobalObjectInspectorController::disconnectFrontend(DisconnectReason reason)
</ins><span class="cx"> {
</span><del>- ASSERT_ARG(frontendChannel, frontendChannel);
-
- m_agents.willDestroyFrontendAndBackend(DisconnectReason::InspectorDestroyed);
-
- m_frontendRouter->disconnectFrontend(frontendChannel);
-
- m_isAutomaticInspection = false;
-
- bool disconnectedLastFrontend = !m_frontendRouter->hasFrontends();
- if (!disconnectedLastFrontend)
</del><ins>+ if (!m_frontendChannel)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>-#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
- if (m_augmentingClient)
- m_augmentingClient->inspectorDisconnected();
-#endif
-}
</del><ins>+ m_agents.willDestroyFrontendAndBackend(reason);
</ins><span class="cx">
</span><del>-void JSGlobalObjectInspectorController::disconnectAllFrontends()
-{
- m_agents.willDestroyFrontendAndBackend(DisconnectReason::InspectedTargetDestroyed);
</del><ins>+ m_backendDispatcher->clearFrontend();
+ m_backendDispatcher = nullptr;
+ m_frontendChannel = nullptr;
</ins><span class="cx">
</span><del>- m_frontendRouter->disconnectAllFrontends();
-
</del><span class="cx"> m_isAutomaticInspection = false;
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="lines">@@ -163,11 +144,15 @@
</span><span class="cx">
</span><span class="cx"> void JSGlobalObjectInspectorController::dispatchMessageFromFrontend(const String& message)
</span><span class="cx"> {
</span><del>- m_backendDispatcher->dispatch(message);
</del><ins>+ if (m_backendDispatcher)
+ m_backendDispatcher->dispatch(message);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void JSGlobalObjectInspectorController::pause()
</span><span class="cx"> {
</span><ins>+ if (!m_frontendChannel)
+ return;
+
</ins><span class="cx"> ErrorString dummyError;
</span><span class="cx"> m_debuggerAgent->enable(dummyError);
</span><span class="cx"> m_debuggerAgent->pause(dummyError);
</span><span class="lines">@@ -277,11 +262,13 @@
</span><span class="cx"> {
</span><span class="cx"> String domainName = agent->domainName();
</span><span class="cx">
</span><del>- agent->didCreateFrontendAndBackend(m_frontendRouter->leakChannel(), &m_backendDispatcher.get());
</del><ins>+ if (m_frontendChannel)
+ agent->didCreateFrontendAndBackend(m_frontendChannel, m_backendDispatcher.get());
</ins><span class="cx">
</span><span class="cx"> m_agents.appendExtraAgent(WTF::move(agent));
</span><span class="cx">
</span><del>- m_inspectorAgent->activateExtraDomain(domainName);
</del><ins>+ if (m_frontendChannel)
+ m_inspectorAgent->activateExtraDomain(domainName);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorJSGlobalObjectInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -53,7 +53,6 @@
</span><span class="cx">
</span><span class="cx"> class BackendDispatcher;
</span><span class="cx"> class FrontendChannel;
</span><del>-class FrontendRouter;
</del><span class="cx"> class InjectedScriptManager;
</span><span class="cx"> class InspectorAgent;
</span><span class="cx"> class InspectorConsoleAgent;
</span><span class="lines">@@ -74,9 +73,7 @@
</span><span class="cx"> ~JSGlobalObjectInspectorController();
</span><span class="cx">
</span><span class="cx"> void connectFrontend(FrontendChannel*, bool isAutomaticInspection);
</span><del>- void disconnectFrontend(FrontendChannel*);
- void disconnectAllFrontends();
-
</del><ins>+ void disconnectFrontend(DisconnectReason);
</ins><span class="cx"> void dispatchMessageFromFrontend(const String&);
</span><span class="cx">
</span><span class="cx"> void globalObjectDestroyed();
</span><span class="lines">@@ -102,7 +99,7 @@
</span><span class="cx"> virtual AugmentableInspectorControllerClient* augmentableInspectorControllerClient() const override { return m_augmentingClient; }
</span><span class="cx"> virtual void setAugmentableInspectorControllerClient(AugmentableInspectorControllerClient* client) override { m_augmentingClient = client; }
</span><span class="cx">
</span><del>- virtual const FrontendRouter& frontendRouter() const override { return m_frontendRouter.get(); }
</del><ins>+ virtual FrontendChannel* frontendChannel() const override { return m_frontendChannel; }
</ins><span class="cx"> virtual void appendExtraAgent(std::unique_ptr<InspectorAgentBase>) override;
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="lines">@@ -116,8 +113,8 @@
</span><span class="cx"> InspectorConsoleAgent* m_consoleAgent;
</span><span class="cx"> InspectorDebuggerAgent* m_debuggerAgent;
</span><span class="cx"> AgentRegistry m_agents;
</span><del>- Ref<FrontendRouter> m_frontendRouter;
- Ref<BackendDispatcher> m_backendDispatcher;
</del><ins>+ FrontendChannel* m_frontendChannel;
+ RefPtr<BackendDispatcher> m_backendDispatcher;
</ins><span class="cx"> Ref<WTF::Stopwatch> m_executionStopwatch;
</span><span class="cx"> bool m_includeNativeCallStackWithExceptions;
</span><span class="cx"> bool m_isAutomaticInspection;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include "InspectorAgent.h"
</span><span class="cx">
</span><span class="cx"> #include "InspectorEnvironment.h"
</span><del>-#include "InspectorFrontendRouter.h"
</del><span class="cx"> #include "InspectorValues.h"
</span><span class="cx"> #include "ScriptValue.h"
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorConsoleAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx">
</span><span class="cx"> #include "ConsoleMessage.h"
</span><span class="cx"> #include "InjectedScriptManager.h"
</span><del>-#include "InspectorFrontendRouter.h"
</del><span class="cx"> #include "ScriptArguments.h"
</span><span class="cx"> #include "ScriptCallFrame.h"
</span><span class="cx"> #include "ScriptCallStack.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorDebuggerAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx"> #include "ContentSearchUtilities.h"
</span><span class="cx"> #include "InjectedScript.h"
</span><span class="cx"> #include "InjectedScriptManager.h"
</span><del>-#include "InspectorFrontendRouter.h"
</del><span class="cx"> #include "InspectorValues.h"
</span><span class="cx"> #include "RegularExpression.h"
</span><span class="cx"> #include "ScriptDebugServer.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorRuntimeAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx"> #include "HeapIterationScope.h"
</span><span class="cx"> #include "InjectedScript.h"
</span><span class="cx"> #include "InjectedScriptManager.h"
</span><del>-#include "InspectorFrontendRouter.h"
</del><span class="cx"> #include "InspectorValues.h"
</span><span class="cx"> #include "JSLock.h"
</span><span class="cx"> #include "ParserError.h"
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoraugmentableAugmentableInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/augmentable/AugmentableInspectorController.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
</span><span class="cx">
</span><span class="cx"> #include <JavaScriptCore/AugmentableInspectorControllerClient.h>
</span><del>-#include <JavaScriptCore/InspectorFrontendRouter.h>
</del><ins>+#include <JavaScriptCore/InspectorFrontendChannel.h>
</ins><span class="cx">
</span><span class="cx"> namespace Inspector {
</span><span class="cx">
</span><span class="lines">@@ -42,10 +42,10 @@
</span><span class="cx"> virtual AugmentableInspectorControllerClient* augmentableInspectorControllerClient() const = 0;
</span><span class="cx"> virtual void setAugmentableInspectorControllerClient(AugmentableInspectorControllerClient*) = 0;
</span><span class="cx">
</span><del>- virtual const FrontendRouter& frontendRouter() const = 0;
</del><ins>+ virtual FrontendChannel* frontendChannel() const = 0;
</ins><span class="cx"> virtual void appendExtraAgent(std::unique_ptr<InspectorAgentBase>) = 0;
</span><span class="cx">
</span><del>- bool connected() const { return frontendRouter().hasFrontends(); }
</del><ins>+ bool connected() const { return !!frontendChannel(); }
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorremoteRemoteInspectorDebuggableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggable.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggable.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggable.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> virtual bool hasLocalDebugger() const = 0;
</span><span class="cx">
</span><span class="cx"> virtual void connect(FrontendChannel*, bool isAutomaticInspection) = 0;
</span><del>- virtual void disconnect(FrontendChannel*) = 0;
</del><ins>+ virtual void disconnect() = 0;
</ins><span class="cx"> virtual void dispatchMessageFromRemoteFrontend(const String& message) = 0;
</span><span class="cx"> virtual void setIndicating(bool) { } // Default is to do nothing.
</span><span class="cx"> virtual void pause() { };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorremoteRemoteInspectorDebuggableConnectionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggableConnection.mm (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggableConnection.mm        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggableConnection.mm        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx">
</span><span class="cx"> if (m_debuggable) {
</span><span class="cx"> if (m_connected)
</span><del>- m_debuggable->disconnect(this);
</del><ins>+ m_debuggable->disconnect();
</ins><span class="cx">
</span><span class="cx"> m_debuggable = nullptr;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_alternate_backend_dispatcher_headerpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -47,7 +47,6 @@
</span><span class="cx"> def generate_output(self):
</span><span class="cx"> headers = [
</span><span class="cx"> '"InspectorProtocolTypes.h"',
</span><del>- '<inspector/InspectorFrontendRouter.h>',
</del><span class="cx"> '<JavaScriptCore/InspectorBackendDispatcher.h>',
</span><span class="cx"> ]
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_cpp_backend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -50,7 +50,6 @@
</span><span class="cx"> def generate_output(self):
</span><span class="cx"> secondary_headers = [
</span><span class="cx"> '<inspector/InspectorFrontendChannel.h>',
</span><del>- '<inspector/InspectorFrontendRouter.h>',
</del><span class="cx"> '<inspector/InspectorValues.h>',
</span><span class="cx"> '<wtf/NeverDestroyed.h>',
</span><span class="cx"> '<wtf/text/CString.h>']
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorscriptscodegengenerate_objc_frontend_dispatcher_implementationpy"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -98,7 +98,9 @@
</span><span class="cx"> lines = []
</span><span class="cx"> lines.append(self._generate_event_signature(domain, event))
</span><span class="cx"> lines.append('{')
</span><del>- lines.append(' const FrontendRouter& router = _controller->frontendRouter();')
</del><ins>+ lines.append(' FrontendChannel* frontendChannel = _controller->frontendChannel();')
+ lines.append(' if (!frontendChannel)')
+ lines.append(' return;')
</ins><span class="cx"> lines.append('')
</span><span class="cx">
</span><span class="cx"> required_pointer_parameters = filter(lambda parameter: not parameter.is_optional and ObjCGenerator.is_type_objc_pointer_type(parameter.type), event.event_parameters)
</span><span class="lines">@@ -124,7 +126,7 @@
</span><span class="cx"> lines.append(' jsonMessage->setString(ASCIILiteral("method"), ASCIILiteral("%s.%s"));' % (domain.domain_name, event.event_name))
</span><span class="cx"> if event.event_parameters:
</span><span class="cx"> lines.extend(self._generate_event_out_parameters(domain, event))
</span><del>- lines.append(' router.sendEvent(jsonMessage->toJSONString());')
</del><ins>+ lines.append(' frontendChannel->sendMessageToFrontend(jsonMessage->toJSONString());')
</ins><span class="cx"> lines.append('}')
</span><span class="cx"> return '\n'.join(lines)
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectDebuggablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -56,11 +56,11 @@
</span><span class="cx"> m_globalObject.inspectorController().connectFrontend(frontendChannel, automaticInspection);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void JSGlobalObjectDebuggable::disconnect(FrontendChannel* frontendChannel)
</del><ins>+void JSGlobalObjectDebuggable::disconnect()
</ins><span class="cx"> {
</span><span class="cx"> JSLockHolder locker(&m_globalObject.vm());
</span><span class="cx">
</span><del>- m_globalObject.inspectorController().disconnectFrontend(frontendChannel);
</del><ins>+ m_globalObject.inspectorController().disconnectFrontend(DisconnectReason::InspectorDestroyed);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void JSGlobalObjectDebuggable::pause()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeJSGlobalObjectDebuggableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> virtual bool hasLocalDebugger() const override { return false; }
</span><span class="cx">
</span><span class="cx"> virtual void connect(Inspector::FrontendChannel*, bool automaticInspection) override;
</span><del>- virtual void disconnect(Inspector::FrontendChannel*) override;
</del><ins>+ virtual void disconnect() override;
</ins><span class="cx"> virtual void dispatchMessageFromRemoteFrontend(const String& message) override;
</span><span class="cx"> virtual void pause() override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/ChangeLog        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-09-03 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r189338.
+ https://bugs.webkit.org/show_bug.cgi?id=148785
+
+ Caused tons of crashes (Requested by cdumez on #webkit).
+
+ Reverted changeset:
+
+ "Web Inspector: InspectorController should support multiple
+ frontend channels"
+ https://bugs.webkit.org/show_bug.cgi?id=148538
+ http://trac.webkit.org/changeset/189338
+
</ins><span class="cx"> 2015-09-03 Brian Burg <bburg@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: InspectorController should support multiple frontend channels
</span></span></pre></div>
<a id="trunkSourceWebCoreForwardingHeadersinspectorInspectorFrontendRouterh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/ForwardingHeaders/inspector/InspectorFrontendRouter.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ForwardingHeaders/inspector/InspectorFrontendRouter.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/ForwardingHeaders/inspector/InspectorFrontendRouter.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,4 +0,0 @@
</span><del>-#ifndef WebCore_FWD_InspectorFrontendRouter_h
-#define WebCore_FWD_InspectorFrontendRouter_h
-#include <JavaScriptCore/InspectorFrontendRouter.h>
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -20336,7 +20336,6 @@
</span><span class="cx"> <ClInclude Include="..\ForwardingHeaders\inspector\InspectorBackendDispatcher.h" />
</span><span class="cx"> <ClInclude Include="..\ForwardingHeaders\inspector\InspectorEnvironment.h" />
</span><span class="cx"> <ClInclude Include="..\ForwardingHeaders\inspector\InspectorFrontendChannel.h" />
</span><del>- <ClInclude Include="..\ForwardingHeaders\inspector\InspectorFrontendRouter.h" />
</del><span class="cx"> <ClInclude Include="..\ForwardingHeaders\inspector\InspectorBackendDispatchers.h" />
</span><span class="cx"> <ClInclude Include="..\ForwardingHeaders\inspector\InspectorFrontendDispatchers.h" />
</span><span class="cx"> <ClInclude Include="..\ForwardingHeaders\inspector\InspectorProtocolObjects.h" />
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorClient.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorClient.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/InspectorClient.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -27,14 +27,11 @@
</span><span class="cx"> #ifndef InspectorClient_h
</span><span class="cx"> #define InspectorClient_h
</span><span class="cx">
</span><ins>+#include "InspectorForwarding.h"
</ins><span class="cx"> #include <wtf/Forward.h>
</span><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/HashSet.h>
</span><span class="cx">
</span><del>-namespace Inspector {
-class FrontendChannel;
-}
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class FloatRect;
</span><span class="lines">@@ -48,7 +45,7 @@
</span><span class="cx">
</span><span class="cx"> virtual void inspectorDestroyed() = 0;
</span><span class="cx">
</span><del>- virtual Inspector::FrontendChannel* openInspectorFrontend(InspectorController*) = 0;
</del><ins>+ virtual InspectorFrontendChannel* openInspectorFrontend(InspectorController*) = 0;
</ins><span class="cx"> virtual void closeInspectorFrontend() = 0;
</span><span class="cx"> virtual void bringFrontendToFront() = 0;
</span><span class="cx"> virtual void didResizeMainFrame(Frame*) { }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorController.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -68,7 +68,6 @@
</span><span class="cx"> #include <inspector/InspectorBackendDispatcher.h>
</span><span class="cx"> #include <inspector/InspectorBackendDispatchers.h>
</span><span class="cx"> #include <inspector/InspectorFrontendDispatchers.h>
</span><del>-#include <inspector/InspectorFrontendRouter.h>
</del><span class="cx"> #include <inspector/agents/InspectorAgent.h>
</span><span class="cx"> #include <profiler/LegacyProfiler.h>
</span><span class="cx"> #include <runtime/JSLock.h>
</span><span class="lines">@@ -86,8 +85,6 @@
</span><span class="cx"> InspectorController::InspectorController(Page& page, InspectorClient* inspectorClient)
</span><span class="cx"> : m_instrumentingAgents(InstrumentingAgents::create(*this))
</span><span class="cx"> , m_injectedScriptManager(std::make_unique<WebInjectedScriptManager>(*this, WebInjectedScriptHost::create()))
</span><del>- , m_frontendRouter(FrontendRouter::create())
- , m_backendDispatcher(BackendDispatcher::create(m_frontendRouter.copyRef()))
</del><span class="cx"> , m_overlay(std::make_unique<InspectorOverlay>(page, inspectorClient))
</span><span class="cx"> , m_executionStopwatch(Stopwatch::create())
</span><span class="cx"> , m_page(page)
</span><span class="lines">@@ -180,8 +177,7 @@
</span><span class="cx">
</span><span class="cx"> void InspectorController::inspectedPageDestroyed()
</span><span class="cx"> {
</span><del>- disconnectAllFrontends();
-
</del><ins>+ disconnectFrontend(DisconnectReason::InspectedTargetDestroyed);
</ins><span class="cx"> m_injectedScriptManager->disconnect();
</span><span class="cx"> m_inspectorClient->inspectorDestroyed();
</span><span class="cx"> m_inspectorClient = nullptr;
</span><span class="lines">@@ -194,12 +190,12 @@
</span><span class="cx">
</span><span class="cx"> bool InspectorController::hasLocalFrontend() const
</span><span class="cx"> {
</span><del>- return m_frontendRouter->hasLocalFrontend();
</del><ins>+ return m_frontendChannel && m_frontendChannel->connectionType() == FrontendChannel::ConnectionType::Local;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool InspectorController::hasRemoteFrontend() const
</span><span class="cx"> {
</span><del>- return m_frontendRouter->hasRemoteFrontend();
</del><ins>+ return m_frontendChannel && m_frontendChannel->connectionType() == FrontendChannel::ConnectionType::Remote;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool InspectorController::hasInspectorFrontendClient() const
</span><span class="lines">@@ -223,96 +219,74 @@
</span><span class="cx">
</span><span class="cx"> void InspectorController::connectFrontend(Inspector::FrontendChannel* frontendChannel, bool isAutomaticInspection)
</span><span class="cx"> {
</span><del>- ASSERT_ARG(frontendChannel, frontendChannel);
</del><ins>+ ASSERT(frontendChannel);
</ins><span class="cx"> ASSERT(m_inspectorClient);
</span><ins>+ ASSERT(!m_frontendChannel);
+ ASSERT(!m_backendDispatcher);
</ins><span class="cx">
</span><del>- bool connectedFirstFrontend = !m_frontendRouter->hasFrontends();
</del><span class="cx"> m_isAutomaticInspection = isAutomaticInspection;
</span><span class="cx">
</span><del>- m_frontendRouter->connectFrontend(frontendChannel);
</del><ins>+ m_frontendChannel = frontendChannel;
+ m_backendDispatcher = BackendDispatcher::create(frontendChannel);
</ins><span class="cx">
</span><ins>+ m_agents.didCreateFrontendAndBackend(frontendChannel, m_backendDispatcher.get());
+
+ InspectorInstrumentation::registerInstrumentingAgents(m_instrumentingAgents.get());
</ins><span class="cx"> InspectorInstrumentation::frontendCreated();
</span><span class="cx">
</span><del>- if (connectedFirstFrontend) {
- InspectorInstrumentation::registerInstrumentingAgents(m_instrumentingAgents.get());
- m_agents.didCreateFrontendAndBackend(frontendChannel, &m_backendDispatcher.get());
- }
-
</del><span class="cx"> #if ENABLE(REMOTE_INSPECTOR)
</span><del>- if (!m_frontendRouter->hasRemoteFrontend())
</del><ins>+ if (!hasRemoteFrontend())
</ins><span class="cx"> m_page.remoteInspectorInformationDidChange();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void InspectorController::disconnectFrontend(FrontendChannel* frontendChannel)
</del><ins>+void InspectorController::disconnectFrontend(DisconnectReason reason)
</ins><span class="cx"> {
</span><del>- // The local frontend client should be disconnected first so it stops sending messages.
- ASSERT(!m_frontendRouter->hasLocalFrontend() || !m_inspectorFrontendClient);
</del><ins>+ if (!m_frontendChannel)
+ return;
</ins><span class="cx">
</span><del>- m_frontendRouter->disconnectFrontend(frontendChannel);
- m_isAutomaticInspection = false;
-
- InspectorInstrumentation::frontendDeleted();
-
- bool disconnectedLastFrontend = !m_frontendRouter->hasFrontends();
- if (disconnectedLastFrontend) {
- // Release overlay page resources.
- m_overlay->freePage();
- m_agents.willDestroyFrontendAndBackend(DisconnectReason::InspectorDestroyed);
- InspectorInstrumentation::unregisterInstrumentingAgents(m_instrumentingAgents.get());
- }
-
</del><span class="cx"> #if ENABLE(REMOTE_INSPECTOR)
</span><del>- if (!m_frontendRouter->hasFrontends())
</del><ins>+ if (!hasRemoteFrontend())
</ins><span class="cx"> m_page.remoteInspectorInformationDidChange();
</span><span class="cx"> #endif
</span><del>-}
</del><span class="cx">
</span><del>-void InspectorController::disconnectAllFrontends()
-{
- // The local frontend client should be disconnected first so it stops sending messages.
- ASSERT(!m_frontendRouter->hasLocalFrontend() || !m_inspectorFrontendClient);
</del><ins>+ m_agents.willDestroyFrontendAndBackend(reason);
</ins><span class="cx">
</span><del>- m_agents.willDestroyFrontendAndBackend(DisconnectReason::InspectedTargetDestroyed);
</del><ins>+ m_backendDispatcher->clearFrontend();
+ m_backendDispatcher = nullptr;
+ m_frontendChannel = nullptr;
</ins><span class="cx">
</span><del>- m_frontendRouter->disconnectAllFrontends();
</del><span class="cx"> m_isAutomaticInspection = false;
</span><span class="cx">
</span><span class="cx"> // Release overlay page resources.
</span><span class="cx"> m_overlay->freePage();
</span><del>-
- while (InspectorInstrumentation::hasFrontends())
- InspectorInstrumentation::frontendDeleted();
-
</del><ins>+ InspectorInstrumentation::frontendDeleted();
</ins><span class="cx"> InspectorInstrumentation::unregisterInstrumentingAgents(m_instrumentingAgents.get());
</span><del>-
-#if ENABLE(REMOTE_INSPECTOR)
- m_page.remoteInspectorInformationDidChange();
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorController::show()
</span><span class="cx"> {
</span><del>- ASSERT(!m_frontendRouter->hasRemoteFrontend());
</del><ins>+ ASSERT(!hasRemoteFrontend());
</ins><span class="cx">
</span><del>- // The local frontend client should be disconnected if there's no local frontend.
- ASSERT(m_frontendRouter->hasLocalFrontend() || !m_inspectorFrontendClient);
-
</del><span class="cx"> if (!enabled())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (m_frontendRouter->hasLocalFrontend())
</del><ins>+ if (m_frontendChannel)
</ins><span class="cx"> m_inspectorClient->bringFrontendToFront();
</span><del>- else if (Inspector::FrontendChannel* frontendChannel = m_inspectorClient->openInspectorFrontend(this))
- connectFrontend(frontendChannel);
</del><ins>+ else {
+ if (Inspector::FrontendChannel* frontendChannel = m_inspectorClient->openInspectorFrontend(this)) {
+ bool isAutomaticInspection = false;
+ connectFrontend(frontendChannel, isAutomaticInspection);
+ }
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorController::close()
</span><span class="cx"> {
</span><del>- if (m_frontendRouter->hasLocalFrontend())
- m_inspectorClient->closeInspectorFrontend();
-
- ASSERT(!m_frontendRouter->hasLocalFrontend());
</del><ins>+ if (!m_frontendChannel)
+ return;
+ disconnectFrontend(DisconnectReason::InspectorDestroyed);
+ m_inspectorClient->closeInspectorFrontend();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorController::setProcessId(long processId)
</span><span class="lines">@@ -363,7 +337,8 @@
</span><span class="cx">
</span><span class="cx"> void InspectorController::dispatchMessageFromFrontend(const String& message)
</span><span class="cx"> {
</span><del>- m_backendDispatcher->dispatch(message);
</del><ins>+ if (m_backendDispatcher)
+ m_backendDispatcher->dispatch(message);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void InspectorController::hideHighlight()
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorController.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorController.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/InspectorController.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -45,7 +45,6 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> class BackendDispatcher;
</span><span class="cx"> class FrontendChannel;
</span><del>-class FrontendRouter;
</del><span class="cx"> class InspectorAgent;
</span><span class="cx"> class InspectorObject;
</span><span class="cx">
</span><span class="lines">@@ -99,9 +98,8 @@
</span><span class="cx"> bool hasLocalFrontend() const;
</span><span class="cx"> bool hasRemoteFrontend() const;
</span><span class="cx">
</span><del>- WEBCORE_EXPORT void connectFrontend(Inspector::FrontendChannel*, bool isAutomaticInspection = false);
- WEBCORE_EXPORT void disconnectFrontend(Inspector::FrontendChannel*);
- WEBCORE_EXPORT void disconnectAllFrontends();
</del><ins>+ WEBCORE_EXPORT void connectFrontend(Inspector::FrontendChannel*, bool isAutomaticInspection);
+ WEBCORE_EXPORT void disconnectFrontend(Inspector::DisconnectReason);
</ins><span class="cx"> void setProcessId(long);
</span><span class="cx">
</span><span class="cx"> void inspect(Node*);
</span><span class="lines">@@ -142,8 +140,8 @@
</span><span class="cx">
</span><span class="cx"> Ref<InstrumentingAgents> m_instrumentingAgents;
</span><span class="cx"> std::unique_ptr<WebInjectedScriptManager> m_injectedScriptManager;
</span><del>- Ref<Inspector::FrontendRouter> m_frontendRouter;
- Ref<Inspector::BackendDispatcher> m_backendDispatcher;
</del><ins>+ RefPtr<Inspector::BackendDispatcher> m_backendDispatcher;
+ Inspector::FrontendChannel* m_frontendChannel { nullptr };
</ins><span class="cx"> std::unique_ptr<InspectorOverlay> m_overlay;
</span><span class="cx"> Ref<WTF::Stopwatch> m_executionStopwatch;
</span><span class="cx"> Inspector::AgentRegistry m_agents;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDatabaseAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -44,7 +44,6 @@
</span><span class="cx"> #include "SQLTransactionErrorCallback.h"
</span><span class="cx"> #include "SQLValue.h"
</span><span class="cx"> #include "VoidCallback.h"
</span><del>-#include <inspector/InspectorFrontendRouter.h>
</del><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorIndexedDBAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -64,7 +64,6 @@
</span><span class="cx"> #include <inspector/InjectedScript.h>
</span><span class="cx"> #include <inspector/InjectedScriptManager.h>
</span><span class="cx"> #include <inspector/InspectorFrontendDispatchers.h>
</span><del>-#include <inspector/InspectorFrontendRouter.h>
</del><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorResourceAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -62,7 +62,6 @@
</span><span class="cx"> #include "URL.h"
</span><span class="cx"> #include "WebSocketFrame.h"
</span><span class="cx"> #include <inspector/IdentifiersFactory.h>
</span><del>-#include <inspector/InspectorFrontendRouter.h>
</del><span class="cx"> #include <inspector/InspectorValues.h>
</span><span class="cx"> #include <inspector/ScriptCallStack.h>
</span><span class="cx"> #include <inspector/ScriptCallStackFactory.h>
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorWorkerInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/WorkerInspectorController.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WorkerInspectorController.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/WorkerInspectorController.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -48,7 +48,6 @@
</span><span class="cx"> #include "WorkerThread.h"
</span><span class="cx"> #include <inspector/InspectorBackendDispatcher.h>
</span><span class="cx"> #include <inspector/InspectorFrontendDispatchers.h>
</span><del>-#include <inspector/InspectorFrontendRouter.h>
</del><span class="cx"> #include <wtf/Stopwatch.h>
</span><span class="cx">
</span><span class="cx"> using namespace Inspector;
</span><span class="lines">@@ -81,8 +80,6 @@
</span><span class="cx"> , m_instrumentingAgents(InstrumentingAgents::create(*this))
</span><span class="cx"> , m_injectedScriptManager(std::make_unique<WebInjectedScriptManager>(*this, WebInjectedScriptHost::create()))
</span><span class="cx"> , m_executionStopwatch(Stopwatch::create())
</span><del>- , m_frontendRouter(FrontendRouter::create())
- , m_backendDispatcher(BackendDispatcher::create(m_frontendRouter.copyRef()))
</del><span class="cx"> {
</span><span class="cx"> auto runtimeAgent = std::make_unique<WorkerRuntimeAgent>(*m_injectedScriptManager, &workerGlobalScope);
</span><span class="cx"> m_runtimeAgent = runtimeAgent.get();
</span><span class="lines">@@ -117,27 +114,27 @@
</span><span class="cx">
</span><span class="cx"> void WorkerInspectorController::connectFrontend()
</span><span class="cx"> {
</span><del>- ASSERT(!m_frontendRouter->hasFrontends());
- ASSERT(!m_forwardingChannel);
-
- m_forwardingChannel = std::make_unique<PageInspectorProxy>(m_workerGlobalScope);
- m_frontendRouter->connectFrontend(m_forwardingChannel.get());
- m_agents.didCreateFrontendAndBackend(m_forwardingChannel.get(), &m_backendDispatcher.get());
</del><ins>+ ASSERT(!m_frontendChannel);
+ m_frontendChannel = std::make_unique<PageInspectorProxy>(m_workerGlobalScope);
+ m_backendDispatcher = BackendDispatcher::create(m_frontendChannel.get());
+ m_agents.didCreateFrontendAndBackend(m_frontendChannel.get(), m_backendDispatcher.get());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WorkerInspectorController::disconnectFrontend(Inspector::DisconnectReason reason)
</span><span class="cx"> {
</span><del>- ASSERT(m_frontendRouter->hasFrontends());
- ASSERT(m_forwardingChannel);
</del><ins>+ if (!m_frontendChannel)
+ return;
</ins><span class="cx">
</span><span class="cx"> m_agents.willDestroyFrontendAndBackend(reason);
</span><del>- m_frontendRouter->disconnectFrontend(m_forwardingChannel.get());
- m_forwardingChannel = nullptr;
</del><ins>+ m_backendDispatcher->clearFrontend();
+ m_backendDispatcher = nullptr;
+ m_frontendChannel = nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WorkerInspectorController::dispatchMessageFromFrontend(const String& message)
</span><span class="cx"> {
</span><del>- m_backendDispatcher->dispatch(message);
</del><ins>+ if (m_backendDispatcher)
+ m_backendDispatcher->dispatch(message);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WorkerInspectorController::resume()
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorWorkerInspectorControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/WorkerInspectorController.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WorkerInspectorController.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/inspector/WorkerInspectorController.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -41,10 +41,6 @@
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx">
</span><del>-namespace Inspector {
-class FrontendRouter;
-};
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class InspectorInstrumentation;
</span><span class="lines">@@ -82,10 +78,9 @@
</span><span class="cx"> std::unique_ptr<WebInjectedScriptManager> m_injectedScriptManager;
</span><span class="cx"> WorkerRuntimeAgent* m_runtimeAgent { nullptr };
</span><span class="cx"> Inspector::AgentRegistry m_agents;
</span><del>- std::unique_ptr<Inspector::FrontendChannel> m_forwardingChannel;
</del><ins>+ std::unique_ptr<Inspector::FrontendChannel> m_frontendChannel;
</ins><span class="cx"> Ref<WTF::Stopwatch> m_executionStopwatch;
</span><del>- Ref<Inspector::FrontendRouter> m_frontendRouter;
- Ref<Inspector::BackendDispatcher> m_backendDispatcher;
</del><ins>+ RefPtr<Inspector::BackendDispatcher> m_backendDispatcher;
</ins><span class="cx"> Vector<InspectorInstrumentationCookie, 2> m_injectedScriptInstrumentationCookies;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageDebuggablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageDebuggable.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageDebuggable.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/page/PageDebuggable.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -80,10 +80,10 @@
</span><span class="cx"> inspectorController.connectFrontend(channel, isAutomaticInspection);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void PageDebuggable::disconnect(Inspector::FrontendChannel* channel)
</del><ins>+void PageDebuggable::disconnect()
</ins><span class="cx"> {
</span><span class="cx"> InspectorController& inspectorController = m_page.inspectorController();
</span><del>- inspectorController.disconnectFrontend(channel);
</del><ins>+ inspectorController.disconnectFrontend(Inspector::DisconnectReason::InspectorDestroyed);
</ins><span class="cx">
</span><span class="cx"> if (m_forcedDeveloperExtrasEnabled) {
</span><span class="cx"> m_forcedDeveloperExtrasEnabled = false;
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageDebuggableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageDebuggable.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageDebuggable.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/page/PageDebuggable.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> virtual bool hasLocalDebugger() const override;
</span><span class="cx">
</span><span class="cx"> virtual void connect(Inspector::FrontendChannel*, bool isAutomaticInspection) override;
</span><del>- virtual void disconnect(Inspector::FrontendChannel*) override;
</del><ins>+ virtual void disconnect() override;
</ins><span class="cx"> virtual void dispatchMessageFromRemoteFrontend(const String& message) override;
</span><span class="cx"> virtual void setIndicating(bool) override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebCore/testing/Internals.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1734,8 +1734,9 @@
</span><span class="cx"> m_frontendClient = std::make_unique<InspectorFrontendClientDummy>(&page->inspectorController(), frontendPage);
</span><span class="cx"> frontendPage->inspectorController().setInspectorFrontendClient(m_frontendClient.get());
</span><span class="cx">
</span><ins>+ bool isAutomaticInspection = false;
</ins><span class="cx"> m_frontendChannel = std::make_unique<InspectorFrontendChannelDummy>(frontendPage);
</span><del>- page->inspectorController().connectFrontend(m_frontendChannel.get());
</del><ins>+ page->inspectorController().connectFrontend(m_frontendChannel.get(), isAutomaticInspection);
</ins><span class="cx">
</span><span class="cx"> return m_frontendWindow;
</span><span class="cx"> }
</span><span class="lines">@@ -1746,13 +1747,9 @@
</span><span class="cx"> ASSERT(page);
</span><span class="cx"> ASSERT(m_frontendWindow);
</span><span class="cx">
</span><del>- Page* frontendPage = m_frontendWindow->document()->page();
- ASSERT(frontendPage);
</del><ins>+ page->inspectorController().disconnectFrontend(Inspector::DisconnectReason::InspectorDestroyed);
</ins><span class="cx">
</span><del>- frontendPage->inspectorController().setInspectorFrontendClient(nullptr);
</del><span class="cx"> m_frontendClient = nullptr;
</span><del>-
- page->inspectorController().disconnectFrontend(m_frontendChannel.get());
</del><span class="cx"> m_frontendChannel = nullptr;
</span><span class="cx">
</span><span class="cx"> m_frontendWindow->close(m_frontendWindow->scriptExecutionContext());
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-09-03 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r189338.
+ https://bugs.webkit.org/show_bug.cgi?id=148785
+
+ Caused tons of crashes (Requested by cdumez on #webkit).
+
+ Reverted changeset:
+
+ "Web Inspector: InspectorController should support multiple
+ frontend channels"
+ https://bugs.webkit.org/show_bug.cgi?id=148538
+ http://trac.webkit.org/changeset/189338
+
</ins><span class="cx"> 2015-09-03 Brian Burg <bburg@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: InspectorController should support multiple frontend channels
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebInspectorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -124,7 +124,7 @@
</span><span class="cx">
</span><span class="cx"> virtual void bringToFront() override;
</span><span class="cx"> virtual void closeWindow() override;
</span><del>- void disconnectFromBackend();
</del><ins>+ virtual void disconnectFromBackend();
</ins><span class="cx">
</span><span class="cx"> virtual void attachWindow(DockSide) override;
</span><span class="cx"> virtual void detachWindow() override;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebInspectorClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> - (WebInspectorClient*)inspectorClient;
</span><span class="cx"> - (void)setAttachedWindowHeight:(unsigned)height;
</span><span class="cx"> - (void)setDockingUnavailable:(BOOL)unavailable;
</span><del>-- (void)destroyInspectorView;
</del><ins>+- (void)destroyInspectorView:(bool)notifyInspectorController;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -130,7 +130,6 @@
</span><span class="cx">
</span><span class="cx"> void WebInspectorClient::bringFrontendToFront()
</span><span class="cx"> {
</span><del>- ASSERT(m_frontendClient);
</del><span class="cx"> m_frontendClient->bringToFront();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -253,12 +252,12 @@
</span><span class="cx">
</span><span class="cx"> void WebInspectorFrontendClient::closeWindow()
</span><span class="cx"> {
</span><del>- [m_windowController.get() destroyInspectorView];
</del><ins>+ [m_windowController.get() destroyInspectorView:true];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebInspectorFrontendClient::disconnectFromBackend()
</span><span class="cx"> {
</span><del>- [m_windowController.get() destroyInspectorView];
</del><ins>+ [m_windowController.get() destroyInspectorView:false];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebInspectorFrontendClient::attachWindow(DockSide)
</span><span class="lines">@@ -523,7 +522,7 @@
</span><span class="cx">
</span><span class="cx"> - (BOOL)windowShouldClose:(id)sender
</span><span class="cx"> {
</span><del>- [self destroyInspectorView];
</del><ins>+ [self destroyInspectorView:true];
</ins><span class="cx">
</span><span class="cx"> return YES;
</span><span class="cx"> }
</span><span class="lines">@@ -677,7 +676,7 @@
</span><span class="cx"> // Do nothing.
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (void)destroyInspectorView
</del><ins>+- (void)destroyInspectorView:(bool)notifyInspectorController
</ins><span class="cx"> {
</span><span class="cx"> RetainPtr<WebInspectorWindowController> protect(self);
</span><span class="cx">
</span><span class="lines">@@ -693,9 +692,9 @@
</span><span class="cx">
</span><span class="cx"> _visible = NO;
</span><span class="cx">
</span><del>- if (Page* inspectedPage = [_inspectedWebView.get() page]) {
- inspectedPage->inspectorController().setInspectorFrontendClient(nullptr);
- inspectedPage->inspectorController().disconnectFrontend(_inspectorClient);
</del><ins>+ if (notifyInspectorController) {
+ if (Page* inspectedPage = [_inspectedWebView.get() page])
+ inspectedPage->inspectorController().disconnectFrontend(Inspector::DisconnectReason::InspectorDestroyed);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> [_webView close];
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit/win/ChangeLog        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-09-03 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r189338.
+ https://bugs.webkit.org/show_bug.cgi?id=148785
+
+ Caused tons of crashes (Requested by cdumez on #webkit).
+
+ Reverted changeset:
+
+ "Web Inspector: InspectorController should support multiple
+ frontend channels"
+ https://bugs.webkit.org/show_bug.cgi?id=148538
+ http://trac.webkit.org/changeset/189338
+
</ins><span class="cx"> 2015-09-03 Brian Burg <bburg@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: InspectorController should support multiple frontend channels
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebInspectorClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx"> void WebInspectorClient::closeInspectorFrontend()
</span><span class="cx"> {
</span><span class="cx"> if (m_frontendClient)
</span><del>- m_frontendClient->destroyInspectorView();
</del><ins>+ m_frontendClient->destroyInspectorView(false);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebInspectorClient::bringFrontendToFront()
</span><span class="lines">@@ -237,7 +237,7 @@
</span><span class="cx">
</span><span class="cx"> WebInspectorFrontendClient::~WebInspectorFrontendClient()
</span><span class="cx"> {
</span><del>- destroyInspectorView();
</del><ins>+ destroyInspectorView(true);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebInspectorFrontendClient::frontendLoaded()
</span><span class="lines">@@ -269,7 +269,7 @@
</span><span class="cx">
</span><span class="cx"> void WebInspectorFrontendClient::closeWindow()
</span><span class="cx"> {
</span><del>- destroyInspectorView();
</del><ins>+ destroyInspectorView(true);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebInspectorFrontendClient::attachWindow(DockSide)
</span><span class="lines">@@ -421,7 +421,7 @@
</span><span class="cx"> m_inspectorClient->updateHighlight();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebInspectorFrontendClient::destroyInspectorView()
</del><ins>+void WebInspectorFrontendClient::destroyInspectorView(bool notifyInspectorController)
</ins><span class="cx"> {
</span><span class="cx"> m_inspectorClient->releaseFrontend();
</span><span class="cx">
</span><span class="lines">@@ -431,10 +431,10 @@
</span><span class="cx">
</span><span class="cx"> closeWindowWithoutNotifications();
</span><span class="cx">
</span><del>- m_inspectedWebView->page()->inspectorController().setInspectorFrontendClient(nullptr);
- m_inspectedWebView->page()->inspectorController().disconnectFrontend(m_inspectorClient);
- m_inspectorClient->updateHighlight();
-
</del><ins>+ if (notifyInspectorController) {
+ m_inspectedWebView->page()->inspectorController().disconnectFrontend(Inspector::DisconnectReason::InspectorDestroyed);
+ m_inspectorClient->updateHighlight();
+ }
</ins><span class="cx"> ::DestroyWindow(m_frontendHwnd);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreSupportWebInspectorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">
</span><span class="cx"> virtual void inspectedURLChanged(const WTF::String& newURL);
</span><span class="cx">
</span><del>- void destroyInspectorView();
</del><ins>+ void destroyInspectorView(bool notifyInspectorController);
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> void closeWindowWithoutNotifications();
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit2/ChangeLog        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-09-03 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r189338.
+ https://bugs.webkit.org/show_bug.cgi?id=148785
+
+ Caused tons of crashes (Requested by cdumez on #webkit).
+
+ Reverted changeset:
+
+ "Web Inspector: InspectorController should support multiple
+ frontend channels"
+ https://bugs.webkit.org/show_bug.cgi?id=148538
+ http://trac.webkit.org/changeset/189338
+
</ins><span class="cx"> 2015-09-03 Brian Burg <bburg@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: InspectorController should support multiple frontend channels
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebInspectorClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -82,19 +82,17 @@
</span><span class="cx"> delete this;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-Inspector::FrontendChannel* WebInspectorClient::openInspectorFrontend(InspectorController* controller)
</del><ins>+WebCore::InspectorFrontendChannel* WebInspectorClient::openInspectorFrontend(InspectorController* controller)
</ins><span class="cx"> {
</span><del>- m_page->inspector()->openFrontendConnection(controller->isUnderTest());
</del><ins>+ m_page->inspector()->createInspectorPage(controller->isUnderTest());
</ins><span class="cx">
</span><span class="cx"> return m_page->inspector();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebInspectorClient::closeInspectorFrontend()
</span><span class="cx"> {
</span><del>- if (m_page->inspector()) {
- m_page->corePage()->inspectorController().disconnectFrontend(m_page->inspector());
- m_page->inspector()->closeFrontendConnection();
- }
</del><ins>+ if (m_page->inspector())
+ m_page->inspector()->closeFrontend();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebInspectorClient::bringFrontendToFront()
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebInspectorClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #define WebInspectorClient_h
</span><span class="cx">
</span><span class="cx"> #include <WebCore/InspectorClient.h>
</span><ins>+#include <WebCore/InspectorForwarding.h>
</ins><span class="cx"> #include <WebCore/PageOverlay.h>
</span><span class="cx"> #include <wtf/HashSet.h>
</span><span class="cx">
</span><span class="lines">@@ -52,7 +53,7 @@
</span><span class="cx"> // WebCore::InspectorClient
</span><span class="cx"> void inspectorDestroyed() override;
</span><span class="cx">
</span><del>- Inspector::FrontendChannel* openInspectorFrontend(WebCore::InspectorController*) override;
</del><ins>+ WebCore::InspectorFrontendChannel* openInspectorFrontend(WebCore::InspectorController*) override;
</ins><span class="cx"> void closeInspectorFrontend() override;
</span><span class="cx"> void bringFrontendToFront() override;
</span><span class="cx"> void didResizeMainFrame(WebCore::Frame*) override;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebInspectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Called from WebInspectorClient
</span><del>-void WebInspector::openFrontendConnection(bool underTest)
</del><ins>+void WebInspector::createInspectorPage(bool underTest)
</ins><span class="cx"> {
</span><span class="cx"> #if OS(DARWIN)
</span><span class="cx"> mach_port_t listeningPort;
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx"> WebProcess::singleton().parentProcessConnection()->send(Messages::WebInspectorProxy::CreateInspectorPage(connectionClientPort, canAttachWindow(), underTest), m_page->pageID());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void WebInspector::closeFrontendConnection()
</del><ins>+void WebInspector::closeFrontend()
</ins><span class="cx"> {
</span><span class="cx"> WebProcess::singleton().parentProcessConnection()->send(Messages::WebInspectorProxy::DidClose(), m_page->pageID());
</span><span class="cx">
</span><span class="lines">@@ -262,7 +262,8 @@
</span><span class="cx"> {
</span><span class="cx"> if (m_page->corePage()) {
</span><span class="cx"> m_remoteFrontendConnected = true;
</span><del>- m_page->corePage()->inspectorController().connectFrontend(this);
</del><ins>+ bool isAutomaticInspection = false;
+ m_page->corePage()->inspectorController().connectFrontend(this, isAutomaticInspection);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -271,7 +272,7 @@
</span><span class="cx"> m_remoteFrontendConnected = false;
</span><span class="cx">
</span><span class="cx"> if (m_page->corePage())
</span><del>- m_page->corePage()->inspectorController().disconnectFrontend(this);
</del><ins>+ m_page->corePage()->inspectorController().disconnectFrontend(Inspector::DisconnectReason::InspectorDestroyed);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebInspectorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.h (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.h        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.h        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -97,9 +97,9 @@
</span><span class="cx"> bool canAttachWindow();
</span><span class="cx">
</span><span class="cx"> // Called from WebInspectorClient
</span><del>- void openFrontendConnection(bool underTest);
- void closeFrontendConnection();
</del><ins>+ void createInspectorPage(bool underTest);
</ins><span class="cx">
</span><ins>+ void closeFrontend();
</ins><span class="cx"> void bringToFront();
</span><span class="cx">
</span><span class="cx"> WebPage* m_page;
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Tools/ChangeLog        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-09-03 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r189338.
+ https://bugs.webkit.org/show_bug.cgi?id=148785
+
+ Caused tons of crashes (Requested by cdumez on #webkit).
+
+ Reverted changeset:
+
+ "Web Inspector: InspectorController should support multiple
+ frontend channels"
+ https://bugs.webkit.org/show_bug.cgi?id=148538
+ http://trac.webkit.org/changeset/189338
+
</ins><span class="cx"> 2015-09-03 Brian Burg <bburg@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: InspectorController should support multiple frontend channels
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -2039,13 +2039,6 @@
</span><span class="cx">
</span><span class="cx"> workQueue.clear();
</span><span class="cx">
</span><del>- // If the test page could have possibly opened the Web Inspector frontend,
- // then try to close it in case it was accidentally left open.
- if (shouldEnableDeveloperExtras(pathOrURL.c_str())) {
- gTestRunner->closeWebInspector();
- gTestRunner->setDeveloperExtrasEnabled(false);
- }
-
</del><span class="cx"> if (gTestRunner->closeRemainingWindowsWhenComplete()) {
</span><span class="cx"> NSArray* array = [DumpRenderTreeWindow openWindows];
</span><span class="cx">
</span><span class="lines">@@ -2069,6 +2062,12 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ // If developer extras enabled Web Inspector may have been open by the test.
+ if (shouldEnableDeveloperExtras(pathOrURL.c_str())) {
+ gTestRunner->closeWebInspector();
+ gTestRunner->setDeveloperExtrasEnabled(false);
+ }
+
</ins><span class="cx"> resetWebViewToConsistentStateBeforeTesting();
</span><span class="cx">
</span><span class="cx"> // Loading an empty request synchronously replaces the document with a blank one, which is necessary
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreewinDumpRenderTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp (189339 => 189340)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp        2015-09-04 04:29:04 UTC (rev 189339)
+++ trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp        2015-09-04 04:54:09 UTC (rev 189340)
</span><span class="lines">@@ -1147,13 +1147,6 @@
</span><span class="cx"> // EventSendingController clearSavedEvents
</span><span class="cx"> workQueue.clear();
</span><span class="cx">
</span><del>- // If the test page could have possibly opened the Web Inspector frontend,
- // then try to close it in case it was accidentally left open.
- if (shouldEnableDeveloperExtras(pathOrURL.c_str())) {
- ::gTestRunner->closeWebInspector();
- ::gTestRunner->setDeveloperExtrasEnabled(false);
- }
-
</del><span class="cx"> if (::gTestRunner->closeRemainingWindowsWhenComplete()) {
</span><span class="cx"> Vector<HWND> windows = openWindows();
</span><span class="cx"> unsigned size = windows.size();
</span><span class="lines">@@ -1168,6 +1161,11 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ if (shouldEnableDeveloperExtras(pathOrURL.c_str())) {
+ ::gTestRunner->closeWebInspector();
+ ::gTestRunner->setDeveloperExtrasEnabled(false);
+ }
+
</ins><span class="cx"> resetWebViewToConsistentStateBeforeTesting();
</span><span class="cx">
</span><span class="cx"> // Loading an empty request synchronously replaces the document with a blank one, which is necessary
</span></span></pre>
</div>
</div>
</body>
</html>