Index: Source/core/inspector/InspectorPageAgent.cpp |
diff --git a/Source/core/inspector/InspectorPageAgent.cpp b/Source/core/inspector/InspectorPageAgent.cpp |
index 0eea2bd408cdca11701cf73b912fd9244bdc7a7f..c5870bc08a92a908e9e85549f4535be3157d1379 100644 |
--- a/Source/core/inspector/InspectorPageAgent.cpp |
+++ b/Source/core/inspector/InspectorPageAgent.cpp |
@@ -480,7 +480,15 @@ void InspectorPageAgent::enable(ErrorString*) |
m_enabled = true; |
m_state->setBoolean(PageAgentState::pageAgentEnabled, true); |
m_instrumentingAgents->setInspectorPageAgent(this); |
- m_inspectorResourceContentLoader = adoptPtr(new InspectorResourceContentLoader(m_page)); |
+ m_inspectorResourceContentLoader = adoptPtrWillBeNoop(new InspectorResourceContentLoader(m_page)); |
+} |
+ |
+void InspectorPageAgent::dispose() |
+{ |
+ if (!m_inspectorResourceContentLoader) |
+ return; |
+ m_inspectorResourceContentLoader->dispose(); |
+ m_inspectorResourceContentLoader.clear(); |
} |
void InspectorPageAgent::disable(ErrorString*) |
@@ -490,7 +498,10 @@ void InspectorPageAgent::disable(ErrorString*) |
m_state->remove(PageAgentState::pageAgentScriptsToEvaluateOnLoad); |
m_overlay->hide(); |
m_instrumentingAgents->setInspectorPageAgent(0); |
- m_inspectorResourceContentLoader.clear(); |
+ if (m_inspectorResourceContentLoader) { |
+ m_inspectorResourceContentLoader->dispose(); |
+ m_inspectorResourceContentLoader.clear(); |
+ } |
m_deviceMetricsOverridden = false; |
setShowPaintRects(0, false); |
@@ -1449,6 +1460,7 @@ void InspectorPageAgent::trace(Visitor* visitor) |
{ |
visitor->trace(m_page); |
visitor->trace(m_injectedScriptManager); |
+ visitor->trace(m_inspectorResourceContentLoader); |
InspectorBaseAgent::trace(visitor); |
} |