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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.h

Issue 2727853002: [css-display] Support display: contents pseudo-elements.
Patch Set: [css-display] Support display: contents pseudos. Created 3 years, 8 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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc.
7 * All rights reserved. 7 * All rights reserved.
8 * Copyright (C) 2009 Google Inc. All rights reserved. 8 * Copyright (C) 2009 Google Inc. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 12 matching lines...) Expand all
23 * Boston, MA 02110-1301, USA. 23 * Boston, MA 02110-1301, USA.
24 * 24 *
25 */ 25 */
26 26
27 #ifndef LayoutObject_h 27 #ifndef LayoutObject_h
28 #define LayoutObject_h 28 #define LayoutObject_h
29 29
30 #include "core/CoreExport.h" 30 #include "core/CoreExport.h"
31 #include "core/dom/Document.h" 31 #include "core/dom/Document.h"
32 #include "core/dom/DocumentLifecycle.h" 32 #include "core/dom/DocumentLifecycle.h"
33 #include "core/dom/PseudoElement.h"
33 #include "core/editing/PositionWithAffinity.h" 34 #include "core/editing/PositionWithAffinity.h"
34 #include "core/layout/LayoutObjectChildList.h" 35 #include "core/layout/LayoutObjectChildList.h"
35 #include "core/layout/MapCoordinatesFlags.h" 36 #include "core/layout/MapCoordinatesFlags.h"
36 #include "core/layout/ScrollAlignment.h" 37 #include "core/layout/ScrollAlignment.h"
37 #include "core/layout/SubtreeLayoutScope.h" 38 #include "core/layout/SubtreeLayoutScope.h"
38 #include "core/layout/api/HitTestAction.h" 39 #include "core/layout/api/HitTestAction.h"
39 #include "core/layout/api/SelectionState.h" 40 #include "core/layout/api/SelectionState.h"
40 #include "core/layout/compositing/CompositingState.h" 41 #include "core/layout/compositing/CompositingState.h"
41 #include "core/loader/resource/ImageResourceObserver.h" 42 #include "core/loader/resource/ImageResourceObserver.h"
42 #include "core/paint/LayerHitTestRects.h" 43 #include "core/paint/LayerHitTestRects.h"
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 // function also doesn't handle the default association between a tag 537 // function also doesn't handle the default association between a tag
537 // and its renderer (e.g. <iframe> creates a LayoutIFrame even if the 538 // and its renderer (e.g. <iframe> creates a LayoutIFrame even if the
538 // initial 'display' value is inline). 539 // initial 'display' value is inline).
539 static LayoutObject* createObject(Element*, const ComputedStyle&); 540 static LayoutObject* createObject(Element*, const ComputedStyle&);
540 541
541 // LayoutObjects are allocated out of the rendering partition. 542 // LayoutObjects are allocated out of the rendering partition.
542 void* operator new(size_t); 543 void* operator new(size_t);
543 void operator delete(void*); 544 void operator delete(void*);
544 545
545 bool isPseudoElement() const { return node() && node()->isPseudoElement(); } 546 bool isPseudoElement() const { return node() && node()->isPseudoElement(); }
547 PseudoElement* ownerPseudoElement() {
548 // NB: This also handles anonymous generated content for a given
rune 2017/04/04 14:23:41 What is anonymous generated content?
emilio 2017/04/04 15:09:18 It's my ability to badly word comments. I meant an
549 // pseudo-element.
550 return m_node && m_node->isPseudoElement() ? toPseudoElement(m_node)
551 : nullptr;
552 }
553 bool isPseudoElementGeneratedContentFor(const PseudoElement&) const;
rune 2017/04/04 14:23:41 This name is incomprehensible. It means that this
emilio 2017/04/04 15:09:18 Yeah, that's the idea. I'm terrible at naming, so
546 554
547 virtual bool isBoxModelObject() const { return false; } 555 virtual bool isBoxModelObject() const { return false; }
548 bool isBR() const { return isOfType(LayoutObjectBr); } 556 bool isBR() const { return isOfType(LayoutObjectBr); }
549 bool isCanvas() const { return isOfType(LayoutObjectCanvas); } 557 bool isCanvas() const { return isOfType(LayoutObjectCanvas); }
550 bool isCounter() const { return isOfType(LayoutObjectCounter); } 558 bool isCounter() const { return isOfType(LayoutObjectCounter); }
551 bool isDetailsMarker() const { return isOfType(LayoutObjectDetailsMarker); } 559 bool isDetailsMarker() const { return isOfType(LayoutObjectDetailsMarker); }
552 bool isEmbeddedObject() const { return isOfType(LayoutObjectEmbeddedObject); } 560 bool isEmbeddedObject() const { return isOfType(LayoutObjectEmbeddedObject); }
553 bool isFieldset() const { return isOfType(LayoutObjectFieldset); } 561 bool isFieldset() const { return isOfType(LayoutObjectFieldset); }
554 bool isFileUploadControl() const { 562 bool isFileUploadControl() const {
555 return isOfType(LayoutObjectFileUploadControl); 563 return isOfType(LayoutObjectFileUploadControl);
(...skipping 1501 matching lines...) Expand 10 before | Expand all | Expand 10 after
2057 // Tree tear-down is when the whole tree destroyed during navigation. It is 2065 // Tree tear-down is when the whole tree destroyed during navigation. It is
2058 // handled in the code by checking if documentBeingDestroyed() returns 'true'. 2066 // handled in the code by checking if documentBeingDestroyed() returns 'true'.
2059 // In this case, the code skips some unneeded expensive operations as we know 2067 // In this case, the code skips some unneeded expensive operations as we know
2060 // the tree is not reused (e.g. avoid clearing the containing block's line 2068 // the tree is not reused (e.g. avoid clearing the containing block's line
2061 // box). 2069 // box).
2062 virtual void willBeDestroyed(); 2070 virtual void willBeDestroyed();
2063 2071
2064 virtual void insertedIntoTree(); 2072 virtual void insertedIntoTree();
2065 virtual void willBeRemovedFromTree(); 2073 virtual void willBeRemovedFromTree();
2066 2074
2075 void setPseudoForAnonymous(PseudoElement& pseudo) {
rune 2017/04/04 14:23:41 This also needs a better name if possible.
emilio 2017/04/04 15:09:18 Acknowledged.
2076 DCHECK(isAnonymous());
2077 m_node = &pseudo;
2078 }
2079
2067 void setDocumentForAnonymous(Document* document) { 2080 void setDocumentForAnonymous(Document* document) {
2068 DCHECK(isAnonymous()); 2081 DCHECK(isAnonymous());
2069 m_node = document; 2082 m_node = document;
2070 } 2083 }
2071 2084
2072 // Add hit-test rects for the layout tree rooted at this node to the provided 2085 // Add hit-test rects for the layout tree rooted at this node to the provided
2073 // collection on a per-Layer basis. 2086 // collection on a per-Layer basis.
2074 // currentLayer must be the enclosing layer, and layerOffset is the current 2087 // currentLayer must be the enclosing layer, and layerOffset is the current
2075 // offset within this layer. Subclass implementations will add any offset for 2088 // offset within this layer. Subclass implementations will add any offset for
2076 // this layoutObject within it's container, so callers should provide only the 2089 // this layoutObject within it's container, so callers should provide only the
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
2858 CORE_EXPORT void showLineTree(const blink::LayoutObject*); 2871 CORE_EXPORT void showLineTree(const blink::LayoutObject*);
2859 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1); 2872 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1);
2860 // We don't make object2 an optional parameter so that showLayoutTree 2873 // We don't make object2 an optional parameter so that showLayoutTree
2861 // can be called from gdb easily. 2874 // can be called from gdb easily.
2862 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1, 2875 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1,
2863 const blink::LayoutObject* object2); 2876 const blink::LayoutObject* object2);
2864 2877
2865 #endif 2878 #endif
2866 2879
2867 #endif // LayoutObject_h 2880 #endif // LayoutObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698