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

Side by Side Diff: Source/core/dom/ElementRareData.h

Issue 17654008: Implement the ::backdrop pseudo-element for modal <dialog>. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: use element directly Created 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/dom/Element.cpp ('k') | Source/core/dom/ElementRareData.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 David Smith <catfish.man@gmail.com> 3 * Copyright (C) 2008 David Smith <catfish.man@gmail.com>
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 OwnPtr<DatasetDOMStringMap> m_dataset; 179 OwnPtr<DatasetDOMStringMap> m_dataset;
180 OwnPtr<ClassList> m_classList; 180 OwnPtr<ClassList> m_classList;
181 OwnPtr<ElementShadow> m_shadow; 181 OwnPtr<ElementShadow> m_shadow;
182 OwnPtr<NamedNodeMap> m_attributeMap; 182 OwnPtr<NamedNodeMap> m_attributeMap;
183 OwnPtr<InputMethodContext> m_inputMethodContext; 183 OwnPtr<InputMethodContext> m_inputMethodContext;
184 184
185 OwnPtr<Vector<Animation*> > m_activeAnimations; 185 OwnPtr<Vector<Animation*> > m_activeAnimations;
186 186
187 RefPtr<PseudoElement> m_generatedBefore; 187 RefPtr<PseudoElement> m_generatedBefore;
188 RefPtr<PseudoElement> m_generatedAfter; 188 RefPtr<PseudoElement> m_generatedAfter;
189 RefPtr<PseudoElement> m_backdrop;
189 190
190 ElementRareData(RenderObject*); 191 ElementRareData(RenderObject*);
191 void releasePseudoElement(PseudoElement*); 192 void releasePseudoElement(PseudoElement*);
192 }; 193 };
193 194
194 inline IntSize defaultMinimumSizeForResizing() 195 inline IntSize defaultMinimumSizeForResizing()
195 { 196 {
196 return IntSize(LayoutUnit::max(), LayoutUnit::max()); 197 return IntSize(LayoutUnit::max(), LayoutUnit::max());
197 } 198 }
198 199
(...skipping 20 matching lines...) Expand all
219 , m_regionOversetState(RegionUndefined) 220 , m_regionOversetState(RegionUndefined)
220 , m_minimumSizeForResizing(defaultMinimumSizeForResizing()) 221 , m_minimumSizeForResizing(defaultMinimumSizeForResizing())
221 { 222 {
222 } 223 }
223 224
224 inline ElementRareData::~ElementRareData() 225 inline ElementRareData::~ElementRareData()
225 { 226 {
226 ASSERT(!m_shadow); 227 ASSERT(!m_shadow);
227 ASSERT(!m_generatedBefore); 228 ASSERT(!m_generatedBefore);
228 ASSERT(!m_generatedAfter); 229 ASSERT(!m_generatedAfter);
230 ASSERT(!m_backdrop);
229 } 231 }
230 232
231 inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtr<Pseu doElement> element) 233 inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtr<Pseu doElement> element)
232 { 234 {
233 switch (pseudoId) { 235 switch (pseudoId) {
234 case BEFORE: 236 case BEFORE:
235 releasePseudoElement(m_generatedBefore.get()); 237 releasePseudoElement(m_generatedBefore.get());
236 m_generatedBefore = element; 238 m_generatedBefore = element;
237 break; 239 break;
238 case AFTER: 240 case AFTER:
239 releasePseudoElement(m_generatedAfter.get()); 241 releasePseudoElement(m_generatedAfter.get());
240 m_generatedAfter = element; 242 m_generatedAfter = element;
241 break; 243 break;
244 case BACKDROP:
245 releasePseudoElement(m_backdrop.get());
246 m_backdrop = element;
247 break;
242 default: 248 default:
243 ASSERT_NOT_REACHED(); 249 ASSERT_NOT_REACHED();
244 } 250 }
245 } 251 }
246 252
247 inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const 253 inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const
248 { 254 {
249 switch (pseudoId) { 255 switch (pseudoId) {
250 case BEFORE: 256 case BEFORE:
251 return m_generatedBefore.get(); 257 return m_generatedBefore.get();
252 case AFTER: 258 case AFTER:
253 return m_generatedAfter.get(); 259 return m_generatedAfter.get();
260 case BACKDROP:
261 return m_backdrop.get();
254 default: 262 default:
255 return 0; 263 return 0;
256 } 264 }
257 } 265 }
258 266
259 inline void ElementRareData::releasePseudoElement(PseudoElement* element) 267 inline void ElementRareData::releasePseudoElement(PseudoElement* element)
260 { 268 {
261 if (!element) 269 if (!element)
262 return; 270 return;
263 271
264 if (element->attached()) 272 if (element->attached())
265 element->detach(); 273 element->detach();
266 274
267 ASSERT(!element->nextSibling()); 275 ASSERT(!element->nextSibling());
268 ASSERT(!element->previousSibling()); 276 ASSERT(!element->previousSibling());
269 277
278 element->document()->removeFromTopLayer(element);
270 element->setParentOrShadowHostNode(0); 279 element->setParentOrShadowHostNode(0);
271 } 280 }
272 281
273 inline void ElementRareData::resetComputedStyle() 282 inline void ElementRareData::resetComputedStyle()
274 { 283 {
275 setComputedStyle(0); 284 setComputedStyle(0);
276 setStyleAffectedByEmpty(false); 285 setStyleAffectedByEmpty(false);
277 setChildIndex(0); 286 setChildIndex(0);
278 } 287 }
279 288
280 inline void ElementRareData::resetDynamicRestyleObservations() 289 inline void ElementRareData::resetDynamicRestyleObservations()
281 { 290 {
282 setChildrenAffectedByHover(false); 291 setChildrenAffectedByHover(false);
283 setChildrenAffectedByActive(false); 292 setChildrenAffectedByActive(false);
284 setChildrenAffectedByDrag(false); 293 setChildrenAffectedByDrag(false);
285 setChildrenAffectedByFirstChildRules(false); 294 setChildrenAffectedByFirstChildRules(false);
286 setChildrenAffectedByLastChildRules(false); 295 setChildrenAffectedByLastChildRules(false);
287 setChildrenAffectedByDirectAdjacentRules(false); 296 setChildrenAffectedByDirectAdjacentRules(false);
288 setChildrenAffectedByForwardPositionalRules(false); 297 setChildrenAffectedByForwardPositionalRules(false);
289 setChildrenAffectedByBackwardPositionalRules(false); 298 setChildrenAffectedByBackwardPositionalRules(false);
290 } 299 }
291 300
292 } // namespace 301 } // namespace
293 302
294 #endif // ElementRareData_h 303 #endif // ElementRareData_h
OLDNEW
« no previous file with comments | « Source/core/dom/Element.cpp ('k') | Source/core/dom/ElementRareData.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698