OLD | NEW |
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, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
6 * rights reserved. | 6 * rights reserved. |
7 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 7 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. |
9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
10 * | 10 * |
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 for (Node* node = ParentOrShadowHostNode(); | 748 for (Node* node = ParentOrShadowHostNode(); |
749 node && !node->ChildNeedsStyleInvalidation(); | 749 node && !node->ChildNeedsStyleInvalidation(); |
750 node = node->ParentOrShadowHostNode()) | 750 node = node->ParentOrShadowHostNode()) |
751 node->SetChildNeedsStyleInvalidation(); | 751 node->SetChildNeedsStyleInvalidation(); |
752 GetDocument().ScheduleLayoutTreeUpdateIfNeeded(); | 752 GetDocument().ScheduleLayoutTreeUpdateIfNeeded(); |
753 } | 753 } |
754 | 754 |
755 void Node::MarkAncestorsWithChildNeedsDistributionRecalc() { | 755 void Node::MarkAncestorsWithChildNeedsDistributionRecalc() { |
756 ScriptForbiddenScope forbid_script_during_raw_iteration; | 756 ScriptForbiddenScope forbid_script_during_raw_iteration; |
757 for (Node* node = this; node && !node->ChildNeedsDistributionRecalc(); | 757 for (Node* node = this; node && !node->ChildNeedsDistributionRecalc(); |
758 node = node->ParentOrShadowHostNode()) { | 758 node = node->ParentOrShadowHostNode()) |
759 node->SetChildNeedsDistributionRecalc(); | 759 node->SetChildNeedsDistributionRecalc(); |
760 } | |
761 GetDocument().ScheduleLayoutTreeUpdateIfNeeded(); | 760 GetDocument().ScheduleLayoutTreeUpdateIfNeeded(); |
762 } | 761 } |
763 | 762 |
764 inline void Node::SetStyleChange(StyleChangeType change_type) { | 763 inline void Node::SetStyleChange(StyleChangeType change_type) { |
765 node_flags_ = (node_flags_ & ~kStyleChangeMask) | change_type; | 764 node_flags_ = (node_flags_ & ~kStyleChangeMask) | change_type; |
766 } | 765 } |
767 | 766 |
768 void Node::MarkAncestorsWithChildNeedsStyleRecalc() { | 767 void Node::MarkAncestorsWithChildNeedsStyleRecalc() { |
769 for (ContainerNode* p = ParentOrShadowHostNode(); | 768 for (ContainerNode* p = ParentOrShadowHostNode(); |
770 p && !p->ChildNeedsStyleRecalc(); p = p->ParentOrShadowHostNode()) | 769 p && !p->ChildNeedsStyleRecalc(); p = p->ParentOrShadowHostNode()) |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 Node* Node::FocusDelegate() { | 841 Node* Node::FocusDelegate() { |
843 return this; | 842 return this; |
844 } | 843 } |
845 | 844 |
846 bool Node::ShouldHaveFocusAppearance() const { | 845 bool Node::ShouldHaveFocusAppearance() const { |
847 DCHECK(IsFocused()); | 846 DCHECK(IsFocused()); |
848 return true; | 847 return true; |
849 } | 848 } |
850 | 849 |
851 bool Node::IsInert() const { | 850 bool Node::IsInert() const { |
852 if (!isConnected() || !CanParticipateInFlatTree()) | |
853 return true; | |
854 | |
855 DCHECK(!ChildNeedsDistributionRecalc()); | |
856 | |
857 const HTMLDialogElement* dialog = GetDocument().ActiveModalDialog(); | 851 const HTMLDialogElement* dialog = GetDocument().ActiveModalDialog(); |
858 if (dialog && this != GetDocument() && | 852 if (dialog && this != GetDocument() && |
859 !FlatTreeTraversal::ContainsIncludingPseudoElement(*dialog, *this)) { | 853 (!CanParticipateInFlatTree() || |
| 854 !FlatTreeTraversal::ContainsIncludingPseudoElement(*dialog, *this))) |
860 return true; | 855 return true; |
861 } | |
862 | |
863 if (RuntimeEnabledFeatures::inertAttributeEnabled()) { | |
864 const Element* element = this->IsElementNode() | |
865 ? ToElement(this) | |
866 : FlatTreeTraversal::ParentElement(*this); | |
867 while (element) { | |
868 if (element->hasAttribute(HTMLNames::inertAttr)) | |
869 return true; | |
870 element = FlatTreeTraversal::ParentElement(*element); | |
871 } | |
872 } | |
873 return GetDocument().LocalOwner() && GetDocument().LocalOwner()->IsInert(); | 856 return GetDocument().LocalOwner() && GetDocument().LocalOwner()->IsInert(); |
874 } | 857 } |
875 | 858 |
876 unsigned Node::NodeIndex() const { | 859 unsigned Node::NodeIndex() const { |
877 const Node* temp_node = previousSibling(); | 860 const Node* temp_node = previousSibling(); |
878 unsigned count = 0; | 861 unsigned count = 0; |
879 for (count = 0; temp_node; count++) | 862 for (count = 0; temp_node; count++) |
880 temp_node = temp_node->previousSibling(); | 863 temp_node = temp_node->previousSibling(); |
881 return count; | 864 return count; |
882 } | 865 } |
(...skipping 1775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2658 if (node) { | 2641 if (node) { |
2659 std::stringstream stream; | 2642 std::stringstream stream; |
2660 node->PrintNodePathTo(stream); | 2643 node->PrintNodePathTo(stream); |
2661 LOG(INFO) << stream.str(); | 2644 LOG(INFO) << stream.str(); |
2662 } else { | 2645 } else { |
2663 LOG(INFO) << "Cannot showNodePath for <null>"; | 2646 LOG(INFO) << "Cannot showNodePath for <null>"; |
2664 } | 2647 } |
2665 } | 2648 } |
2666 | 2649 |
2667 #endif | 2650 #endif |
OLD | NEW |