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

Side by Side Diff: Source/WebCore/dom/Document.h

Issue 10874075: Merge 125988 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1229/
Patch Set: Created 8 years, 4 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
« no previous file with comments | « Source/WebCore/dom/ContainerNodeAlgorithms.h ('k') | Source/WebCore/dom/Document.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) 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 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
9 * Copyright (C) 2011 Google Inc. All rights reserved. 9 * Copyright (C) 2011 Google Inc. All rights reserved.
10 * 10 *
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 StyleResolver* styleResolver() 473 StyleResolver* styleResolver()
474 { 474 {
475 if (!m_styleResolver) 475 if (!m_styleResolver)
476 createStyleResolver(); 476 createStyleResolver();
477 return m_styleResolver.get(); 477 return m_styleResolver.get();
478 } 478 }
479 479
480 /** 480 /**
481 * Updates the pending sheet count and then calls updateActiveStylesheets. 481 * Updates the pending sheet count and then calls updateActiveStylesheets.
482 */ 482 */
483 void removePendingSheet(); 483 enum RemovePendingSheetNotificationType {
484 RemovePendingSheetNotifyImmediately,
485 RemovePendingSheetNotifyLater
486 };
487
488 void removePendingSheet(RemovePendingSheetNotificationType = RemovePendingSh eetNotifyImmediately);
489 void notifyRemovePendingSheetIfNeeded();
484 490
485 /** 491 /**
486 * This method returns true if all top-level stylesheets have loaded (includ ing 492 * This method returns true if all top-level stylesheets have loaded (includ ing
487 * any @imports that they may be loading). 493 * any @imports that they may be loading).
488 */ 494 */
489 bool haveStylesheetsLoaded() const 495 bool haveStylesheetsLoaded() const
490 { 496 {
491 return m_pendingStylesheets <= 0 || m_ignorePendingStylesheets; 497 return m_pendingStylesheets <= 0 || m_ignorePendingStylesheets;
492 } 498 }
493 499
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
1219 1225
1220 void createStyleResolver(); 1226 void createStyleResolver();
1221 void clearStyleResolver(); 1227 void clearStyleResolver();
1222 void combineCSSFeatureFlags(); 1228 void combineCSSFeatureFlags();
1223 void resetCSSFeatureFlags(); 1229 void resetCSSFeatureFlags();
1224 1230
1225 bool updateActiveStylesheets(StyleResolverUpdateFlag); 1231 bool updateActiveStylesheets(StyleResolverUpdateFlag);
1226 void collectActiveStylesheets(Vector<RefPtr<StyleSheet> >&); 1232 void collectActiveStylesheets(Vector<RefPtr<StyleSheet> >&);
1227 bool testAddedStylesheetRequiresStyleRecalc(StyleSheetContents*); 1233 bool testAddedStylesheetRequiresStyleRecalc(StyleSheetContents*);
1228 void analyzeStylesheetChange(StyleResolverUpdateFlag, const Vector<RefPtr<St yleSheet> >& newStylesheets, bool& requiresStyleResolverReset, bool& requiresFul lStyleRecalc); 1234 void analyzeStylesheetChange(StyleResolverUpdateFlag, const Vector<RefPtr<St yleSheet> >& newStylesheets, bool& requiresStyleResolverReset, bool& requiresFul lStyleRecalc);
1235 void didRemoveAllPendingStylesheet();
1236 void setNeedsNotifyRemoveAllPendingStylesheet() { m_needsNotifyRemoveAllPend ingStylesheet = true; }
1229 1237
1230 void seamlessParentUpdatedStylesheets(); 1238 void seamlessParentUpdatedStylesheets();
1231 void notifySeamlessChildDocumentsOfStylesheetUpdate() const; 1239 void notifySeamlessChildDocumentsOfStylesheetUpdate() const;
1232 1240
1233 void deleteCustomFonts(); 1241 void deleteCustomFonts();
1234 1242
1235 PassRefPtr<NodeList> handleZeroPadding(const HitTestRequest&, HitTestResult& ) const; 1243 PassRefPtr<NodeList> handleZeroPadding(const HitTestRequest&, HitTestResult& ) const;
1236 1244
1237 void loadEventDelayTimerFired(Timer<Document>*); 1245 void loadEventDelayTimerFired(Timer<Document>*);
1238 1246
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 OwnPtr<DOMImplementation> m_implementation; 1302 OwnPtr<DOMImplementation> m_implementation;
1295 1303
1296 // Track the number of currently loading top-level stylesheets needed for re ndering. 1304 // Track the number of currently loading top-level stylesheets needed for re ndering.
1297 // Sheets loaded using the @import directive are not included in this count. 1305 // Sheets loaded using the @import directive are not included in this count.
1298 // We use this count of pending sheets to detect when we can begin attaching 1306 // We use this count of pending sheets to detect when we can begin attaching
1299 // elements and when it is safe to execute scripts. 1307 // elements and when it is safe to execute scripts.
1300 int m_pendingStylesheets; 1308 int m_pendingStylesheets;
1301 1309
1302 // But sometimes you need to ignore pending stylesheet count to 1310 // But sometimes you need to ignore pending stylesheet count to
1303 // force an immediate layout when requested by JS. 1311 // force an immediate layout when requested by JS.
1304 bool m_ignorePendingStylesheets; 1312 bool m_ignorePendingStylesheets : 1;
1313 bool m_needsNotifyRemoveAllPendingStylesheet : 1;
1305 1314
1306 // If we do ignore the pending stylesheet count, then we need to add a boole an 1315 // If we do ignore the pending stylesheet count, then we need to add a boole an
1307 // to track that this happened so that we can do a full repaint when the sty lesheets 1316 // to track that this happened so that we can do a full repaint when the sty lesheets
1308 // do eventually load. 1317 // do eventually load.
1309 PendingSheetLayout m_pendingSheetLayout; 1318 PendingSheetLayout m_pendingSheetLayout;
1310 1319
1311 bool m_hasNodesWithPlaceholderStyle; 1320 bool m_hasNodesWithPlaceholderStyle;
1312 1321
1313 RefPtr<CSSStyleSheet> m_elemSheet; 1322 RefPtr<CSSStyleSheet> m_elemSheet;
1314 RefPtr<CSSStyleSheet> m_pageUserSheet; 1323 RefPtr<CSSStyleSheet> m_pageUserSheet;
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
1548 1557
1549 #if ENABLE(CSP_NEXT) 1558 #if ENABLE(CSP_NEXT)
1550 RefPtr<DOMSecurityPolicy> m_domSecurityPolicy; 1559 RefPtr<DOMSecurityPolicy> m_domSecurityPolicy;
1551 #endif 1560 #endif
1552 1561
1553 #ifndef NDEBUG 1562 #ifndef NDEBUG
1554 bool m_didDispatchViewportPropertiesChanged; 1563 bool m_didDispatchViewportPropertiesChanged;
1555 #endif 1564 #endif
1556 }; 1565 };
1557 1566
1567 inline void Document::notifyRemovePendingSheetIfNeeded()
1568 {
1569 if (m_needsNotifyRemoveAllPendingStylesheet)
1570 didRemoveAllPendingStylesheet();
1571 }
1572
1558 // Put these methods here, because they require the Document definition, but we really want to inline them. 1573 // Put these methods here, because they require the Document definition, but we really want to inline them.
1559 1574
1560 inline bool Node::isDocumentNode() const 1575 inline bool Node::isDocumentNode() const
1561 { 1576 {
1562 return this == m_document; 1577 return this == m_document;
1563 } 1578 }
1564 1579
1565 inline Node::Node(Document* document, ConstructionType type) 1580 inline Node::Node(Document* document, ConstructionType type)
1566 : m_nodeFlags(type) 1581 : m_nodeFlags(type)
1567 , m_document(document) 1582 , m_document(document)
1568 , m_previous(0) 1583 , m_previous(0)
1569 , m_next(0) 1584 , m_next(0)
1570 , m_renderer(0) 1585 , m_renderer(0)
1571 { 1586 {
1572 if (document) 1587 if (document)
1573 document->guardRef(); 1588 document->guardRef();
1574 #if !defined(NDEBUG) || (defined(DUMP_NODE_STATISTICS) && DUMP_NODE_STATISTICS) 1589 #if !defined(NDEBUG) || (defined(DUMP_NODE_STATISTICS) && DUMP_NODE_STATISTICS)
1575 trackForDebugging(); 1590 trackForDebugging();
1576 #endif 1591 #endif
1577 InspectorCounters::incrementCounter(InspectorCounters::NodeCounter); 1592 InspectorCounters::incrementCounter(InspectorCounters::NodeCounter);
1578 } 1593 }
1579 1594
1580 Node* eventTargetNodeForDocument(Document*); 1595 Node* eventTargetNodeForDocument(Document*);
1581 1596
1582 } // namespace WebCore 1597 } // namespace WebCore
1583 1598
1584 #endif // Document_h 1599 #endif // Document_h
OLDNEW
« no previous file with comments | « Source/WebCore/dom/ContainerNodeAlgorithms.h ('k') | Source/WebCore/dom/Document.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698