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 #if !ENABLE(OILPAN) | |
512 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); i++) | 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
582 if (m_elemSheet) | 584 if (m_elemSheet) |
583 m_elemSheet->clearOwnerNode(); | 585 m_elemSheet->clearOwnerNode(); |
584 | 586 |
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 #endif | 592 #endif |
591 | 593 |
594 #if !ENABLE(OILPAN) | |
Mads Ager (chromium)
2014/05/15 10:54:24
Remove this line and line 592? :)
| |
592 // We must call clearRareData() here since a Document class inherits TreeSco pe | 595 // We must call clearRareData() here since a Document class inherits TreeSco pe |
593 // as well as Node. See a comment on TreeScope.h for the reason. | 596 // as well as Node. See a comment on TreeScope.h for the reason. |
594 #if !ENABLE(OILPAN) | |
595 if (hasRareData()) | 597 if (hasRareData()) |
596 clearRareData(); | 598 clearRareData(); |
597 #endif | |
598 | 599 |
599 ASSERT(!m_listsInvalidatedAtDocument.size()); | 600 ASSERT(m_listsInvalidatedAtDocument.isEmpty()); |
600 | 601 |
601 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); i++) | 602 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(m_nodeListCounts); i++) |
602 ASSERT(!m_nodeListCounts[i]); | 603 ASSERT(!m_nodeListCounts[i]); |
604 #endif | |
603 | 605 |
604 setClient(0); | 606 setClient(0); |
605 | 607 |
606 InspectorCounters::decrementCounter(InspectorCounters::DocumentCounter); | 608 InspectorCounters::decrementCounter(InspectorCounters::DocumentCounter); |
607 } | 609 } |
608 | 610 |
609 void Document::dispose() | 611 void Document::dispose() |
610 { | 612 { |
611 #if !ENABLE(OILPAN) | 613 #if !ENABLE(OILPAN) |
612 ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun); | 614 ASSERT_WITH_SECURITY_IMPLICATION(!m_deletionHasBegun); |
(...skipping 3079 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3692 { | 3694 { |
3693 if (m_cssTarget) | 3695 if (m_cssTarget) |
3694 m_cssTarget->didAffectSelector(AffectedSelectorTarget); | 3696 m_cssTarget->didAffectSelector(AffectedSelectorTarget); |
3695 m_cssTarget = n; | 3697 m_cssTarget = n; |
3696 if (n) | 3698 if (n) |
3697 n->didAffectSelector(AffectedSelectorTarget); | 3699 n->didAffectSelector(AffectedSelectorTarget); |
3698 } | 3700 } |
3699 | 3701 |
3700 void Document::registerNodeList(LiveNodeListBase* list) | 3702 void Document::registerNodeList(LiveNodeListBase* list) |
3701 { | 3703 { |
3704 #if ENABLE(OILPAN) | |
3705 m_nodeLists[list->invalidationType()].add(list); | |
3706 #else | |
3702 m_nodeListCounts[list->invalidationType()]++; | 3707 m_nodeListCounts[list->invalidationType()]++; |
3708 #endif | |
3703 if (list->isRootedAtDocument()) | 3709 if (list->isRootedAtDocument()) |
3704 m_listsInvalidatedAtDocument.add(list); | 3710 m_listsInvalidatedAtDocument.add(list); |
3705 } | 3711 } |
3706 | 3712 |
3707 void Document::unregisterNodeList(LiveNodeListBase* list) | 3713 void Document::unregisterNodeList(LiveNodeListBase* list) |
3708 { | 3714 { |
3715 #if ENABLE(OILPAN) | |
3716 ASSERT(m_nodeLists[list->invalidationType()].contains(WeakMember<LiveNodeLis tBase>(list))); | |
Erik Corry
2014/05/15 12:34:52
I think you can write contains(list) instead of co
sof
2014/05/15 22:15:57
Yes, the explicit WeakMember<>s aren't needed, rem
sof
2014/05/16 06:12:28
That is the problem,
NeedsAdjustAndMark<const L
| |
3717 m_nodeLists[list->invalidationType()].remove(WeakMember<LiveNodeListBase>(li st)); | |
3718 #else | |
3709 m_nodeListCounts[list->invalidationType()]--; | 3719 m_nodeListCounts[list->invalidationType()]--; |
3720 #endif | |
3710 if (list->isRootedAtDocument()) { | 3721 if (list->isRootedAtDocument()) { |
3711 ASSERT(m_listsInvalidatedAtDocument.contains(list)); | 3722 ASSERT(m_listsInvalidatedAtDocument.contains(list)); |
3712 m_listsInvalidatedAtDocument.remove(list); | 3723 m_listsInvalidatedAtDocument.remove(list); |
3713 } | 3724 } |
3714 } | 3725 } |
3715 | 3726 |
3727 #if ENABLE(OILPAN) | |
3728 void Document::incrementNodeListWithIdNameCacheCount(const LiveNodeListBase* lis t) | |
3729 { | |
3730 m_nodeLists[InvalidateOnIdNameAttrChange].add(WeakMember<LiveNodeListBase>(c onst_cast<LiveNodeListBase*>(list))); | |
3731 } | |
3732 | |
3733 void Document::decrementNodeListWithIdNameCacheCount(const LiveNodeListBase* lis t) | |
3734 { | |
3735 ASSERT(m_nodeLists[InvalidateOnIdNameAttrChange].contains(WeakMember<LiveNod eListBase>(const_cast<LiveNodeListBase*>(list)))); | |
3736 m_nodeLists[InvalidateOnIdNameAttrChange].remove(WeakMember<LiveNodeListBase >(const_cast<LiveNodeListBase*>(list))); | |
3737 } | |
3738 #endif | |
3739 | |
3716 void Document::attachNodeIterator(NodeIterator* ni) | 3740 void Document::attachNodeIterator(NodeIterator* ni) |
3717 { | 3741 { |
3718 m_nodeIterators.add(ni); | 3742 m_nodeIterators.add(ni); |
3719 } | 3743 } |
3720 | 3744 |
3721 void Document::detachNodeIterator(NodeIterator* ni) | 3745 void Document::detachNodeIterator(NodeIterator* ni) |
3722 { | 3746 { |
3723 // The node iterator can be detached without having been attached if its roo t node didn't have a document | 3747 // The node iterator can be detached without having been attached if its roo t node didn't have a document |
3724 // when the iterator was created, but has it now. | 3748 // when the iterator was created, but has it now. |
3725 m_nodeIterators.remove(ni); | 3749 m_nodeIterators.remove(ni); |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4509 if (!m_svgExtensions) | 4533 if (!m_svgExtensions) |
4510 m_svgExtensions = adoptPtrWillBeNoop(new SVGDocumentExtensions(this)); | 4534 m_svgExtensions = adoptPtrWillBeNoop(new SVGDocumentExtensions(this)); |
4511 return *m_svgExtensions; | 4535 return *m_svgExtensions; |
4512 } | 4536 } |
4513 | 4537 |
4514 bool Document::hasSVGRootNode() const | 4538 bool Document::hasSVGRootNode() const |
4515 { | 4539 { |
4516 return isSVGSVGElement(documentElement()); | 4540 return isSVGSVGElement(documentElement()); |
4517 } | 4541 } |
4518 | 4542 |
4519 PassRefPtr<HTMLCollection> Document::ensureCachedCollection(CollectionType type) | 4543 PassRefPtrWillBeRawPtr<HTMLCollection> Document::ensureCachedCollection(Collecti onType type) |
4520 { | 4544 { |
4521 return ensureRareData().ensureNodeLists().addCache<HTMLCollection>(*this, ty pe); | 4545 return ensureRareData().ensureNodeLists().addCache<HTMLCollection>(*this, ty pe); |
4522 } | 4546 } |
4523 | 4547 |
4524 PassRefPtr<HTMLCollection> Document::images() | 4548 PassRefPtrWillBeRawPtr<HTMLCollection> Document::images() |
4525 { | 4549 { |
4526 return ensureCachedCollection(DocImages); | 4550 return ensureCachedCollection(DocImages); |
4527 } | 4551 } |
4528 | 4552 |
4529 PassRefPtr<HTMLCollection> Document::applets() | 4553 PassRefPtrWillBeRawPtr<HTMLCollection> Document::applets() |
4530 { | 4554 { |
4531 return ensureCachedCollection(DocApplets); | 4555 return ensureCachedCollection(DocApplets); |
4532 } | 4556 } |
4533 | 4557 |
4534 PassRefPtr<HTMLCollection> Document::embeds() | 4558 PassRefPtrWillBeRawPtr<HTMLCollection> Document::embeds() |
4535 { | 4559 { |
4536 return ensureCachedCollection(DocEmbeds); | 4560 return ensureCachedCollection(DocEmbeds); |
4537 } | 4561 } |
4538 | 4562 |
4539 PassRefPtr<HTMLCollection> Document::scripts() | 4563 PassRefPtrWillBeRawPtr<HTMLCollection> Document::scripts() |
4540 { | 4564 { |
4541 return ensureCachedCollection(DocScripts); | 4565 return ensureCachedCollection(DocScripts); |
4542 } | 4566 } |
4543 | 4567 |
4544 PassRefPtr<HTMLCollection> Document::links() | 4568 PassRefPtrWillBeRawPtr<HTMLCollection> Document::links() |
4545 { | 4569 { |
4546 return ensureCachedCollection(DocLinks); | 4570 return ensureCachedCollection(DocLinks); |
4547 } | 4571 } |
4548 | 4572 |
4549 PassRefPtr<HTMLCollection> Document::forms() | 4573 PassRefPtrWillBeRawPtr<HTMLCollection> Document::forms() |
4550 { | 4574 { |
4551 return ensureCachedCollection(DocForms); | 4575 return ensureCachedCollection(DocForms); |
4552 } | 4576 } |
4553 | 4577 |
4554 PassRefPtr<HTMLCollection> Document::anchors() | 4578 PassRefPtrWillBeRawPtr<HTMLCollection> Document::anchors() |
4555 { | 4579 { |
4556 return ensureCachedCollection(DocAnchors); | 4580 return ensureCachedCollection(DocAnchors); |
4557 } | 4581 } |
4558 | 4582 |
4559 PassRefPtr<HTMLAllCollection> Document::allForBinding() | 4583 PassRefPtrWillBeRawPtr<HTMLAllCollection> Document::allForBinding() |
4560 { | 4584 { |
4561 UseCounter::count(*this, UseCounter::DocumentAll); | 4585 UseCounter::count(*this, UseCounter::DocumentAll); |
4562 return all(); | 4586 return all(); |
4563 } | 4587 } |
4564 | 4588 |
4565 PassRefPtr<HTMLAllCollection> Document::all() | 4589 PassRefPtrWillBeRawPtr<HTMLAllCollection> Document::all() |
4566 { | 4590 { |
4567 return ensureRareData().ensureNodeLists().addCache<HTMLAllCollection>(*this, DocAll); | 4591 return ensureRareData().ensureNodeLists().addCache<HTMLAllCollection>(*this, DocAll); |
4568 } | 4592 } |
4569 | 4593 |
4570 PassRefPtr<HTMLCollection> Document::windowNamedItems(const AtomicString& name) | 4594 PassRefPtrWillBeRawPtr<HTMLCollection> Document::windowNamedItems(const AtomicSt ring& name) |
4571 { | 4595 { |
4572 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this , WindowNamedItems, name); | 4596 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this , WindowNamedItems, name); |
4573 } | 4597 } |
4574 | 4598 |
4575 PassRefPtr<HTMLCollection> Document::documentNamedItems(const AtomicString& name ) | 4599 PassRefPtrWillBeRawPtr<HTMLCollection> Document::documentNamedItems(const Atomic String& name) |
4576 { | 4600 { |
4577 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this , DocumentNamedItems, name); | 4601 return ensureRareData().ensureNodeLists().addCache<HTMLNameCollection>(*this , DocumentNamedItems, name); |
4578 } | 4602 } |
4579 | 4603 |
4580 void Document::finishedParsing() | 4604 void Document::finishedParsing() |
4581 { | 4605 { |
4582 ASSERT(!scriptableDocumentParser() || !m_parser->isParsing()); | 4606 ASSERT(!scriptableDocumentParser() || !m_parser->isParsing()); |
4583 ASSERT(!scriptableDocumentParser() || m_readyState != Loading); | 4607 ASSERT(!scriptableDocumentParser() || m_readyState != Loading); |
4584 setParsing(false); | 4608 setParsing(false); |
4585 if (!m_documentTiming.domContentLoadedEventStart) | 4609 if (!m_documentTiming.domContentLoadedEventStart) |
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5643 if (!page->focusController().isActive() || !page->focusController().isFocuse d()) | 5667 if (!page->focusController().isActive() || !page->focusController().isFocuse d()) |
5644 return false; | 5668 return false; |
5645 Frame* focusedFrame = page->focusController().focusedFrame(); | 5669 Frame* focusedFrame = page->focusController().focusedFrame(); |
5646 if (focusedFrame && focusedFrame->isLocalFrame()) { | 5670 if (focusedFrame && focusedFrame->isLocalFrame()) { |
5647 if (toLocalFrame(focusedFrame)->tree().isDescendantOf(frame())) | 5671 if (toLocalFrame(focusedFrame)->tree().isDescendantOf(frame())) |
5648 return true; | 5672 return true; |
5649 } | 5673 } |
5650 return false; | 5674 return false; |
5651 } | 5675 } |
5652 | 5676 |
5677 #if ENABLE(OILPAN) | |
5678 template<unsigned type> | |
5679 bool shouldInvalidateNodeListCachesForAttr(const HeapHashSet<WeakMember<LiveNode ListBase> > nodeLists[], const QualifiedName& attrName) | |
5680 { | |
5681 if (!nodeLists[type].isEmpty() && LiveNodeListBase::shouldInvalidateTypeOnAt tributeChange(static_cast<NodeListInvalidationType>(type), attrName)) | |
5682 return true; | |
5683 return shouldInvalidateNodeListCachesForAttr<type + 1>(nodeLists, attrName); | |
5684 } | |
5685 | |
5686 template<> | |
5687 bool shouldInvalidateNodeListCachesForAttr<numNodeListInvalidationTypes>(const H eapHashSet<WeakMember<LiveNodeListBase> >[], const QualifiedName&) | |
5688 { | |
5689 return false; | |
5690 } | |
5691 #else | |
5653 template<unsigned type> | 5692 template<unsigned type> |
5654 bool shouldInvalidateNodeListCachesForAttr(const unsigned nodeListCounts[], cons t QualifiedName& attrName) | 5693 bool shouldInvalidateNodeListCachesForAttr(const unsigned nodeListCounts[], cons t QualifiedName& attrName) |
5655 { | 5694 { |
5656 if (nodeListCounts[type] && LiveNodeListBase::shouldInvalidateTypeOnAttribut eChange(static_cast<NodeListInvalidationType>(type), attrName)) | 5695 if (nodeListCounts[type] && LiveNodeListBase::shouldInvalidateTypeOnAttribut eChange(static_cast<NodeListInvalidationType>(type), attrName)) |
5657 return true; | 5696 return true; |
5658 return shouldInvalidateNodeListCachesForAttr<type + 1>(nodeListCounts, attrN ame); | 5697 return shouldInvalidateNodeListCachesForAttr<type + 1>(nodeListCounts, attrN ame); |
5659 } | 5698 } |
5660 | 5699 |
5661 template<> | 5700 template<> |
5662 bool shouldInvalidateNodeListCachesForAttr<numNodeListInvalidationTypes>(const u nsigned[], const QualifiedName&) | 5701 bool shouldInvalidateNodeListCachesForAttr<numNodeListInvalidationTypes>(const u nsigned[], const QualifiedName&) |
5663 { | 5702 { |
5664 return false; | 5703 return false; |
5665 } | 5704 } |
5705 #endif | |
5666 | 5706 |
5667 bool Document::shouldInvalidateNodeListCaches(const QualifiedName* attrName) con st | 5707 bool Document::shouldInvalidateNodeListCaches(const QualifiedName* attrName) con st |
5668 { | 5708 { |
5669 if (attrName) | 5709 if (attrName) { |
5710 #if ENABLE(OILPAN) | |
5711 return shouldInvalidateNodeListCachesForAttr<DoNotInvalidateOnAttributeC hanges + 1>(m_nodeLists, *attrName); | |
Erik Corry
2014/05/15 12:34:52
Looks like all these templated functions are just
sof
2014/05/15 22:15:57
Alright, took that on here as well, removing the t
| |
5712 #else | |
5670 return shouldInvalidateNodeListCachesForAttr<DoNotInvalidateOnAttributeC hanges + 1>(m_nodeListCounts, *attrName); | 5713 return shouldInvalidateNodeListCachesForAttr<DoNotInvalidateOnAttributeC hanges + 1>(m_nodeListCounts, *attrName); |
5714 #endif | |
5715 } | |
5671 | 5716 |
5672 for (int type = 0; type < numNodeListInvalidationTypes; type++) { | 5717 for (int type = 0; type < numNodeListInvalidationTypes; type++) { |
5718 #if ENABLE(OILPAN) | |
5719 if (!m_nodeLists[type].isEmpty()) | |
5720 #else | |
5673 if (m_nodeListCounts[type]) | 5721 if (m_nodeListCounts[type]) |
5722 #endif | |
5674 return true; | 5723 return true; |
5675 } | 5724 } |
5676 | 5725 |
5677 return false; | 5726 return false; |
5678 } | 5727 } |
5679 | 5728 |
5680 void Document::invalidateNodeListCaches(const QualifiedName* attrName) | 5729 void Document::invalidateNodeListCaches(const QualifiedName* attrName) |
5681 { | 5730 { |
5682 HashSet<LiveNodeListBase*>::iterator end = m_listsInvalidatedAtDocument.end( ); | 5731 WillBeHeapHashSet<RawPtrWillBeWeakMember<LiveNodeListBase> >::iterator end = m_listsInvalidatedAtDocument.end(); |
5683 for (HashSet<LiveNodeListBase*>::iterator it = m_listsInvalidatedAtDocument. begin(); it != end; ++it) | 5732 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<LiveNodeListBase> >::iterator it = m_listsInvalidatedAtDocument.begin(); it != end; ++it) |
5684 (*it)->invalidateCacheForAttribute(attrName); | 5733 (*it)->invalidateCacheForAttribute(attrName); |
5685 } | 5734 } |
5686 | 5735 |
5687 void Document::clearWeakMembers(Visitor* visitor) | 5736 void Document::clearWeakMembers(Visitor* visitor) |
5688 { | 5737 { |
5689 if (m_axObjectCache) | 5738 if (m_axObjectCache) |
5690 m_axObjectCache->clearWeakMembers(visitor); | 5739 m_axObjectCache->clearWeakMembers(visitor); |
5691 | 5740 |
5692 if (m_markers) | 5741 if (m_markers) |
5693 m_markers->clearWeakMembers(visitor); | 5742 m_markers->clearWeakMembers(visitor); |
(...skipping 15 matching lines...) Expand all Loading... | |
5709 visitor->trace(m_docType); | 5758 visitor->trace(m_docType); |
5710 visitor->trace(m_implementation); | 5759 visitor->trace(m_implementation); |
5711 visitor->trace(m_autofocusElement); | 5760 visitor->trace(m_autofocusElement); |
5712 visitor->trace(m_focusedElement); | 5761 visitor->trace(m_focusedElement); |
5713 visitor->trace(m_hoverNode); | 5762 visitor->trace(m_hoverNode); |
5714 visitor->trace(m_activeHoverElement); | 5763 visitor->trace(m_activeHoverElement); |
5715 visitor->trace(m_documentElement); | 5764 visitor->trace(m_documentElement); |
5716 visitor->trace(m_titleElement); | 5765 visitor->trace(m_titleElement); |
5717 visitor->trace(m_currentScriptStack); | 5766 visitor->trace(m_currentScriptStack); |
5718 visitor->trace(m_transformSourceDocument); | 5767 visitor->trace(m_transformSourceDocument); |
5768 visitor->trace(m_listsInvalidatedAtDocument); | |
5769 #if ENABLE(OILPAN) | |
5770 for (int i = 0; i < numNodeListInvalidationTypes; i++) | |
5771 visitor->trace(m_nodeLists[i]); | |
5772 #endif | |
5719 visitor->trace(m_cssCanvasElements); | 5773 visitor->trace(m_cssCanvasElements); |
5720 visitor->trace(m_topLayerElements); | 5774 visitor->trace(m_topLayerElements); |
5721 visitor->trace(m_elemSheet); | 5775 visitor->trace(m_elemSheet); |
5722 visitor->trace(m_styleEngine); | 5776 visitor->trace(m_styleEngine); |
5723 visitor->trace(m_formController); | 5777 visitor->trace(m_formController); |
5724 visitor->trace(m_fetcher); | 5778 visitor->trace(m_fetcher); |
5725 visitor->trace(m_contextFeatures); | 5779 visitor->trace(m_contextFeatures); |
5726 visitor->trace(m_styleSheetList); | 5780 visitor->trace(m_styleSheetList); |
5727 visitor->trace(m_mediaQueryMatcher); | 5781 visitor->trace(m_mediaQueryMatcher); |
5728 visitor->trace(m_associatedFormControls); | 5782 visitor->trace(m_associatedFormControls); |
5729 visitor->trace(m_templateDocument); | 5783 visitor->trace(m_templateDocument); |
5730 visitor->trace(m_templateDocumentHost); | 5784 visitor->trace(m_templateDocumentHost); |
5731 visitor->trace(m_visibilityObservers); | 5785 visitor->trace(m_visibilityObservers); |
5732 visitor->trace(m_userActionElements); | 5786 visitor->trace(m_userActionElements); |
5733 visitor->trace(m_svgExtensions); | 5787 visitor->trace(m_svgExtensions); |
5734 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); | 5788 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); |
5735 DocumentSupplementable::trace(visitor); | 5789 DocumentSupplementable::trace(visitor); |
5736 TreeScope::trace(visitor); | 5790 TreeScope::trace(visitor); |
5737 ContainerNode::trace(visitor); | 5791 ContainerNode::trace(visitor); |
5738 ExecutionContext::trace(visitor); | 5792 ExecutionContext::trace(visitor); |
5739 } | 5793 } |
5740 | 5794 |
5741 } // namespace WebCore | 5795 } // namespace WebCore |
OLD | NEW |