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

Side by Side Diff: Source/core/dom/Document.cpp

Issue 237963014: Track scroll event handlers in nested documents (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Expanded test to move child doc from attached doc to unattached one (reverse not possible AFAICT). Created 6 years, 7 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 | Annotate | Revision Log
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, 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 #include "core/dom/ContextFeatures.h" 64 #include "core/dom/ContextFeatures.h"
65 #include "core/dom/DOMImplementation.h" 65 #include "core/dom/DOMImplementation.h"
66 #include "core/dom/DocumentFragment.h" 66 #include "core/dom/DocumentFragment.h"
67 #include "core/dom/DocumentLifecycleNotifier.h" 67 #include "core/dom/DocumentLifecycleNotifier.h"
68 #include "core/dom/DocumentLifecycleObserver.h" 68 #include "core/dom/DocumentLifecycleObserver.h"
69 #include "core/dom/DocumentMarkerController.h" 69 #include "core/dom/DocumentMarkerController.h"
70 #include "core/dom/DocumentType.h" 70 #include "core/dom/DocumentType.h"
71 #include "core/dom/Element.h" 71 #include "core/dom/Element.h"
72 #include "core/dom/ElementDataCache.h" 72 #include "core/dom/ElementDataCache.h"
73 #include "core/dom/ElementTraversal.h" 73 #include "core/dom/ElementTraversal.h"
74 #include "core/dom/EventHandlerRegistry.h"
75 #include "core/dom/ExceptionCode.h" 74 #include "core/dom/ExceptionCode.h"
76 #include "core/dom/ExecutionContextTask.h" 75 #include "core/dom/ExecutionContextTask.h"
77 #include "core/dom/MainThreadTaskRunner.h" 76 #include "core/dom/MainThreadTaskRunner.h"
78 #include "core/dom/MutationObserver.h" 77 #include "core/dom/MutationObserver.h"
79 #include "core/dom/NodeChildRemovalTracker.h" 78 #include "core/dom/NodeChildRemovalTracker.h"
80 #include "core/dom/NodeFilter.h" 79 #include "core/dom/NodeFilter.h"
81 #include "core/dom/NodeIterator.h" 80 #include "core/dom/NodeIterator.h"
82 #include "core/dom/NodeRareData.h" 81 #include "core/dom/NodeRareData.h"
83 #include "core/dom/NodeRenderStyle.h" 82 #include "core/dom/NodeRenderStyle.h"
84 #include "core/dom/NodeRenderingTraversal.h" 83 #include "core/dom/NodeRenderingTraversal.h"
(...skipping 5552 matching lines...) Expand 10 before | Expand all | Expand 10 after
5637 // FIXME: Oilpan: Use a weak counted set instead. 5636 // FIXME: Oilpan: Use a weak counted set instead.
5638 if (m_touchEventTargets) { 5637 if (m_touchEventTargets) {
5639 Vector<Node*> deadNodes; 5638 Vector<Node*> deadNodes;
5640 for (TouchEventTargetSet::iterator it = m_touchEventTargets->begin(); it != m_touchEventTargets->end(); ++it) { 5639 for (TouchEventTargetSet::iterator it = m_touchEventTargets->begin(); it != m_touchEventTargets->end(); ++it) {
5641 if (!visitor->isAlive(it->key)) 5640 if (!visitor->isAlive(it->key))
5642 deadNodes.append(it->key); 5641 deadNodes.append(it->key);
5643 } 5642 }
5644 for (unsigned i = 0; i < deadNodes.size(); ++i) 5643 for (unsigned i = 0; i < deadNodes.size(); ++i)
5645 didClearTouchEventHandlers(deadNodes[i]); 5644 didClearTouchEventHandlers(deadNodes[i]);
5646 } 5645 }
5647
5648 EventHandlerRegistry* registry = static_cast<EventHandlerRegistry*>(Document Supplement::from(this, EventHandlerRegistry::supplementName()));
5649 // FIXME: Oilpan: This is pretty funky. The current code disables all modifi cations of the
5650 // EventHandlerRegistry when the document becomes inactive. To keep that beh avior we only
5651 // perform weak processing of the registry when the document is active.
5652 if (registry && isActive())
5653 registry->clearWeakMembers(visitor);
5654 } 5646 }
5655 5647
5656 void Document::trace(Visitor* visitor) 5648 void Document::trace(Visitor* visitor)
5657 { 5649 {
5658 visitor->trace(m_styleSheetList); 5650 visitor->trace(m_styleSheetList);
5659 visitor->trace(m_visibilityObservers); 5651 visitor->trace(m_visibilityObservers);
5660 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this); 5652 visitor->registerWeakMembers<Document, &Document::clearWeakMembers>(this);
5661 Supplementable<Document>::trace(visitor); 5653 Supplementable<Document>::trace(visitor);
5662 TreeScope::trace(visitor); 5654 TreeScope::trace(visitor);
5663 ContainerNode::trace(visitor); 5655 ContainerNode::trace(visitor);
5664 } 5656 }
5665 5657
5666 } // namespace WebCore 5658 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698