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

Side by Side Diff: third_party/WebKit/Source/core/dom/Node.h

Issue 2390543002: Reflow comments in core/dom/. (Closed)
Patch Set: Reformat comments in core/dom/. Created 4 years, 2 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved. 5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved.
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
7 * (http://www.torchmobile.com/)
7 * 8 *
8 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 11 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version. 12 * version 2 of the License, or (at your option) any later version.
12 * 13 *
13 * This library is distributed in the hope that it will be useful, 14 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details. 17 * Library General Public License for more details.
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 kAttributeNode = 2, 144 kAttributeNode = 2,
144 kTextNode = 3, 145 kTextNode = 3,
145 kCdataSectionNode = 4, 146 kCdataSectionNode = 4,
146 kProcessingInstructionNode = 7, 147 kProcessingInstructionNode = 7,
147 kCommentNode = 8, 148 kCommentNode = 8,
148 kDocumentNode = 9, 149 kDocumentNode = 9,
149 kDocumentTypeNode = 10, 150 kDocumentTypeNode = 10,
150 kDocumentFragmentNode = 11, 151 kDocumentFragmentNode = 11,
151 }; 152 };
152 153
153 // Entity, EntityReference, and Notation nodes are impossible to create in Bli nk. 154 // Entity, EntityReference, and Notation nodes are impossible to create in
154 // But for compatibility reasons we want these enum values exist in JS, and th is enum makes the bindings 155 // Blink. But for compatibility reasons we want these enum values exist in
155 // generation not complain about kEntityReferenceNode being missing from the i mplementation 156 // JS, and this enum makes the bindings generation not complain about
156 // while not requiring all switch(NodeType) blocks to include this deprecated constant. 157 // kEntityReferenceNode being missing from the implementation while not
158 // requiring all switch(NodeType) blocks to include this deprecated constant.
157 enum DeprecatedNodeType { 159 enum DeprecatedNodeType {
158 kEntityReferenceNode = 5, 160 kEntityReferenceNode = 5,
159 kEntityNode = 6, 161 kEntityNode = 6,
160 kNotationNode = 12, 162 kNotationNode = 12,
161 }; 163 };
162 164
163 enum DocumentPosition { 165 enum DocumentPosition {
164 kDocumentPositionEquivalent = 0x00, 166 kDocumentPositionEquivalent = 0x00,
165 kDocumentPositionDisconnected = 0x01, 167 kDocumentPositionDisconnected = 0x01,
166 kDocumentPositionPreceding = 0x02, 168 kDocumentPositionPreceding = 0x02,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 ContainerNode* parentElementOrShadowRoot() const; 203 ContainerNode* parentElementOrShadowRoot() const;
202 ContainerNode* parentElementOrDocumentFragment() const; 204 ContainerNode* parentElementOrDocumentFragment() const;
203 Node* previousSibling() const { return m_previous; } 205 Node* previousSibling() const { return m_previous; }
204 Node* nextSibling() const { return m_next; } 206 Node* nextSibling() const { return m_next; }
205 NodeList* childNodes(); 207 NodeList* childNodes();
206 Node* firstChild() const; 208 Node* firstChild() const;
207 Node* lastChild() const; 209 Node* lastChild() const;
208 Node* getRootNode(const GetRootNodeOptions&) const; 210 Node* getRootNode(const GetRootNodeOptions&) const;
209 Node& treeRoot() const; 211 Node& treeRoot() const;
210 Node& shadowIncludingRoot() const; 212 Node& shadowIncludingRoot() const;
211 // closed-shadow-hidden is defined at https://dom.spec.whatwg.org/#concept-clo sed-shadow-hidden 213 // closed-shadow-hidden is defined at
214 // https://dom.spec.whatwg.org/#concept-closed-shadow-hidden
212 bool isClosedShadowHiddenFrom(const Node&) const; 215 bool isClosedShadowHiddenFrom(const Node&) const;
213 216
214 void prepend(const HeapVector<NodeOrString>&, ExceptionState&); 217 void prepend(const HeapVector<NodeOrString>&, ExceptionState&);
215 void append(const HeapVector<NodeOrString>&, ExceptionState&); 218 void append(const HeapVector<NodeOrString>&, ExceptionState&);
216 void before(const HeapVector<NodeOrString>&, ExceptionState&); 219 void before(const HeapVector<NodeOrString>&, ExceptionState&);
217 void after(const HeapVector<NodeOrString>&, ExceptionState&); 220 void after(const HeapVector<NodeOrString>&, ExceptionState&);
218 void replaceWith(const HeapVector<NodeOrString>&, ExceptionState&); 221 void replaceWith(const HeapVector<NodeOrString>&, ExceptionState&);
219 void remove(ExceptionState& = ASSERT_NO_EXCEPTION); 222 void remove(ExceptionState& = ASSERT_NO_EXCEPTION);
220 223
221 Node* pseudoAwareNextSibling() const; 224 Node* pseudoAwareNextSibling() const;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 // A re-distribution across v0 and v1 shadow trees is not supported. 314 // A re-distribution across v0 and v1 shadow trees is not supported.
312 bool isSlotable() const { 315 bool isSlotable() const {
313 return isTextNode() || (isElementNode() && !isInsertionPoint()); 316 return isTextNode() || (isElementNode() && !isInsertionPoint());
314 } 317 }
315 AtomicString slotName() const; 318 AtomicString slotName() const;
316 319
317 bool hasCustomStyleCallbacks() const { 320 bool hasCustomStyleCallbacks() const {
318 return getFlag(HasCustomStyleCallbacksFlag); 321 return getFlag(HasCustomStyleCallbacksFlag);
319 } 322 }
320 323
321 // If this node is in a shadow tree, returns its shadow host. Otherwise, retur ns nullptr. 324 // If this node is in a shadow tree, returns its shadow host. Otherwise,
322 // TODO(kochi): crbug.com/507413 ownerShadowHost() can return nullptr even whe n it is in a 325 // returns nullptr.
323 // shadow tree but its root is detached from its host. This can happen when ha ndling 326 // TODO(kochi): crbug.com/507413 ownerShadowHost() can return nullptr even
324 // queued events (e.g. during execCommand()). 327 // when it is in a shadow tree but its root is detached from its host. This
328 // can happen when handling queued events (e.g. during execCommand()).
325 Element* ownerShadowHost() const; 329 Element* ownerShadowHost() const;
326 // crbug.com/569532: containingShadowRoot() can return nullptr even if isInSha dowTree() returns true. 330 // crbug.com/569532: containingShadowRoot() can return nullptr even if
331 // isInShadowTree() returns true.
327 // This can happen when handling queued events (e.g. during execCommand()) 332 // This can happen when handling queued events (e.g. during execCommand())
328 ShadowRoot* containingShadowRoot() const; 333 ShadowRoot* containingShadowRoot() const;
329 ShadowRoot* youngestShadowRoot() const; 334 ShadowRoot* youngestShadowRoot() const;
330 335
331 // Returns nullptr, a child of ShadowRoot, or a legacy shadow root. 336 // Returns nullptr, a child of ShadowRoot, or a legacy shadow root.
332 Node* nonBoundaryShadowTreeRootNode(); 337 Node* nonBoundaryShadowTreeRootNode();
333 338
334 // Node's parent, shadow tree host. 339 // Node's parent, shadow tree host.
335 ContainerNode* parentOrShadowHostNode() const; 340 ContainerNode* parentOrShadowHostNode() const;
336 Element* parentOrShadowHostElement() const; 341 Element* parentOrShadowHostElement() const;
337 void setParentOrShadowHostNode(ContainerNode*); 342 void setParentOrShadowHostNode(ContainerNode*);
338 343
339 // Knows about all kinds of hosts. 344 // Knows about all kinds of hosts.
340 ContainerNode* parentOrShadowHostOrTemplateHostNode() const; 345 ContainerNode* parentOrShadowHostOrTemplateHostNode() const;
341 346
342 // Returns the parent node, but nullptr if the parent node is a ShadowRoot. 347 // Returns the parent node, but nullptr if the parent node is a ShadowRoot.
343 ContainerNode* nonShadowBoundaryParentNode() const; 348 ContainerNode* nonShadowBoundaryParentNode() const;
344 349
345 // Returns the enclosing event parent Element (or self) that, when clicked, wo uld trigger a navigation. 350 // Returns the enclosing event parent Element (or self) that, when clicked,
351 // would trigger a navigation.
346 Element* enclosingLinkEventParentOrSelf() const; 352 Element* enclosingLinkEventParentOrSelf() const;
347 353
348 // These low-level calls give the caller responsibility for maintaining the in tegrity of the tree. 354 // These low-level calls give the caller responsibility for maintaining the
355 // integrity of the tree.
349 void setPreviousSibling(Node* previous) { m_previous = previous; } 356 void setPreviousSibling(Node* previous) { m_previous = previous; }
350 void setNextSibling(Node* next) { m_next = next; } 357 void setNextSibling(Node* next) { m_next = next; }
351 358
352 virtual bool canContainRangeEndPoint() const { return false; } 359 virtual bool canContainRangeEndPoint() const { return false; }
353 360
354 // For <link> and <style> elements. 361 // For <link> and <style> elements.
355 virtual bool sheetLoaded() { return true; } 362 virtual bool sheetLoaded() { return true; }
356 enum LoadedSheetErrorStatus { 363 enum LoadedSheetErrorStatus {
357 NoErrorLoadingSubresource, 364 NoErrorLoadingSubresource,
358 ErrorOccurredLoadingSubresource 365 ErrorOccurredLoadingSubresource
359 }; 366 };
360 virtual void notifyLoadedSheetAndAllCriticalSubresources( 367 virtual void notifyLoadedSheetAndAllCriticalSubresources(
361 LoadedSheetErrorStatus) {} 368 LoadedSheetErrorStatus) {}
362 virtual void startLoadingDynamicSheet() { ASSERT_NOT_REACHED(); } 369 virtual void startLoadingDynamicSheet() { ASSERT_NOT_REACHED(); }
363 370
364 bool hasName() const { 371 bool hasName() const {
365 DCHECK(!isTextNode()); 372 DCHECK(!isTextNode());
366 return getFlag(HasNameOrIsEditingTextFlag); 373 return getFlag(HasNameOrIsEditingTextFlag);
367 } 374 }
368 375
369 bool isUserActionElement() const { return getFlag(IsUserActionElementFlag); } 376 bool isUserActionElement() const { return getFlag(IsUserActionElementFlag); }
370 void setUserActionElement(bool flag) { 377 void setUserActionElement(bool flag) {
371 setFlag(flag, IsUserActionElementFlag); 378 setFlag(flag, IsUserActionElementFlag);
372 } 379 }
373 380
374 // TODO(yosin): We should rename |active()| to |isActive()| as |UserActionElem entSet|. 381 // TODO(yosin): We should rename |active()| to |isActive()| as
382 // |UserActionElementSet|.
375 bool active() const { 383 bool active() const {
376 return isUserActionElement() && isUserActionElementActive(); 384 return isUserActionElement() && isUserActionElementActive();
377 } 385 }
378 bool inActiveChain() const { 386 bool inActiveChain() const {
379 return isUserActionElement() && isUserActionElementInActiveChain(); 387 return isUserActionElement() && isUserActionElementInActiveChain();
380 } 388 }
381 bool isDragged() const { 389 bool isDragged() const {
382 return isUserActionElement() && isUserActionElementDragged(); 390 return isUserActionElement() && isUserActionElementDragged();
383 } 391 }
384 // TODO(yosin): We should rename |hovered()| to |isHovered()| as |UserActionEl ementSet|. 392 // TODO(yosin): We should rename |hovered()| to |isHovered()| as
393 // |UserActionElementSet|.
385 bool hovered() const { 394 bool hovered() const {
386 return isUserActionElement() && isUserActionElementHovered(); 395 return isUserActionElement() && isUserActionElementHovered();
387 } 396 }
388 // Note: As a shadow host whose root with delegatesFocus=false may become focu sed state when 397 // Note: As a shadow host whose root with delegatesFocus=false may become
389 // an inner element gets focused, in that case more than one elements in a doc ument can return 398 // focused state when an inner element gets focused, in that case more than
390 // true for |focused()|. Use Element::isFocusedElementInDocument() or Documen t::focusedElement() 399 // one elements in a document can return true for |focused()|. Use
391 // to check which element is exactly focused. 400 // Element::isFocusedElementInDocument() or Document::focusedElement() to
401 // check which element is exactly focused.
392 bool focused() const { 402 bool focused() const {
393 return isUserActionElement() && isUserActionElementFocused(); 403 return isUserActionElement() && isUserActionElementFocused();
394 } 404 }
395 405
396 bool needsAttach() const { 406 bool needsAttach() const {
397 return getStyleChangeType() == NeedsReattachStyleChange; 407 return getStyleChangeType() == NeedsReattachStyleChange;
398 } 408 }
399 bool needsStyleRecalc() const { 409 bool needsStyleRecalc() const {
400 return getStyleChangeType() != NoStyleChange; 410 return getStyleChangeType() != NoStyleChange;
401 } 411 }
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 // must be recognized as inert to prevent text selection. 504 // must be recognized as inert to prevent text selection.
495 bool isInert() const; 505 bool isInert() const;
496 506
497 virtual LayoutRect boundingBox() const; 507 virtual LayoutRect boundingBox() const;
498 IntRect pixelSnappedBoundingBox() const { 508 IntRect pixelSnappedBoundingBox() const {
499 return pixelSnappedIntRect(boundingBox()); 509 return pixelSnappedIntRect(boundingBox());
500 } 510 }
501 511
502 unsigned nodeIndex() const; 512 unsigned nodeIndex() const;
503 513
504 // Returns the DOM ownerDocument attribute. This method never returns null, ex cept in the case 514 // Returns the DOM ownerDocument attribute. This method never returns null,
505 // of a Document node. 515 // except in the case of a Document node.
506 Document* ownerDocument() const; 516 Document* ownerDocument() const;
507 517
508 // Returns the document associated with this node. A Document node returns its elf. 518 // Returns the document associated with this node. A Document node returns
519 // itself.
509 Document& document() const { return treeScope().document(); } 520 Document& document() const { return treeScope().document(); }
510 521
511 TreeScope& treeScope() const { 522 TreeScope& treeScope() const {
512 DCHECK(m_treeScope); 523 DCHECK(m_treeScope);
513 return *m_treeScope; 524 return *m_treeScope;
514 } 525 }
515 526
516 TreeScope& containingTreeScope() const { 527 TreeScope& containingTreeScope() const {
517 DCHECK(isInTreeScope()); 528 DCHECK(isInTreeScope());
518 return *m_treeScope; 529 return *m_treeScope;
(...skipping 23 matching lines...) Expand all
542 virtual bool childTypeAllowed(NodeType) const { return false; } 553 virtual bool childTypeAllowed(NodeType) const { return false; }
543 unsigned countChildren() const; 554 unsigned countChildren() const;
544 555
545 bool isDescendantOf(const Node*) const; 556 bool isDescendantOf(const Node*) const;
546 bool contains(const Node*) const; 557 bool contains(const Node*) const;
547 bool isShadowIncludingInclusiveAncestorOf(const Node*) const; 558 bool isShadowIncludingInclusiveAncestorOf(const Node*) const;
548 bool containsIncludingHostElements(const Node&) const; 559 bool containsIncludingHostElements(const Node&) const;
549 Node* commonAncestor(const Node&, 560 Node* commonAncestor(const Node&,
550 ContainerNode* (*parent)(const Node&)) const; 561 ContainerNode* (*parent)(const Node&)) const;
551 562
552 // Number of DOM 16-bit units contained in node. Note that laid out text lengt h can be different - e.g. because of 563 // Number of DOM 16-bit units contained in node. Note that laid out text
553 // css-transform:capitalize breaking up precomposed characters and ligatures. 564 // length can be different - e.g. because of css-transform:capitalize breaking
565 // up precomposed characters and ligatures.
554 virtual int maxCharacterOffset() const; 566 virtual int maxCharacterOffset() const;
555 567
556 // Whether or not a selection can be started in this object 568 // Whether or not a selection can be started in this object
557 virtual bool canStartSelection() const; 569 virtual bool canStartSelection() const;
558 570
559 // --------------------------------------------------------------------------- -- 571 // --------------------------------------------------------------------------- --
560 // Integration with layout tree 572 // Integration with layout tree
561 573
562 // As layoutObject() includes a branch you should avoid calling it repeatedly in hot code paths. 574 // As layoutObject() includes a branch you should avoid calling it repeatedly
563 // Note that if a Node has a layoutObject, it's parentNode is guaranteed to ha ve one as well. 575 // in hot code paths.
576 // Note that if a Node has a layoutObject, it's parentNode is guaranteed to
577 // have one as well.
564 LayoutObject* layoutObject() const { 578 LayoutObject* layoutObject() const {
565 return hasRareData() ? m_data.m_rareData->layoutObject() 579 return hasRareData() ? m_data.m_rareData->layoutObject()
566 : m_data.m_layoutObject; 580 : m_data.m_layoutObject;
567 } 581 }
568 void setLayoutObject(LayoutObject* layoutObject) { 582 void setLayoutObject(LayoutObject* layoutObject) {
569 if (hasRareData()) 583 if (hasRareData())
570 m_data.m_rareData->setLayoutObject(layoutObject); 584 m_data.m_rareData->setLayoutObject(layoutObject);
571 else 585 else
572 m_data.m_layoutObject = layoutObject; 586 m_data.m_layoutObject = layoutObject;
573 } 587 }
574 588
575 // Use these two methods with caution. 589 // Use these two methods with caution.
576 LayoutBox* layoutBox() const; 590 LayoutBox* layoutBox() const;
577 LayoutBoxModelObject* layoutBoxModelObject() const; 591 LayoutBoxModelObject* layoutBoxModelObject() const;
578 592
579 struct AttachContext { 593 struct AttachContext {
580 STACK_ALLOCATED(); 594 STACK_ALLOCATED();
581 ComputedStyle* resolvedStyle = nullptr; 595 ComputedStyle* resolvedStyle = nullptr;
582 bool performingReattach = false; 596 bool performingReattach = false;
583 bool clearInvalidation = false; 597 bool clearInvalidation = false;
584 598
585 AttachContext() {} 599 AttachContext() {}
586 }; 600 };
587 601
588 // Attaches this node to the layout tree. This calculates the style to be appl ied to the node and creates an 602 // Attaches this node to the layout tree. This calculates the style to be
589 // appropriate LayoutObject which will be inserted into the tree (except when the style has display: none). This 603 // applied to the node and creates an appropriate LayoutObject which will be
604 // inserted into the tree (except when the style has display: none). This
590 // makes the node visible in the FrameView. 605 // makes the node visible in the FrameView.
591 virtual void attachLayoutTree(const AttachContext& = AttachContext()); 606 virtual void attachLayoutTree(const AttachContext& = AttachContext());
592 607
593 // Detaches the node from the layout tree, making it invisible in the rendered view. This method will remove 608 // Detaches the node from the layout tree, making it invisible in the rendered
594 // the node's layout object from the layout tree and delete it. 609 // view. This method will remove the node's layout object from the layout tree
610 // and delete it.
595 virtual void detachLayoutTree(const AttachContext& = AttachContext()); 611 virtual void detachLayoutTree(const AttachContext& = AttachContext());
596 612
597 void reattachLayoutTree(const AttachContext& = AttachContext()); 613 void reattachLayoutTree(const AttachContext& = AttachContext());
598 void lazyReattachIfAttached(); 614 void lazyReattachIfAttached();
599 615
600 // Returns true if recalcStyle should be called on the object, if there is suc h a method (on Document and Element). 616 // Returns true if recalcStyle should be called on the object, if there is
617 // such a method (on Document and Element).
601 bool shouldCallRecalcStyle(StyleRecalcChange); 618 bool shouldCallRecalcStyle(StyleRecalcChange);
602 619
603 // Wrapper for nodes that don't have a layoutObject, but still cache the style (like HTMLOptionElement). 620 // Wrapper for nodes that don't have a layoutObject, but still cache the style
621 // (like HTMLOptionElement).
604 ComputedStyle* mutableComputedStyle() const; 622 ComputedStyle* mutableComputedStyle() const;
605 const ComputedStyle* computedStyle() const; 623 const ComputedStyle* computedStyle() const;
606 const ComputedStyle* parentComputedStyle() const; 624 const ComputedStyle* parentComputedStyle() const;
607 625
608 const ComputedStyle& computedStyleRef() const; 626 const ComputedStyle& computedStyleRef() const;
609 627
610 const ComputedStyle* ensureComputedStyle( 628 const ComputedStyle* ensureComputedStyle(
611 PseudoId pseudoElementSpecifier = PseudoIdNone) { 629 PseudoId pseudoElementSpecifier = PseudoIdNone) {
612 return virtualEnsureComputedStyle(pseudoElementSpecifier); 630 return virtualEnsureComputedStyle(pseudoElementSpecifier);
613 } 631 }
614 632
615 // --------------------------------------------------------------------------- -- 633 // --------------------------------------------------------------------------- --
616 // Notification of document structure changes (see ContainerNode.h for more no tification methods) 634 // Notification of document structure changes (see ContainerNode.h for more
635 // notification methods)
617 // 636 //
618 // At first, WebKit notifies the node that it has been inserted into the docum ent. This is called during document parsing, and also 637 // At first, Blinkt notifies the node that it has been inserted into the
619 // when a node is added through the DOM methods insertBefore(), appendChild() or replaceChild(). The call happens _after_ the node has been added to the tree. 638 // document. This is called during document parsing, and also when a node is
620 // This is similar to the DOMNodeInsertedIntoDocument DOM event, but does not require the overhead of event 639 // added through the DOM methods insertBefore(), appendChild() or
621 // dispatching. 640 // replaceChild(). The call happens _after_ the node has been added to the
641 // tree. This is similar to the DOMNodeInsertedIntoDocument DOM event, but
642 // does not require the overhead of event dispatching.
622 // 643 //
623 // WebKit notifies this callback regardless if the subtree of the node is a do cument tree or a floating subtree. 644 // Blink notifies this callback regardless if the subtree of the node is a
624 // Implementation can determine the type of subtree by seeing insertionPoint-> isConnected(). 645 // document tree or a floating subtree. Implementation can determine the type
625 // For a performance reason, notifications are delivered only to ContainerNode subclasses if the insertionPoint is out of document. 646 // of subtree by seeing insertionPoint->isConnected(). For a performance
647 // reason, notifications are delivered only to ContainerNode subclasses if the
648 // insertionPoint is out of document.
626 // 649 //
627 // There are another callback named didNotifySubtreeInsertionsToDocument(), wh ich is called after all the descendant is notified, 650 // There are another callback named didNotifySubtreeInsertionsToDocument(),
628 // if this node was inserted into the document tree. Only a few subclasses act ually need this. To utilize this, the node should 651 // which is called after all the descendant is notified, if this node was
629 // return InsertionShouldCallDidNotifySubtreeInsertions from insertedInto(). 652 // inserted into the document tree. Only a few subclasses actually need
653 // this. To utilize this, the node should return
654 // InsertionShouldCallDidNotifySubtreeInsertions from insertedInto().
630 // 655 //
631 enum InsertionNotificationRequest { 656 enum InsertionNotificationRequest {
632 InsertionDone, 657 InsertionDone,
633 InsertionShouldCallDidNotifySubtreeInsertions 658 InsertionShouldCallDidNotifySubtreeInsertions
634 }; 659 };
635 660
636 virtual InsertionNotificationRequest insertedInto( 661 virtual InsertionNotificationRequest insertedInto(
637 ContainerNode* insertionPoint); 662 ContainerNode* insertionPoint);
638 virtual void didNotifySubtreeInsertionsToDocument() {} 663 virtual void didNotifySubtreeInsertionsToDocument() {}
639 664
640 // Notifies the node that it is no longer part of the tree. 665 // Notifies the node that it is no longer part of the tree.
641 // 666 //
642 // This is a dual of insertedInto(), and is similar to the DOMNodeRemovedFromD ocument DOM event, but does not require the overhead of event 667 // This is a dual of insertedInto(), and is similar to the
643 // dispatching, and is called _after_ the node is removed from the tree. 668 // DOMNodeRemovedFromDocument DOM event, but does not require the overhead of
669 // event dispatching, and is called _after_ the node is removed from the tree.
644 // 670 //
645 virtual void removedFrom(ContainerNode* insertionPoint); 671 virtual void removedFrom(ContainerNode* insertionPoint);
646 672
647 // FIXME(dominicc): This method is not debug-only--it is used by 673 // FIXME(dominicc): This method is not debug-only--it is used by
648 // Tracing--rename it to something indicative. 674 // Tracing--rename it to something indicative.
649 String debugName() const; 675 String debugName() const;
650 676
651 #ifndef NDEBUG 677 #ifndef NDEBUG
652 String toString() const; 678 String toString() const;
653 String toTreeStringForThis() const; 679 String toTreeStringForThis() const;
(...skipping 27 matching lines...) Expand all
681 ShadowTreesTreatment = TreatShadowTreesAsDisconnected) const; 707 ShadowTreesTreatment = TreatShadowTreesAsDisconnected) const;
682 708
683 Node* toNode() final; 709 Node* toNode() final;
684 710
685 const AtomicString& interfaceName() const override; 711 const AtomicString& interfaceName() const override;
686 ExecutionContext* getExecutionContext() const final; 712 ExecutionContext* getExecutionContext() const final;
687 713
688 void removeAllEventListeners() override; 714 void removeAllEventListeners() override;
689 void removeAllEventListenersRecursively(); 715 void removeAllEventListenersRecursively();
690 716
691 // Handlers to do/undo actions on the target node before an event is dispatche d to it and after the event 717 // Handlers to do/undo actions on the target node before an event is
692 // has been dispatched. The data pointer is handed back by the preDispatch an d passed to postDispatch. 718 // dispatched to it and after the event has been dispatched. The data pointer
719 // is handed back by the preDispatch and passed to postDispatch.
693 virtual EventDispatchHandlingState* preDispatchEventHandler(Event*) { 720 virtual EventDispatchHandlingState* preDispatchEventHandler(Event*) {
694 return nullptr; 721 return nullptr;
695 } 722 }
696 virtual void postDispatchEventHandler(Event*, EventDispatchHandlingState*) {} 723 virtual void postDispatchEventHandler(Event*, EventDispatchHandlingState*) {}
697 724
698 void dispatchScopedEvent(Event*); 725 void dispatchScopedEvent(Event*);
699 726
700 virtual void handleLocalEvents(Event&); 727 virtual void handleLocalEvents(Event&);
701 728
702 void dispatchSubtreeModifiedEvent(); 729 void dispatchSubtreeModifiedEvent();
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 NodeRareData* rareData() const; 893 NodeRareData* rareData() const;
867 NodeRareData& ensureRareData(); 894 NodeRareData& ensureRareData();
868 895
869 void setHasCustomStyleCallbacks() { 896 void setHasCustomStyleCallbacks() {
870 setFlag(true, HasCustomStyleCallbacksFlag); 897 setFlag(true, HasCustomStyleCallbacksFlag);
871 } 898 }
872 899
873 void setTreeScope(TreeScope* scope) { m_treeScope = scope; } 900 void setTreeScope(TreeScope* scope) { m_treeScope = scope; }
874 901
875 // isTreeScopeInitialized() can be false 902 // isTreeScopeInitialized() can be false
876 // - in the destruction of Document or ShadowRoot where m_treeScope is set to null or 903 // - in the destruction of Document or ShadowRoot where m_treeScope is set to
877 // - in the Node constructor called by these two classes where m_treeScope is set by TreeScope ctor. 904 // null or
905 // - in the Node constructor called by these two classes where m_treeScope is
906 // set by TreeScope ctor.
878 bool isTreeScopeInitialized() const { return m_treeScope; } 907 bool isTreeScopeInitialized() const { return m_treeScope; }
879 908
880 void markAncestorsWithChildNeedsStyleRecalc(); 909 void markAncestorsWithChildNeedsStyleRecalc();
881 910
882 void setIsFinishedParsingChildren(bool value) { 911 void setIsFinishedParsingChildren(bool value) {
883 setFlag(value, IsFinishedParsingChildrenFlag); 912 setFlag(value, IsFinishedParsingChildrenFlag);
884 } 913 }
885 914
886 private: 915 private:
887 // Gets nodeName without caching AtomicStrings. Used by 916 // Gets nodeName without caching AtomicStrings. Used by
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 } // namespace blink 1025 } // namespace blink
997 1026
998 #ifndef NDEBUG 1027 #ifndef NDEBUG
999 // Outside the WebCore namespace for ease of invocation from gdb. 1028 // Outside the WebCore namespace for ease of invocation from gdb.
1000 void showNode(const blink::Node*); 1029 void showNode(const blink::Node*);
1001 void showTree(const blink::Node*); 1030 void showTree(const blink::Node*);
1002 void showNodePath(const blink::Node*); 1031 void showNodePath(const blink::Node*);
1003 #endif 1032 #endif
1004 1033
1005 #endif // Node_h 1034 #endif // Node_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/NamedNodeMap.cpp ('k') | third_party/WebKit/Source/core/dom/Node.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698