| Index: Source/core/inspector/InspectorPageAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorPageAgent.cpp b/Source/core/inspector/InspectorPageAgent.cpp
|
| index b06170b4ff57baf6d23de07351cdffb85f67c76b..8e929aa8084722515142310560e16d8518aa1456 100644
|
| --- a/Source/core/inspector/InspectorPageAgent.cpp
|
| +++ b/Source/core/inspector/InspectorPageAgent.cpp
|
| @@ -488,7 +488,17 @@ void InspectorPageAgent::enable(ErrorString*)
|
| m_enabled = true;
|
| m_state->setBoolean(PageAgentState::pageAgentEnabled, true);
|
| m_instrumentingAgents->setInspectorPageAgent(this);
|
| - m_inspectorResourceContentLoader = adoptPtr(new InspectorResourceContentLoader(m_page));
|
| + if (m_inspectorResourceContentLoader)
|
| + m_inspectorResourceContentLoader->dispose();
|
| + m_inspectorResourceContentLoader = adoptPtrWillBeNoop(new InspectorResourceContentLoader(m_page));
|
| +}
|
| +
|
| +void InspectorPageAgent::discardAgent()
|
| +{
|
| + if (!m_inspectorResourceContentLoader)
|
| + return;
|
| + m_inspectorResourceContentLoader->dispose();
|
| + m_inspectorResourceContentLoader.clear();
|
| }
|
|
|
| void InspectorPageAgent::disable(ErrorString*)
|
| @@ -498,7 +508,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);
|
| @@ -1457,6 +1470,7 @@ void InspectorPageAgent::trace(Visitor* visitor)
|
| {
|
| visitor->trace(m_page);
|
| visitor->trace(m_injectedScriptManager);
|
| + visitor->trace(m_inspectorResourceContentLoader);
|
| InspectorBaseAgent::trace(visitor);
|
| }
|
|
|
|
|