| Index: Source/devtools/front_end/elements/ElementsTreeOutline.js
|
| diff --git a/Source/devtools/front_end/elements/ElementsTreeOutline.js b/Source/devtools/front_end/elements/ElementsTreeOutline.js
|
| index 5835dc10bdaf667618e6c8b2bdf88eef572f76cb..45b72a08995f97a7277a6757760c09e4d3d68b34 100644
|
| --- a/Source/devtools/front_end/elements/ElementsTreeOutline.js
|
| +++ b/Source/devtools/front_end/elements/ElementsTreeOutline.js
|
| @@ -40,21 +40,27 @@ WebInspector.ElementsTreeOutline = function(target, omitRootDOMNode, selectEnabl
|
| {
|
| this._target = target;
|
| this._domModel = target.domModel;
|
| - this.element = document.createElement("ol");
|
| - this.element.className = "elements-tree-outline";
|
| - this.element.addEventListener("mousedown", this._onmousedown.bind(this), false);
|
| - this.element.addEventListener("mousemove", this._onmousemove.bind(this), false);
|
| - this.element.addEventListener("mouseout", this._onmouseout.bind(this), false);
|
| - this.element.addEventListener("dragstart", this._ondragstart.bind(this), false);
|
| - this.element.addEventListener("dragover", this._ondragover.bind(this), false);
|
| - this.element.addEventListener("dragleave", this._ondragleave.bind(this), false);
|
| - this.element.addEventListener("drop", this._ondrop.bind(this), false);
|
| - this.element.addEventListener("dragend", this._ondragend.bind(this), false);
|
| - this.element.addEventListener("keydown", this._onkeydown.bind(this), false);
|
| - this.element.addEventListener("webkitAnimationEnd", this._onAnimationEnd.bind(this), false);
|
| - this.element.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), false);
|
| -
|
| - TreeOutline.call(this, this.element);
|
| + var element = document.createElement("div");
|
| +
|
| + this._shadowRoot = element.createShadowRoot();
|
| + this._shadowRoot.appendChild(WebInspector.View.createStyleElement("elementsTreeOutline.css"));
|
| +
|
| + var outlineDisclosureElement = this._shadowRoot.createChild("div", "component-root outline-disclosure source-code");
|
| + this._element = outlineDisclosureElement.createChild("ol", "elements-tree-outline");
|
| + this._element.addEventListener("mousedown", this._onmousedown.bind(this), false);
|
| + this._element.addEventListener("mousemove", this._onmousemove.bind(this), false);
|
| + this._element.addEventListener("mouseout", this._onmouseout.bind(this), false);
|
| + this._element.addEventListener("dragstart", this._ondragstart.bind(this), false);
|
| + this._element.addEventListener("dragover", this._ondragover.bind(this), false);
|
| + this._element.addEventListener("dragleave", this._ondragleave.bind(this), false);
|
| + this._element.addEventListener("drop", this._ondrop.bind(this), false);
|
| + this._element.addEventListener("dragend", this._ondragend.bind(this), false);
|
| + this._element.addEventListener("keydown", this._onkeydown.bind(this), false);
|
| + this._element.addEventListener("webkitAnimationEnd", this._onAnimationEnd.bind(this), false);
|
| + this._element.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), false);
|
| +
|
| + TreeOutline.call(this, this._element);
|
| + this.element = element;
|
|
|
| this._includeRootDOMNode = !omitRootDOMNode;
|
| this._selectEnabled = selectEnabled;
|
| @@ -121,7 +127,7 @@ WebInspector.ElementsTreeOutline.prototype = {
|
| setPickNodeMode: function(value)
|
| {
|
| this._pickNodeMode = value;
|
| - this.element.classList.toggle("pick-node-mode", value);
|
| + this._element.classList.toggle("pick-node-mode", value);
|
| },
|
|
|
| /**
|
| @@ -551,7 +557,7 @@ WebInspector.ElementsTreeOutline.prototype = {
|
| */
|
| _treeElementFromEvent: function(event)
|
| {
|
| - var scrollContainer = this.element.parentElement;
|
| + var scrollContainer = this._element.parentElement;
|
|
|
| // We choose this X coordinate based on the knowledge that our list
|
| // items extend at least to the right edge of the outer <ol> container.
|
| @@ -609,8 +615,8 @@ WebInspector.ElementsTreeOutline.prototype = {
|
|
|
| _onmouseout: function(event)
|
| {
|
| - var nodeUnderMouse = document.elementFromPoint(event.pageX, event.pageY);
|
| - if (nodeUnderMouse && nodeUnderMouse.isDescendant(this.element))
|
| + var nodeUnderMouse = event.elementFromPoint();
|
| + if (nodeUnderMouse && nodeUnderMouse.isDescendant(this._element))
|
| return;
|
|
|
| if (this._previousHoveredElement) {
|
| @@ -773,7 +779,6 @@ WebInspector.ElementsTreeOutline.prototype = {
|
| return;
|
|
|
| var contextMenu = new WebInspector.ContextMenu(event);
|
| -
|
| var isPseudoElement = !!treeElement._node.pseudoType();
|
| var isTag = treeElement._node.nodeType() === Node.ELEMENT_NODE && !isPseudoElement;
|
| var textNode = event.target.enclosingNodeOrSelfWithClass("webkit-html-text-node");
|
| @@ -1947,7 +1952,7 @@ WebInspector.ElementsTreeElement.prototype = {
|
|
|
| this.treeOutline.childrenListElement.parentElement.removeEventListener("mousedown", consume, false);
|
| this.updateSelection();
|
| - this.treeOutline.element.focus();
|
| + this.treeOutline._element.focus();
|
| }
|
|
|
| var config = new WebInspector.InplaceEditor.Config(commit.bind(this), dispose.bind(this));
|
| @@ -2854,7 +2859,7 @@ WebInspector.ElementsTreeUpdater.prototype = {
|
| if (hidePanelWhileUpdating) {
|
| var treeOutlineContainerElement = this._treeOutline.element.parentNode;
|
| var originalScrollTop = treeOutlineContainerElement ? treeOutlineContainerElement.scrollTop : 0;
|
| - this._treeOutline.element.classList.add("hidden");
|
| + this._treeOutline._element.classList.add("hidden");
|
| }
|
|
|
| if (this._treeOutline._rootDOMNode && this._recentlyModifiedParentNodes.contains(this._treeOutline._rootDOMNode)) {
|
| @@ -2877,7 +2882,7 @@ WebInspector.ElementsTreeUpdater.prototype = {
|
| }
|
|
|
| if (hidePanelWhileUpdating) {
|
| - this._treeOutline.element.classList.remove("hidden");
|
| + this._treeOutline._element.classList.remove("hidden");
|
| if (originalScrollTop)
|
| treeOutlineContainerElement.scrollTop = originalScrollTop;
|
| this._treeOutline.updateSelection();
|
| @@ -2941,9 +2946,8 @@ WebInspector.ElementsTreeOutline.Renderer.prototype = {
|
| }
|
| var treeOutline = new WebInspector.ElementsTreeOutline(node.target(), false, false);
|
| treeOutline.rootDOMNode = node;
|
| - treeOutline.element.classList.add("outline-disclosure");
|
| if (!treeOutline.children[0].hasChildren)
|
| - treeOutline.element.classList.add("single-node");
|
| + treeOutline._element.classList.add("single-node");
|
| treeOutline.setVisible(true);
|
| treeOutline.element.treeElementForTest = treeOutline.children[0];
|
| resolve(treeOutline.element);
|
|
|