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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/elements/ElementsTreeOutline.js

Issue 2450663004: DevTools: do not allow using 'this' before call into super. (Closed)
Patch Set: rebaselined Created 4 years, 1 month 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) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
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 19 matching lines...) Expand all
30 30
31 /** 31 /**
32 * @constructor 32 * @constructor
33 * @extends {TreeOutline} 33 * @extends {TreeOutline}
34 * @param {!WebInspector.DOMModel} domModel 34 * @param {!WebInspector.DOMModel} domModel
35 * @param {boolean=} omitRootDOMNode 35 * @param {boolean=} omitRootDOMNode
36 * @param {boolean=} selectEnabled 36 * @param {boolean=} selectEnabled
37 */ 37 */
38 WebInspector.ElementsTreeOutline = function(domModel, omitRootDOMNode, selectEna bled) 38 WebInspector.ElementsTreeOutline = function(domModel, omitRootDOMNode, selectEna bled)
39 { 39 {
40 TreeOutline.call(this);
41
40 this._domModel = domModel; 42 this._domModel = domModel;
41 this._treeElementSymbol = Symbol("treeElement"); 43 this._treeElementSymbol = Symbol("treeElement");
42 44 var shadowContainer = createElement("div");
43 var element = createElement("div"); 45 this._shadowRoot = WebInspector.createShadowRootWithCoreStyles(shadowContain er, "elements/elementsTreeOutline.css");
44
45 this._shadowRoot = WebInspector.createShadowRootWithCoreStyles(element, "ele ments/elementsTreeOutline.css");
46 var outlineDisclosureElement = this._shadowRoot.createChild("div", "elements -disclosure"); 46 var outlineDisclosureElement = this._shadowRoot.createChild("div", "elements -disclosure");
47 47
48 TreeOutline.call(this);
49 this._element = this.element; 48 this._element = this.element;
50 this._element.classList.add("elements-tree-outline", "source-code"); 49 this._element.classList.add("elements-tree-outline", "source-code");
51 this._element.addEventListener("mousedown", this._onmousedown.bind(this), fa lse); 50 this._element.addEventListener("mousedown", this._onmousedown.bind(this), fa lse);
52 this._element.addEventListener("mousemove", this._onmousemove.bind(this), fa lse); 51 this._element.addEventListener("mousemove", this._onmousemove.bind(this), fa lse);
53 this._element.addEventListener("mouseleave", this._onmouseleave.bind(this), false); 52 this._element.addEventListener("mouseleave", this._onmouseleave.bind(this), false);
54 this._element.addEventListener("dragstart", this._ondragstart.bind(this), fa lse); 53 this._element.addEventListener("dragstart", this._ondragstart.bind(this), fa lse);
55 this._element.addEventListener("dragover", this._ondragover.bind(this), fals e); 54 this._element.addEventListener("dragover", this._ondragover.bind(this), fals e);
56 this._element.addEventListener("dragleave", this._ondragleave.bind(this), fa lse); 55 this._element.addEventListener("dragleave", this._ondragleave.bind(this), fa lse);
57 this._element.addEventListener("drop", this._ondrop.bind(this), false); 56 this._element.addEventListener("drop", this._ondrop.bind(this), false);
58 this._element.addEventListener("dragend", this._ondragend.bind(this), false) ; 57 this._element.addEventListener("dragend", this._ondragend.bind(this), false) ;
59 this._element.addEventListener("contextmenu", this._contextMenuEventFired.bi nd(this), false); 58 this._element.addEventListener("contextmenu", this._contextMenuEventFired.bi nd(this), false);
60 this._element.addEventListener("clipboard-beforecopy", this._onBeforeCopy.bi nd(this), false); 59 this._element.addEventListener("clipboard-beforecopy", this._onBeforeCopy.bi nd(this), false);
61 this._element.addEventListener("clipboard-copy", this._onCopyOrCut.bind(this , false), false); 60 this._element.addEventListener("clipboard-copy", this._onCopyOrCut.bind(this , false), false);
62 this._element.addEventListener("clipboard-cut", this._onCopyOrCut.bind(this, true), false); 61 this._element.addEventListener("clipboard-cut", this._onCopyOrCut.bind(this, true), false);
63 this._element.addEventListener("clipboard-paste", this._onPaste.bind(this), false); 62 this._element.addEventListener("clipboard-paste", this._onPaste.bind(this), false);
64 63
65 outlineDisclosureElement.appendChild(this._element); 64 outlineDisclosureElement.appendChild(this._element);
66 this.element = element; 65 this.element = shadowContainer;
67 66
68 this._includeRootDOMNode = !omitRootDOMNode; 67 this._includeRootDOMNode = !omitRootDOMNode;
69 this._selectEnabled = selectEnabled; 68 this._selectEnabled = selectEnabled;
70 /** @type {?WebInspector.DOMNode} */ 69 /** @type {?WebInspector.DOMNode} */
71 this._rootDOMNode = null; 70 this._rootDOMNode = null;
72 /** @type {?WebInspector.DOMNode} */ 71 /** @type {?WebInspector.DOMNode} */
73 this._selectedDOMNode = null; 72 this._selectedDOMNode = null;
74 73
75 this._visible = false; 74 this._visible = false;
76 75
77 this._popoverHelper = new WebInspector.PopoverHelper(this._element, this._ge tPopoverAnchor.bind(this), this._showPopover.bind(this)); 76 this._popoverHelper = new WebInspector.PopoverHelper(this._element);
77 this._popoverHelper.initializeCallbacks(this._getPopoverAnchor.bind(this), t his._showPopover.bind(this));
78 this._popoverHelper.setTimeout(0, 100); 78 this._popoverHelper.setTimeout(0, 100);
79 79
80 /** @type {!Map<!WebInspector.DOMNode, !WebInspector.ElementsTreeOutline.Upd ateRecord>} */ 80 /** @type {!Map<!WebInspector.DOMNode, !WebInspector.ElementsTreeOutline.Upd ateRecord>} */
81 this._updateRecords = new Map(); 81 this._updateRecords = new Map();
82 /** @type {!Set<!WebInspector.ElementsTreeElement>} */ 82 /** @type {!Set<!WebInspector.ElementsTreeElement>} */
83 this._treeElementsBeingUpdated = new Set(); 83 this._treeElementsBeingUpdated = new Set();
84 84
85 this._domModel.addEventListener(WebInspector.DOMModel.Events.MarkersChanged, this._markersChanged, this); 85 this._domModel.addEventListener(WebInspector.DOMModel.Events.MarkersChanged, this._markersChanged, this);
86 this._showHTMLCommentsSetting = WebInspector.moduleSetting("showHTMLComments "); 86 this._showHTMLCommentsSetting = WebInspector.moduleSetting("showHTMLComments ");
87 this._showHTMLCommentsSetting.addChangeListener(this._onShowHTMLCommentsChan ge.bind(this)); 87 this._showHTMLCommentsSetting.addChangeListener(this._onShowHTMLCommentsChan ge.bind(this));
(...skipping 1704 matching lines...) Expand 10 before | Expand all | Expand 10 after
1792 if (node) { 1792 if (node) {
1793 this.treeOutline._selectedDOMNode = node; 1793 this.treeOutline._selectedDOMNode = node;
1794 this.treeOutline._selectedNodeChanged(); 1794 this.treeOutline._selectedNodeChanged();
1795 } 1795 }
1796 } 1796 }
1797 return true; 1797 return true;
1798 }, 1798 },
1799 1799
1800 __proto__: TreeElement.prototype 1800 __proto__: TreeElement.prototype
1801 }; 1801 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698