Index: Source/devtools/front_end/DOMModel.js |
diff --git a/Source/devtools/front_end/DOMModel.js b/Source/devtools/front_end/DOMModel.js |
index e934b9d43f8eb9827ba2a13a3bcba52d7801c378..ced709aea9c63bdba3f637a5bddcc59c2aea5070 100644 |
--- a/Source/devtools/front_end/DOMModel.js |
+++ b/Source/devtools/front_end/DOMModel.js |
@@ -40,6 +40,7 @@ |
WebInspector.DOMNode = function(domModel, doc, isInShadowTree, payload) { |
WebInspector.TargetAware.call(this, domModel._target); |
this._domModel = domModel; |
+ this._agent = domModel._agent; |
this.ownerDocument = doc; |
this._isInShadowTree = isInShadowTree; |
@@ -136,6 +137,14 @@ WebInspector.DOMNode.ShadowRootTypes = { |
WebInspector.DOMNode.prototype = { |
/** |
+ * @return {!WebInspector.DOMModel} |
+ */ |
+ domModel: function() |
+ { |
+ return this._domModel; |
+ }, |
+ |
+ /** |
* @return {?Array.<!WebInspector.DOMNode>} |
*/ |
children: function() |
@@ -286,7 +295,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
setNodeName: function(name, callback) |
{ |
- DOMAgent.setNodeName(this.id, name, WebInspector.domModel._markRevision(this, callback)); |
+ this._agent.setNodeName(this.id, name, this._domModel._markRevision(this, callback)); |
}, |
/** |
@@ -311,7 +320,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
setNodeValue: function(value, callback) |
{ |
- DOMAgent.setNodeValue(this.id, value, WebInspector.domModel._markRevision(this, callback)); |
+ this._agent.setNodeValue(this.id, value, this._domModel._markRevision(this, callback)); |
}, |
/** |
@@ -331,7 +340,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
setAttribute: function(name, text, callback) |
{ |
- DOMAgent.setAttributesAsText(this.id, text, name, WebInspector.domModel._markRevision(this, callback)); |
+ this._agent.setAttributesAsText(this.id, text, name, this._domModel._markRevision(this, callback)); |
}, |
/** |
@@ -341,7 +350,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
setAttributeValue: function(name, value, callback) |
{ |
- DOMAgent.setAttributeValue(this.id, name, value, WebInspector.domModel._markRevision(this, callback)); |
+ this._agent.setAttributeValue(this.id, name, value, this._domModel._markRevision(this, callback)); |
}, |
/** |
@@ -374,9 +383,9 @@ WebInspector.DOMNode.prototype = { |
} |
} |
- WebInspector.domModel._markRevision(this, callback)(error); |
+ this._domModel._markRevision(this, callback)(error); |
} |
- DOMAgent.removeAttribute(this.id, name, mycallback.bind(this)); |
+ this._agent.removeAttribute(this.id, name, mycallback.bind(this)); |
}, |
/** |
@@ -400,7 +409,7 @@ WebInspector.DOMNode.prototype = { |
callback(error ? null : this.children()); |
} |
- DOMAgent.requestChildNodes(this.id, undefined, mycallback.bind(this)); |
+ this._agent.requestChildNodes(this.id, undefined, mycallback.bind(this)); |
}, |
/** |
@@ -419,7 +428,7 @@ WebInspector.DOMNode.prototype = { |
callback(error ? null : this._children); |
} |
- DOMAgent.requestChildNodes(this.id, depth, mycallback.bind(this)); |
+ this._agent.requestChildNodes(this.id, depth, mycallback.bind(this)); |
}, |
/** |
@@ -427,7 +436,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
getOuterHTML: function(callback) |
{ |
- DOMAgent.getOuterHTML(this.id, callback); |
+ this._agent.getOuterHTML(this.id, callback); |
}, |
/** |
@@ -436,7 +445,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
setOuterHTML: function(html, callback) |
{ |
- DOMAgent.setOuterHTML(this.id, html, WebInspector.domModel._markRevision(this, callback)); |
+ this._agent.setOuterHTML(this.id, html, this._domModel._markRevision(this, callback)); |
}, |
/** |
@@ -444,7 +453,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
removeNode: function(callback) |
{ |
- DOMAgent.removeNode(this.id, WebInspector.domModel._markRevision(this, callback)); |
+ this._agent.removeNode(this.id, this._domModel._markRevision(this, callback)); |
}, |
copyNode: function() |
@@ -454,7 +463,7 @@ WebInspector.DOMNode.prototype = { |
if (!error) |
InspectorFrontendHost.copyText(text); |
} |
- DOMAgent.getOuterHTML(this.id, copy); |
+ this._agent.getOuterHTML(this.id, copy); |
}, |
/** |
@@ -463,7 +472,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
eventListeners: function(objectGroupId, callback) |
{ |
- DOMAgent.getEventListenersForNode(this.id, objectGroupId, callback); |
+ this._agent.getEventListenersForNode(this.id, objectGroupId, callback); |
}, |
/** |
@@ -686,7 +695,7 @@ WebInspector.DOMNode.prototype = { |
*/ |
moveTo: function(targetNode, anchorNode, callback) |
{ |
- DOMAgent.moveTo(this.id, targetNode.id, anchorNode ? anchorNode.id : undefined, WebInspector.domModel._markRevision(this, callback)); |
+ this._agent.moveTo(this.id, targetNode.id, anchorNode ? anchorNode.id : undefined, this._domModel._markRevision(this, callback)); |
}, |
/** |
@@ -784,6 +793,50 @@ WebInspector.DOMNode.prototype = { |
return null; |
}, |
+ /** |
+ * @param {string=} mode |
+ * @param {!RuntimeAgent.RemoteObjectId=} objectId |
+ */ |
+ highlight: function(mode, objectId) |
+ { |
+ this._domModel.highlightDOMNode(this.id, mode, objectId); |
+ }, |
+ |
+ highlightForTwoSeconds: function() |
+ { |
+ this._domModel.highlightDOMNodeForTwoSeconds(this.id); |
+ }, |
+ |
+ reveal: function() |
+ { |
+ WebInspector.Revealer.reveal(this); |
+ }, |
+ |
+ /** |
+ * @param {string=} objectGroup |
+ * @param {function(?WebInspector.RemoteObject)=} callback |
+ */ |
+ resolveToObject: function(objectGroup, callback) |
+ { |
+ this._agent.resolveNode(this.id, objectGroup, mycallback.bind(this)); |
+ |
+ /** |
+ * @param {?Protocol.Error} error |
+ * @param {!RuntimeAgent.RemoteObject} object |
+ * @this {WebInspector.DOMNode} |
+ */ |
+ function mycallback(error, object) |
+ { |
+ if (!callback) |
+ return; |
+ |
+ if (error || !object) |
+ callback(null); |
+ else |
+ callback(this.target().runtimeModel.createRemoteObject(object)); |
+ } |
+ }, |
+ |
__proto__: WebInspector.TargetAware.prototype |
} |
@@ -813,6 +866,8 @@ WebInspector.DOMDocument.prototype = { |
*/ |
WebInspector.DOMModel = function(target) { |
this._target = target; |
+ this._agent = target.domAgent(); |
+ |
/** @type {!Object.<number, !WebInspector.DOMNode>} */ |
this._idToDOMNode = {}; |
/** @type {?WebInspector.DOMDocument} */ |
@@ -821,7 +876,7 @@ WebInspector.DOMModel = function(target) { |
this._attributeLoadNodeIds = {}; |
InspectorBackend.registerDOMDispatcher(new WebInspector.DOMDispatcher(this)); |
- this._defaultHighlighter = new WebInspector.DefaultDOMNodeHighlighter(); |
+ this._defaultHighlighter = new WebInspector.DefaultDOMNodeHighlighter(this._agent); |
this._highlighter = this._defaultHighlighter; |
} |
@@ -874,7 +929,7 @@ WebInspector.DOMModel.prototype = { |
delete this._pendingDocumentRequestCallbacks; |
} |
- DOMAgent.getDocument(onDocumentAvailable.bind(this)); |
+ this._agent.getDocument(onDocumentAvailable.bind(this)); |
}, |
/** |
@@ -891,7 +946,7 @@ WebInspector.DOMModel.prototype = { |
*/ |
pushNodeToFrontend: function(objectId, callback) |
{ |
- this._dispatchWhenDocumentAvailable(DOMAgent.requestNode.bind(DOMAgent, objectId), callback); |
+ this._dispatchWhenDocumentAvailable(this._agent.requestNode.bind(this._agent, objectId), callback); |
}, |
/** |
@@ -900,7 +955,7 @@ WebInspector.DOMModel.prototype = { |
*/ |
pushNodeByPathToFrontend: function(path, callback) |
{ |
- this._dispatchWhenDocumentAvailable(DOMAgent.pushNodeByPathToFrontend.bind(DOMAgent, path), callback); |
+ this._dispatchWhenDocumentAvailable(this._agent.pushNodeByPathToFrontend.bind(this._agent, path), callback); |
}, |
/** |
@@ -909,7 +964,7 @@ WebInspector.DOMModel.prototype = { |
*/ |
pushNodesByBackendIdsToFrontend: function(backendNodeIds, callback) |
{ |
- this._dispatchWhenDocumentAvailable(DOMAgent.pushNodesByBackendIdsToFrontend.bind(DOMAgent, backendNodeIds), callback); |
+ this._dispatchWhenDocumentAvailable(this._agent.pushNodesByBackendIdsToFrontend.bind(this._agent, backendNodeIds), callback); |
}, |
/** |
@@ -1022,7 +1077,7 @@ WebInspector.DOMModel.prototype = { |
for (var nodeId in this._attributeLoadNodeIds) { |
var nodeIdAsNumber = parseInt(nodeId, 10); |
- DOMAgent.getAttributes(nodeIdAsNumber, callback.bind(this, nodeIdAsNumber)); |
+ this._agent.getAttributes(nodeIdAsNumber, callback.bind(this, nodeIdAsNumber)); |
} |
this._attributeLoadNodeIds = {}; |
}, |
@@ -1248,7 +1303,7 @@ WebInspector.DOMModel.prototype = { |
this._searchId = searchId; |
searchCallback(resultsCount); |
} |
- DOMAgent.performSearch(query, callback.bind(this)); |
+ this._agent.performSearch(query, callback.bind(this)); |
}, |
/** |
@@ -1258,7 +1313,7 @@ WebInspector.DOMModel.prototype = { |
searchResult: function(index, callback) |
{ |
if (this._searchId) |
- DOMAgent.getSearchResults(this._searchId, index, index + 1, searchResultsCallback.bind(this)); |
+ this._agent.getSearchResults(this._searchId, index, index + 1, searchResultsCallback.bind(this)); |
else |
callback(null); |
@@ -1284,7 +1339,7 @@ WebInspector.DOMModel.prototype = { |
cancelSearch: function() |
{ |
if (this._searchId) { |
- DOMAgent.discardSearchResults(this._searchId); |
+ this._agent.discardSearchResults(this._searchId); |
delete this._searchId; |
} |
}, |
@@ -1296,7 +1351,7 @@ WebInspector.DOMModel.prototype = { |
*/ |
querySelector: function(nodeId, selectors, callback) |
{ |
- DOMAgent.querySelector(nodeId, selectors, this._wrapClientCallback(callback)); |
+ this._agent.querySelector(nodeId, selectors, this._wrapClientCallback(callback)); |
}, |
/** |
@@ -1306,7 +1361,7 @@ WebInspector.DOMModel.prototype = { |
*/ |
querySelectorAll: function(nodeId, selectors, callback) |
{ |
- DOMAgent.querySelectorAll(nodeId, selectors, this._wrapClientCallback(callback)); |
+ this._agent.querySelectorAll(nodeId, selectors, this._wrapClientCallback(callback)); |
}, |
/** |
@@ -1447,7 +1502,7 @@ WebInspector.DOMModel.prototype = { |
markUndoableState: function() |
{ |
- DOMAgent.markUndoableState(); |
+ this._agent.markUndoableState(); |
}, |
/** |
@@ -1466,7 +1521,7 @@ WebInspector.DOMModel.prototype = { |
} |
this.dispatchEventToListeners(WebInspector.DOMModel.Events.UndoRedoRequested); |
- DOMAgent.undo(callback); |
+ this._agent.undo(callback); |
}, |
/** |
@@ -1485,7 +1540,7 @@ WebInspector.DOMModel.prototype = { |
} |
this.dispatchEventToListeners(WebInspector.DOMModel.Events.UndoRedoRequested); |
- DOMAgent.redo(callback); |
+ this._agent.redo(callback); |
}, |
/** |
@@ -1659,8 +1714,11 @@ WebInspector.DOMNodeHighlighter.prototype = { |
/** |
* @constructor |
* @implements {WebInspector.DOMNodeHighlighter} |
+ * @param {!Protocol.DOMAgent} agent |
*/ |
-WebInspector.DefaultDOMNodeHighlighter = function() { |
+WebInspector.DefaultDOMNodeHighlighter = function(agent) |
+{ |
+ this._agent = agent; |
} |
WebInspector.DefaultDOMNodeHighlighter.prototype = { |
@@ -1672,9 +1730,9 @@ WebInspector.DefaultDOMNodeHighlighter.prototype = { |
highlightDOMNode: function(nodeId, config, objectId) |
{ |
if (objectId || nodeId) |
- DOMAgent.highlightNode(config, objectId ? undefined : nodeId, objectId); |
+ this._agent.highlightNode(config, objectId ? undefined : nodeId, objectId); |
else |
- DOMAgent.hideHighlight(); |
+ this._agent.hideHighlight(); |
}, |
/** |
@@ -1685,7 +1743,7 @@ WebInspector.DefaultDOMNodeHighlighter.prototype = { |
*/ |
setInspectModeEnabled: function(enabled, inspectUAShadowDOM, config, callback) |
{ |
- DOMAgent.setInspectModeEnabled(enabled, inspectUAShadowDOM, config, callback); |
+ this._agent.setInspectModeEnabled(enabled, inspectUAShadowDOM, config, callback); |
} |
} |