Commit 2e34807a authored by keishi@chromium.org's avatar keishi@chromium.org

Oilpan: Prepare moving InspectorResourceContentLoader to Oilpan

BUG=340522

Review URL: https://codereview.chromium.org/527183002

git-svn-id: svn://svn.chromium.org/blink/trunk@181437 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent bde99eae
......@@ -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);
}
......
......@@ -150,6 +150,7 @@ public:
virtual void setFrontend(InspectorFrontend*) OVERRIDE;
virtual void clearFrontend() OVERRIDE;
virtual void restore() OVERRIDE;
virtual void discardAgent() OVERRIDE;
// Cross-agents API
Page* page() { return m_page; }
......@@ -219,7 +220,7 @@ private:
double m_embedderFontScaleFactor;
bool m_embedderPreferCompositingToLCDTextEnabled;
OwnPtr<InspectorResourceContentLoader> m_inspectorResourceContentLoader;
OwnPtrWillBeMember<InspectorResourceContentLoader> m_inspectorResourceContentLoader;
HashMap<String, String> m_editedResourceContent;
};
......
......@@ -154,6 +154,17 @@ void InspectorResourceContentLoader::ensureResourcesContentLoaded(PassOwnPtrWill
}
InspectorResourceContentLoader::~InspectorResourceContentLoader()
{
ASSERT(m_resources.isEmpty());
}
void InspectorResourceContentLoader::trace(Visitor* visitor)
{
visitor->trace(m_callbacks);
visitor->trace(m_page);
}
void InspectorResourceContentLoader::dispose()
{
stop();
}
......
......@@ -16,14 +16,15 @@ class Page;
class Resource;
class VoidCallback;
// FIXME: Oilpan: Move InspectorResourceContentLoader to the heap.
class InspectorResourceContentLoader FINAL {
class InspectorResourceContentLoader FINAL : public NoBaseWillBeGarbageCollectedFinalized<InspectorResourceContentLoader> {
WTF_MAKE_NONCOPYABLE(InspectorResourceContentLoader);
WTF_MAKE_FAST_ALLOCATED;
WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
public:
explicit InspectorResourceContentLoader(Page*);
void ensureResourcesContentLoaded(PassOwnPtrWillBeRawPtr<VoidCallback>);
~InspectorResourceContentLoader();
void trace(Visitor*);
void dispose();
bool hasFinished();
void stop();
......@@ -34,10 +35,10 @@ private:
void checkDone();
void start();
WillBePersistentHeapVector<OwnPtrWillBeMember<VoidCallback> > m_callbacks;
WillBeHeapVector<OwnPtrWillBeMember<VoidCallback> > m_callbacks;
bool m_allRequestsStarted;
bool m_started;
Page* m_page;
RawPtrWillBeMember<Page> m_page;
HashSet<ResourceClient*> m_pendingResourceClients;
Vector<ResourcePtr<Resource> > m_resources;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment