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

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

Issue 301233010: Oilpan: use transition types for remaining RefPtr<Document>s in dom/. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 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
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 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 if (!currentDoc->isActive()) 284 if (!currentDoc->isActive())
285 return; 285 return;
286 286
287 // 2. If doc's fullscreen element stack is empty, terminate these steps. 287 // 2. If doc's fullscreen element stack is empty, terminate these steps.
288 if (m_fullScreenElementStack.isEmpty()) 288 if (m_fullScreenElementStack.isEmpty())
289 return; 289 return;
290 290
291 // 3. Let descendants be all the doc's descendant browsing context's documen ts with a non-empty fullscreen 291 // 3. Let descendants be all the doc's descendant browsing context's documen ts with a non-empty fullscreen
292 // element stack (if any), ordered so that the child of the doc is last and the document furthest 292 // element stack (if any), ordered so that the child of the doc is last and the document furthest
293 // away from the doc is first. 293 // away from the doc is first.
294 Deque<RefPtr<Document> > descendants; 294 WillBeHeapDeque<RefPtrWillBeMember<Document> > descendants;
295 for (LocalFrame* descendant = document()->frame() ? document()->frame()->tr ee().traverseNext() : 0; descendant; descendant = descendant->tree().traverseNex t()) { 295 for (LocalFrame* descendant = document()->frame() ? document()->frame()->tr ee().traverseNext() : 0; descendant; descendant = descendant->tree().traverseNex t()) {
296 ASSERT(descendant->document()); 296 ASSERT(descendant->document());
297 if (fullscreenElementFrom(*descendant->document())) 297 if (fullscreenElementFrom(*descendant->document()))
298 descendants.prepend(descendant->document()); 298 descendants.prepend(descendant->document());
299 } 299 }
300 300
301 // 4. For each descendant in descendants, empty descendant's fullscreen elem ent stack, and queue a 301 // 4. For each descendant in descendants, empty descendant's fullscreen elem ent stack, and queue a
302 // task to fire an event named fullscreenchange with its bubbles attribute s et to true on descendant. 302 // task to fire an event named fullscreenchange with its bubbles attribute s et to true on descendant.
303 for (Deque<RefPtr<Document> >::iterator i = descendants.begin(); i != descen dants.end(); ++i) { 303 for (WillBeHeapDeque<RefPtrWillBeMember<Document> >::iterator i = descendant s.begin(); i != descendants.end(); ++i) {
304 ASSERT(*i); 304 ASSERT(*i);
305 from(**i).clearFullscreenElementStack(); 305 from(**i).clearFullscreenElementStack();
306 addDocumentToFullScreenChangeEventQueue(i->get()); 306 addDocumentToFullScreenChangeEventQueue(i->get());
307 } 307 }
308 308
309 // 5. While doc is not null, run these substeps: 309 // 5. While doc is not null, run these substeps:
310 Element* newTop = 0; 310 Element* newTop = 0;
311 while (currentDoc) { 311 while (currentDoc) {
312 // 1. Pop the top element of doc's fullscreen element stack. 312 // 1. Pop the top element of doc's fullscreen element stack.
313 from(*currentDoc).popFullscreenElementStack(); 313 from(*currentDoc).popFullscreenElementStack();
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 void FullscreenElementStack::trace(Visitor* visitor) 578 void FullscreenElementStack::trace(Visitor* visitor)
579 { 579 {
580 visitor->trace(m_fullScreenElement); 580 visitor->trace(m_fullScreenElement);
581 visitor->trace(m_fullScreenElementStack); 581 visitor->trace(m_fullScreenElementStack);
582 visitor->trace(m_fullScreenChangeEventTargetQueue); 582 visitor->trace(m_fullScreenChangeEventTargetQueue);
583 visitor->trace(m_fullScreenErrorEventTargetQueue); 583 visitor->trace(m_fullScreenErrorEventTargetQueue);
584 DocumentSupplement::trace(visitor); 584 DocumentSupplement::trace(visitor);
585 } 585 }
586 586
587 } // namespace WebCore 587 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698