Name Description Size
constants.js Any event listener flagged with this symbol will not be considered when the EventCollector class enumerates listeners for nodes. For example: const someListener = () => {}; someListener[EXCLUDED_LISTENER] = true; node.addEventListener("event", someListener); 631
css-logic.js About the objects defined in this file: - CssLogic contains style information about a view context. It provides access to 2 sets of objects: Css[Sheet|Rule|Selector] provide access to information that does not change when the selected element changes while Css[Property|Selector]Info provide information that is dependent on the selected element. Its key methods are highlight(), getPropertyInfo() and forEachSheet(), etc - CssSheet provides a more useful API to a DOM CSSSheet for our purposes, including shortSource and href. - CssRule a more useful API to a DOM CSSRule including access to the group of CssSelectors that the rule provides properties for - CssSelector A single selector - i.e. not a selector group. In other words a CssSelector does not contain ','. This terminology is different from the standard DOM API, but more inline with the definition in the spec. - CssPropertyInfo contains style information for a single property for the highlighted element. - CssSelectorInfo is a wrapper around CssSelector, which adds sorting with reference to the selected element. 47968
custom-element-watcher.js The CustomElementWatcher can be used to be notified if a custom element definition is created for a node. When a custom element is defined for a monitored name, an "element-defined" event is fired with the following Object argument: - {String} name: name of the custom element defined - {Set} Set of impacted node actors 4212
document-walker.js Wrapper for inDeepTreeWalker. Adds filtering to the traversal methods. See inDeepTreeWalker for more information about the methods. @param {DOMNode} node @param {Window} rootWin @param {Object} - {Function} filter A custom filter function Taking in a DOMNode and returning an Int. See WalkerActor.nodeFilter for an example. - {String} skipTo Either SKIP_TO_PARENT or SKIP_TO_SIBLING. If the provided node is not compatible with the filter function for this walker, try to find a compatible one either in the parents or in the siblings of the node. - {Boolean} showAnonymousContent Pass true to let the walker return and traverse anonymous content. When navigating host elements to which shadow DOM is attached, the light tree will be visible only to a walker with showAnonymousContent=false. The shadow tree will only be visible to a walker with showAnonymousContent=true. 5574
event-collector.js The base class that all the enent collectors should be based upon. 29986
inspector.js Here's the server side of the remote inspector. The WalkerActor is the client's view of the debuggee's DOM. It's gives the client a tree of NodeActor objects. The walker presents the DOM tree mostly unmodified from the source DOM tree, but with a few key differences: - Empty text nodes are ignored. This is pretty typical of developer tools, but maybe we should reconsider that on the server side. - iframes with documents loaded have the loaded document as the child, the walker provides one big tree for the whole document tree. There are a few ways to get references to NodeActors: - When you first get a WalkerActor reference, it comes with a free reference to the root document's node. - Given a node, you can ask for children, siblings, and parents. - You can issue querySelector and querySelectorAll requests to find other elements. - Requests that return arbitrary nodes from the tree (like querySelector and querySelectorAll) will also return any nodes the client hasn't seen in order to have a complete set of parents. Once you have a NodeFront, you should be able to answer a few questions without further round trips, like the node's name, namespace/tagName, attributes, etc. Other questions (like a text node's full nodeValue) might require another round trip. The protocol guarantees that the client will always know the parent of any node that is returned by the server. This means that some requests (like querySelector) will include the extra nodes needed to satisfy this requirement. The client keeps track of this parent relationship, so the node fronts form a tree that is a subset of the actual DOM tree. We maintain this guarantee to support the ability to release subtrees on the client - when a node is disconnected from the DOM tree we want to be able to free the client objects for all the children nodes. So to be able to answer "all the children of a given node that we have seen on the client side", we guarantee that every time we've seen a node, we connect it up through its parents. 11843 588
node-picker.js Return the topmost visible element located at the event mouse position. This is different from retrieving the event target as it allows to retrieve elements for which we wouldn't have mouse event triggered (e.g. elements with `pointer-events: none`) @param {MouseEvent} event @returns HTMLElement 13519
node.js Server side of the node actor. 26861
utils.js Returns the properly cased version of the node's tag name, which can be used when displaying said name in the UI. @param {Node} rawNode Node for which we want the display name @return {String} Properly cased version of the node tag name 17112
walker.js We only send nodeValue up to a certain size by default. This stuff controls that size. 83654