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

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

Issue 517043003: Move Frame to the Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Comments + fix fast/events/message-port-gc-closed.html Created 6 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google, Inc. All Rights Reserved. 2 * Copyright (C) 2011 Google, Inc. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #ifndef FrameDestructionObserver_h 26 #ifndef FrameDestructionObserver_h
27 #define FrameDestructionObserver_h 27 #define FrameDestructionObserver_h
28 28
29 #include "platform/heap/Handle.h"
30
29 namespace blink { 31 namespace blink {
30 32
31 class LocalFrame; 33 class LocalFrame;
32 34
33 class FrameDestructionObserver { 35 class FrameDestructionObserver : public WillBeGarbageCollectedMixin {
34 public: 36 public:
35 explicit FrameDestructionObserver(LocalFrame*); 37 explicit FrameDestructionObserver(LocalFrame*);
36 38
39 #if !ENABLE(OILPAN)
40 // Oilpan: Frame finalization can now only be observed via
Mads Ager (chromium) 2014/09/16 12:17:45 The alternative is to register custom weak process
sof 2014/09/17 09:42:57 The intent of this comment was to offer up a solut
41 // a weak callback -- deriving objects should register such
42 // a weak callback if they need to catch when that happens.
37 virtual void frameDestroyed(); 43 virtual void frameDestroyed();
44 #endif
38 virtual void willDetachFrameHost(); 45 virtual void willDetachFrameHost();
39 46
40 LocalFrame* frame() const { return m_frame; } 47 LocalFrame* frame() const { return m_frame; }
41 48
49 virtual void trace(Visitor*);
50
42 protected: 51 protected:
52 #if !ENABLE(OILPAN)
43 virtual ~FrameDestructionObserver(); 53 virtual ~FrameDestructionObserver();
54 #endif
44 void observeFrame(LocalFrame*); 55 void observeFrame(LocalFrame*);
45 56
46 LocalFrame* m_frame; 57 RawPtrWillBeWeakMember<LocalFrame> m_frame;
47 }; 58 };
48 59
49 } 60 }
50 61
51 #endif 62 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698