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

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

Issue 2001453002: Set ComputedStyle on Node and use that in buildOwnLayout() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@storage
Patch Set: Created 4 years, 5 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, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 } 602 }
603 603
604 LayoutBoxModelObject* Node::layoutBoxModelObject() const 604 LayoutBoxModelObject* Node::layoutBoxModelObject() const
605 { 605 {
606 LayoutObject* layoutObject = this->layoutObject(); 606 LayoutObject* layoutObject = this->layoutObject();
607 return layoutObject && layoutObject->isBoxModelObject() ? toLayoutBoxModelOb ject(layoutObject) : nullptr; 607 return layoutObject && layoutObject->isBoxModelObject() ? toLayoutBoxModelOb ject(layoutObject) : nullptr;
608 } 608 }
609 609
610 LayoutRect Node::boundingBox() const 610 LayoutRect Node::boundingBox() const
611 { 611 {
612 if (layoutObject()) 612 if (hasLayoutObject())
sashab 2016/07/04 07:57:13 I think you forgot to upload the code for this fun
nainar 2016/07/05 00:26:55 Took a look at this. The code for hasLayoutObject
613 return LayoutRect(layoutObject()->absoluteBoundingBoxRect()); 613 return LayoutRect(layoutObject()->absoluteBoundingBoxRect());
614 return LayoutRect(); 614 return LayoutRect();
615 } 615 }
616 616
617 #ifndef NDEBUG 617 #ifndef NDEBUG
618 inline static ShadowRoot* oldestShadowRootFor(const Node* node) 618 inline static ShadowRoot* oldestShadowRootFor(const Node* node)
619 { 619 {
620 if (!node->isElementNode()) 620 if (!node->isElementNode())
621 return nullptr; 621 return nullptr;
622 if (ElementShadow* shadow = toElement(node)->shadow()) 622 if (ElementShadow* shadow = toElement(node)->shadow())
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
937 937
938 if (AXObjectCache* cache = document().axObjectCache()) 938 if (AXObjectCache* cache = document().axObjectCache())
939 cache->updateCacheAfterNodeIsAttached(this); 939 cache->updateCacheAfterNodeIsAttached(this);
940 } 940 }
941 941
942 void Node::detach(const AttachContext& context) 942 void Node::detach(const AttachContext& context)
943 { 943 {
944 DCHECK(document().lifecycle().stateAllowsDetach()); 944 DCHECK(document().lifecycle().stateAllowsDetach());
945 DocumentLifecycle::DetachScope willDetach(document().lifecycle()); 945 DocumentLifecycle::DetachScope willDetach(document().lifecycle());
946 946
947 if (layoutObject()) 947 if (hasLayoutObject())
948 layoutObject()->destroyAndCleanupAnonymousWrappers(); 948 layoutObject()->destroyAndCleanupAnonymousWrappers();
949 setLayoutObject(nullptr); 949 setLayoutObject(nullptr);
950 setStyleChange(NeedsReattachStyleChange); 950 setStyleChange(NeedsReattachStyleChange);
951 clearChildNeedsStyleInvalidation(); 951 clearChildNeedsStyleInvalidation();
952 } 952 }
953 953
954 void Node::reattachWhitespaceSiblingsIfNeeded(Text* start) 954 void Node::reattachWhitespaceSiblingsIfNeeded(Text* start)
955 { 955 {
956 ScriptForbiddenScope forbidScriptDuringRawIteration; 956 ScriptForbiddenScope forbidScriptDuringRawIteration;
957 for (Node* sibling = start; sibling; sibling = sibling->nextSibling()) { 957 for (Node* sibling = start; sibling; sibling = sibling->nextSibling()) {
(...skipping 21 matching lines...) Expand all
979 return 0; 979 return 0;
980 } 980 }
981 981
982 // FIXME: Shouldn't these functions be in the editing code? Code that asks ques tions about HTML in the core DOM class 982 // FIXME: Shouldn't these functions be in the editing code? Code that asks ques tions about HTML in the core DOM class
983 // is obviously misplaced. 983 // is obviously misplaced.
984 bool Node::canStartSelection() const 984 bool Node::canStartSelection() const
985 { 985 {
986 if (hasEditableStyle()) 986 if (hasEditableStyle())
987 return true; 987 return true;
988 988
989 if (layoutObject()) { 989 if (hasLayoutObject()) {
990 const ComputedStyle& style = layoutObject()->styleRef(); 990 const ComputedStyle& style = layoutObject()->styleRef();
991 // We allow selections to begin within an element that has -webkit-user- select: none set, 991 // We allow selections to begin within an element that has -webkit-user- select: none set,
992 // but if the element is draggable then dragging should take priority ov er selection. 992 // but if the element is draggable then dragging should take priority ov er selection.
993 if (style.userDrag() == DRAG_ELEMENT && style.userSelect() == SELECT_NON E) 993 if (style.userDrag() == DRAG_ELEMENT && style.userSelect() == SELECT_NON E)
994 return false; 994 return false;
995 } 995 }
996 ContainerNode* parent = FlatTreeTraversal::parent(*this); 996 ContainerNode* parent = FlatTreeTraversal::parent(*this);
997 return parent ? parent->canStartSelection() : true; 997 return parent ? parent->canStartSelection() : true;
998 } 998 }
999 999
(...skipping 1503 matching lines...) Expand 10 before | Expand all | Expand 10 after
2503 2503
2504 void showNodePath(const blink::Node* node) 2504 void showNodePath(const blink::Node* node)
2505 { 2505 {
2506 if (node) 2506 if (node)
2507 node->showNodePathForThis(); 2507 node->showNodePathForThis();
2508 else 2508 else
2509 fprintf(stderr, "Cannot showNodePath for (nil)\n"); 2509 fprintf(stderr, "Cannot showNodePath for (nil)\n");
2510 } 2510 }
2511 2511
2512 #endif 2512 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698