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

Side by Side Diff: third_party/WebKit/Source/core/dom/Document.h

Issue 1449623002: IntersectionObserver: second cut. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: oilpan-ify Created 5 years, 1 month 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 * (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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 class HTMLFrameOwnerElement; 119 class HTMLFrameOwnerElement;
120 class HTMLHeadElement; 120 class HTMLHeadElement;
121 class HTMLImportLoader; 121 class HTMLImportLoader;
122 class HTMLImportsController; 122 class HTMLImportsController;
123 class HTMLLinkElement; 123 class HTMLLinkElement;
124 class HTMLScriptElement; 124 class HTMLScriptElement;
125 class HitTestRequest; 125 class HitTestRequest;
126 class IdleRequestCallback; 126 class IdleRequestCallback;
127 class IdleRequestOptions; 127 class IdleRequestOptions;
128 class InputDeviceCapabilities; 128 class InputDeviceCapabilities;
129 class IntersectionObservationRegistry;
129 class LayoutPoint; 130 class LayoutPoint;
130 class LiveNodeListBase; 131 class LiveNodeListBase;
131 class Locale; 132 class Locale;
132 class LocalFrame; 133 class LocalFrame;
133 class Location; 134 class Location;
134 class MainThreadTaskRunner; 135 class MainThreadTaskRunner;
135 class MediaQueryListListener; 136 class MediaQueryListListener;
136 class MediaQueryMatcher; 137 class MediaQueryMatcher;
137 class NodeFilter; 138 class NodeFilter;
138 class NodeIterator; 139 class NodeIterator;
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 bool hasListenerType(ListenerType listenerType) const { return (m_listenerTy pes & listenerType); } 669 bool hasListenerType(ListenerType listenerType) const { return (m_listenerTy pes & listenerType); }
669 void addListenerTypeIfNeeded(const AtomicString& eventType); 670 void addListenerTypeIfNeeded(const AtomicString& eventType);
670 671
671 bool hasMutationObserversOfType(MutationObserver::MutationType type) const 672 bool hasMutationObserversOfType(MutationObserver::MutationType type) const
672 { 673 {
673 return m_mutationObserverTypes & type; 674 return m_mutationObserverTypes & type;
674 } 675 }
675 bool hasMutationObservers() const { return m_mutationObserverTypes; } 676 bool hasMutationObservers() const { return m_mutationObserverTypes; }
676 void addMutationObserverTypes(MutationObserverOptions types) { m_mutationObs erverTypes |= types; } 677 void addMutationObserverTypes(MutationObserverOptions types) { m_mutationObs erverTypes |= types; }
677 678
679 WeakPtr<Document> createWeakPtr();
680
681 IntersectionObservationRegistry* intersectionObservationRegistry();
682 void deliverIntersectionObservationsTimerFired(Timer<Document>*);
683
678 void updateViewportDescription(); 684 void updateViewportDescription();
679 void processReferrerPolicy(const String& policy); 685 void processReferrerPolicy(const String& policy);
680 686
681 // Returns the owning element in the parent document. 687 // Returns the owning element in the parent document.
682 // Returns nullptr if this is the top level document. 688 // Returns nullptr if this is the top level document.
683 HTMLFrameOwnerElement* ownerElement() const; 689 HTMLFrameOwnerElement* ownerElement() const;
684 690
685 // Returns true if this document belongs to a frame that the parent document 691 // Returns true if this document belongs to a frame that the parent document
686 // made invisible (for instance by setting as style display:none). 692 // made invisible (for instance by setting as style display:none).
687 bool isInInvisibleSubframe() const; 693 bool isInInvisibleSubframe() const;
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
1323 #endif 1329 #endif
1324 WeakPtrWillBeWeakMember<Document> m_contextDocument; 1330 WeakPtrWillBeWeakMember<Document> m_contextDocument;
1325 1331
1326 bool m_hasFullscreenSupplement; // For early return in Fullscreen::fromIfExi sts() 1332 bool m_hasFullscreenSupplement; // For early return in Fullscreen::fromIfExi sts()
1327 1333
1328 WillBeHeapVector<RefPtrWillBeMember<Element>> m_topLayerElements; 1334 WillBeHeapVector<RefPtrWillBeMember<Element>> m_topLayerElements;
1329 1335
1330 int m_loadEventDelayCount; 1336 int m_loadEventDelayCount;
1331 Timer<Document> m_loadEventDelayTimer; 1337 Timer<Document> m_loadEventDelayTimer;
1332 Timer<Document> m_pluginLoadingTimer; 1338 Timer<Document> m_pluginLoadingTimer;
1339 Timer<Document> m_deliverIntersectionObservationsTimer;
1333 1340
1334 ViewportDescription m_viewportDescription; 1341 ViewportDescription m_viewportDescription;
1335 ViewportDescription m_legacyViewportDescription; 1342 ViewportDescription m_legacyViewportDescription;
1336 Length m_viewportDefaultMinWidth; 1343 Length m_viewportDefaultMinWidth;
1337 1344
1338 ReferrerPolicy m_referrerPolicy; 1345 ReferrerPolicy m_referrerPolicy;
1339 1346
1340 DocumentTiming m_documentTiming; 1347 DocumentTiming m_documentTiming;
1341 RefPtrWillBeMember<MediaQueryMatcher> m_mediaQueryMatcher; 1348 RefPtrWillBeMember<MediaQueryMatcher> m_mediaQueryMatcher;
1342 bool m_writeRecursionIsTooDeep; 1349 bool m_writeRecursionIsTooDeep;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 int m_styleRecalcElementCounter; 1390 int m_styleRecalcElementCounter;
1384 1391
1385 ParserSynchronizationPolicy m_parserSyncPolicy; 1392 ParserSynchronizationPolicy m_parserSyncPolicy;
1386 1393
1387 OriginsUsingFeatures::Value m_originsUsingFeaturesValue; 1394 OriginsUsingFeatures::Value m_originsUsingFeaturesValue;
1388 1395
1389 ClientHintsPreferences m_clientHintsPreferences; 1396 ClientHintsPreferences m_clientHintsPreferences;
1390 1397
1391 PersistentWillBeMember<CanvasFontCache> m_canvasFontCache; 1398 PersistentWillBeMember<CanvasFontCache> m_canvasFontCache;
1392 1399
1400 PersistentWillBeMember<IntersectionObservationRegistry> m_intersectionObserv ationRegistry;
1401 OwnPtrWillBeMember<WeakPtrFactory<Document>> m_weakPointerFactory;
dcheng 2015/11/20 20:35:07 WeakPtrFactory is not a garbage collected object,
szager1 2015/11/20 22:02:23 I just noticed that Document already has an m_weak
1402
1393 int m_nodeCount; 1403 int m_nodeCount;
1394 }; 1404 };
1395 1405
1396 extern template class CORE_EXTERN_TEMPLATE_EXPORT WillBeHeapSupplement<Document> ; 1406 extern template class CORE_EXTERN_TEMPLATE_EXPORT WillBeHeapSupplement<Document> ;
1397 1407
1398 inline bool Document::shouldOverrideLegacyDescription(ViewportDescription::Type origin) 1408 inline bool Document::shouldOverrideLegacyDescription(ViewportDescription::Type origin)
1399 { 1409 {
1400 // The different (legacy) meta tags have different priorities based on the t ype 1410 // The different (legacy) meta tags have different priorities based on the t ype
1401 // regardless of which order they appear in the DOM. The priority is given b y the 1411 // regardless of which order they appear in the DOM. The priority is given b y the
1402 // ViewportDescription::Type enum. 1412 // ViewportDescription::Type enum.
(...skipping 30 matching lines...) Expand all
1433 DEFINE_TYPE_CASTS(TreeScope, Document, document, true, true); 1443 DEFINE_TYPE_CASTS(TreeScope, Document, document, true, true);
1434 1444
1435 } // namespace blink 1445 } // namespace blink
1436 1446
1437 #ifndef NDEBUG 1447 #ifndef NDEBUG
1438 // Outside the WebCore namespace for ease of invocation from gdb. 1448 // Outside the WebCore namespace for ease of invocation from gdb.
1439 CORE_EXPORT void showLiveDocumentInstances(); 1449 CORE_EXPORT void showLiveDocumentInstances();
1440 #endif 1450 #endif
1441 1451
1442 #endif // Document_h 1452 #endif // Document_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698