<!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>[211771] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/211771">211771</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2017-02-06 20:27:05 -0800 (Mon, 06 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Do not use RunLoop when dispatching inspector GC event
https://bugs.webkit.org/show_bug.cgi?id=167683
&lt;rdar://problem/30167791&gt;

Patch by Joseph Pecoraro &lt;pecoraro@apple.com&gt; on 2017-02-06
Reviewed by Brian Burg.

Source/JavaScriptCore:

Move the RunLoop deferred implementation to WebCore. It is not needed
for JSContext inspection, and in JSContext inspection we are not
guarenteed a RunLoop to defer to.

* inspector/agents/InspectorHeapAgent.h:
* inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::InspectorHeapAgent):
(Inspector::InspectorHeapAgent::~InspectorHeapAgent):
(Inspector::InspectorHeapAgent::disable):
(Inspector::InspectorHeapAgent::didGarbageCollect):
(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask): Deleted.
(Inspector::SendGarbageCollectionEventsTask::addGarbageCollection): Deleted.
(Inspector::SendGarbageCollectionEventsTask::reset): Deleted.
(Inspector::SendGarbageCollectionEventsTask::timerFired): Deleted.

(Inspector::InspectorHeapAgent::dispatchGarbageCollectedEvent):
Make a virtual method so that WebCore implementations of this agent can choose
to dispatch this event asynchronously.

* inspector/agents/InspectorScriptProfilerAgent.cpp:
Remove unnecessary RunLoop include.

Source/WebCore:

Covered by existing tests.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
Add new file.

* inspector/PageHeapAgent.cpp:
(WebCore::PageHeapAgent::PageHeapAgent):
(WebCore::PageHeapAgent::enable):
(WebCore::PageHeapAgent::disable):
* inspector/PageHeapAgent.h:
Extend WebHeapAgent.

* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
Use WebHeapAgent.

* inspector/WebHeapAgent.cpp: Added.
(WebCore::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
(WebCore::SendGarbageCollectionEventsTask::addGarbageCollection):
(WebCore::SendGarbageCollectionEventsTask::reset):
(WebCore::SendGarbageCollectionEventsTask::timerFired):
(WebCore::WebHeapAgent::WebHeapAgent):
(WebCore::WebHeapAgent::~WebHeapAgent):
(WebCore::WebHeapAgent::disable):
(WebCore::WebHeapAgent::dispatchGarbageCollectedEvent):
(WebCore::WebHeapAgent::dispatchGarbageCollectionEventsAfterDelay):
* inspector/WebHeapAgent.h:
Move the defered event dispatch from InspectorHeapAgent here where a RunLoop is guarenteed.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgenth">trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectoragentsInspectorScriptProfilerAgentcpp">trunk/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorAllInOnecpp">trunk/Source/WebCore/inspector/InspectorAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorPageHeapAgentcpp">trunk/Source/WebCore/inspector/PageHeapAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorPageHeapAgenth">trunk/Source/WebCore/inspector/PageHeapAgent.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorWorkerInspectorControllercpp">trunk/Source/WebCore/inspector/WorkerInspectorController.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreinspectorWebHeapAgentcpp">trunk/Source/WebCore/inspector/WebHeapAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorWebHeapAgenth">trunk/Source/WebCore/inspector/WebHeapAgent.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/JavaScriptCore/ChangeLog        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -1,5 +1,35 @@
</span><span class="cx"> 2017-02-06  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Web Inspector: Do not use RunLoop when dispatching inspector GC event
+        https://bugs.webkit.org/show_bug.cgi?id=167683
+        &lt;rdar://problem/30167791&gt;
+
+        Reviewed by Brian Burg.
+
+        Move the RunLoop deferred implementation to WebCore. It is not needed
+        for JSContext inspection, and in JSContext inspection we are not
+        guarenteed a RunLoop to defer to.
+
+        * inspector/agents/InspectorHeapAgent.h:
+        * inspector/agents/InspectorHeapAgent.cpp:
+        (Inspector::InspectorHeapAgent::InspectorHeapAgent):
+        (Inspector::InspectorHeapAgent::~InspectorHeapAgent):
+        (Inspector::InspectorHeapAgent::disable):
+        (Inspector::InspectorHeapAgent::didGarbageCollect):
+        (Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask): Deleted.
+        (Inspector::SendGarbageCollectionEventsTask::addGarbageCollection): Deleted.
+        (Inspector::SendGarbageCollectionEventsTask::reset): Deleted.
+        (Inspector::SendGarbageCollectionEventsTask::timerFired): Deleted.
+
+        (Inspector::InspectorHeapAgent::dispatchGarbageCollectedEvent):
+        Make a virtual method so that WebCore implementations of this agent can choose
+        to dispatch this event asynchronously.
+
+        * inspector/agents/InspectorScriptProfilerAgent.cpp:
+        Remove unnecessary RunLoop include.
+
+2017-02-06  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
</ins><span class="cx">         Static Analyzer: JSContext.mm: Incorrect decrement of the reference count of an object
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=167848
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;InspectorEnvironment.h&quot;
</span><span class="cx"> #include &quot;JSCInlines.h&quot;
</span><span class="cx"> #include &quot;VM.h&quot;
</span><del>-#include &lt;wtf/RunLoop.h&gt;
</del><span class="cx"> #include &lt;wtf/Stopwatch.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="lines">@@ -39,73 +38,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><del>-struct GarbageCollectionData {
-    Inspector::Protocol::Heap::GarbageCollection::Type type;
-    double startTime;
-    double endTime;
-};
-
-class SendGarbageCollectionEventsTask {
-public:
-    SendGarbageCollectionEventsTask(HeapFrontendDispatcher&amp;);
-    void addGarbageCollection(GarbageCollectionData&amp;);
-    void reset();
-private:
-    void timerFired();
-
-    HeapFrontendDispatcher&amp; m_frontendDispatcher;
-    Vector&lt;GarbageCollectionData&gt; m_collections;
-    RunLoop::Timer&lt;SendGarbageCollectionEventsTask&gt; m_timer;
-    Lock m_mutex;
-};
-
-SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask(HeapFrontendDispatcher&amp; frontendDispatcher)
-    : m_frontendDispatcher(frontendDispatcher)
-    , m_timer(RunLoop::current(), this, &amp;SendGarbageCollectionEventsTask::timerFired)
-{
-}
-
-void SendGarbageCollectionEventsTask::addGarbageCollection(GarbageCollectionData&amp; collection)
-{
-    {
-        std::lock_guard&lt;Lock&gt; lock(m_mutex);
-        m_collections.append(collection);
-    }
-
-    if (!m_timer.isActive())
-        m_timer.startOneShot(0);
-}
-
-void SendGarbageCollectionEventsTask::reset()
-{
-    {
-        std::lock_guard&lt;Lock&gt; lock(m_mutex);
-        m_collections.clear();
-    }
-
-    m_timer.stop();
-}
-
-void SendGarbageCollectionEventsTask::timerFired()
-{
-    Vector&lt;GarbageCollectionData&gt; collectionsToSend;
-
-    {
-        std::lock_guard&lt;Lock&gt; lock(m_mutex);
-        m_collections.swap(collectionsToSend);
-    }
-
-    // The timer is stopped on agent destruction, so this method will never be called after agent has been destroyed.
-    for (auto&amp; collection : collectionsToSend) {
-        auto protocolObject = Inspector::Protocol::Heap::GarbageCollection::create()
-            .setType(collection.type)
-            .setStartTime(collection.startTime)
-            .setEndTime(collection.endTime)
-            .release();
-        m_frontendDispatcher.garbageCollected(WTFMove(protocolObject));
-    }
-}
-
</del><span class="cx"> InspectorHeapAgent::InspectorHeapAgent(AgentContext&amp; context)
</span><span class="cx">     : InspectorAgentBase(ASCIILiteral(&quot;Heap&quot;))
</span><span class="cx">     , m_injectedScriptManager(context.injectedScriptManager)
</span><span class="lines">@@ -112,13 +44,11 @@
</span><span class="cx">     , m_frontendDispatcher(std::make_unique&lt;HeapFrontendDispatcher&gt;(context.frontendRouter))
</span><span class="cx">     , m_backendDispatcher(HeapBackendDispatcher::create(context.backendDispatcher, this))
</span><span class="cx">     , m_environment(context.environment)
</span><del>-    , m_sendGarbageCollectionEventsTask(std::make_unique&lt;SendGarbageCollectionEventsTask&gt;(*m_frontendDispatcher))
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InspectorHeapAgent::~InspectorHeapAgent()
</span><span class="cx"> {
</span><del>-    m_sendGarbageCollectionEventsTask-&gt;reset();
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorHeapAgent::didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*)
</span><span class="lines">@@ -152,7 +82,6 @@
</span><span class="cx">     m_enabled = false;
</span><span class="cx"> 
</span><span class="cx">     m_environment.vm().heap.removeObserver(this);
</span><del>-    m_sendGarbageCollectionEventsTask-&gt;reset();
</del><span class="cx"> 
</span><span class="cx">     clearHeapSnapshots();
</span><span class="cx"> }
</span><span class="lines">@@ -354,20 +283,9 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Include number of bytes freed by collection.
</span><span class="cx"> 
</span><del>-    // Dispatch the event asynchronously because this method may be
-    // called between collection and sweeping and we don't want to
-    // create unexpected JavaScript allocations that the Sweeper does
-    // not expect to encounter. JavaScript allocations could happen
-    // with WebKitLegacy's in process inspector which shares the same
-    // VM as the inspected page.
</del><ins>+    double endTime = m_environment.executionStopwatch()-&gt;elapsedTime();
+    dispatchGarbageCollectedEvent(protocolTypeForHeapOperation(scope), m_gcStartTime, endTime);
</ins><span class="cx"> 
</span><del>-    GarbageCollectionData data;
-    data.type = protocolTypeForHeapOperation(scope);
-    data.startTime = m_gcStartTime;
-    data.endTime = m_environment.executionStopwatch()-&gt;elapsedTime();
-
-    m_sendGarbageCollectionEventsTask-&gt;addGarbageCollection(data);
-
</del><span class="cx">     m_gcStartTime = NAN;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -382,4 +300,15 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void InspectorHeapAgent::dispatchGarbageCollectedEvent(Inspector::Protocol::Heap::GarbageCollection::Type type, double startTime, double endTime)
+{
+    auto protocolObject = Inspector::Protocol::Heap::GarbageCollection::create()
+        .setType(type)
+        .setStartTime(startTime)
+        .setEndTime(endTime)
+        .release();
+
+    m_frontendDispatcher-&gt;garbageCollected(WTFMove(protocolObject));
+}
+
</ins><span class="cx"> } // namespace Inspector
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorHeapAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.h        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> namespace Inspector {
</span><span class="cx"> 
</span><span class="cx"> class InjectedScriptManager;
</span><del>-class SendGarbageCollectionEventsTask;
</del><span class="cx"> typedef String ErrorString;
</span><span class="cx"> 
</span><span class="cx"> class JS_EXPORT_PRIVATE InspectorHeapAgent : public InspectorAgentBase, public HeapBackendDispatcherHandler, public JSC::HeapObserver {
</span><span class="lines">@@ -65,6 +64,8 @@
</span><span class="cx"> protected:
</span><span class="cx">     void clearHeapSnapshots();
</span><span class="cx"> 
</span><ins>+    virtual void dispatchGarbageCollectedEvent(Inspector::Protocol::Heap::GarbageCollection::Type, double startTime, double endTime);
+
</ins><span class="cx"> private:
</span><span class="cx">     std::optional&lt;JSC::HeapSnapshotNode&gt; nodeForHeapObjectIdentifier(ErrorString&amp;, unsigned heapObjectIdentifier);
</span><span class="cx"> 
</span><span class="lines">@@ -73,8 +74,6 @@
</span><span class="cx">     RefPtr&lt;HeapBackendDispatcher&gt; m_backendDispatcher;
</span><span class="cx">     InspectorEnvironment&amp; m_environment;
</span><span class="cx"> 
</span><del>-    std::unique_ptr&lt;SendGarbageCollectionEventsTask&gt; m_sendGarbageCollectionEventsTask;
-
</del><span class="cx">     bool m_enabled { false };
</span><span class="cx">     bool m_tracking { false };
</span><span class="cx">     double m_gcStartTime { NAN };
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectoragentsInspectorScriptProfilerAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.cpp (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.cpp        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/JavaScriptCore/inspector/agents/InspectorScriptProfilerAgent.cpp        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> #include &quot;HeapInlines.h&quot;
</span><span class="cx"> #include &quot;InspectorEnvironment.h&quot;
</span><span class="cx"> #include &quot;SamplingProfiler.h&quot;
</span><del>-#include &lt;wtf/RunLoop.h&gt;
</del><span class="cx"> #include &lt;wtf/Stopwatch.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/WebCore/CMakeLists.txt        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -1840,6 +1840,7 @@
</span><span class="cx">     inspector/TimelineRecordFactory.cpp
</span><span class="cx">     inspector/WebConsoleAgent.cpp
</span><span class="cx">     inspector/WebDebuggerAgent.cpp
</span><ins>+    inspector/WebHeapAgent.cpp
</ins><span class="cx">     inspector/WebInjectedScriptHost.cpp
</span><span class="cx">     inspector/WebInjectedScriptManager.cpp
</span><span class="cx">     inspector/WorkerConsoleAgent.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/WebCore/ChangeLog        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -1,5 +1,44 @@
</span><span class="cx"> 2017-02-06  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Web Inspector: Do not use RunLoop when dispatching inspector GC event
+        https://bugs.webkit.org/show_bug.cgi?id=167683
+        &lt;rdar://problem/30167791&gt;
+
+        Reviewed by Brian Burg.
+
+        Covered by existing tests.
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * inspector/InspectorAllInOne.cpp:
+        Add new file.
+
+        * inspector/PageHeapAgent.cpp:
+        (WebCore::PageHeapAgent::PageHeapAgent):
+        (WebCore::PageHeapAgent::enable):
+        (WebCore::PageHeapAgent::disable):
+        * inspector/PageHeapAgent.h:
+        Extend WebHeapAgent.
+
+        * inspector/WorkerInspectorController.cpp:
+        (WebCore::WorkerInspectorController::WorkerInspectorController):
+        Use WebHeapAgent.
+
+        * inspector/WebHeapAgent.cpp: Added.
+        (WebCore::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
+        (WebCore::SendGarbageCollectionEventsTask::addGarbageCollection):
+        (WebCore::SendGarbageCollectionEventsTask::reset):
+        (WebCore::SendGarbageCollectionEventsTask::timerFired):
+        (WebCore::WebHeapAgent::WebHeapAgent):
+        (WebCore::WebHeapAgent::~WebHeapAgent):
+        (WebCore::WebHeapAgent::disable):
+        (WebCore::WebHeapAgent::dispatchGarbageCollectedEvent):
+        (WebCore::WebHeapAgent::dispatchGarbageCollectionEventsAfterDelay):
+        * inspector/WebHeapAgent.h:
+        Move the defered event dispatch from InspectorHeapAgent here where a RunLoop is guarenteed.
+
+2017-02-06  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
</ins><span class="cx">         ExtendedColor leaks seen on leaks bot
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=167912
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -4103,6 +4103,8 @@
</span><span class="cx">                 A5AFB350115151A700B045CB /* StepRange.h in Headers */ = {isa = PBXBuildFile; fileRef = A5AFB34E115151A700B045CB /* StepRange.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A5DEBDA316FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5DEBD9F16FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.cpp */; };
</span><span class="cx">                 A5DEBDA416FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5DEBDA016FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.h */; };
</span><ins>+                A5E2123B1E4924A100CE1044 /* WebHeapAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5E212391E49249200CE1044 /* WebHeapAgent.cpp */; };
+                A5E2123C1E4924A400CE1044 /* WebHeapAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E2123A1E49249200CE1044 /* WebHeapAgent.h */; };
</ins><span class="cx">                 A5E616731894581F009ADF50 /* WebDebuggerAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5E616711894581F009ADF50 /* WebDebuggerAgent.cpp */; };
</span><span class="cx">                 A5E616741894581F009ADF50 /* WebDebuggerAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5E616721894581F009ADF50 /* WebDebuggerAgent.h */; };
</span><span class="cx">                 A5F36D3A18F758720054C024 /* PageScriptDebugServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5F36D3818F758720054C024 /* PageScriptDebugServer.cpp */; };
</span><span class="lines">@@ -11889,6 +11891,8 @@
</span><span class="cx">                 A5DEBD9F16FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitPlaybackTargetAvailabilityEvent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A5DEBDA016FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitPlaybackTargetAvailabilityEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A5DEBDA116FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebKitPlaybackTargetAvailabilityEvent.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                A5E212391E49249200CE1044 /* WebHeapAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebHeapAgent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                A5E2123A1E49249200CE1044 /* WebHeapAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebHeapAgent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 A5E616711894581F009ADF50 /* WebDebuggerAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebDebuggerAgent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A5E616721894581F009ADF50 /* WebDebuggerAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDebuggerAgent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 A5F36D3818F758720054C024 /* PageScriptDebugServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageScriptDebugServer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -15406,13 +15410,9 @@
</span><span class="cx">                 0729B14D17CFCCA0004F1D60 /* mac */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                076EC1321E44F2CB00E5D813 /* AudioTrackPrivateMediaStreamCocoa.cpp */,
-                                5CDD83391E4324BB00621E92 /* RealtimeIncomingVideoSource.cpp */,
-                                5CDD833A1E4324BB00621E92 /* RealtimeIncomingVideoSource.h */,
-                                5CDD833B1E4324BB00621E92 /* RealtimeOutgoingVideoSource.cpp */,
-                                5CDD833C1E4324BB00621E92 /* RealtimeOutgoingVideoSource.h */,
</del><span class="cx">                                 07707CB11E20649C00005BF7 /* AudioCaptureSourceProviderObjC.h */,
</span><span class="cx">                                 07707CAF1E205EC400005BF7 /* AudioSourceObserverObjC.h */,
</span><ins>+                                076EC1321E44F2CB00E5D813 /* AudioTrackPrivateMediaStreamCocoa.cpp */,
</ins><span class="cx">                                 07C046C61E42512F007201E7 /* AudioTrackPrivateMediaStreamCocoa.h */,
</span><span class="cx">                                 070363D8181A1CDC00C074A5 /* AVAudioCaptureSource.h */,
</span><span class="cx">                                 070363D9181A1CDC00C074A5 /* AVAudioCaptureSource.mm */,
</span><span class="lines">@@ -15428,10 +15428,14 @@
</span><span class="cx">                                 07EE76EE1BEA619800F89133 /* MockRealtimeVideoSourceMac.mm */,
</span><span class="cx">                                 41103AAA1E39790A00769F03 /* RealtimeIncomingAudioSource.cpp */,
</span><span class="cx">                                 41103AA91E39790A00769F03 /* RealtimeIncomingAudioSource.h */,
</span><ins>+                                5CDD83391E4324BB00621E92 /* RealtimeIncomingVideoSource.cpp */,
+                                5CDD833A1E4324BB00621E92 /* RealtimeIncomingVideoSource.h */,
</ins><span class="cx">                                 4A0FFAA31AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp */,
</span><span class="cx">                                 4A0FFAA41AAF5EF60062803B /* RealtimeMediaSourceCenterMac.h */,
</span><span class="cx">                                 41103AA71E39790A00769F03 /* RealtimeOutgoingAudioSource.cpp */,
</span><span class="cx">                                 41103AA81E39790A00769F03 /* RealtimeOutgoingAudioSource.h */,
</span><ins>+                                5CDD833B1E4324BB00621E92 /* RealtimeOutgoingVideoSource.cpp */,
+                                5CDD833C1E4324BB00621E92 /* RealtimeOutgoingVideoSource.h */,
</ins><span class="cx">                                 07D6373E1BB0B11300256CE9 /* WebAudioSourceProviderAVFObjC.h */,
</span><span class="cx">                                 07D6373F1BB0B11300256CE9 /* WebAudioSourceProviderAVFObjC.mm */,
</span><span class="cx">                         );
</span><span class="lines">@@ -16373,6 +16377,8 @@
</span><span class="cx">                                 A56C5B99189F34570082D13C /* WebConsoleAgent.h */,
</span><span class="cx">                                 A5E616711894581F009ADF50 /* WebDebuggerAgent.cpp */,
</span><span class="cx">                                 A5E616721894581F009ADF50 /* WebDebuggerAgent.h */,
</span><ins>+                                A5E212391E49249200CE1044 /* WebHeapAgent.cpp */,
+                                A5E2123A1E49249200CE1044 /* WebHeapAgent.h */,
</ins><span class="cx">                                 A5840E22187B8AC200843B10 /* WebInjectedScriptHost.cpp */,
</span><span class="cx">                                 A5840E23187B8AC200843B10 /* WebInjectedScriptHost.h */,
</span><span class="cx">                                 A584FE2D1864CB8400843B10 /* WebInjectedScriptManager.cpp */,
</span><span class="lines">@@ -16659,11 +16665,11 @@
</span><span class="cx">                         children = (
</span><span class="cx">                                 316FE1070E6E1DA700BF6088 /* AnimationBase.cpp */,
</span><span class="cx">                                 316FE1080E6E1DA700BF6088 /* AnimationBase.h */,
</span><ins>+                                316FE10B0E6E1DA700BF6088 /* CompositeAnimation.cpp */,
+                                316FE10C0E6E1DA700BF6088 /* CompositeAnimation.h */,
</ins><span class="cx">                                 316FE1090E6E1DA700BF6088 /* CSSAnimationController.cpp */,
</span><span class="cx">                                 316FE10A0E6E1DA700BF6088 /* CSSAnimationController.h */,
</span><span class="cx">                                 0F15DA890F3AAEE70000CE47 /* CSSAnimationControllerPrivate.h */,
</span><del>-                                316FE10B0E6E1DA700BF6088 /* CompositeAnimation.cpp */,
-                                316FE10C0E6E1DA700BF6088 /* CompositeAnimation.h */,
</del><span class="cx">                                 78D02BC3154A18DF00B62D05 /* CSSPropertyAnimation.cpp */,
</span><span class="cx">                                 78D02BC4154A18DF00B62D05 /* CSSPropertyAnimation.h */,
</span><span class="cx">                                 316FE10D0E6E1DA700BF6088 /* ImplicitAnimation.cpp */,
</span><span class="lines">@@ -17050,9 +17056,9 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 443F04260E75C8FB007E5407 /* NetworkStateNotifierIOS.mm */,
</span><del>-                                A10DBF4618F92317000D70C6 /* QuickLookHandleClient.h */,
</del><span class="cx">                                 A1C150781E3F2B3E0032C98C /* PreviewConverter.h */,
</span><span class="cx">                                 A1C150771E3F2B3E0032C98C /* PreviewConverter.mm */,
</span><ins>+                                A10DBF4618F92317000D70C6 /* QuickLookHandleClient.h */,
</ins><span class="cx">                                 7E428CE413E3407F003B661C /* ResourceHandleIOS.mm */,
</span><span class="cx">                                 7E7DE201195CEFCD0035363B /* ResourceRequestIOS.mm */,
</span><span class="cx">                                 44A20DB80F84166C00B3E1FE /* WebCoreURLResponseIOS.h */,
</span><span class="lines">@@ -20030,8 +20036,8 @@
</span><span class="cx">                                 F482230E1E3869B80066FC79 /* WebItemProviderPasteboard.mm */,
</span><span class="cx">                                 CDA29A2E1CBF73FC00901CCF /* WebPlaybackSessionInterfaceAVKit.h */,
</span><span class="cx">                                 CDA29A2F1CBF73FC00901CCF /* WebPlaybackSessionInterfaceAVKit.mm */,
</span><ins>+                                1F8756B11E22BEEF0042C40D /* WebSQLiteDatabaseTrackerClient.h */,
</ins><span class="cx">                                 1F8756B01E22BEEF0042C40D /* WebSQLiteDatabaseTrackerClient.mm */,
</span><del>-                                1F8756B11E22BEEF0042C40D /* WebSQLiteDatabaseTrackerClient.h */,
</del><span class="cx">                                 3F42B31B1881191B00278AAC /* WebVideoFullscreenControllerAVKit.h */,
</span><span class="cx">                                 3F42B31C1881191B00278AAC /* WebVideoFullscreenControllerAVKit.mm */,
</span><span class="cx">                                 3FBC4AF2189881560046EE38 /* WebVideoFullscreenInterfaceAVKit.h */,
</span><span class="lines">@@ -22293,7 +22299,6 @@
</span><span class="cx">                                 BC53DA2D1143121E000D817E /* DOMWrapperWorld.h */,
</span><span class="cx">                                 1432E8480C51493F00B1500F /* GCController.cpp */,
</span><span class="cx">                                 1432E8460C51493800B1500F /* GCController.h */,
</span><del>-                                709A01FD1E3D0BCC006B0D4C /* ModuleFetchFailureKind.h */,
</del><span class="cx">                                 C585A66011D4FAC5004C3E4B /* IDBBindingUtilities.cpp */,
</span><span class="cx">                                 C585A66111D4FAC5004C3E4B /* IDBBindingUtilities.h */,
</span><span class="cx">                                 E157A8EE18185425009F821D /* JSCryptoAlgorithmBuilder.cpp */,
</span><span class="lines">@@ -22348,6 +22353,7 @@
</span><span class="cx">                                 4129DF841BB5B7F700322A16 /* JSReadableStreamPrivateConstructors.h */,
</span><span class="cx">                                 E1C36D320EB0A094007410BC /* JSWorkerGlobalScopeBase.cpp */,
</span><span class="cx">                                 E1C36D330EB0A094007410BC /* JSWorkerGlobalScopeBase.h */,
</span><ins>+                                709A01FD1E3D0BCC006B0D4C /* ModuleFetchFailureKind.h */,
</ins><span class="cx">                                 418C395E1C8F0AAB0051C8A3 /* ReadableStreamDefaultController.cpp */,
</span><span class="cx">                                 418C395F1C8F0AAB0051C8A3 /* ReadableStreamDefaultController.h */,
</span><span class="cx">                                 41F1D21E0EF35C2A00DA8753 /* ScriptCachedFrameData.cpp */,
</span><span class="lines">@@ -24982,10 +24988,6 @@
</span><span class="cx">                 FD3160B012B0270700C1A359 /* mac */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                073B87621E43859D0071C0EC /* AudioSampleBufferList.cpp */,
-                                073B87631E43859D0071C0EC /* AudioSampleBufferList.h */,
-                                073B87641E43859D0071C0EC /* AudioSampleDataSource.cpp */,
-                                073B87651E43859D0071C0EC /* AudioSampleDataSource.h */,
</del><span class="cx">                                 FD3160B512B0272A00C1A359 /* AudioBusMac.mm */,
</span><span class="cx">                                 FD3160B612B0272A00C1A359 /* AudioDestinationMac.cpp */,
</span><span class="cx">                                 FD3160B712B0272A00C1A359 /* AudioDestinationMac.h */,
</span><span class="lines">@@ -24993,11 +24995,15 @@
</span><span class="cx">                                 FD3160B912B0272A00C1A359 /* AudioFileReaderMac.h */,
</span><span class="cx">                                 CD2F4A2518D8A3490063746D /* AudioHardwareListenerMac.cpp */,
</span><span class="cx">                                 CD2F4A2618D8A3490063746D /* AudioHardwareListenerMac.h */,
</span><ins>+                                073B87621E43859D0071C0EC /* AudioSampleBufferList.cpp */,
+                                073B87631E43859D0071C0EC /* AudioSampleBufferList.h */,
+                                073B87641E43859D0071C0EC /* AudioSampleDataSource.cpp */,
+                                073B87651E43859D0071C0EC /* AudioSampleDataSource.h */,
</ins><span class="cx">                                 CD54DE4917469C6D005E5B36 /* AudioSessionMac.cpp */,
</span><ins>+                                073B87571E40DCFD0071C0EC /* CAAudioStreamDescription.cpp */,
+                                073B87581E40DCFD0071C0EC /* CAAudioStreamDescription.h */,
</ins><span class="cx">                                 CDC734121977896C0046BFC5 /* CARingBuffer.cpp */,
</span><span class="cx">                                 CDC734131977896C0046BFC5 /* CARingBuffer.h */,
</span><del>-                                073B87571E40DCFD0071C0EC /* CAAudioStreamDescription.cpp */,
-                                073B87581E40DCFD0071C0EC /* CAAudioStreamDescription.h */,
</del><span class="cx">                                 FD3160BA12B0272A00C1A359 /* FFTFrameMac.cpp */,
</span><span class="cx">                                 CD669D671D232E10004D1866 /* MediaSessionManagerMac.h */,
</span><span class="cx">                                 07EDC3ED1AACB75D00983EB5 /* MediaSessionManagerMac.mm */,
</span><span class="lines">@@ -25168,8 +25174,6 @@
</span><span class="cx">                                 490707E71219C04300D90E51 /* ANGLEWebKitBridge.h in Headers */,
</span><span class="cx">                                 49E912AB0EFAC906009D0CAF /* Animation.h in Headers */,
</span><span class="cx">                                 316FE1120E6E1DA700BF6088 /* AnimationBase.h in Headers */,
</span><del>-                                316FE1140E6E1DA700BF6088 /* CSSAnimationController.h in Headers */,
-                                0F15DA8A0F3AAEE70000CE47 /* CSSAnimationControllerPrivate.h in Headers */,
</del><span class="cx">                                 319848011A1D817B00A13318 /* AnimationEvent.h in Headers */,
</span><span class="cx">                                 49E912AD0EFAC906009D0CAF /* AnimationList.h in Headers */,
</span><span class="cx">                                 31DCD29D1AB4FBDE0072E817 /* AnimationTrigger.h in Headers */,
</span><span class="lines">@@ -25236,6 +25240,8 @@
</span><span class="cx">                                 FD31608412B026F700C1A359 /* AudioProcessor.h in Headers */,
</span><span class="cx">                                 FD31608612B026F700C1A359 /* AudioResampler.h in Headers */,
</span><span class="cx">                                 FD31608812B026F700C1A359 /* AudioResamplerKernel.h in Headers */,
</span><ins>+                                073B87671E4385AC0071C0EC /* AudioSampleBufferList.h in Headers */,
+                                073B87691E4385AC0071C0EC /* AudioSampleDataSource.h in Headers */,
</ins><span class="cx">                                 FD8C46EC154608E700A5910C /* AudioScheduledSourceNode.h in Headers */,
</span><span class="cx">                                 CDA7982A170A3D0000D45C55 /* AudioSession.h in Headers */,
</span><span class="cx">                                 07707CB01E205EE300005BF7 /* AudioSourceObserverObjC.h in Headers */,
</span><span class="lines">@@ -25242,6 +25248,7 @@
</span><span class="cx">                                 FD31608912B026F700C1A359 /* AudioSourceProvider.h in Headers */,
</span><span class="cx">                                 CD8A7BBC197735FE00CBD643 /* AudioSourceProviderAVFObjC.h in Headers */,
</span><span class="cx">                                 FD62F52E145898D80094B0ED /* AudioSourceProviderClient.h in Headers */,
</span><ins>+                                07C046CB1E426413007201E7 /* AudioStreamDescription.h in Headers */,
</ins><span class="cx">                                 FDB052E01561A42C00B500D6 /* AudioSummingJunction.h in Headers */,
</span><span class="cx">                                 BE88E0D91715D2A200658D98 /* AudioTrack.h in Headers */,
</span><span class="cx">                                 BE88E0DC1715D2A200658D98 /* AudioTrackList.h in Headers */,
</span><span class="lines">@@ -25250,8 +25257,9 @@
</span><span class="cx">                                 CDE3A85417F5FCE600C5BE20 /* AudioTrackPrivateAVF.h in Headers */,
</span><span class="cx">                                 CDE3A85817F6020400C5BE20 /* AudioTrackPrivateAVFObjC.h in Headers */,
</span><span class="cx">                                 CD54A763180F9F7000B076C9 /* AudioTrackPrivateMediaSourceAVFObjC.h in Headers */,
</span><ins>+                                07D6A4F81BF2307D00174146 /* AudioTrackPrivateMediaStream.h in Headers */,
</ins><span class="cx">                                 07C046C81E425155007201E7 /* AudioTrackPrivateMediaStreamCocoa.h in Headers */,
</span><del>-                                07D6A4F81BF2307D00174146 /* AudioTrackPrivateMediaStream.h in Headers */,
</del><ins>+                                07C046C81E425155007201E7 /* AudioTrackPrivateMediaStreamCocoa.h in Headers */,
</ins><span class="cx">                                 FD31608B12B026F700C1A359 /* AudioUtilities.h in Headers */,
</span><span class="cx">                                 7EE6846012D26E3800E79415 /* AuthenticationCF.h in Headers */,
</span><span class="cx">                                 7EE6846112D26E3800E79415 /* AuthenticationChallenge.h in Headers */,
</span><span class="lines">@@ -25325,6 +25333,7 @@
</span><span class="cx">                                 1A569CFA0D7E2B82007C3983 /* c_instance.h in Headers */,
</span><span class="cx">                                 1A569CFC0D7E2B82007C3983 /* c_runtime.h in Headers */,
</span><span class="cx">                                 1A569CFE0D7E2B82007C3983 /* c_utility.h in Headers */,
</span><ins>+                                07C046C41E42508B007201E7 /* CAAudioStreamDescription.h in Headers */,
</ins><span class="cx">                                 BCB16C1A0979C3BD00467741 /* CachedCSSStyleSheet.h in Headers */,
</span><span class="cx">                                 BC64B4CC0CB4295D005F2B62 /* CachedFont.h in Headers */,
</span><span class="cx">                                 1AEF4E67170E160300AB2799 /* CachedFontClient.h in Headers */,
</span><span class="lines">@@ -25533,11 +25542,12 @@
</span><span class="cx">                                 E125F8361822F18A00D84CD9 /* CryptoKeyHMAC.h in Headers */,
</span><span class="cx">                                 E1F80B8818317252007885C3 /* CryptoKeyPair.h in Headers */,
</span><span class="cx">                                 E164FAA318315BF400DB4E61 /* CryptoKeyRSA.h in Headers */,
</span><del>-                                7C45C9D51E3FCBE400AAB558 /* JSDOMBindingCaller.h in Headers */,
</del><span class="cx">                                 E125F856182C0F8300D84CD9 /* CryptoKeySerialization.h in Headers */,
</span><span class="cx">                                 E125F85A182C1AA600D84CD9 /* CryptoKeySerializationRaw.h in Headers */,
</span><span class="cx">                                 E19727161820549E00592D51 /* CryptoKeyType.h in Headers */,
</span><span class="cx">                                 E172AF70180F289500FBADB9 /* CryptoKeyUsage.h in Headers */,
</span><ins>+                                316FE1140E6E1DA700BF6088 /* CSSAnimationController.h in Headers */,
+                                0F15DA8A0F3AAEE70000CE47 /* CSSAnimationControllerPrivate.h in Headers */,
</ins><span class="cx">                                 31BC742E1AAFF45C006B4340 /* CSSAnimationTriggerScrollValue.h in Headers */,
</span><span class="cx">                                 CAE9F910146441F000C245B0 /* CSSAspectRatioValue.h in Headers */,
</span><span class="cx">                                 94DE5C821D7F3A1400164F2A /* CSSAtRuleID.h in Headers */,
</span><span class="lines">@@ -25551,7 +25561,6 @@
</span><span class="cx">                                 2D8FEBDD143E3EF70072502B /* CSSCrossfadeValue.h in Headers */,
</span><span class="cx">                                 AA21ECCD0ABF0FC6002B834C /* CSSCursorImageValue.h in Headers */,
</span><span class="cx">                                 9444CBE41D8861990073A074 /* CSSCustomIdentValue.h in Headers */,
</span><del>-                                073B87691E4385AC0071C0EC /* AudioSampleDataSource.h in Headers */,
</del><span class="cx">                                 BC779E141BB215BB00CAA8BF /* CSSCustomPropertyValue.h in Headers */,
</span><span class="cx">                                 4A9CC81816BB9AC600EC645A /* CSSDefaultStyleSheets.h in Headers */,
</span><span class="cx">                                 94476BDB1DFCAC0300690E23 /* CSSDeferredParser.h in Headers */,
</span><span class="lines">@@ -25725,7 +25734,6 @@
</span><span class="cx">                                 D0BD4F5D1408850F006839B6 /* DictationCommandIOS.h in Headers */,
</span><span class="cx">                                 937FF3D51A1012D6008EBA31 /* DictionaryLookup.h in Headers */,
</span><span class="cx">                                 2D5646B01B8F8493003C4994 /* DictionaryPopupInfo.h in Headers */,
</span><del>-                                1F36EA9C1E21BA1700621E25 /* WebBackgroundTaskController.h in Headers */,
</del><span class="cx">                                 FDAF19991513D131008DB0C3 /* DirectConvolver.h in Headers */,
</span><span class="cx">                                 7EDAAFC919A2CCDC0034DFD1 /* DiskCacheMonitorCocoa.h in Headers */,
</span><span class="cx">                                 0FE5FBD31C3DD51E0007A2CA /* DisplayList.h in Headers */,
</span><span class="lines">@@ -25820,7 +25828,6 @@
</span><span class="cx">                                 4F1534DE11B532EC0021FD86 /* EditingBehavior.h in Headers */,
</span><span class="cx">                                 4F1534E011B533020021FD86 /* EditingBehaviorTypes.h in Headers */,
</span><span class="cx">                                 3AC648B2129E146500C3EB25 /* EditingBoundary.h in Headers */,
</span><del>-                                1F8756B21E22C3350042C40D /* WebSQLiteDatabaseTrackerClient.h in Headers */,
</del><span class="cx">                                 9BAB6C6C12550631001626D4 /* EditingStyle.h in Headers */,
</span><span class="cx">                                 4B3043CD0AE0373B00A82647 /* Editor.h in Headers */,
</span><span class="cx">                                 1AF326790D78B9440068F0C4 /* EditorClient.h in Headers */,
</span><span class="lines">@@ -26094,7 +26101,6 @@
</span><span class="cx">                                 A81369D0097374F600D74463 /* HTMLFormElement.h in Headers */,
</span><span class="cx">                                 A871DE2B0A152AC800B12A68 /* HTMLFrameElement.h in Headers */,
</span><span class="cx">                                 14FFE31D0AE1963300136BF5 /* HTMLFrameElementBase.h in Headers */,
</span><del>-                                709A01FE1E3D0BDD006B0D4C /* ModuleFetchFailureKind.h in Headers */,
</del><span class="cx">                                 93E241FF0B2B4E4000C732A1 /* HTMLFrameOwnerElement.h in Headers */,
</span><span class="cx">                                 A871DE280A152AC800B12A68 /* HTMLFrameSetElement.h in Headers */,
</span><span class="cx">                                 A871DE2D0A152AC800B12A68 /* HTMLHeadElement.h in Headers */,
</span><span class="lines">@@ -26337,7 +26343,6 @@
</span><span class="cx">                                 0F8B45721DC3FBA300443C3F /* IntersectionObserverCallback.h in Headers */,
</span><span class="cx">                                 0F4710DF1DB6FE22002DCEC3 /* IntersectionObserverEntry.h in Headers */,
</span><span class="cx">                                 B27535720B053814002CE64F /* IntPoint.h in Headers */,
</span><del>-                                415080371E3F00B00051D75D /* LibWebRTCAudioModule.h in Headers */,
</del><span class="cx">                                 E462A4A1113E71BE004A4220 /* IntPointHash.h in Headers */,
</span><span class="cx">                                 B27535740B053814002CE64F /* IntRect.h in Headers */,
</span><span class="cx">                                 A2B9217316C5CC420041DCD9 /* IntRectExtent.h in Headers */,
</span><span class="lines">@@ -26462,11 +26467,14 @@
</span><span class="cx">                                 65DF31F609D1CC60000BE325 /* JSDocumentType.h in Headers */,
</span><span class="cx">                                 1AC2260D0DB69F190089B669 /* JSDOMApplicationCache.h in Headers */,
</span><span class="cx">                                 93B70D6409EB0C7C009D8468 /* JSDOMBinding.h in Headers */,
</span><ins>+                                7C45C9D51E3FCBE400AAB558 /* JSDOMBindingCaller.h in Headers */,
+                                7C45C9D41E3FCBDF00AAB558 /* JSDOMBindingSecurity.h in Headers */,
</ins><span class="cx">                                 413C2C341BC29A8F0075204C /* JSDOMConstructor.h in Headers */,
</span><span class="cx">                                 930841341CDDB15500B0958C /* JSDOMConvert.h in Headers */,
</span><span class="cx">                                 BC60D7C10D29A46300B9918F /* JSDOMCoreException.h in Headers */,
</span><span class="cx">                                 FC9E0E4D16419C1E00392BE3 /* JSDOMCSSNamespace.h in Headers */,
</span><span class="cx">                                 40ECAE7E16B8B67200C36103 /* JSDOMError.h in Headers */,
</span><ins>+                                7C45C9D61E3FCBF800AAB558 /* JSDOMExceptionHandling.h in Headers */,
</ins><span class="cx">                                 2E0888D51148848A00AF4265 /* JSDOMFormData.h in Headers */,
</span><span class="cx">                                 E1C36C030EB076D6007410BC /* JSDOMGlobalObject.h in Headers */,
</span><span class="cx">                                 7C2BDD3E17C7F98C0038FF15 /* JSDOMGlobalObjectTask.h in Headers */,
</span><span class="lines">@@ -26496,6 +26504,7 @@
</span><span class="cx">                                 460CBF361D4BCD0E0092E88E /* JSDOMWindowProperties.h in Headers */,
</span><span class="cx">                                 BCBFB53D0DCD29CF0019B3E5 /* JSDOMWindowShell.h in Headers */,
</span><span class="cx">                                 65E0E9441133C89F00B4CB10 /* JSDOMWrapper.h in Headers */,
</span><ins>+                                7C45C9D31E3FCBD700AAB558 /* JSDOMWrapperCache.h in Headers */,
</ins><span class="cx">                                 93A8061E1E03B585008A1F26 /* JSDoubleRange.h in Headers */,
</span><span class="cx">                                 E318039D1DC40099009932C2 /* JSDynamicDowncast.h in Headers */,
</span><span class="cx">                                 FD7868BA136B999200D403DF /* JSDynamicsCompressorNode.h in Headers */,
</span><span class="lines">@@ -26672,7 +26681,6 @@
</span><span class="cx">                                 E107400E0E77BDC00033AF24 /* JSMessageChannel.h in Headers */,
</span><span class="cx">                                 75793EC90D0CE72D007FC0AC /* JSMessageEvent.h in Headers */,
</span><span class="cx">                                 E1ADEDDA0E76BD93004A1A5E /* JSMessagePort.h in Headers */,
</span><del>-                                07C046CB1E426413007201E7 /* AudioStreamDescription.h in Headers */,
</del><span class="cx">                                 CDF4B7301E03CA4A00E235A2 /* JSMockCDMFactory.h in Headers */,
</span><span class="cx">                                 2D6F3E951C1F85550061DBD4 /* JSMockPageOverlay.h in Headers */,
</span><span class="cx">                                 A86629D109DA2B48009633A5 /* JSMouseEvent.h in Headers */,
</span><span class="lines">@@ -26733,7 +26741,6 @@
</span><span class="cx">                                 6C4C96DF1AD4483500363F64 /* JSReadableByteStreamController.h in Headers */,
</span><span class="cx">                                 7C4C96DD1AD4483500365A50 /* JSReadableStream.h in Headers */,
</span><span class="cx">                                 6C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultController.h in Headers */,
</span><del>-                                073B87671E4385AC0071C0EC /* AudioSampleBufferList.h in Headers */,
</del><span class="cx">                                 7C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultReader.h in Headers */,
</span><span class="cx">                                 4129DF861BB5B80C00322A16 /* JSReadableStreamPrivateConstructors.h in Headers */,
</span><span class="cx">                                 7E4C96DD1AD4483500365A51 /* JSReadableStreamSource.h in Headers */,
</span><span class="lines">@@ -26873,7 +26880,6 @@
</span><span class="cx">                                 4496E3A0139813A5003EE32A /* JSSVGMPathElement.h in Headers */,
</span><span class="cx">                                 8542A7970AE5C94300DF58DF /* JSSVGNumber.h in Headers */,
</span><span class="cx">                                 B2FA3DB10AB75A6F000E5AC4 /* JSSVGNumberList.h in Headers */,
</span><del>-                                7C45C9D31E3FCBD700AAB558 /* JSDOMWrapperCache.h in Headers */,
</del><span class="cx">                                 B2FA3DB50AB75A6F000E5AC4 /* JSSVGPathElement.h in Headers */,
</span><span class="cx">                                 B2FA3DB70AB75A6F000E5AC4 /* JSSVGPathSeg.h in Headers */,
</span><span class="cx">                                 B2FA3DB90AB75A6F000E5AC4 /* JSSVGPathSegArcAbs.h in Headers */,
</span><span class="lines">@@ -27054,6 +27060,7 @@
</span><span class="cx">                                 E5BA7D63151437CA00FE1E3F /* LengthFunctions.h in Headers */,
</span><span class="cx">                                 0F8716701C869D83004FF0DE /* LengthPoint.h in Headers */,
</span><span class="cx">                                 BCFF64920EAD15C200C1D6F7 /* LengthSize.h in Headers */,
</span><ins>+                                415080371E3F00B00051D75D /* LibWebRTCAudioModule.h in Headers */,
</ins><span class="cx">                                 415747471E3869A400E914D8 /* LibWebRTCMacros.h in Headers */,
</span><span class="cx">                                 417612B01E3A994000C3D81D /* LibWebRTCMediaEndpoint.h in Headers */,
</span><span class="cx">                                 417612B21E3A994000C3D81D /* LibWebRTCPeerConnectionBackend.h in Headers */,
</span><span class="lines">@@ -27252,6 +27259,7 @@
</span><span class="cx">                                 CDF2B0171820540700F2B424 /* MockSourceBufferPrivate.h in Headers */,
</span><span class="cx">                                 CDF2B0191820540700F2B424 /* MockTracks.h in Headers */,
</span><span class="cx">                                 C6D74AD509AA282E000B0A52 /* ModifySelectionListLevel.h in Headers */,
</span><ins>+                                709A01FE1E3D0BDD006B0D4C /* ModuleFetchFailureKind.h in Headers */,
</ins><span class="cx">                                 F55B3DC61251F12D003EF269 /* MonthInputType.h in Headers */,
</span><span class="cx">                                 85031B460A44EFC700F992E0 /* MouseEvent.h in Headers */,
</span><span class="cx">                                 83765F951DAC522F00C06537 /* MouseEventInit.h in Headers */,
</span><span class="lines">@@ -27510,6 +27518,7 @@
</span><span class="cx">                                 9746AF3214F4DDE6003E7A70 /* PositionOptions.h in Headers */,
</span><span class="cx">                                 46DBB6501AB8C96F00D9A813 /* PowerObserverMac.h in Headers */,
</span><span class="cx">                                 C0F2A44113869AAB0066C534 /* preprocessor.pm in Headers */,
</span><ins>+                                A1C1507A1E3F2B3E0032C98C /* PreviewConverter.h in Headers */,
</ins><span class="cx">                                 B71FE6DF11091CB300DAEF77 /* PrintContext.h in Headers */,
</span><span class="cx">                                 A8EA7EBC0A1945D000A8EF5F /* ProcessingInstruction.h in Headers */,
</span><span class="cx">                                 E44613EC0CD681B500FADA75 /* ProgressEvent.h in Headers */,
</span><span class="lines">@@ -27798,7 +27807,6 @@
</span><span class="cx">                                 A79BADA4161E7F3F00C2E652 /* RuleSet.h in Headers */,
</span><span class="cx">                                 2D76BB821945632400CFD29A /* RunLoopObserver.h in Headers */,
</span><span class="cx">                                 1A569D1F0D7E2B82007C3983 /* runtime_array.h in Headers */,
</span><del>-                                07C046C41E42508B007201E7 /* CAAudioStreamDescription.h in Headers */,
</del><span class="cx">                                 1A569D210D7E2B82007C3983 /* runtime_method.h in Headers */,
</span><span class="cx">                                 1A569D230D7E2B82007C3983 /* runtime_object.h in Headers */,
</span><span class="cx">                                 1A569D250D7E2B82007C3983 /* runtime_root.h in Headers */,
</span><span class="lines">@@ -27864,7 +27872,6 @@
</span><span class="cx">                                 1AAADDE414DC8C8F00AF64B3 /* ScrollingTreeNode.h in Headers */,
</span><span class="cx">                                 0FEA3E80191B3169000F1B55 /* ScrollingTreeOverflowScrollingNode.h in Headers */,
</span><span class="cx">                                 9391A99D1629D70000297330 /* ScrollingTreeScrollingNode.h in Headers */,
</span><del>-                                07C046C81E425155007201E7 /* AudioTrackPrivateMediaStreamCocoa.h in Headers */,
</del><span class="cx">                                 0FB8890A167D2FA10010CDA5 /* ScrollingTreeStickyNode.h in Headers */,
</span><span class="cx">                                 7AAFE8D019CB8672000F56D8 /* ScrollLatchingState.h in Headers */,
</span><span class="cx">                                 F478755419983AFF0024A287 /* ScrollSnapAnimatorState.h in Headers */,
</span><span class="lines">@@ -27987,7 +27994,6 @@
</span><span class="cx">                                 97BC6A521505F081001B74AC /* SQLTransactionCallback.h in Headers */,
</span><span class="cx">                                 97BC6A571505F081001B74AC /* SQLTransactionCoordinator.h in Headers */,
</span><span class="cx">                                 97BC6A581505F081001B74AC /* SQLTransactionErrorCallback.h in Headers */,
</span><del>-                                7C45C9D41E3FCBDF00AAB558 /* JSDOMBindingSecurity.h in Headers */,
</del><span class="cx">                                 FE36FD1816C7826500F887C1 /* SQLTransactionState.h in Headers */,
</span><span class="cx">                                 FE36FD1716C7826500F887C1 /* SQLTransactionStateMachine.h in Headers */,
</span><span class="cx">                                 1A2E6E5A0CC55213004A2062 /* SQLValue.h in Headers */,
</span><span class="lines">@@ -28036,7 +28042,6 @@
</span><span class="cx">                                 0FF50272102BA96A0066F39A /* StyleMedia.h in Headers */,
</span><span class="cx">                                 BC5EB74E0E81E06700B25965 /* StyleMultiColData.h in Headers */,
</span><span class="cx">                                 E4DACE6A1D12E10B0075980F /* StylePendingResources.h in Headers */,
</span><del>-                                7C45C9D61E3FCBF800AAB558 /* JSDOMExceptionHandling.h in Headers */,
</del><span class="cx">                                 A80E6DFC0A199067007FB8C5 /* StyleProperties.h in Headers */,
</span><span class="cx">                                 E1B25107152A0BB00069B779 /* StylePropertyShorthand.h in Headers */,
</span><span class="cx">                                 83C05A5B1A686212007E5DEA /* StylePropertyShorthandFunctions.h in Headers */,
</span><span class="lines">@@ -28527,6 +28532,7 @@
</span><span class="cx">                                 AA478A7F16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h in Headers */,
</span><span class="cx">                                 2D3EF4481917915C00034184 /* WebActionDisablingCALayerDelegate.h in Headers */,
</span><span class="cx">                                 07D637401BB0B11300256CE9 /* WebAudioSourceProviderAVFObjC.h in Headers */,
</span><ins>+                                1F36EA9C1E21BA1700621E25 /* WebBackgroundTaskController.h in Headers */,
</ins><span class="cx">                                 A56C5B9B189F34570082D13C /* WebConsoleAgent.h in Headers */,
</span><span class="cx">                                 419BE7591BC7F42B00E1C85B /* WebCoreBuiltinNames.h in Headers */,
</span><span class="cx">                                 2D3EF44A1917915C00034184 /* WebCoreCALayerExtras.h in Headers */,
</span><span class="lines">@@ -28600,6 +28606,7 @@
</span><span class="cx">                                 0C3F1F5B10C8871200D72CE1 /* WebGLUniformLocation.h in Headers */,
</span><span class="cx">                                 6F995A261A7078B100A735F4 /* WebGLVertexArrayObject.h in Headers */,
</span><span class="cx">                                 77A17A7812F28642004E02F6 /* WebGLVertexArrayObjectOES.h in Headers */,
</span><ins>+                                A5E2123C1E4924A400CE1044 /* WebHeapAgent.h in Headers */,
</ins><span class="cx">                                 A5840E25187B8AC200843B10 /* WebInjectedScriptHost.h in Headers */,
</span><span class="cx">                                 A584FE301864CB8400843B10 /* WebInjectedScriptManager.h in Headers */,
</span><span class="cx">                                 F48223111E3869B80066FC79 /* WebItemProviderPasteboard.h in Headers */,
</span><span class="lines">@@ -28642,6 +28649,7 @@
</span><span class="cx">                                 97AABD2414FA09D5007457AE /* WebSocketExtensionProcessor.h in Headers */,
</span><span class="cx">                                 97AABD2514FA09D5007457AE /* WebSocketFrame.h in Headers */,
</span><span class="cx">                                 97AABD2714FA09D5007457AE /* WebSocketHandshake.h in Headers */,
</span><ins>+                                1F8756B21E22C3350042C40D /* WebSQLiteDatabaseTrackerClient.h in Headers */,
</ins><span class="cx">                                 31DEA4561B39F4D900F77178 /* WebSystemBackdropLayer.h in Headers */,
</span><span class="cx">                                 0F580FA31496939100FB5BD8 /* WebTiledBackingLayer.h in Headers */,
</span><span class="cx">                                 52B0D4C01C57FD660077CE53 /* WebVideoFullscreenChangeObserver.h in Headers */,
</span><span class="lines">@@ -28744,7 +28752,6 @@
</span><span class="cx">                                 93F199EC08245E59001E9ABC /* XSLStyleSheet.h in Headers */,
</span><span class="cx">                                 E1F1E8300C3C2BB9006DB391 /* XSLTExtensions.h in Headers */,
</span><span class="cx">                                 93F199ED08245E59001E9ABC /* XSLTProcessor.h in Headers */,
</span><del>-                                A1C1507A1E3F2B3E0032C98C /* PreviewConverter.h in Headers */,
</del><span class="cx">                                 E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
</span><span class="cx">                                 977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
</span><span class="cx">                                 977E2E0F12F0FC9C00C13380 /* XSSAuditorDelegate.h in Headers */,
</span><span class="lines">@@ -29132,7 +29139,6 @@
</span><span class="cx">                                 490707E61219C04300D90E51 /* ANGLEWebKitBridge.cpp in Sources */,
</span><span class="cx">                                 49E912AA0EFAC906009D0CAF /* Animation.cpp in Sources */,
</span><span class="cx">                                 316FE1110E6E1DA700BF6088 /* AnimationBase.cpp in Sources */,
</span><del>-                                316FE1130E6E1DA700BF6088 /* CSSAnimationController.cpp in Sources */,
</del><span class="cx">                                 120DE3F11C86CCC600B6D4DD /* AnimationEffect.cpp in Sources */,
</span><span class="cx">                                 319848021A1D818100A13318 /* AnimationEvent.cpp in Sources */,
</span><span class="cx">                                 49E912AC0EFAC906009D0CAF /* AnimationList.cpp in Sources */,
</span><span class="lines">@@ -29185,6 +29191,8 @@
</span><span class="cx">                                 FD31601F12B0267600C1A359 /* AudioProcessingEvent.cpp in Sources */,
</span><span class="cx">                                 FD31608512B026F700C1A359 /* AudioResampler.cpp in Sources */,
</span><span class="cx">                                 FD31608712B026F700C1A359 /* AudioResamplerKernel.cpp in Sources */,
</span><ins>+                                073B87661E4385AC0071C0EC /* AudioSampleBufferList.cpp in Sources */,
+                                073B87681E4385AC0071C0EC /* AudioSampleDataSource.cpp in Sources */,
</ins><span class="cx">                                 FD8C46EB154608E700A5910C /* AudioScheduledSourceNode.cpp in Sources */,
</span><span class="cx">                                 CDA79824170A258300D45C55 /* AudioSession.cpp in Sources */,
</span><span class="cx">                                 CDA79827170A279100D45C55 /* AudioSessionIOS.mm in Sources */,
</span><span class="lines">@@ -29195,6 +29203,7 @@
</span><span class="cx">                                 BE88E0DB1715D2A200658D98 /* AudioTrackList.cpp in Sources */,
</span><span class="cx">                                 CDE3A85717F6020400C5BE20 /* AudioTrackPrivateAVFObjC.mm in Sources */,
</span><span class="cx">                                 CD54A762180F9F7000B076C9 /* AudioTrackPrivateMediaSourceAVFObjC.cpp in Sources */,
</span><ins>+                                076EC1331E44F56D00E5D813 /* AudioTrackPrivateMediaStreamCocoa.cpp in Sources */,
</ins><span class="cx">                                 FD31608A12B026F700C1A359 /* AudioUtilities.cpp in Sources */,
</span><span class="cx">                                 7EE6845F12D26E3800E79415 /* AuthenticationCF.cpp in Sources */,
</span><span class="cx">                                 934F71380D5A6EFF00018D69 /* AuthenticationChallengeBase.cpp in Sources */,
</span><span class="lines">@@ -29255,6 +29264,7 @@
</span><span class="cx">                                 1A569CF90D7E2B82007C3983 /* c_instance.cpp in Sources */,
</span><span class="cx">                                 1A569CFB0D7E2B82007C3983 /* c_runtime.cpp in Sources */,
</span><span class="cx">                                 1A569CFD0D7E2B82007C3983 /* c_utility.cpp in Sources */,
</span><ins>+                                07C046C31E42508B007201E7 /* CAAudioStreamDescription.cpp in Sources */,
</ins><span class="cx">                                 BCB16C190979C3BD00467741 /* CachedCSSStyleSheet.cpp in Sources */,
</span><span class="cx">                                 BC64B4CB0CB4295D005F2B62 /* CachedFont.cpp in Sources */,
</span><span class="cx">                                 51C0AA410F2AA15E001648C2 /* CachedFrame.cpp in Sources */,
</span><span class="lines">@@ -29416,6 +29426,7 @@
</span><span class="cx">                                 57E2336B1DCC262400F28D01 /* CryptoKeyRSA.cpp in Sources */,
</span><span class="cx">                                 E164FAA518315E1A00DB4E61 /* CryptoKeyRSAMac.cpp in Sources */,
</span><span class="cx">                                 E125F859182C1AA600D84CD9 /* CryptoKeySerializationRaw.cpp in Sources */,
</span><ins>+                                316FE1130E6E1DA700BF6088 /* CSSAnimationController.cpp in Sources */,
</ins><span class="cx">                                 31BC742D1AAFF45C006B4340 /* CSSAnimationTriggerScrollValue.cpp in Sources */,
</span><span class="cx">                                 CAE9F90F146441F000C245B0 /* CSSAspectRatioValue.cpp in Sources */,
</span><span class="cx">                                 94DE5C811D7F3A1400164F2A /* CSSAtRuleID.cpp in Sources */,
</span><span class="lines">@@ -29435,7 +29446,6 @@
</span><span class="cx">                                 FBB0C5B717BBD626003D3677 /* CSSFilterImageValue.cpp in Sources */,
</span><span class="cx">                                 BC64B4D50CB4298A005F2B62 /* CSSFontFace.cpp in Sources */,
</span><span class="cx">                                 409EBDB216B7EE7400CBA3FC /* CSSFontFaceLoadEvent.cpp in Sources */,
</span><del>-                                7C45C9D11E3EFE0500AAB558 /* JSDOMConstructor.cpp in Sources */,
</del><span class="cx">                                 A80E6CE70A1989CA007FB8C5 /* CSSFontFaceRule.cpp in Sources */,
</span><span class="cx">                                 C26017A31C72DC9900F74A16 /* CSSFontFaceSet.cpp in Sources */,
</span><span class="cx">                                 BC64B4D70CB4298A005F2B62 /* CSSFontFaceSource.cpp in Sources */,
</span><span class="lines">@@ -29537,7 +29547,6 @@
</span><span class="cx">                                 0F6A12BD1A00923700C6DE72 /* DebugPageOverlays.cpp in Sources */,
</span><span class="cx">                                 45FEA5CF156DDE8C00654101 /* Decimal.cpp in Sources */,
</span><span class="cx">                                 A8C228A211D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp in Sources */,
</span><del>-                                A1C150791E3F2B3E0032C98C /* PreviewConverter.mm in Sources */,
</del><span class="cx">                                 4162A450101145AE00DFF3ED /* DedicatedWorkerGlobalScope.cpp in Sources */,
</span><span class="cx">                                 41A3D58E101C152D00316D07 /* DedicatedWorkerThread.cpp in Sources */,
</span><span class="cx">                                 FD06DFA5134A4DEF006F5D7D /* DefaultAudioDestinationNode.cpp in Sources */,
</span><span class="lines">@@ -29767,7 +29776,6 @@
</span><span class="cx">                                 B2AFFC7C0D00A5C10030074D /* FontCacheMac.mm in Sources */,
</span><span class="cx">                                 B2C3DA600D006CD600EF6F26 /* FontCascade.cpp in Sources */,
</span><span class="cx">                                 B2AFFC800D00A5C10030074D /* FontCascadeCocoa.mm in Sources */,
</span><del>-                                7C45C9D01E3EFDFB00AAB558 /* JSDOMWrapperCache.cpp in Sources */,
</del><span class="cx">                                 B2C3DA670D006CD600EF6F26 /* FontCascadeFonts.cpp in Sources */,
</span><span class="cx">                                 7C4EDD741A7B607800198C4D /* FontCocoa.mm in Sources */,
</span><span class="cx">                                 B2AFFC7D0D00A5C10030074D /* FontCustomPlatformData.cpp in Sources */,
</span><span class="lines">@@ -30004,7 +30012,6 @@
</span><span class="cx">                                 51F798EF1BE880E7008AE491 /* IDBIndexInfo.cpp in Sources */,
</span><span class="cx">                                 51E269361DD3BD97006B6A58 /* IDBIterateCursorData.cpp in Sources */,
</span><span class="cx">                                 5185FC941BB4C4E80012898F /* IDBKey.cpp in Sources */,
</span><del>-                                073B87661E4385AC0071C0EC /* AudioSampleBufferList.cpp in Sources */,
</del><span class="cx">                                 5185FC961BB4C4E80012898F /* IDBKeyData.cpp in Sources */,
</span><span class="cx">                                 5185FC981BB4C4E80012898F /* IDBKeyPath.cpp in Sources */,
</span><span class="cx">                                 5185FC9A1BB4C4E80012898F /* IDBKeyRange.cpp in Sources */,
</span><span class="lines">@@ -30013,7 +30020,6 @@
</span><span class="cx">                                 5160712E1BD8307800DBC4F2 /* IDBObjectStoreInfo.cpp in Sources */,
</span><span class="cx">                                 5185FCA31BB4C4E80012898F /* IDBOpenDBRequest.cpp in Sources */,
</span><span class="cx">                                 5185FCA81BB4C4E80012898F /* IDBRequest.cpp in Sources */,
</span><del>-                                073B87681E4385AC0071C0EC /* AudioSampleDataSource.cpp in Sources */,
</del><span class="cx">                                 514129981C6976900059E714 /* IDBRequestCompletionEvent.cpp in Sources */,
</span><span class="cx">                                 510A58F91BACC7F200C19282 /* IDBRequestData.cpp in Sources */,
</span><span class="cx">                                 5145B1091BC48E2E00E86219 /* IDBResourceIdentifier.cpp in Sources */,
</span><span class="lines">@@ -30221,7 +30227,6 @@
</span><span class="cx">                                 BC20FB7F0C0E8E6C00D1447F /* JSCSSValueCustom.cpp in Sources */,
</span><span class="cx">                                 9BD4E9161C462872005065BC /* JSCustomElementInterface.cpp in Sources */,
</span><span class="cx">                                 9BE6710B1D5AEB2100345514 /* JSCustomElementRegistry.cpp in Sources */,
</span><del>-                                5CDD833D1E4324D900621E92 /* RealtimeOutgoingVideoSource.cpp in Sources */,
</del><span class="cx">                                 9BC5F9E01D5AAF6B002B749D /* JSCustomElementRegistryCustom.cpp in Sources */,
</span><span class="cx">                                 E4778B7F115A581A00B5D372 /* JSCustomEvent.cpp in Sources */,
</span><span class="cx">                                 DEC297611B4F2F8D005F5945 /* JSCustomEventCustom.cpp in Sources */,
</span><span class="lines">@@ -30250,9 +30255,12 @@
</span><span class="cx">                                 65DF31F509D1CC60000BE325 /* JSDocumentType.cpp in Sources */,
</span><span class="cx">                                 1AC2260C0DB69F190089B669 /* JSDOMApplicationCache.cpp in Sources */,
</span><span class="cx">                                 93B70D6309EB0C7C009D8468 /* JSDOMBinding.cpp in Sources */,
</span><ins>+                                7C45C9CF1E3EFDF700AAB558 /* JSDOMBindingSecurity.cpp in Sources */,
+                                7C45C9D11E3EFE0500AAB558 /* JSDOMConstructor.cpp in Sources */,
</ins><span class="cx">                                 BC60D7C00D29A46300B9918F /* JSDOMCoreException.cpp in Sources */,
</span><span class="cx">                                 FD67773B195CB1E60072E0D3 /* JSDOMCSSNamespace.cpp in Sources */,
</span><span class="cx">                                 40ECAE8116B8B68A00C36103 /* JSDOMError.cpp in Sources */,
</span><ins>+                                7C45C9D21E3EFE0800AAB558 /* JSDOMExceptionHandling.cpp in Sources */,
</ins><span class="cx">                                 2E0888D41148848A00AF4265 /* JSDOMFormData.cpp in Sources */,
</span><span class="cx">                                 E1C36CBD0EB08062007410BC /* JSDOMGlobalObject.cpp in Sources */,
</span><span class="cx">                                 7C2BDD3D17C7F98C0038FF15 /* JSDOMGlobalObjectTask.cpp in Sources */,
</span><span class="lines">@@ -30285,6 +30293,7 @@
</span><span class="cx">                                 BCBFB53C0DCD29CF0019B3E5 /* JSDOMWindowShell.cpp in Sources */,
</span><span class="cx">                                 A1CC11641E493D0100EFA69C /* FileSystemMac.mm in Sources */,
</span><span class="cx">                                 4170A2EA1D8C0CCA00318452 /* JSDOMWrapper.cpp in Sources */,
</span><ins>+                                7C45C9D01E3EFDFB00AAB558 /* JSDOMWrapperCache.cpp in Sources */,
</ins><span class="cx">                                 93A8061D1E03B585008A1F26 /* JSDoubleRange.cpp in Sources */,
</span><span class="cx">                                 FD7868B9136B999200D403DF /* JSDynamicsCompressorNode.cpp in Sources */,
</span><span class="cx">                                 65DF31F909D1CC60000BE325 /* JSElement.cpp in Sources */,
</span><span class="lines">@@ -30722,7 +30731,6 @@
</span><span class="cx">                                 B2FA3DD80AB75A6F000E5AC4 /* JSSVGPathSegLinetoVerticalRel.cpp in Sources */,
</span><span class="cx">                                 B2FA3DDA0AB75A6F000E5AC4 /* JSSVGPathSegList.cpp in Sources */,
</span><span class="cx">                                 B2FA3DDC0AB75A6F000E5AC4 /* JSSVGPathSegMovetoAbs.cpp in Sources */,
</span><del>-                                1F36EA9D1E21BA1700621E25 /* WebBackgroundTaskController.mm in Sources */,
</del><span class="cx">                                 B2FA3DDE0AB75A6F000E5AC4 /* JSSVGPathSegMovetoRel.cpp in Sources */,
</span><span class="cx">                                 B2FA3DE00AB75A6F000E5AC4 /* JSSVGPatternElement.cpp in Sources */,
</span><span class="cx">                                 8542A7960AE5C94200DF58DF /* JSSVGPoint.cpp in Sources */,
</span><span class="lines">@@ -30731,7 +30739,6 @@
</span><span class="cx">                                 B2FA3DE70AB75A6F000E5AC4 /* JSSVGPolylineElement.cpp in Sources */,
</span><span class="cx">                                 B2FA3DE90AB75A6F000E5AC4 /* JSSVGPreserveAspectRatio.cpp in Sources */,
</span><span class="cx">                                 B2FA3DEB0AB75A6F000E5AC4 /* JSSVGRadialGradientElement.cpp in Sources */,
</span><del>-                                5CDD833E1E4324DC00621E92 /* RealtimeIncomingVideoSource.cpp in Sources */,
</del><span class="cx">                                 8542A7940AE5C94000DF58DF /* JSSVGRect.cpp in Sources */,
</span><span class="cx">                                 B2FA3DED0AB75A6F000E5AC4 /* JSSVGRectElement.cpp in Sources */,
</span><span class="cx">                                 B2FA3DF00AB75A6F000E5AC4 /* JSSVGRenderingIntent.cpp in Sources */,
</span><span class="lines">@@ -30878,7 +30885,6 @@
</span><span class="cx">                                 517A63C41B74318B00E7DCDC /* KeyedEncoderCF.cpp in Sources */,
</span><span class="cx">                                 A513B3D8114B166A001C429B /* KeyEventCocoa.mm in Sources */,
</span><span class="cx">                                 2655413A1489811C000DFC5D /* KeyEventIOS.mm in Sources */,
</span><del>-                                07C046C31E42508B007201E7 /* CAAudioStreamDescription.cpp in Sources */,
</del><span class="cx">                                 935C477009AC4D7300A6AAB4 /* KeyEventMac.mm in Sources */,
</span><span class="cx">                                 316FE1190E6E1DA700BF6088 /* KeyframeAnimation.cpp in Sources */,
</span><span class="cx">                                 12A253DB1C8FF7DC00C22295 /* KeyframeEffect.cpp in Sources */,
</span><span class="lines">@@ -30912,6 +30918,8 @@
</span><span class="cx">                                 E55F497A151B888000BB67DB /* LengthFunctions.cpp in Sources */,
</span><span class="cx">                                 0F87166F1C869D83004FF0DE /* LengthPoint.cpp in Sources */,
</span><span class="cx">                                 0FEF20CE1BD4A24100128E5D /* LengthSize.cpp in Sources */,
</span><ins>+                                415080361E3F00AD0051D75D /* LibWebRTCAudioModule.cpp in Sources */,
+                                5CDD83641E4325A000621E92 /* LibWebRTCDataChannelHandler.cpp in Sources */,
</ins><span class="cx">                                 417612AF1E3A994000C3D81D /* LibWebRTCMediaEndpoint.cpp in Sources */,
</span><span class="cx">                                 417612B11E3A994000C3D81D /* LibWebRTCPeerConnectionBackend.cpp in Sources */,
</span><span class="cx">                                 415747491E3869AA00E914D8 /* LibWebRTCUtils.cpp in Sources */,
</span><span class="lines">@@ -31254,6 +31262,7 @@
</span><span class="cx">                                 93F19AF808245E59001E9ABC /* Position.cpp in Sources */,
</span><span class="cx">                                 37919C230B7D188600A56998 /* PositionIterator.cpp in Sources */,
</span><span class="cx">                                 4634592C1AC2271000ECB71C /* PowerObserverMac.cpp in Sources */,
</span><ins>+                                A1C150791E3F2B3E0032C98C /* PreviewConverter.mm in Sources */,
</ins><span class="cx">                                 B776D43D1104527500BEB0EC /* PrintContext.cpp in Sources */,
</span><span class="cx">                                 A8EA7EBD0A1945D000A8EF5F /* ProcessingInstruction.cpp in Sources */,
</span><span class="cx">                                 E44613EB0CD681B400FADA75 /* ProgressEvent.cpp in Sources */,
</span><span class="lines">@@ -31282,6 +31291,7 @@
</span><span class="cx">                                 418C39611C8F0AB10051C8A3 /* ReadableStreamDefaultController.cpp in Sources */,
</span><span class="cx">                                 FD31603B12B0267600C1A359 /* RealtimeAnalyser.cpp in Sources */,
</span><span class="cx">                                 41103AAE1E39791000769F03 /* RealtimeIncomingAudioSource.cpp in Sources */,
</span><ins>+                                5CDD833E1E4324DC00621E92 /* RealtimeIncomingVideoSource.cpp in Sources */,
</ins><span class="cx">                                 4A4F65701AA997F100E38CDD /* RealtimeMediaSource.cpp in Sources */,
</span><span class="cx">                                 4A0FFAA11AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp in Sources */,
</span><span class="cx">                                 4A0FFAA51AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp in Sources */,
</span><span class="lines">@@ -31288,6 +31298,7 @@
</span><span class="cx">                                 4A4F65731AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp in Sources */,
</span><span class="cx">                                 2EC41DE41C0410A300D294FE /* RealtimeMediaSourceSupportedConstraints.cpp in Sources */,
</span><span class="cx">                                 41103AAB1E39791000769F03 /* RealtimeOutgoingAudioSource.cpp in Sources */,
</span><ins>+                                5CDD833D1E4324D900621E92 /* RealtimeOutgoingVideoSource.cpp in Sources */,
</ins><span class="cx">                                 FD45A95A175D417100C21EC8 /* RectangleShape.cpp in Sources */,
</span><span class="cx">                                 BCAB418113E356E800D8AAF3 /* Region.cpp in Sources */,
</span><span class="cx">                                 CDFC360518CA61C20026E56F /* RemoteCommandListener.cpp in Sources */,
</span><span class="lines">@@ -31314,7 +31325,6 @@
</span><span class="cx">                                 A8EA73C30A1900E300A8EF5F /* RenderFieldset.cpp in Sources */,
</span><span class="cx">                                 066C77300AB603FD00238CC4 /* RenderFileUploadControl.cpp in Sources */,
</span><span class="cx">                                 53C8298D13D8D92700DE2DEB /* RenderFlexibleBox.cpp in Sources */,
</span><del>-                                5CDD83641E4325A000621E92 /* LibWebRTCDataChannelHandler.cpp in Sources */,
</del><span class="cx">                                 508CCA5013CF106B003151F3 /* RenderFlowThread.cpp in Sources */,
</span><span class="cx">                                 A871DED40A1530C700B12A68 /* RenderFrame.cpp in Sources */,
</span><span class="cx">                                 0FD3080E117CF7E700A791F7 /* RenderFrameBase.cpp in Sources */,
</span><span class="lines">@@ -31753,7 +31763,6 @@
</span><span class="cx">                                 B22279A40D00BF220071B782 /* SVGComponentTransferFunctionElement.cpp in Sources */,
</span><span class="cx">                                 B2227B050D00BFF10071B782 /* SVGCSSComputedStyleDeclaration.cpp in Sources */,
</span><span class="cx">                                 B22279A70D00BF220071B782 /* SVGCursorElement.cpp in Sources */,
</span><del>-                                7C45C9D21E3EFE0800AAB558 /* JSDOMExceptionHandling.cpp in Sources */,
</del><span class="cx">                                 B22279AD0D00BF220071B782 /* SVGDefsElement.cpp in Sources */,
</span><span class="cx">                                 B22279B00D00BF220071B782 /* SVGDescElement.cpp in Sources */,
</span><span class="cx">                                 B22279B30D00BF220071B782 /* SVGDocument.cpp in Sources */,
</span><span class="lines">@@ -31768,7 +31777,6 @@
</span><span class="cx">                                 B22279CD0D00BF220071B782 /* SVGFEComponentTransferElement.cpp in Sources */,
</span><span class="cx">                                 B22279D00D00BF220071B782 /* SVGFECompositeElement.cpp in Sources */,
</span><span class="cx">                                 1921327411C0E6BB00456238 /* SVGFEConvolveMatrixElement.cpp in Sources */,
</span><del>-                                7C45C9CF1E3EFDF700AAB558 /* JSDOMBindingSecurity.cpp in Sources */,
</del><span class="cx">                                 B22279D30D00BF220071B782 /* SVGFEDiffuseLightingElement.cpp in Sources */,
</span><span class="cx">                                 B22279D60D00BF220071B782 /* SVGFEDisplacementMapElement.cpp in Sources */,
</span><span class="cx">                                 B22279D90D00BF220071B782 /* SVGFEDistantLightElement.cpp in Sources */,
</span><span class="lines">@@ -31793,7 +31801,6 @@
</span><span class="cx">                                 B2227A080D00BF220071B782 /* SVGFETurbulenceElement.cpp in Sources */,
</span><span class="cx">                                 845E72FB0FD2623900A87D79 /* SVGFilter.cpp in Sources */,
</span><span class="cx">                                 081EBF3A0FD34F4100DA7559 /* SVGFilterBuilder.cpp in Sources */,
</span><del>-                                415080361E3F00AD0051D75D /* LibWebRTCAudioModule.cpp in Sources */,
</del><span class="cx">                                 B2227A0B0D00BF220071B782 /* SVGFilterElement.cpp in Sources */,
</span><span class="cx">                                 B2227A0E0D00BF220071B782 /* SVGFilterPrimitiveStandardAttributes.cpp in Sources */,
</span><span class="cx">                                 B2227A110D00BF220071B782 /* SVGFitToViewBox.cpp in Sources */,
</span><span class="lines">@@ -31877,7 +31884,6 @@
</span><span class="cx">                                 7C39C3741DDBB8D300FEFB29 /* SVGTransformListValues.cpp in Sources */,
</span><span class="cx">                                 7CE58D571DD7D96D00128552 /* SVGTransformValue.cpp in Sources */,
</span><span class="cx">                                 B2227AE10D00BF220071B782 /* SVGTRefElement.cpp in Sources */,
</span><del>-                                076EC1331E44F56D00E5D813 /* AudioTrackPrivateMediaStreamCocoa.cpp in Sources */,
</del><span class="cx">                                 B2227AE40D00BF220071B782 /* SVGTSpanElement.cpp in Sources */,
</span><span class="cx">                                 B2227AE90D00BF220071B782 /* SVGURIReference.cpp in Sources */,
</span><span class="cx">                                 B2227AEC0D00BF220071B782 /* SVGUseElement.cpp in Sources */,
</span><span class="lines">@@ -32064,6 +32070,7 @@
</span><span class="cx">                                 120DE3ED1C86CA3E00B6D4DD /* WebAnimation.cpp in Sources */,
</span><span class="cx">                                 07D637411BB0B11300256CE9 /* WebAudioSourceProviderAVFObjC.mm in Sources */,
</span><span class="cx">                                 CDA29A311CBF74DA00901CCF /* WebAVPlayerController.mm in Sources */,
</span><ins>+                                1F36EA9D1E21BA1700621E25 /* WebBackgroundTaskController.mm in Sources */,
</ins><span class="cx">                                 A56C5B9A189F34570082D13C /* WebConsoleAgent.cpp in Sources */,
</span><span class="cx">                                 CD7E05221651C28200C1201F /* WebCoreAVFResourceLoader.mm in Sources */,
</span><span class="cx">                                 2D3EF44B1917915C00034184 /* WebCoreCALayerExtras.mm in Sources */,
</span><span class="lines">@@ -32130,6 +32137,7 @@
</span><span class="cx">                                 6F995A251A7078B100A735F4 /* WebGLVertexArrayObject.cpp in Sources */,
</span><span class="cx">                                 6F222B761AB52D8A0094651A /* WebGLVertexArrayObjectBase.cpp in Sources */,
</span><span class="cx">                                 77A17A7712F28642004E02F6 /* WebGLVertexArrayObjectOES.cpp in Sources */,
</span><ins>+                                A5E2123B1E4924A100CE1044 /* WebHeapAgent.cpp in Sources */,
</ins><span class="cx">                                 A5840E24187B8AC200843B10 /* WebInjectedScriptHost.cpp in Sources */,
</span><span class="cx">                                 A584FE2F1864CB8400843B10 /* WebInjectedScriptManager.cpp in Sources */,
</span><span class="cx">                                 F48223101E3869B80066FC79 /* WebItemProviderPasteboard.mm in Sources */,
</span><span class="lines">@@ -32165,6 +32173,7 @@
</span><span class="cx">                                 4A5A2ADB161E7E00005889DD /* WebSocketExtensionParser.cpp in Sources */,
</span><span class="cx">                                 AAF5B7B71524B6C50004CB49 /* WebSocketFrame.cpp in Sources */,
</span><span class="cx">                                 97AABD2614FA09D5007457AE /* WebSocketHandshake.cpp in Sources */,
</span><ins>+                                1F4B419B1E2301C900AC037F /* WebSQLiteDatabaseTrackerClient.mm in Sources */,
</ins><span class="cx">                                 31DEA4551B39F4D900F77178 /* WebSystemBackdropLayer.mm in Sources */,
</span><span class="cx">                                 0F580FA41496939100FB5BD8 /* WebTiledBackingLayer.mm in Sources */,
</span><span class="cx">                                 CD82030B1395AB6A00F956C6 /* WebVideoFullscreenController.mm in Sources */,
</span><span class="lines">@@ -32248,7 +32257,6 @@
</span><span class="cx">                                 85217E020A5ECD4700DB8D00 /* XSLImportRule.cpp in Sources */,
</span><span class="cx">                                 93F19B0308245E59001E9ABC /* XSLStyleSheetLibxslt.cpp in Sources */,
</span><span class="cx">                                 E1F1E82F0C3C2BB9006DB391 /* XSLTExtensions.cpp in Sources */,
</span><del>-                                1F4B419B1E2301C900AC037F /* WebSQLiteDatabaseTrackerClient.mm in Sources */,
</del><span class="cx">                                 93F19B0408245E59001E9ABC /* XSLTProcessor.cpp in Sources */,
</span><span class="cx">                                 93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */,
</span><span class="cx">                                 E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorAllInOne.cpp (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorAllInOne.cpp        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/WebCore/inspector/InspectorAllInOne.cpp        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -61,6 +61,7 @@
</span><span class="cx"> #include &quot;TimelineRecordFactory.cpp&quot;
</span><span class="cx"> #include &quot;WebConsoleAgent.cpp&quot;
</span><span class="cx"> #include &quot;WebDebuggerAgent.cpp&quot;
</span><ins>+#include &quot;WebHeapAgent.cpp&quot;
</ins><span class="cx"> #include &quot;WebInjectedScriptHost.cpp&quot;
</span><span class="cx"> #include &quot;WebInjectedScriptManager.cpp&quot;
</span><span class="cx"> #include &quot;WorkerConsoleAgent.cpp&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorPageHeapAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/PageHeapAgent.cpp (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/PageHeapAgent.cpp        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/WebCore/inspector/PageHeapAgent.cpp        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> PageHeapAgent::PageHeapAgent(PageAgentContext&amp; context)
</span><del>-    : InspectorHeapAgent(context)
</del><ins>+    : WebHeapAgent(context)
</ins><span class="cx">     , m_instrumentingAgents(context.instrumentingAgents)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -38,13 +38,13 @@
</span><span class="cx"> 
</span><span class="cx"> void PageHeapAgent::enable(ErrorString&amp; errorString)
</span><span class="cx"> {
</span><del>-    InspectorHeapAgent::enable(errorString);
</del><ins>+    WebHeapAgent::enable(errorString);
</ins><span class="cx">     m_instrumentingAgents.setPageHeapAgent(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PageHeapAgent::disable(ErrorString&amp; errorString)
</span><span class="cx"> {
</span><del>-    InspectorHeapAgent::disable(errorString);
</del><ins>+    WebHeapAgent::disable(errorString);
</ins><span class="cx">     m_instrumentingAgents.setPageHeapAgent(nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorPageHeapAgenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/PageHeapAgent.h (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/PageHeapAgent.h        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/WebCore/inspector/PageHeapAgent.h        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -27,13 +27,13 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;InspectorWebAgentBase.h&quot;
</span><span class="cx"> #include &quot;InstrumentingAgents.h&quot;
</span><del>-#include &lt;inspector/agents/InspectorHeapAgent.h&gt;
</del><ins>+#include &quot;WebHeapAgent.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> typedef String ErrorString;
</span><span class="cx"> 
</span><del>-class PageHeapAgent final : public Inspector::InspectorHeapAgent {
</del><ins>+class PageHeapAgent final : public WebHeapAgent {
</ins><span class="cx">     WTF_MAKE_NONCOPYABLE(PageHeapAgent);
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorWebHeapAgentcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/inspector/WebHeapAgent.cpp (0 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WebHeapAgent.cpp                                (rev 0)
+++ trunk/Source/WebCore/inspector/WebHeapAgent.cpp        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -0,0 +1,131 @@
</span><ins>+/*
+ * Copyright (C) 2015-2017 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 &quot;config.h&quot;
+#include &quot;WebHeapAgent.h&quot;
+
+#include &lt;wtf/RunLoop.h&gt;
+
+using namespace Inspector;
+
+namespace WebCore {
+
+struct GarbageCollectionData {
+    Inspector::Protocol::Heap::GarbageCollection::Type type;
+    double startTime;
+    double endTime;
+};
+
+class SendGarbageCollectionEventsTask {
+public:
+    SendGarbageCollectionEventsTask(WebHeapAgent&amp;);
+    void addGarbageCollection(GarbageCollectionData&amp;&amp;);
+    void reset();
+private:
+    void timerFired();
+
+    WebHeapAgent&amp; m_agent;
+    Vector&lt;GarbageCollectionData&gt; m_collections;
+    RunLoop::Timer&lt;SendGarbageCollectionEventsTask&gt; m_timer;
+    Lock m_mutex;
+};
+
+SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask(WebHeapAgent&amp; agent)
+    : m_agent(agent)
+    , m_timer(RunLoop::main(), this, &amp;SendGarbageCollectionEventsTask::timerFired)
+{
+}
+
+void SendGarbageCollectionEventsTask::addGarbageCollection(GarbageCollectionData&amp;&amp; collection)
+{
+    {
+        std::lock_guard&lt;Lock&gt; lock(m_mutex);
+        m_collections.append(WTFMove(collection));
+    }
+
+    if (!m_timer.isActive())
+        m_timer.startOneShot(0);
+}
+
+void SendGarbageCollectionEventsTask::reset()
+{
+    {
+        std::lock_guard&lt;Lock&gt; lock(m_mutex);
+        m_collections.clear();
+    }
+
+    m_timer.stop();
+}
+
+void SendGarbageCollectionEventsTask::timerFired()
+{
+    Vector&lt;GarbageCollectionData&gt; collectionsToSend;
+
+    {
+        std::lock_guard&lt;Lock&gt; lock(m_mutex);
+        m_collections.swap(collectionsToSend);
+    }
+
+    m_agent.dispatchGarbageCollectionEventsAfterDelay(WTFMove(collectionsToSend));
+}
+
+WebHeapAgent::WebHeapAgent(Inspector::AgentContext&amp; context)
+    : InspectorHeapAgent(context)
+    , m_sendGarbageCollectionEventsTask(std::make_unique&lt;SendGarbageCollectionEventsTask&gt;(*this))
+{
+}
+
+WebHeapAgent::~WebHeapAgent()
+{
+    m_sendGarbageCollectionEventsTask-&gt;reset();
+}
+
+void WebHeapAgent::disable(ErrorString&amp; errorString)
+{
+    m_sendGarbageCollectionEventsTask-&gt;reset();
+
+    InspectorHeapAgent::disable(errorString);
+}
+
+void WebHeapAgent::dispatchGarbageCollectedEvent(Inspector::Protocol::Heap::GarbageCollection::Type type, double startTime, double endTime)
+{
+    // Dispatch the event asynchronously because this method may be
+    // called between collection and sweeping and we don't want to
+    // create unexpected JavaScript allocations that the Sweeper does
+    // not expect to encounter. JavaScript allocations could happen
+    // with WebKitLegacy's in process inspector which shares the same
+    // VM as the inspected page.
+
+    GarbageCollectionData data = {type, startTime, endTime};
+    m_sendGarbageCollectionEventsTask-&gt;addGarbageCollection(WTFMove(data));
+}
+
+void WebHeapAgent::dispatchGarbageCollectionEventsAfterDelay(Vector&lt;GarbageCollectionData&gt;&amp;&amp; collections)
+{
+    for (auto&amp; collection : collections)
+        InspectorHeapAgent::dispatchGarbageCollectedEvent(collection.type, collection.startTime, collection.endTime);
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoreinspectorWebHeapAgenthfromrev211770trunkSourceWebCoreinspectorPageHeapAgenth"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/inspector/WebHeapAgent.h (from rev 211770, trunk/Source/WebCore/inspector/PageHeapAgent.h) (0 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WebHeapAgent.h                                (rev 0)
+++ trunk/Source/WebCore/inspector/WebHeapAgent.h        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -0,0 +1,55 @@
</span><ins>+/*
+ * Copyright (C) 2017 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.
+ */
+
+#pragma once
+
+#include &lt;inspector/agents/InspectorHeapAgent.h&gt;
+#include &lt;wtf/Vector.h&gt;
+
+namespace WebCore {
+
+class SendGarbageCollectionEventsTask;
+struct GarbageCollectionData;
+typedef String ErrorString;
+
+class WebHeapAgent : public Inspector::InspectorHeapAgent {
+    WTF_MAKE_NONCOPYABLE(WebHeapAgent);
+    WTF_MAKE_FAST_ALLOCATED;
+    friend class SendGarbageCollectionEventsTask;
+public:
+    WebHeapAgent(Inspector::AgentContext&amp;);
+    virtual ~WebHeapAgent();
+
+protected:
+    void disable(ErrorString&amp;) override;
+
+    void dispatchGarbageCollectedEvent(Inspector::Protocol::Heap::GarbageCollection::Type, double startTime, double endTime) override;
+
+    void dispatchGarbageCollectionEventsAfterDelay(Vector&lt;GarbageCollectionData&gt;&amp;&amp; collections);
+
+    std::unique_ptr&lt;SendGarbageCollectionEventsTask&gt; m_sendGarbageCollectionEventsTask;
+};
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoreinspectorWorkerInspectorControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/WorkerInspectorController.cpp (211770 => 211771)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/WorkerInspectorController.cpp        2017-02-07 04:23:52 UTC (rev 211770)
+++ trunk/Source/WebCore/inspector/WorkerInspectorController.cpp        2017-02-07 04:27:05 UTC (rev 211771)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &quot;CommandLineAPIHost.h&quot;
</span><span class="cx"> #include &quot;InstrumentingAgents.h&quot;
</span><span class="cx"> #include &quot;JSMainThreadExecState.h&quot;
</span><ins>+#include &quot;WebHeapAgent.h&quot;
</ins><span class="cx"> #include &quot;WebInjectedScriptHost.h&quot;
</span><span class="cx"> #include &quot;WebInjectedScriptManager.h&quot;
</span><span class="cx"> #include &quot;WorkerConsoleAgent.h&quot;
</span><span class="lines">@@ -42,7 +43,6 @@
</span><span class="cx"> #include &lt;inspector/InspectorFrontendChannel.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendDispatchers.h&gt;
</span><span class="cx"> #include &lt;inspector/InspectorFrontendRouter.h&gt;
</span><del>-#include &lt;inspector/agents/InspectorHeapAgent.h&gt;
</del><span class="cx"> 
</span><span class="cx"> using namespace JSC;
</span><span class="cx"> using namespace Inspector;
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">         workerGlobalScope,
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    auto heapAgent = std::make_unique&lt;InspectorHeapAgent&gt;(workerContext);
</del><ins>+    auto heapAgent = std::make_unique&lt;WebHeapAgent&gt;(workerContext);
</ins><span class="cx"> 
</span><span class="cx">     m_agents.append(std::make_unique&lt;WorkerRuntimeAgent&gt;(workerContext));
</span><span class="cx">     m_agents.append(std::make_unique&lt;WorkerDebuggerAgent&gt;(workerContext));
</span></span></pre>
</div>
</div>

</body>
</html>