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

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

Issue 1311783003: Devtools[LayoutEditor]: Rework layout-editor workflow (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@resize
Patch Set: Rebase on dgozman changes Created 5 years, 3 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
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 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 virtual void didModifyDOMAttr(Element*) = 0; 87 virtual void didModifyDOMAttr(Element*) = 0;
88 }; 88 };
89 89
90 class Client { 90 class Client {
91 public: 91 public:
92 virtual ~Client() { } 92 virtual ~Client() { }
93 virtual void setInspectModeEnabled(bool) { } 93 virtual void setInspectModeEnabled(bool) { }
94 virtual void hideHighlight() { } 94 virtual void hideHighlight() { }
95 virtual void highlightNode(Node*, Node* eventTarget, const InspectorHigh lightConfig&, bool omitTooltip) { } 95 virtual void highlightNode(Node*, Node* eventTarget, const InspectorHigh lightConfig&, bool omitTooltip) { }
96 virtual void highlightQuad(PassOwnPtr<FloatQuad>, const InspectorHighlig htConfig&) { } 96 virtual void highlightQuad(PassOwnPtr<FloatQuad>, const InspectorHighlig htConfig&) { }
97 virtual void showLayoutEditorForNode(Node*, const InspectorHighlightConf ig&) { }
97 }; 98 };
98 99
99 static PassOwnPtrWillBeRawPtr<InspectorDOMAgent> create(InspectorPageAgent* pageAgent, InjectedScriptManager* injectedScriptManager, Client* client) 100 static PassOwnPtrWillBeRawPtr<InspectorDOMAgent> create(InspectorPageAgent* pageAgent, InjectedScriptManager* injectedScriptManager, Client* client)
100 { 101 {
101 return adoptPtrWillBeNoop(new InspectorDOMAgent(pageAgent, injectedScrip tManager, client)); 102 return adoptPtrWillBeNoop(new InspectorDOMAgent(pageAgent, injectedScrip tManager, client));
102 } 103 }
103 104
104 static String toErrorString(ExceptionState&); 105 static String toErrorString(ExceptionState&);
105 static bool getPseudoElementType(PseudoId, TypeBuilder::DOM::PseudoType::Enu m*); 106 static bool getPseudoElementType(PseudoId, TypeBuilder::DOM::PseudoType::Enu m*);
106 107
(...skipping 18 matching lines...) Expand all
125 void removeNode(ErrorString*, int nodeId) override; 126 void removeNode(ErrorString*, int nodeId) override;
126 void setNodeName(ErrorString*, int nodeId, const String& name, int* newId) o verride; 127 void setNodeName(ErrorString*, int nodeId, const String& name, int* newId) o verride;
127 void getOuterHTML(ErrorString*, int nodeId, WTF::String* outerHTML) override ; 128 void getOuterHTML(ErrorString*, int nodeId, WTF::String* outerHTML) override ;
128 void setOuterHTML(ErrorString*, int nodeId, const String& outerHTML) overrid e; 129 void setOuterHTML(ErrorString*, int nodeId, const String& outerHTML) overrid e;
129 void setNodeValue(ErrorString*, int nodeId, const String& value) override; 130 void setNodeValue(ErrorString*, int nodeId, const String& value) override;
130 void performSearch(ErrorString*, const String& whitespaceTrimmedQuery, const bool* includeUserAgentShadowDOM, String* searchId, int* resultCount) override; 131 void performSearch(ErrorString*, const String& whitespaceTrimmedQuery, const bool* includeUserAgentShadowDOM, String* searchId, int* resultCount) override;
131 void getSearchResults(ErrorString*, const String& searchId, int fromIndex, i nt toIndex, RefPtr<TypeBuilder::Array<int>>&) override; 132 void getSearchResults(ErrorString*, const String& searchId, int fromIndex, i nt toIndex, RefPtr<TypeBuilder::Array<int>>&) override;
132 void discardSearchResults(ErrorString*, const String& searchId) override; 133 void discardSearchResults(ErrorString*, const String& searchId) override;
133 void resolveNode(ErrorString*, int nodeId, const String* objectGroup, RefPtr <TypeBuilder::Runtime::RemoteObject>& result) override; 134 void resolveNode(ErrorString*, int nodeId, const String* objectGroup, RefPtr <TypeBuilder::Runtime::RemoteObject>& result) override;
134 void getAttributes(ErrorString*, int nodeId, RefPtr<TypeBuilder::Array<Strin g>>& result) override; 135 void getAttributes(ErrorString*, int nodeId, RefPtr<TypeBuilder::Array<Strin g>>& result) override;
135 void setInspectModeEnabled(ErrorString*, bool enabled, const bool* inspectUA ShadowDOM, const RefPtr<JSONObject>* highlightConfig) override; 136 void setInspectModeEnabled(ErrorString*, bool enabled, const String* mode, c onst RefPtr<JSONObject>* highlightConfig) override;
136 void requestNode(ErrorString*, const String& objectId, int* nodeId) override ; 137 void requestNode(ErrorString*, const String& objectId, int* nodeId) override ;
137 void pushNodeByPathToFrontend(ErrorString*, const String& path, int* nodeId) override; 138 void pushNodeByPathToFrontend(ErrorString*, const String& path, int* nodeId) override;
138 void pushNodesByBackendIdsToFrontend(ErrorString*, const RefPtr<JSONArray>& nodeIds, RefPtr<TypeBuilder::Array<int>>&) override; 139 void pushNodesByBackendIdsToFrontend(ErrorString*, const RefPtr<JSONArray>& nodeIds, RefPtr<TypeBuilder::Array<int>>&) override;
139 void setInspectedNode(ErrorString*, int nodeId) override; 140 void setInspectedNode(ErrorString*, int nodeId) override;
140 void hideHighlight(ErrorString*) override; 141 void hideHighlight(ErrorString*) override;
141 void highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<JSONObject>* color, const RefPtr<JSONObject>* outlineColor) override; 142 void highlightRect(ErrorString*, int x, int y, int width, int height, const RefPtr<JSONObject>* color, const RefPtr<JSONObject>* outlineColor) override;
142 void highlightQuad(ErrorString*, const RefPtr<JSONArray>& quad, const RefPtr <JSONObject>* color, const RefPtr<JSONObject>* outlineColor) override; 143 void highlightQuad(ErrorString*, const RefPtr<JSONArray>& quad, const RefPtr <JSONObject>* color, const RefPtr<JSONObject>* outlineColor) override;
143 void highlightNode(ErrorString*, const RefPtr<JSONObject>& highlightConfig, const int* nodeId, const int* backendNodeId, const String* objectId) override; 144 void highlightNode(ErrorString*, const RefPtr<JSONObject>& highlightConfig, const int* nodeId, const int* backendNodeId, const String* objectId) override;
144 void highlightFrame(ErrorString*, const String& frameId, const RefPtr<JSONOb ject>* color, const RefPtr<JSONObject>* outlineColor) override; 145 void highlightFrame(ErrorString*, const String& frameId, const RefPtr<JSONOb ject>* color, const RefPtr<JSONObject>* outlineColor) override;
145 146
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 static String documentURLString(Document*); 185 static String documentURLString(Document*);
185 186
186 PassRefPtr<TypeBuilder::Runtime::RemoteObject> resolveNode(Node*, const Stri ng& objectGroup); 187 PassRefPtr<TypeBuilder::Runtime::RemoteObject> resolveNode(Node*, const Stri ng& objectGroup);
187 bool handleMousePress(); 188 bool handleMousePress();
188 bool handleGestureEvent(LocalFrame*, const PlatformGestureEvent&); 189 bool handleGestureEvent(LocalFrame*, const PlatformGestureEvent&);
189 bool handleTouchEvent(LocalFrame*, const PlatformTouchEvent&); 190 bool handleTouchEvent(LocalFrame*, const PlatformTouchEvent&);
190 bool handleMouseMove(LocalFrame*, const PlatformMouseEvent&); 191 bool handleMouseMove(LocalFrame*, const PlatformMouseEvent&);
191 192
192 InspectorHistory* history() { return m_history.get(); } 193 InspectorHistory* history() { return m_history.get(); }
193 194
195 void resumeSearchingForNode(Node*);
196
194 // We represent embedded doms as a part of the same hierarchy. Hence we trea t children of frame owners differently. 197 // We represent embedded doms as a part of the same hierarchy. Hence we trea t children of frame owners differently.
195 // We also skip whitespace text nodes conditionally. Following methods encap sulate these specifics. 198 // We also skip whitespace text nodes conditionally. Following methods encap sulate these specifics.
196 static Node* innerFirstChild(Node*); 199 static Node* innerFirstChild(Node*);
197 static Node* innerNextSibling(Node*); 200 static Node* innerNextSibling(Node*);
198 static Node* innerPreviousSibling(Node*); 201 static Node* innerPreviousSibling(Node*);
199 static unsigned innerChildNodeCount(Node*); 202 static unsigned innerChildNodeCount(Node*);
200 static Node* innerParentNode(Node*); 203 static Node* innerParentNode(Node*);
201 static bool isWhitespace(Node*); 204 static bool isWhitespace(Node*);
202 205
203 Node* assertNode(ErrorString*, int nodeId); 206 Node* assertNode(ErrorString*, int nodeId);
204 Element* assertElement(ErrorString*, int nodeId); 207 Element* assertElement(ErrorString*, int nodeId);
205 Document* assertDocument(ErrorString*, int nodeId); 208 Document* assertDocument(ErrorString*, int nodeId);
206 209
207 private: 210 private:
208 enum SearchMode { NotSearching, SearchingForNormal, SearchingForUAShadow }; 211 enum SearchMode { NotSearching, SearchingForNormal, SearchingForUAShadow, Se archingInLayoutEditor };
209 212
210 InspectorDOMAgent(InspectorPageAgent*, InjectedScriptManager*, Client*); 213 InspectorDOMAgent(InspectorPageAgent*, InjectedScriptManager*, Client*);
211 214
212 void setDocument(Document*); 215 void setDocument(Document*);
213 void innerEnable(); 216 void innerEnable();
214 217
215 void setSearchingForNode(ErrorString*, SearchMode, JSONObject* highlightConf ig); 218 void setSearchingForNode(ErrorString*, SearchMode, JSONObject* highlightConf ig);
216 PassOwnPtr<InspectorHighlightConfig> highlightConfigFromInspectorObject(Erro rString*, JSONObject* highlightInspectorObject); 219 PassOwnPtr<InspectorHighlightConfig> highlightConfigFromInspectorObject(Erro rString*, JSONObject* highlightInspectorObject);
217 220
218 // Node-related methods. 221 // Node-related methods.
(...skipping 20 matching lines...) Expand all
239 Node* nodeForPath(const String& path); 242 Node* nodeForPath(const String& path);
240 Node* nodeForRemoteId(ErrorString*, const String& id); 243 Node* nodeForRemoteId(ErrorString*, const String& id);
241 244
242 void discardFrontendBindings(); 245 void discardFrontendBindings();
243 246
244 void innerHighlightQuad(PassOwnPtr<FloatQuad>, const RefPtr<JSONObject>* col or, const RefPtr<JSONObject>* outlineColor); 247 void innerHighlightQuad(PassOwnPtr<FloatQuad>, const RefPtr<JSONObject>* col or, const RefPtr<JSONObject>* outlineColor);
245 248
246 bool pushDocumentUponHandlelessOperation(ErrorString*); 249 bool pushDocumentUponHandlelessOperation(ErrorString*);
247 250
248 RawPtrWillBeMember<InspectorRevalidateDOMTask> revalidateTask(); 251 RawPtrWillBeMember<InspectorRevalidateDOMTask> revalidateTask();
252 bool shouldHandleInputEvents();
249 253
250 RawPtrWillBeMember<InspectorPageAgent> m_pageAgent; 254 RawPtrWillBeMember<InspectorPageAgent> m_pageAgent;
251 RawPtrWillBeMember<InjectedScriptManager> m_injectedScriptManager; 255 RawPtrWillBeMember<InjectedScriptManager> m_injectedScriptManager;
252 Client* m_client; 256 Client* m_client;
253 RawPtrWillBeMember<DOMListener> m_domListener; 257 RawPtrWillBeMember<DOMListener> m_domListener;
254 OwnPtrWillBeMember<NodeToIdMap> m_documentNodeToIdMap; 258 OwnPtrWillBeMember<NodeToIdMap> m_documentNodeToIdMap;
255 // Owns node mappings for dangling nodes. 259 // Owns node mappings for dangling nodes.
256 WillBeHeapVector<OwnPtrWillBeMember<NodeToIdMap> > m_danglingNodeToIdMaps; 260 WillBeHeapVector<OwnPtrWillBeMember<NodeToIdMap> > m_danglingNodeToIdMaps;
257 WillBeHeapHashMap<int, RawPtrWillBeMember<Node> > m_idToNode; 261 WillBeHeapHashMap<int, RawPtrWillBeMember<Node> > m_idToNode;
258 WillBeHeapHashMap<int, RawPtrWillBeMember<NodeToIdMap> > m_idToNodesMap; 262 WillBeHeapHashMap<int, RawPtrWillBeMember<NodeToIdMap> > m_idToNodesMap;
259 HashSet<int> m_childrenRequested; 263 HashSet<int> m_childrenRequested;
260 HashSet<int> m_distributedNodesRequested; 264 HashSet<int> m_distributedNodesRequested;
261 HashMap<int, int> m_cachedChildCount; 265 HashMap<int, int> m_cachedChildCount;
262 int m_lastNodeId; 266 int m_lastNodeId;
263 RefPtrWillBeMember<Document> m_document; 267 RefPtrWillBeMember<Document> m_document;
264 typedef WillBeHeapHashMap<String, WillBeHeapVector<RefPtrWillBeMember<Node> > > SearchResults; 268 typedef WillBeHeapHashMap<String, WillBeHeapVector<RefPtrWillBeMember<Node> > > SearchResults;
265 SearchResults m_searchResults; 269 SearchResults m_searchResults;
266 OwnPtrWillBeMember<InspectorRevalidateDOMTask> m_revalidateTask; 270 OwnPtrWillBeMember<InspectorRevalidateDOMTask> m_revalidateTask;
267 SearchMode m_searchingForNode; 271 SearchMode m_searchingForNode;
268 OwnPtr<InspectorHighlightConfig> m_inspectModeHighlightConfig; 272 OwnPtr<InspectorHighlightConfig> m_inspectModeHighlightConfig;
269 RefPtrWillBeMember<Node> m_hoveredNodeForInspectMode; 273 RefPtrWillBeMember<Node> m_hoveredNodeForInspectMode;
270 OwnPtrWillBeMember<InspectorHistory> m_history; 274 OwnPtrWillBeMember<InspectorHistory> m_history;
271 OwnPtrWillBeMember<DOMEditor> m_domEditor; 275 OwnPtrWillBeMember<DOMEditor> m_domEditor;
272 bool m_suppressAttributeModifiedEvent; 276 bool m_suppressAttributeModifiedEvent;
273 int m_backendNodeIdToInspect; 277 int m_backendNodeIdToInspect;
278 bool m_layoutEditorEnabled;
274 }; 279 };
275 280
276 281
277 } // namespace blink 282 } // namespace blink
278 283
279 #endif // !defined(InspectorDOMAgent_h) 284 #endif // !defined(InspectorDOMAgent_h)
OLDNEW
« no previous file with comments | « no previous file | Source/core/inspector/InspectorDOMAgent.cpp » ('j') | Source/core/inspector/InspectorDOMAgent.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698