Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(472)

Side by Side Diff: Source/core/inspector/InspectorDOMAgent.cpp

Issue 323043002: Oilpan: Prepare moving InspectorAgent related classes to oilpan (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2011 Google Inc. All rights reserved.
4 * Copyright (C) 2009 Joseph Pecoraro 4 * Copyright (C) 2009 Joseph Pecoraro
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 } 173 }
174 174
175 static Node* hoveredNodeForEvent(LocalFrame* frame, const PlatformTouchEvent& ev ent, bool ignorePointerEventsNone) 175 static Node* hoveredNodeForEvent(LocalFrame* frame, const PlatformTouchEvent& ev ent, bool ignorePointerEventsNone)
176 { 176 {
177 const Vector<PlatformTouchPoint>& points = event.touchPoints(); 177 const Vector<PlatformTouchPoint>& points = event.touchPoints();
178 if (!points.size()) 178 if (!points.size())
179 return 0; 179 return 0;
180 return hoveredNodeForPoint(frame, roundedIntPoint(points[0].pos()), ignorePo interEventsNone); 180 return hoveredNodeForPoint(frame, roundedIntPoint(points[0].pos()), ignorePo interEventsNone);
181 } 181 }
182 182
183 class RevalidateStyleAttributeTask { 183 class RevalidateStyleAttributeTask FINAL : public NoBaseWillBeGarbageCollectedFi nalized<RevalidateStyleAttributeTask> {
184 WTF_MAKE_FAST_ALLOCATED; 184 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
185 public: 185 public:
186 RevalidateStyleAttributeTask(InspectorDOMAgent*); 186 explicit RevalidateStyleAttributeTask(InspectorDOMAgent*);
187 void scheduleFor(Element*); 187 void scheduleFor(Element*);
188 void reset() { m_timer.stop(); } 188 void reset() { m_timer.stop(); }
189 void onTimer(Timer<RevalidateStyleAttributeTask>*); 189 void onTimer(Timer<RevalidateStyleAttributeTask>*);
190 void trace(Visitor*);
190 191
191 private: 192 private:
192 InspectorDOMAgent* m_domAgent; 193 RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
193 Timer<RevalidateStyleAttributeTask> m_timer; 194 Timer<RevalidateStyleAttributeTask> m_timer;
194 WillBePersistentHeapHashSet<RefPtrWillBeMember<Element> > m_elements; 195 WillBeHeapHashSet<RefPtrWillBeMember<Element> > m_elements;
195 }; 196 };
196 197
197 RevalidateStyleAttributeTask::RevalidateStyleAttributeTask(InspectorDOMAgent* do mAgent) 198 RevalidateStyleAttributeTask::RevalidateStyleAttributeTask(InspectorDOMAgent* do mAgent)
198 : m_domAgent(domAgent) 199 : m_domAgent(domAgent)
199 , m_timer(this, &RevalidateStyleAttributeTask::onTimer) 200 , m_timer(this, &RevalidateStyleAttributeTask::onTimer)
200 { 201 {
201 } 202 }
202 203
203 void RevalidateStyleAttributeTask::scheduleFor(Element* element) 204 void RevalidateStyleAttributeTask::scheduleFor(Element* element)
204 { 205 {
205 m_elements.add(element); 206 m_elements.add(element);
206 if (!m_timer.isActive()) 207 if (!m_timer.isActive())
207 m_timer.startOneShot(0, FROM_HERE); 208 m_timer.startOneShot(0, FROM_HERE);
208 } 209 }
209 210
210 void RevalidateStyleAttributeTask::onTimer(Timer<RevalidateStyleAttributeTask>*) 211 void RevalidateStyleAttributeTask::onTimer(Timer<RevalidateStyleAttributeTask>*)
211 { 212 {
212 // The timer is stopped on m_domAgent destruction, so this method will never be called after m_domAgent has been destroyed. 213 // The timer is stopped on m_domAgent destruction, so this method will never be called after m_domAgent has been destroyed.
213 WillBeHeapVector<RawPtrWillBeMember<Element> > elements; 214 WillBeHeapVector<RawPtrWillBeMember<Element> > elements;
214 for (WillBePersistentHeapHashSet<RefPtrWillBeMember<Element> >::iterator it = m_elements.begin(), end = m_elements.end(); it != end; ++it) 215 for (WillBePersistentHeapHashSet<RefPtrWillBeMember<Element> >::iterator it = m_elements.begin(), end = m_elements.end(); it != end; ++it)
215 elements.append(it->get()); 216 elements.append(it->get());
216 m_domAgent->styleAttributeInvalidated(elements); 217 m_domAgent->styleAttributeInvalidated(elements);
217 218
218 m_elements.clear(); 219 m_elements.clear();
219 } 220 }
220 221
222 void RevalidateStyleAttributeTask::trace(Visitor* visitor)
223 {
224 visitor->trace(m_domAgent);
225 #if ENABLE(OILPAN)
226 visitor->trace(m_elements);
227 #endif
228 }
229
221 String InspectorDOMAgent::toErrorString(ExceptionState& exceptionState) 230 String InspectorDOMAgent::toErrorString(ExceptionState& exceptionState)
222 { 231 {
223 if (exceptionState.hadException()) 232 if (exceptionState.hadException())
224 return DOMException::getErrorName(exceptionState.code()) + " " + excepti onState.message(); 233 return DOMException::getErrorName(exceptionState.code()) + " " + excepti onState.message();
225 return ""; 234 return "";
226 } 235 }
227 236
228 InspectorDOMAgent::InspectorDOMAgent(InspectorPageAgent* pageAgent, InjectedScri ptManager* injectedScriptManager, InspectorOverlay* overlay) 237 InspectorDOMAgent::InspectorDOMAgent(InspectorPageAgent* pageAgent, InjectedScri ptManager* injectedScriptManager, InspectorOverlay* overlay)
229 : InspectorBaseAgent<InspectorDOMAgent>("DOM") 238 : InspectorBaseAgent<InspectorDOMAgent>("DOM")
230 , m_pageAgent(pageAgent) 239 , m_pageAgent(pageAgent)
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 for (unsigned i = 0; i < nodes->length(); ++i) 657 for (unsigned i = 0; i < nodes->length(); ++i)
649 result->addItem(pushNodePathToFrontend(nodes->item(i))); 658 result->addItem(pushNodePathToFrontend(nodes->item(i)));
650 } 659 }
651 660
652 int InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush) 661 int InspectorDOMAgent::pushNodePathToFrontend(Node* nodeToPush)
653 { 662 {
654 ASSERT(nodeToPush); // Invalid input 663 ASSERT(nodeToPush); // Invalid input
655 664
656 if (!m_document) 665 if (!m_document)
657 return 0; 666 return 0;
658 // FIXME: Oilpan: .get will be unnecessary if m_document is a Member<>. 667 if (!m_documentNodeToIdMap->contains(m_document))
659 if (!m_documentNodeToIdMap->contains(m_document.get()))
660 return 0; 668 return 0;
661 669
662 // Return id in case the node is known. 670 // Return id in case the node is known.
663 int result = m_documentNodeToIdMap->get(nodeToPush); 671 int result = m_documentNodeToIdMap->get(nodeToPush);
664 if (result) 672 if (result)
665 return result; 673 return result;
666 674
667 Node* node = nodeToPush; 675 Node* node = nodeToPush;
668 WillBeHeapVector<RawPtrWillBeMember<Node> > path; 676 WillBeHeapVector<RawPtrWillBeMember<Node> > path;
669 NodeToIdMap* danglingMap = 0; 677 NodeToIdMap* danglingMap = 0;
(...skipping 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after
1929 } 1937 }
1930 1938
1931 void InspectorDOMAgent::didInvalidateStyleAttr(Node* node) 1939 void InspectorDOMAgent::didInvalidateStyleAttr(Node* node)
1932 { 1940 {
1933 int id = m_documentNodeToIdMap->get(node); 1941 int id = m_documentNodeToIdMap->get(node);
1934 // If node is not mapped yet -> ignore the event. 1942 // If node is not mapped yet -> ignore the event.
1935 if (!id) 1943 if (!id)
1936 return; 1944 return;
1937 1945
1938 if (!m_revalidateStyleAttrTask) 1946 if (!m_revalidateStyleAttrTask)
1939 m_revalidateStyleAttrTask = adoptPtr(new RevalidateStyleAttributeTask(th is)); 1947 m_revalidateStyleAttrTask = adoptPtrWillBeNoop(new RevalidateStyleAttrib uteTask(this));
1940 m_revalidateStyleAttrTask->scheduleFor(toElement(node)); 1948 m_revalidateStyleAttrTask->scheduleFor(toElement(node));
1941 } 1949 }
1942 1950
1943 void InspectorDOMAgent::didPushShadowRoot(Element* host, ShadowRoot* root) 1951 void InspectorDOMAgent::didPushShadowRoot(Element* host, ShadowRoot* root)
1944 { 1952 {
1945 if (!host->ownerDocument()) 1953 if (!host->ownerDocument())
1946 return; 1954 return;
1947 1955
1948 int hostId = m_documentNodeToIdMap->get(host); 1956 int hostId = m_documentNodeToIdMap->get(host);
1949 if (!hostId) 1957 if (!hostId)
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 2117
2110 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(S criptState::forMainWorld(frame)); 2118 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(S criptState::forMainWorld(frame));
2111 if (injectedScript.isEmpty()) 2119 if (injectedScript.isEmpty())
2112 return nullptr; 2120 return nullptr;
2113 2121
2114 return injectedScript.wrapNode(node, objectGroup); 2122 return injectedScript.wrapNode(node, objectGroup);
2115 } 2123 }
2116 2124
2117 bool InspectorDOMAgent::pushDocumentUponHandlelessOperation(ErrorString* errorSt ring) 2125 bool InspectorDOMAgent::pushDocumentUponHandlelessOperation(ErrorString* errorSt ring)
2118 { 2126 {
2119 // FIXME: Oilpan: .get will be unnecessary if m_document is a Member<>. 2127 if (!m_documentNodeToIdMap->contains(m_document)) {
2120 if (!m_documentNodeToIdMap->contains(m_document.get())) {
2121 RefPtr<TypeBuilder::DOM::Node> root; 2128 RefPtr<TypeBuilder::DOM::Node> root;
2122 getDocument(errorString, root); 2129 getDocument(errorString, root);
2123 return errorString->isEmpty(); 2130 return errorString->isEmpty();
2124 } 2131 }
2125 return true; 2132 return true;
2126 } 2133 }
2127 2134
2128 void InspectorDOMAgent::trace(Visitor* visitor) 2135 void InspectorDOMAgent::trace(Visitor* visitor)
2129 { 2136 {
2130 visitor->trace(m_domListener); 2137 visitor->trace(m_domListener);
2131 visitor->trace(m_pageAgent); 2138 visitor->trace(m_pageAgent);
2139 visitor->trace(m_injectedScriptManager);
2132 #if ENABLE(OILPAN) 2140 #if ENABLE(OILPAN)
2133 visitor->trace(m_documentNodeToIdMap); 2141 visitor->trace(m_documentNodeToIdMap);
2134 visitor->trace(m_danglingNodeToIdMaps); 2142 visitor->trace(m_danglingNodeToIdMaps);
2135 visitor->trace(m_idToNode); 2143 visitor->trace(m_idToNode);
2136 visitor->trace(m_idToNodesMap); 2144 visitor->trace(m_idToNodesMap);
2137 visitor->trace(m_document); 2145 visitor->trace(m_document);
2146 visitor->trace(m_revalidateStyleAttrTask);
2138 visitor->trace(m_searchResults); 2147 visitor->trace(m_searchResults);
2139 #endif 2148 #endif
2140 visitor->trace(m_history); 2149 visitor->trace(m_history);
2141 visitor->trace(m_domEditor); 2150 visitor->trace(m_domEditor);
2142 visitor->trace(m_listener); 2151 visitor->trace(m_listener);
2143 InspectorBaseAgent::trace(visitor); 2152 InspectorBaseAgent::trace(visitor);
2144 } 2153 }
2145 2154
2146 } // namespace blink 2155 } // namespace blink
2147 2156
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorDOMAgent.h ('k') | Source/core/inspector/InspectorDebuggerAgent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698