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

Side by Side Diff: Source/core/dom/Element.cpp

Issue 211073002: [Oilpan]: Move CSSFontSelectorClient to the oilpan heap using transition types. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
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 Peter Kelly (pmk@post.com) 4 * (C) 2001 Peter Kelly (pmk@post.com)
5 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * (C) 2001 Dirk Mueller (mueller@kde.org)
6 * (C) 2007 David Smith (catfish.man@gmail.com) 6 * (C) 2007 David Smith (catfish.man@gmail.com)
7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved. 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved.
8 * (C) 2007 Eric Seidel (eric@webkit.org) 8 * (C) 2007 Eric Seidel (eric@webkit.org)
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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 #include "wtf/text/CString.h" 104 #include "wtf/text/CString.h"
105 #include "wtf/text/StringBuilder.h" 105 #include "wtf/text/StringBuilder.h"
106 #include "wtf/text/TextPosition.h" 106 #include "wtf/text/TextPosition.h"
107 107
108 namespace WebCore { 108 namespace WebCore {
109 109
110 using namespace HTMLNames; 110 using namespace HTMLNames;
111 using namespace XMLNames; 111 using namespace XMLNames;
112 112
113 class StyleResolverParentPusher { 113 class StyleResolverParentPusher {
114 STACK_ALLOCATED();
114 public: 115 public:
115 explicit StyleResolverParentPusher(Element& parent) 116 explicit StyleResolverParentPusher(Element& parent)
116 : m_parent(parent) 117 : m_parent(parent)
117 , m_pushedStyleResolver(0) 118 , m_pushedStyleResolver(nullptr)
118 { 119 {
119 } 120 }
120 void push() 121 void push()
121 { 122 {
122 if (m_pushedStyleResolver) 123 if (m_pushedStyleResolver)
123 return; 124 return;
124 m_pushedStyleResolver = &m_parent.document().ensureStyleResolver(); 125 m_pushedStyleResolver = &m_parent.document().ensureStyleResolver();
125 m_pushedStyleResolver->pushParentElement(m_parent); 126 m_pushedStyleResolver->pushParentElement(m_parent);
126 } 127 }
127 ~StyleResolverParentPusher() 128 ~StyleResolverParentPusher()
128 { 129 {
129 130
130 if (!m_pushedStyleResolver) 131 if (!m_pushedStyleResolver)
haraken 2014/03/25 13:19:30 Is it safe to touch m_pushedStyleResolver in a des
wibling-chromium 2014/03/25 13:27:17 I would think so since the destructor will never b
131 return; 132 return;
132 133
133 // This tells us that our pushed style selector is in a bad state, 134 // This tells us that our pushed style selector is in a bad state,
134 // so we should just bail out in that scenario. 135 // so we should just bail out in that scenario.
135 ASSERT(m_pushedStyleResolver == m_parent.document().styleResolver()); 136 ASSERT(m_pushedStyleResolver == m_parent.document().styleResolver());
136 if (m_pushedStyleResolver != m_parent.document().styleResolver()) 137 if (m_pushedStyleResolver != m_parent.document().styleResolver())
137 return; 138 return;
138 139
139 m_pushedStyleResolver->popParentElement(m_parent); 140 m_pushedStyleResolver->popParentElement(m_parent);
140 } 141 }
141 142
142 private: 143 private:
143 Element& m_parent; 144 Element& m_parent;
144 StyleResolver* m_pushedStyleResolver; 145 RawPtrWillBeMember<StyleResolver> m_pushedStyleResolver;
145 }; 146 };
146 147
147 typedef Vector<RefPtr<Attr> > AttrNodeList; 148 typedef Vector<RefPtr<Attr> > AttrNodeList;
148 typedef HashMap<Element*, OwnPtr<AttrNodeList> > AttrNodeListMap; 149 typedef HashMap<Element*, OwnPtr<AttrNodeList> > AttrNodeListMap;
149 150
150 static AttrNodeListMap& attrNodeListMap() 151 static AttrNodeListMap& attrNodeListMap()
151 { 152 {
152 DEFINE_STATIC_LOCAL(AttrNodeListMap, map, ()); 153 DEFINE_STATIC_LOCAL(AttrNodeListMap, map, ());
153 return map; 154 return map;
154 } 155 }
(...skipping 3250 matching lines...) Expand 10 before | Expand all | Expand 10 after
3405 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi stItems 3406 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi stItems
3406 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg i?id=88405 3407 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg i?id=88405
3407 if (isHTMLOptionElement(*this) || isHTMLOptGroupElement(*this)) 3408 if (isHTMLOptionElement(*this) || isHTMLOptGroupElement(*this))
3408 return false; 3409 return false;
3409 if (FullscreenElementStack::isActiveFullScreenElement(this)) 3410 if (FullscreenElementStack::isActiveFullScreenElement(this))
3410 return false; 3411 return false;
3411 return true; 3412 return true;
3412 } 3413 }
3413 3414
3414 } // namespace WebCore 3415 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698