- Revision
- 214991
- Author
- [email protected]
- Date
- 2017-04-05 23:08:26 -0700 (Wed, 05 Apr 2017)
Log Message
Merge r208177 - Web Inspector: Provide an opportunity to clear ScriptValues associated with debugged target
https://bugs.webkit.org/show_bug.cgi?id=164167
<rdar://problem/29010148>
Patch by Joseph Pecoraro <[email protected]> on 2016-10-31
Reviewed by Mark Lam.
Source/_javascript_Core:
* inspector/InspectorAgentBase.h:
(Inspector::InspectorAgentBase::discardValues):
* inspector/InspectorAgentRegistry.cpp:
(Inspector::AgentRegistry::~AgentRegistry):
(Inspector::AgentRegistry::discardValues):
* inspector/InspectorAgentRegistry.h:
New standard agent method to allow the agent to discard values.
* inspector/agents/InspectorConsoleAgent.h:
* inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::discardValues):
Discard ScriptValues in ConsoleMessages.
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::globalObjectDestroyed):
Global object is going away, discard values.
Source/WebCore:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::inspectedPageDestroyed):
Page is going away, discard values.
* inspector/WorkerInspectorController.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::workerTerminating):
Worker is going away, discard values.
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/ChangeLog (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/ChangeLog 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/ChangeLog 2017-04-06 06:08:26 UTC (rev 214991)
@@ -1,3 +1,28 @@
+2016-10-31 Joseph Pecoraro <[email protected]>
+
+ Web Inspector: Provide an opportunity to clear ScriptValues associated with debugged target
+ https://bugs.webkit.org/show_bug.cgi?id=164167
+ <rdar://problem/29010148>
+
+ Reviewed by Mark Lam.
+
+ * inspector/InspectorAgentBase.h:
+ (Inspector::InspectorAgentBase::discardValues):
+ * inspector/InspectorAgentRegistry.cpp:
+ (Inspector::AgentRegistry::~AgentRegistry):
+ (Inspector::AgentRegistry::discardValues):
+ * inspector/InspectorAgentRegistry.h:
+ New standard agent method to allow the agent to discard values.
+
+ * inspector/agents/InspectorConsoleAgent.h:
+ * inspector/agents/InspectorConsoleAgent.cpp:
+ (Inspector::InspectorConsoleAgent::discardValues):
+ Discard ScriptValues in ConsoleMessages.
+
+ * inspector/JSGlobalObjectInspectorController.cpp:
+ (Inspector::JSGlobalObjectInspectorController::globalObjectDestroyed):
+ Global object is going away, discard values.
+
2016-12-06 Mark Lam <[email protected]>
Introduce the concept of Immutable Prototype Exotic Objects to comply with the spec.
Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentBase.h (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentBase.h 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentBase.h 2017-04-06 06:08:26 UTC (rev 214991)
@@ -70,6 +70,7 @@
virtual void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) = 0;
virtual void willDestroyFrontendAndBackend(DisconnectReason) = 0;
+ virtual void discardValues() { }
virtual void discardAgent() { }
protected:
Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentRegistry.cpp (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentRegistry.cpp 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentRegistry.cpp 2017-04-06 06:08:26 UTC (rev 214991)
@@ -40,7 +40,7 @@
// Allow agents to remove cross-references to other agents that would otherwise
// make it difficult to establish a correct destruction order for all agents.
for (auto& agent : m_agents)
- agent->discardAgent();
+ agent->discardAgent();
}
void AgentRegistry::append(std::unique_ptr<InspectorAgentBase> agent)
@@ -69,5 +69,10 @@
agent->willDestroyFrontendAndBackend(reason);
}
+void AgentRegistry::discardValues()
+{
+ for (auto& agent : m_agents)
+ agent->discardValues();
+}
+
} // namespace Inspector
-
Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentRegistry.h (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentRegistry.h 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/InspectorAgentRegistry.h 2017-04-06 06:08:26 UTC (rev 214991)
@@ -46,6 +46,7 @@
void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*);
void willDestroyFrontendAndBackend(DisconnectReason);
+ void discardValues();
#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
void appendExtraAgent(std::unique_ptr<InspectorAgentBase>);
Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.cpp (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.cpp 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/JSGlobalObjectInspectorController.cpp 2017-04-06 06:08:26 UTC (rev 214991)
@@ -119,6 +119,8 @@
ASSERT(!m_frontendRouter->hasFrontends());
m_injectedScriptManager->disconnect();
+
+ m_agents.discardValues();
}
void JSGlobalObjectInspectorController::connectFrontend(FrontendChannel* frontendChannel, bool isAutomaticInspection)
Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/agents/InspectorConsoleAgent.cpp (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/agents/InspectorConsoleAgent.cpp 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/agents/InspectorConsoleAgent.cpp 2017-04-06 06:08:26 UTC (rev 214991)
@@ -66,6 +66,11 @@
disable(errorString);
}
+void InspectorConsoleAgent::discardValues()
+{
+ m_consoleMessages.clear();
+}
+
void InspectorConsoleAgent::enable(ErrorString&)
{
if (m_enabled)
Modified: releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/agents/InspectorConsoleAgent.h (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/agents/InspectorConsoleAgent.h 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/_javascript_Core/inspector/agents/InspectorConsoleAgent.h 2017-04-06 06:08:26 UTC (rev 214991)
@@ -57,6 +57,7 @@
void didCreateFrontendAndBackend(FrontendRouter*, BackendDispatcher*) override;
void willDestroyFrontendAndBackend(DisconnectReason) override;
+ void discardValues() override;
void enable(ErrorString&) override;
void disable(ErrorString&) override;
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog 2017-04-06 06:08:26 UTC (rev 214991)
@@ -1,3 +1,20 @@
+2016-10-31 Joseph Pecoraro <[email protected]>
+
+ Web Inspector: Provide an opportunity to clear ScriptValues associated with debugged target
+ https://bugs.webkit.org/show_bug.cgi?id=164167
+ <rdar://problem/29010148>
+
+ Reviewed by Mark Lam.
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ Page is going away, discard values.
+
+ * inspector/WorkerInspectorController.h:
+ * inspector/WorkerInspectorController.cpp:
+ (WebCore::WorkerInspectorController::workerTerminating):
+ Worker is going away, discard values.
+
2016-09-30 Youenn Fablet <[email protected]>
DumpRenderTree crashed in com.apple.WebCore: WTF::Optional<WebCore::FetchBodyOwner::BlobLoader>::operator bool const + 12
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/inspector/InspectorController.cpp (214990 => 214991)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/inspector/InspectorController.cpp 2017-04-06 05:27:12 UTC (rev 214990)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/inspector/InspectorController.cpp 2017-04-06 06:08:26 UTC (rev 214991)
@@ -209,6 +209,8 @@
// Clean up resources and disconnect local and remote frontends.
disconnectAllFrontends();
+
+ m_agents.discardValues();
}
void InspectorController::setInspectorFrontendClient(InspectorFrontendClient* inspectorFrontendClient)