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

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

Issue 255983003: Oilpan: Move all supplements of Page, Document, and WorkerClients to the managed heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: review comments 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, 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) 2013 Google Inc. All rights reserved. 9 * Copyright (C) 2013 Google Inc. All rights reserved.
10 * 10 *
(...skipping 29 matching lines...) Expand all
40 namespace WebCore { 40 namespace WebCore {
41 41
42 class Document; 42 class Document;
43 class Element; 43 class Element;
44 class Node; 44 class Node;
45 class RenderFullScreen; 45 class RenderFullScreen;
46 class RenderStyle; 46 class RenderStyle;
47 class ExecutionContext; 47 class ExecutionContext;
48 48
49 class FullscreenElementStack FINAL 49 class FullscreenElementStack FINAL
50 : public DocumentSupplement 50 : public NoBaseWillBeGarbageCollectedFinalized<FullscreenElementStack>
51 , public DocumentSupplement
51 , public DocumentLifecycleObserver { 52 , public DocumentLifecycleObserver {
53 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(FullscreenElementStack);
52 public: 54 public:
53 virtual ~FullscreenElementStack(); 55 virtual ~FullscreenElementStack();
54 static const char* supplementName(); 56 static const char* supplementName();
55 static FullscreenElementStack& from(Document&); 57 static FullscreenElementStack& from(Document&);
56 static FullscreenElementStack* fromIfExists(Document&); 58 static FullscreenElementStack* fromIfExists(Document&);
57 static Element* fullscreenElementFrom(Document&); 59 static Element* fullscreenElementFrom(Document&);
58 static Element* currentFullScreenElementFrom(Document&); 60 static Element* currentFullScreenElementFrom(Document&);
59 static bool isFullScreen(Document&); 61 static bool isFullScreen(Document&);
60 static bool isActiveFullScreenElement(const Element*); 62 static bool isActiveFullScreenElement(const Element*);
61 63
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 static FullscreenElementStack* fromIfExistsSlow(Document&); 105 static FullscreenElementStack* fromIfExistsSlow(Document&);
104 106
105 explicit FullscreenElementStack(Document&); 107 explicit FullscreenElementStack(Document&);
106 108
107 Document* document(); 109 Document* document();
108 void fullScreenChangeDelayTimerFired(Timer<FullscreenElementStack>*); 110 void fullScreenChangeDelayTimerFired(Timer<FullscreenElementStack>*);
109 111
110 bool m_areKeysEnabledInFullScreen; 112 bool m_areKeysEnabledInFullScreen;
111 RefPtr<Element> m_fullScreenElement; 113 RefPtr<Element> m_fullScreenElement;
112 Vector<RefPtr<Element> > m_fullScreenElementStack; 114 Vector<RefPtr<Element> > m_fullScreenElementStack;
113 RenderFullScreen* m_fullScreenRenderer; 115 RenderFullScreen* m_fullScreenRenderer;
haraken 2014/04/30 02:41:22 This raw pointer looks safe since it's explicitly
114 Timer<FullscreenElementStack> m_fullScreenChangeDelayTimer; 116 Timer<FullscreenElementStack> m_fullScreenChangeDelayTimer;
115 Deque<RefPtr<Node> > m_fullScreenChangeEventTargetQueue; 117 Deque<RefPtr<Node> > m_fullScreenChangeEventTargetQueue;
116 Deque<RefPtr<Node> > m_fullScreenErrorEventTargetQueue; 118 Deque<RefPtr<Node> > m_fullScreenErrorEventTargetQueue;
117 LayoutRect m_savedPlaceholderFrameRect; 119 LayoutRect m_savedPlaceholderFrameRect;
118 RefPtr<RenderStyle> m_savedPlaceholderRenderStyle; 120 RefPtr<RenderStyle> m_savedPlaceholderRenderStyle;
119 }; 121 };
120 122
121 inline bool FullscreenElementStack::isActiveFullScreenElement(const Element* ele ment) 123 inline bool FullscreenElementStack::isActiveFullScreenElement(const Element* ele ment)
122 { 124 {
123 FullscreenElementStack* controller = fromIfExists(element->document()); 125 FullscreenElementStack* controller = fromIfExists(element->document());
124 if (!controller) 126 if (!controller)
125 return false; 127 return false;
126 return controller->webkitIsFullScreen() && controller->webkitCurrentFullScre enElement() == element; 128 return controller->webkitIsFullScreen() && controller->webkitCurrentFullScre enElement() == element;
127 } 129 }
128 130
129 inline FullscreenElementStack* FullscreenElementStack::fromIfExists(Document& do cument) 131 inline FullscreenElementStack* FullscreenElementStack::fromIfExists(Document& do cument)
130 { 132 {
131 if (!document.hasFullscreenElementStack()) 133 if (!document.hasFullscreenElementStack())
132 return 0; 134 return 0;
133 return fromIfExistsSlow(document); 135 return fromIfExistsSlow(document);
134 } 136 }
135 137
136 } // namespace WebCore 138 } // namespace WebCore
137 139
138 #endif // FullscreenElementStack_h 140 #endif // FullscreenElementStack_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698