OLD | NEW |
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, 2011, 2012 Apple Inc. All r
ights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 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) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. |
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 // also depend on the url NOT getting immediately set in opened windows. | 502 // also depend on the url NOT getting immediately set in opened windows. |
503 // See fast/dom/early-frame-url.html | 503 // See fast/dom/early-frame-url.html |
504 // and fast/dom/location-new-window-no-crash.html, respectively. | 504 // and fast/dom/location-new-window-no-crash.html, respectively. |
505 // FIXME: Can/should we unify this behavior? | 505 // FIXME: Can/should we unify this behavior? |
506 if (initializer.shouldSetURL()) | 506 if (initializer.shouldSetURL()) |
507 setURL(initializer.url()); | 507 setURL(initializer.url()); |
508 | 508 |
509 initSecurityContext(initializer); | 509 initSecurityContext(initializer); |
510 initDNSPrefetch(); | 510 initDNSPrefetch(); |
511 | 511 |
512 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); i++) | 512 #if !ENABLE(OILPAN) |
| 513 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); ++i) |
513 m_nodeListCounts[i] = 0; | 514 m_nodeListCounts[i] = 0; |
| 515 #endif |
514 | 516 |
515 InspectorCounters::incrementCounter(InspectorCounters::DocumentCounter); | 517 InspectorCounters::incrementCounter(InspectorCounters::DocumentCounter); |
516 | 518 |
517 m_lifecycle.advanceTo(DocumentLifecycle::Inactive); | 519 m_lifecycle.advanceTo(DocumentLifecycle::Inactive); |
518 | 520 |
519 // Since CSSFontSelector requires Document::m_fetcher and StyleEngine owns | 521 // Since CSSFontSelector requires Document::m_fetcher and StyleEngine owns |
520 // CSSFontSelector, need to initialize m_styleEngine after initializing | 522 // CSSFontSelector, need to initialize m_styleEngine after initializing |
521 // m_fetcher. | 523 // m_fetcher. |
522 m_styleEngine = StyleEngine::create(*this); | 524 m_styleEngine = StyleEngine::create(*this); |
523 } | 525 } |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 // It's possible for multiple Documents to end up referencing the same Resou
rceFetcher (e.g., SVGImages | 587 // It's possible for multiple Documents to end up referencing the same Resou
rceFetcher (e.g., SVGImages |
586 // load the initial empty document and the SVGDocument with the same Documen
tLoader). | 588 // load the initial empty document and the SVGDocument with the same Documen
tLoader). |
587 if (m_fetcher->document() == this) | 589 if (m_fetcher->document() == this) |
588 m_fetcher->setDocument(nullptr); | 590 m_fetcher->setDocument(nullptr); |
589 m_fetcher.clear(); | 591 m_fetcher.clear(); |
590 | 592 |
591 // We must call clearRareData() here since a Document class inherits TreeSco
pe | 593 // We must call clearRareData() here since a Document class inherits TreeSco
pe |
592 // as well as Node. See a comment on TreeScope.h for the reason. | 594 // as well as Node. See a comment on TreeScope.h for the reason. |
593 if (hasRareData()) | 595 if (hasRareData()) |
594 clearRareData(); | 596 clearRareData(); |
| 597 |
| 598 ASSERT(m_listsInvalidatedAtDocument.isEmpty()); |
| 599 |
| 600 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); ++i) |
| 601 ASSERT(!m_nodeListCounts[i]); |
595 #endif | 602 #endif |
596 | 603 |
597 ASSERT(!m_listsInvalidatedAtDocument.size()); | |
598 | |
599 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); i++) | |
600 ASSERT(!m_nodeListCounts[i]); | |
601 | |
602 setClient(0); | 604 setClient(0); |
603 | 605 |
604 InspectorCounters::decrementCounter(InspectorCounters::DocumentCounter); | 606 InspectorCounters::decrementCounter(InspectorCounters::DocumentCounter); |
605 } | 607 } |
606 | 608 |
607 void Document::dispose() | 609 void Document::dispose() |
608 { | 610 { |
609 #if !ENABLE(OILPAN) | 611 #if !ENABLE(OILPAN) |
610 ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun); | 612 ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun); |
611 | 613 |
(...skipping 3076 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3688 | 3690 |
3689 void Document::setCSSTarget(Element* n) | 3691 void Document::setCSSTarget(Element* n) |
3690 { | 3692 { |
3691 if (m_cssTarget) | 3693 if (m_cssTarget) |
3692 m_cssTarget->didAffectSelector(AffectedSelectorTarget); | 3694 m_cssTarget->didAffectSelector(AffectedSelectorTarget); |
3693 m_cssTarget = n; | 3695 m_cssTarget = n; |
3694 if (n) | 3696 if (n) |
3695 n->didAffectSelector(AffectedSelectorTarget); | 3697 n->didAffectSelector(AffectedSelectorTarget); |
3696 } | 3698 } |
3697 | 3699 |
3698 void Document::registerNodeList(LiveNodeListBase* list) | 3700 void Document::registerNodeList(const LiveNodeListBase* list) |
3699 { | 3701 { |
| 3702 #if ENABLE(OILPAN) |
| 3703 m_nodeLists[list->invalidationType()].add(list); |
| 3704 #else |
3700 m_nodeListCounts[list->invalidationType()]++; | 3705 m_nodeListCounts[list->invalidationType()]++; |
| 3706 #endif |
3701 if (list->isRootedAtDocument()) | 3707 if (list->isRootedAtDocument()) |
3702 m_listsInvalidatedAtDocument.add(list); | 3708 m_listsInvalidatedAtDocument.add(list); |
3703 } | 3709 } |
3704 | 3710 |
3705 void Document::unregisterNodeList(LiveNodeListBase* list) | 3711 void Document::unregisterNodeList(const LiveNodeListBase* list) |
3706 { | 3712 { |
| 3713 #if ENABLE(OILPAN) |
| 3714 ASSERT(m_nodeLists[list->invalidationType()].contains(list)); |
| 3715 m_nodeLists[list->invalidationType()].remove(list); |
| 3716 #else |
3707 m_nodeListCounts[list->invalidationType()]--; | 3717 m_nodeListCounts[list->invalidationType()]--; |
| 3718 #endif |
3708 if (list->isRootedAtDocument()) { | 3719 if (list->isRootedAtDocument()) { |
3709 ASSERT(m_listsInvalidatedAtDocument.contains(list)); | 3720 ASSERT(m_listsInvalidatedAtDocument.contains(list)); |
3710 m_listsInvalidatedAtDocument.remove(list); | 3721 m_listsInvalidatedAtDocument.remove(list); |
3711 } | 3722 } |
3712 } | 3723 } |
3713 | 3724 |
| 3725 void Document::registerNodeListWithIdNameCache(const LiveNodeListBase* list) |
| 3726 { |
| 3727 #if ENABLE(OILPAN) |
| 3728 m_nodeLists[InvalidateOnIdNameAttrChange].add(list); |
| 3729 #else |
| 3730 m_nodeListCounts[InvalidateOnIdNameAttrChange]++; |
| 3731 #endif |
| 3732 } |
| 3733 |
| 3734 void Document::unregisterNodeListWithIdNameCache(const LiveNodeListBase* list) |
| 3735 { |
| 3736 #if ENABLE(OILPAN) |
| 3737 ASSERT(m_nodeLists[InvalidateOnIdNameAttrChange].contains(list)); |
| 3738 m_nodeLists[InvalidateOnIdNameAttrChange].remove(list); |
| 3739 #else |
| 3740 ASSERT(m_nodeListCounts[InvalidateOnIdNameAttrChange] > 0); |
| 3741 m_nodeListCounts[InvalidateOnIdNameAttrChange]--; |
| 3742 #endif |
| 3743 } |
| 3744 |
3714 void Document::attachNodeIterator(NodeIterator* ni) | 3745 void Document::attachNodeIterator(NodeIterator* ni) |
3715 { | 3746 { |
3716 m_nodeIterators.add(ni); | 3747 m_nodeIterators.add(ni); |
3717 } | 3748 } |
3718 | 3749 |
3719 void Document::detachNodeIterator(NodeIterator* ni) | 3750 void Document::detachNodeIterator(NodeIterator* ni) |
3720 { | 3751 { |
3721 // The node iterator can be detached without having been attached if its roo
t node didn't have a document | 3752 // The node iterator can be detached without having been attached if its roo
t node didn't have a document |
3722 // when the iterator was created, but has it now. | 3753 // when the iterator was created, but has it now. |
3723 m_nodeIterators.remove(ni); | 3754 m_nodeIterators.remove(ni); |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4507 if (!m_svgExtensions) | 4538 if (!m_svgExtensions) |
4508 m_svgExtensions = adoptPtrWillBeNoop(new SVGDocumentExtensions(this)); | 4539 m_svgExtensions = adoptPtrWillBeNoop(new SVGDocumentExtensions(this)); |
4509 return *m_svgExtensions; | 4540 return *m_svgExtensions; |
4510 } | 4541 } |
4511 | 4542 |
4512 bool Document::hasSVGRootNode() const | 4543 bool Document::hasSVGRootNode() const |
4513 { | 4544 { |
4514 return isSVGSVGElement(documentElement()); | 4545 return isSVGSVGElement(documentElement()); |
4515 } | 4546 } |
4516 | 4547 |
4517 PassRefPtr<HTMLCollection> Document::ensureCachedCollection(CollectionType type) | 4548 PassRefPtrWillBeRawPtr<HTMLCollection> Document::ensureCachedCollection(Collecti
onType type) |
4518 { | 4549 { |
4519 return ensureRareData().ensureNodeLists().addCache<HTMLCollection>(*this, ty
pe); | 4550 return ensureRareData().ensureNodeLists().addCache<HTMLCollection>(*this, ty
pe); |
4520 } | 4551 } |
4521 | 4552 |
4522 PassRefPtr<HTMLCollection> Document::images() | 4553 PassRefPtrWillBeRawPtr<HTMLCollection> Document::images() |
4523 { | 4554 { |
4524 return ensureCachedCollection(DocImages); | 4555 return ensureCachedCollection(DocImages); |
4525 } | 4556 } |
4526 | 4557 |
4527 PassRefPtr<HTMLCollection> Document::applets() | 4558 PassRefPtrWillBeRawPtr<HTMLCollection> Document::applets() |
4528 { | 4559 { |
4529 return ensureCachedCollection(DocApplets); | 4560 return ensureCachedCollection(DocApplets); |
4530 } | 4561 } |
4531 | 4562 |
4532 PassRefPtr<HTMLCollection> Document::embeds() | 4563 PassRefPtrWillBeRawPtr<HTMLCollection> Document::embeds() |
4533 { | 4564 { |
4534 return ensureCachedCollection(DocEmbeds); | 4565 return ensureCachedCollection(DocEmbeds); |
4535 } | 4566 } |
4536 | 4567 |
4537 PassRefPtr<HTMLCollection> Document::scripts() | 4568 PassRefPtrWillBeRawPtr<HTMLCollection> Document::scripts() |
4538 { | 4569 { |
4539 return ensureCachedCollection(DocScripts); | 4570 return ensureCachedCollection(DocScripts); |
4540 } | 4571 } |
4541 | 4572 |
4542 PassRefPtr<HTMLCollection> Document::links() | 4573 PassRefPtrWillBeRawPtr<HTMLCollection> Document::links() |
4543 { | 4574 { |
4544 return ensureCachedCollection(DocLinks); | 4575 return ensureCachedCollection(DocLinks); |
4545 } | 4576 } |
4546 | 4577 |
4547 PassRefPtr<HTMLCollection> Document::forms() | 4578 PassRefPtrWillBeRawPtr<HTMLCollection> Document::forms() |
4548 { | 4579 { |
4549 return ensureCachedCollection(DocForms); | 4580 return ensureCachedCollection(DocForms); |
4550 } | 4581 } |
4551 | 4582 |
4552 PassRefPtr<HTMLCollection> Document::anchors() | 4583 PassRefPtrWillBeRawPtr<HTMLCollection> Document::anchors() |
4553 { | 4584 { |
4554 return ensureCachedCollection(DocAnchors); | 4585 return ensureCachedCollection(DocAnchors); |
4555 } | 4586 } |
4556 | 4587 |
4557 PassRefPtr<HTMLAllCollection> Document::allForBinding() | 4588 PassRefPtrWillBeRawPtr<HTMLAllCollection> Document::allForBinding() |
4558 { | 4589 { |
4559 UseCounter::count(*this, UseCounter::DocumentAll); | 4590 UseCounter::count(*this, UseCounter::DocumentAll); |
4560 return all(); | 4591 return all(); |
4561 } | 4592 } |
4562 | 4593 |
4563 PassRefPtr<HTMLAllCollection> Document::all() | 4594 PassRefPtrWillBeRawPtr<HTMLAllCollection> Document::all() |
4564 { | 4595 { |
4565 return ensureRareData().ensureNodeLists().addCache<HTMLAllCollection>(*this,
DocAll); | 4596 return ensureRareData().ensureNodeLists().addCache<HTMLAllCollection>(*this,
DocAll); |
4566 } | 4597 } |
4567 | 4598 |
4568 PassRefPtr<HTMLCollection> Document::windowNamedItems(const AtomicString& name) | 4599 PassRefPtrWillBeRawPtr<HTMLCollection> Document::windowNamedItems(const AtomicSt
ring& name) |
4569 { | 4600 { |
4570 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this
, WindowNamedItems, name); | 4601 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this
, WindowNamedItems, name); |
4571 } | 4602 } |
4572 | 4603 |
4573 PassRefPtr<HTMLCollection> Document::documentNamedItems(const AtomicString& name
) | 4604 PassRefPtrWillBeRawPtr<HTMLCollection> Document::documentNamedItems(const Atomic
String& name) |
4574 { | 4605 { |
4575 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this
, DocumentNamedItems, name); | 4606 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this
, DocumentNamedItems, name); |
4576 } | 4607 } |
4577 | 4608 |
4578 void Document::finishedParsing() | 4609 void Document::finishedParsing() |
4579 { | 4610 { |
4580 ASSERT(!scriptableDocumentParser() || !m_parser->isParsing()); | 4611 ASSERT(!scriptableDocumentParser() || !m_parser->isParsing()); |
4581 ASSERT(!scriptableDocumentParser() || m_readyState != Loading); | 4612 ASSERT(!scriptableDocumentParser() || m_readyState != Loading); |
4582 setParsing(false); | 4613 setParsing(false); |
4583 if (!m_documentTiming.domContentLoadedEventStart) | 4614 if (!m_documentTiming.domContentLoadedEventStart) |
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5641 if (!page->focusController().isActive() || !page->focusController().isFocuse
d()) | 5672 if (!page->focusController().isActive() || !page->focusController().isFocuse
d()) |
5642 return false; | 5673 return false; |
5643 Frame* focusedFrame = page->focusController().focusedFrame(); | 5674 Frame* focusedFrame = page->focusController().focusedFrame(); |
5644 if (focusedFrame && focusedFrame->isLocalFrame()) { | 5675 if (focusedFrame && focusedFrame->isLocalFrame()) { |
5645 if (toLocalFrame(focusedFrame)->tree().isDescendantOf(frame())) | 5676 if (toLocalFrame(focusedFrame)->tree().isDescendantOf(frame())) |
5646 return true; | 5677 return true; |
5647 } | 5678 } |
5648 return false; | 5679 return false; |
5649 } | 5680 } |
5650 | 5681 |
5651 template<unsigned type> | |
5652 bool shouldInvalidateNodeListCachesForAttr(const unsigned nodeListCounts[], cons
t QualifiedName& attrName) | |
5653 { | |
5654 if (nodeListCounts[type] && LiveNodeListBase::shouldInvalidateTypeOnAttribut
eChange(static_cast<NodeListInvalidationType>(type), attrName)) | |
5655 return true; | |
5656 return shouldInvalidateNodeListCachesForAttr<type + 1>(nodeListCounts, attrN
ame); | |
5657 } | |
5658 | |
5659 template<> | |
5660 bool shouldInvalidateNodeListCachesForAttr<numNodeListInvalidationTypes>(const u
nsigned[], const QualifiedName&) | |
5661 { | |
5662 return false; | |
5663 } | |
5664 | |
5665 bool Document::shouldInvalidateNodeListCaches(const QualifiedName* attrName) con
st | 5682 bool Document::shouldInvalidateNodeListCaches(const QualifiedName* attrName) con
st |
5666 { | 5683 { |
5667 if (attrName) | 5684 if (attrName) { |
5668 return shouldInvalidateNodeListCachesForAttr<DoNotInvalidateOnAttributeC
hanges + 1>(m_nodeListCounts, *attrName); | 5685 for (int type = 1; type < numNodeListInvalidationTypes; ++type) { |
| 5686 #if ENABLE(OILPAN) |
| 5687 if (m_nodeLists[type].isEmpty()) { |
| 5688 #else |
| 5689 if (!m_nodeListCounts[type]) { |
| 5690 #endif |
| 5691 continue; |
| 5692 } |
5669 | 5693 |
5670 for (int type = 0; type < numNodeListInvalidationTypes; type++) { | 5694 if (LiveNodeListBase::shouldInvalidateTypeOnAttributeChange(static_c
ast<NodeListInvalidationType>(type), *attrName)) |
| 5695 return true; |
| 5696 } |
| 5697 } |
| 5698 |
| 5699 for (int type = 0; type < numNodeListInvalidationTypes; ++type) { |
| 5700 #if ENABLE(OILPAN) |
| 5701 if (!m_nodeLists[type].isEmpty()) |
| 5702 #else |
5671 if (m_nodeListCounts[type]) | 5703 if (m_nodeListCounts[type]) |
| 5704 #endif |
5672 return true; | 5705 return true; |
5673 } | 5706 } |
5674 | 5707 |
5675 return false; | 5708 return false; |
5676 } | 5709 } |
5677 | 5710 |
5678 void Document::invalidateNodeListCaches(const QualifiedName* attrName) | 5711 void Document::invalidateNodeListCaches(const QualifiedName* attrName) |
5679 { | 5712 { |
5680 HashSet<LiveNodeListBase*>::iterator end = m_listsInvalidatedAtDocument.end(
); | 5713 WillBeHeapHashSet<RawPtrWillBeWeakMember<const LiveNodeListBase> >::const_it
erator end = m_listsInvalidatedAtDocument.end(); |
5681 for (HashSet<LiveNodeListBase*>::iterator it = m_listsInvalidatedAtDocument.
begin(); it != end; ++it) | 5714 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<const LiveNodeListBase> >::con
st_iterator it = m_listsInvalidatedAtDocument.begin(); it != end; ++it) |
5682 (*it)->invalidateCacheForAttribute(attrName); | 5715 (*it)->invalidateCacheForAttribute(attrName); |
5683 } | 5716 } |
5684 | 5717 |
5685 void Document::clearWeakMembers(Visitor* visitor) | 5718 void Document::clearWeakMembers(Visitor* visitor) |
5686 { | 5719 { |
5687 if (m_axObjectCache) | 5720 if (m_axObjectCache) |
5688 m_axObjectCache->clearWeakMembers(visitor); | 5721 m_axObjectCache->clearWeakMembers(visitor); |
5689 | 5722 |
5690 // FIXME: Oilpan: Use a weak counted set instead. | 5723 // FIXME: Oilpan: Use a weak counted set instead. |
5691 if (m_touchEventTargets) { | 5724 if (m_touchEventTargets) { |
(...skipping 13 matching lines...) Expand all Loading... |
5705 visitor->trace(m_implementation); | 5738 visitor->trace(m_implementation); |
5706 visitor->trace(m_autofocusElement); | 5739 visitor->trace(m_autofocusElement); |
5707 visitor->trace(m_focusedElement); | 5740 visitor->trace(m_focusedElement); |
5708 visitor->trace(m_hoverNode); | 5741 visitor->trace(m_hoverNode); |
5709 visitor->trace(m_activeHoverElement); | 5742 visitor->trace(m_activeHoverElement); |
5710 visitor->trace(m_documentElement); | 5743 visitor->trace(m_documentElement); |
5711 visitor->trace(m_titleElement); | 5744 visitor->trace(m_titleElement); |
5712 visitor->trace(m_markers); | 5745 visitor->trace(m_markers); |
5713 visitor->trace(m_currentScriptStack); | 5746 visitor->trace(m_currentScriptStack); |
5714 visitor->trace(m_transformSourceDocument); | 5747 visitor->trace(m_transformSourceDocument); |
| 5748 visitor->trace(m_listsInvalidatedAtDocument); |
| 5749 #if ENABLE(OILPAN) |
| 5750 for (int i = 0; i < numNodeListInvalidationTypes; ++i) |
| 5751 visitor->trace(m_nodeLists[i]); |
| 5752 #endif |
5715 visitor->trace(m_cssCanvasElements); | 5753 visitor->trace(m_cssCanvasElements); |
5716 visitor->trace(m_topLayerElements); | 5754 visitor->trace(m_topLayerElements); |
5717 visitor->trace(m_elemSheet); | 5755 visitor->trace(m_elemSheet); |
5718 visitor->trace(m_styleEngine); | 5756 visitor->trace(m_styleEngine); |
5719 visitor->trace(m_formController); | 5757 visitor->trace(m_formController); |
5720 visitor->trace(m_fetcher); | 5758 visitor->trace(m_fetcher); |
5721 visitor->trace(m_contextFeatures); | 5759 visitor->trace(m_contextFeatures); |
5722 visitor->trace(m_styleSheetList); | 5760 visitor->trace(m_styleSheetList); |
5723 visitor->trace(m_mediaQueryMatcher); | 5761 visitor->trace(m_mediaQueryMatcher); |
5724 visitor->trace(m_associatedFormControls); | 5762 visitor->trace(m_associatedFormControls); |
5725 visitor->trace(m_templateDocument); | 5763 visitor->trace(m_templateDocument); |
5726 visitor->trace(m_templateDocumentHost); | 5764 visitor->trace(m_templateDocumentHost); |
5727 visitor->trace(m_visibilityObservers); | 5765 visitor->trace(m_visibilityObservers); |
5728 visitor->trace(m_userActionElements); | 5766 visitor->trace(m_userActionElements); |
5729 visitor->trace(m_svgExtensions); | 5767 visitor->trace(m_svgExtensions); |
5730 visitor->trace(m_timeline); | 5768 visitor->trace(m_timeline); |
5731 visitor->trace(m_transitionTimeline); | 5769 visitor->trace(m_transitionTimeline); |
5732 visitor->trace(m_compositorPendingAnimations); | 5770 visitor->trace(m_compositorPendingAnimations); |
5733 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); | 5771 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); |
5734 DocumentSupplementable::trace(visitor); | 5772 DocumentSupplementable::trace(visitor); |
5735 TreeScope::trace(visitor); | 5773 TreeScope::trace(visitor); |
5736 ContainerNode::trace(visitor); | 5774 ContainerNode::trace(visitor); |
5737 ExecutionContext::trace(visitor); | 5775 ExecutionContext::trace(visitor); |
5738 } | 5776 } |
5739 | 5777 |
5740 } // namespace WebCore | 5778 } // namespace WebCore |
OLD | NEW |