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

Side by Side Diff: Source/core/frame/LocalFrame.h

Issue 427673008: Move FrameDestructionObserver into LocalFrame. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 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/core/frame/Frame.cpp ('k') | Source/core/frame/LocalFrame.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) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999-2001 Lars Knoll <knoll@kde.org> 3 * 1999-2001 Lars Knoll <knoll@kde.org>
4 * 1999-2001 Antti Koivisto <koivisto@kde.org> 4 * 1999-2001 Antti Koivisto <koivisto@kde.org>
5 * 2000-2001 Simon Hausmann <hausmann@kde.org> 5 * 2000-2001 Simon Hausmann <hausmann@kde.org>
6 * 2000-2001 Dirk Mueller <mueller@kde.org> 6 * 2000-2001 Dirk Mueller <mueller@kde.org>
7 * 2000 Stefan Schimanski <1Stein@gmx.de> 7 * 2000 Stefan Schimanski <1Stein@gmx.de>
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
9 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 9 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
10 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 10 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
(...skipping 17 matching lines...) Expand all
28 #ifndef LocalFrame_h 28 #ifndef LocalFrame_h
29 #define LocalFrame_h 29 #define LocalFrame_h
30 30
31 #include "core/frame/Frame.h" 31 #include "core/frame/Frame.h"
32 #include "core/loader/FrameLoader.h" 32 #include "core/loader/FrameLoader.h"
33 #include "core/loader/NavigationScheduler.h" 33 #include "core/loader/NavigationScheduler.h"
34 #include "core/page/FrameTree.h" 34 #include "core/page/FrameTree.h"
35 #include "platform/Supplementable.h" 35 #include "platform/Supplementable.h"
36 #include "platform/heap/Handle.h" 36 #include "platform/heap/Handle.h"
37 #include "platform/scroll/ScrollTypes.h" 37 #include "platform/scroll/ScrollTypes.h"
38 #include "wtf/HashSet.h"
38 39
39 namespace blink { 40 namespace blink {
40 41
41 class Color; 42 class Color;
42 class Document; 43 class Document;
43 class DragImage; 44 class DragImage;
44 class Editor; 45 class Editor;
45 class EventHandler; 46 class EventHandler;
46 class FetchContext; 47 class FetchContext;
47 class FloatSize; 48 class FloatSize;
48 class FloatRect; 49 class FloatRect;
49 class FrameConsole; 50 class FrameConsole;
51 class FrameDestructionObserver;
50 class FrameSelection; 52 class FrameSelection;
51 class FrameView; 53 class FrameView;
52 class InputMethodController; 54 class InputMethodController;
53 class IntPoint; 55 class IntPoint;
54 class IntSize; 56 class IntSize;
55 class Node; 57 class Node;
56 class Range; 58 class Range;
57 class RenderView; 59 class RenderView;
58 class TreeScope; 60 class TreeScope;
59 class ScriptController; 61 class ScriptController;
60 class SpellChecker; 62 class SpellChecker;
61 class TreeScope; 63 class TreeScope;
62 class VisiblePosition; 64 class VisiblePosition;
63 65
64 class LocalFrame : public Frame, public WillBePersistentHeapSupplementable<L ocalFrame> { 66 class LocalFrame : public Frame, public WillBePersistentHeapSupplementable<L ocalFrame> {
65 public: 67 public:
66 static PassRefPtr<LocalFrame> create(FrameLoaderClient*, FrameHost*, Fra meOwner*); 68 static PassRefPtr<LocalFrame> create(FrameLoaderClient*, FrameHost*, Fra meOwner*);
67 69
68 virtual bool isLocalFrame() const OVERRIDE { return true; } 70 virtual bool isLocalFrame() const OVERRIDE { return true; }
69 71
70 void init(); 72 void init();
71 void setView(PassRefPtr<FrameView>); 73 void setView(PassRefPtr<FrameView>);
72 void createView(const IntSize&, const Color&, bool, 74 void createView(const IntSize&, const Color&, bool,
73 ScrollbarMode = ScrollbarAuto, bool horizontalLock = false, 75 ScrollbarMode = ScrollbarAuto, bool horizontalLock = false,
74 ScrollbarMode = ScrollbarAuto, bool verticalLock = false); 76 ScrollbarMode = ScrollbarAuto, bool verticalLock = false);
75 77
76 virtual ~LocalFrame(); 78 virtual ~LocalFrame();
77 79
78 virtual void willDetachFrameHost() OVERRIDE; 80 void addDestructionObserver(FrameDestructionObserver*);
79 virtual void detachFromFrameHost() OVERRIDE; 81 void removeDestructionObserver(FrameDestructionObserver*);
82
83 void willDetachFrameHost();
84 void detachFromFrameHost();
80 85
81 virtual void disconnectOwnerElement() OVERRIDE; 86 virtual void disconnectOwnerElement() OVERRIDE;
82 87
83 virtual void setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow>) OVERRI DE; 88 virtual void setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow>) OVERRI DE;
84 FrameView* view() const; 89 FrameView* view() const;
85 Document* document() const; 90 Document* document() const;
86 91
87 RenderView* contentRenderer() const; // Root of the render tree for the document contained in this frame. 92 RenderView* contentRenderer() const; // Root of the render tree for the document contained in this frame.
88 93
89 Editor& editor() const; 94 Editor& editor() const;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 148
144 bool isURLAllowed(const KURL&) const; 149 bool isURLAllowed(const KURL&) const;
145 150
146 // ======== 151 // ========
147 152
148 private: 153 private:
149 LocalFrame(FrameLoaderClient*, FrameHost*, FrameOwner*); 154 LocalFrame(FrameLoaderClient*, FrameHost*, FrameOwner*);
150 155
151 String localLayerTreeAsText(unsigned flags) const; 156 String localLayerTreeAsText(unsigned flags) const;
152 157
158 HashSet<FrameDestructionObserver*> m_destructionObservers;
153 mutable FrameLoader m_loader; 159 mutable FrameLoader m_loader;
154 mutable NavigationScheduler m_navigationScheduler; 160 mutable NavigationScheduler m_navigationScheduler;
155 161
156 RefPtr<FrameView> m_view; 162 RefPtr<FrameView> m_view;
157 163
158 OwnPtr<ScriptController> m_script; 164 OwnPtr<ScriptController> m_script;
159 const OwnPtrWillBePersistent<Editor> m_editor; 165 const OwnPtrWillBePersistent<Editor> m_editor;
160 const OwnPtr<SpellChecker> m_spellChecker; 166 const OwnPtr<SpellChecker> m_spellChecker;
161 const OwnPtrWillBePersistent<FrameSelection> m_selection; 167 const OwnPtrWillBePersistent<FrameSelection> m_selection;
162 const OwnPtrWillBePersistent<EventHandler> m_eventHandler; 168 const OwnPtrWillBePersistent<EventHandler> m_eventHandler;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 DEFINE_TYPE_CASTS(LocalFrame, Frame, localFrame, localFrame->isLocalFrame(), localFrame.isLocalFrame()); 244 DEFINE_TYPE_CASTS(LocalFrame, Frame, localFrame, localFrame->isLocalFrame(), localFrame.isLocalFrame());
239 245
240 } // namespace blink 246 } // namespace blink
241 247
242 // During refactoring, there are some places where we need to do type conversion s that 248 // During refactoring, there are some places where we need to do type conversion s that
243 // will not be needed once all instances of LocalFrame and RemoteFrame are sorte d out. 249 // will not be needed once all instances of LocalFrame and RemoteFrame are sorte d out.
244 // At that time this #define will be removed and all the uses of it will need to be corrected. 250 // At that time this #define will be removed and all the uses of it will need to be corrected.
245 #define toLocalFrameTemporary toLocalFrame 251 #define toLocalFrameTemporary toLocalFrame
246 252
247 #endif // LocalFrame_h 253 #endif // LocalFrame_h
OLDNEW
« no previous file with comments | « Source/core/frame/Frame.cpp ('k') | Source/core/frame/LocalFrame.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698