Chromium Code Reviews| 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) { |
|
haraken
2014/05/20 09:27:33
Not related to your CL, why does this iteration st
sof
2014/05/20 09:54:57
It seems like a very minor optimization; it will b
| |
| 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 |