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

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

Issue 16904002: Avoid leaking objects between isolated worlds via attribute event listeners (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Patch for landing Created 7 years, 6 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
« no previous file with comments | « Source/bindings/v8/V8Binding.cpp ('k') | Source/core/dom/Document.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 void textRemoved(Node*, unsigned offset, unsigned length); 695 void textRemoved(Node*, unsigned offset, unsigned length);
696 void textNodesMerged(Text* oldNode, unsigned offset); 696 void textNodesMerged(Text* oldNode, unsigned offset);
697 void textNodeSplit(Text* oldNode); 697 void textNodeSplit(Text* oldNode);
698 698
699 void setDOMWindow(DOMWindow* domWindow) { m_domWindow = domWindow; } 699 void setDOMWindow(DOMWindow* domWindow) { m_domWindow = domWindow; }
700 DOMWindow* domWindow() const { return m_domWindow; } 700 DOMWindow* domWindow() const { return m_domWindow; }
701 // In DOM Level 2, the Document's DOMWindow is called the defaultView. 701 // In DOM Level 2, the Document's DOMWindow is called the defaultView.
702 DOMWindow* defaultView() const { return domWindow(); } 702 DOMWindow* defaultView() const { return domWindow(); }
703 703
704 // Helper functions for forwarding DOMWindow event related tasks to the DOMW indow if it exists. 704 // Helper functions for forwarding DOMWindow event related tasks to the DOMW indow if it exists.
705 void setWindowAttributeEventListener(const AtomicString& eventType, PassRefP tr<EventListener>); 705 void setWindowAttributeEventListener(const AtomicString& eventType, PassRefP tr<EventListener>, DOMWrapperWorld* isolatedWorld = 0);
706 EventListener* getWindowAttributeEventListener(const AtomicString& eventType ); 706 EventListener* getWindowAttributeEventListener(const AtomicString& eventType , DOMWrapperWorld* isolatedWorld);
707 void dispatchWindowEvent(PassRefPtr<Event>, PassRefPtr<EventTarget> = 0); 707 void dispatchWindowEvent(PassRefPtr<Event>, PassRefPtr<EventTarget> = 0);
708 708
709 PassRefPtr<Event> createEvent(const String& eventType, ExceptionCode&); 709 PassRefPtr<Event> createEvent(const String& eventType, ExceptionCode&);
710 710
711 // keep track of what types of event listeners are registered, so we don't 711 // keep track of what types of event listeners are registered, so we don't
712 // dispatch events unnecessarily 712 // dispatch events unnecessarily
713 enum ListenerType { 713 enum ListenerType {
714 DOMSUBTREEMODIFIED_LISTENER = 1, 714 DOMSUBTREEMODIFIED_LISTENER = 1,
715 DOMNODEINSERTED_LISTENER = 1 << 1, 715 DOMNODEINSERTED_LISTENER = 1 << 1,
716 DOMNODEREMOVED_LISTENER = 1 << 2, 716 DOMNODEREMOVED_LISTENER = 1 << 2,
(...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 inline bool Node::isDocumentNode() const 1453 inline bool Node::isDocumentNode() const
1454 { 1454 {
1455 return this == documentInternal(); 1455 return this == documentInternal();
1456 } 1456 }
1457 1457
1458 Node* eventTargetNodeForDocument(Document*); 1458 Node* eventTargetNodeForDocument(Document*);
1459 1459
1460 } // namespace WebCore 1460 } // namespace WebCore
1461 1461
1462 #endif // Document_h 1462 #endif // Document_h
OLDNEW
« no previous file with comments | « Source/bindings/v8/V8Binding.cpp ('k') | Source/core/dom/Document.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698