OLD | NEW |
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 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 | 280 |
281 // 7. Optionally, display a message indicating how the user can exit dis
playing the context object fullscreen. | 281 // 7. Optionally, display a message indicating how the user can exit dis
playing the context object fullscreen. |
282 return; | 282 return; |
283 } while (0); | 283 } while (0); |
284 | 284 |
285 enqueueErrorEvent(element, requestType); | 285 enqueueErrorEvent(element, requestType); |
286 } | 286 } |
287 | 287 |
288 void Fullscreen::fullyExitFullscreen() | 288 void Fullscreen::fullyExitFullscreen() |
289 { | 289 { |
290 // "To fully exit fullscreen act as if the exitFullscreen() method was invok
ed on the top-level browsing | 290 // To fully exit fullscreen, run these steps: |
291 // context's document and subsequently empty that document's fullscreen elem
ent stack." | 291 |
292 if (!fullscreenElementFrom(document()->topDocument())) | 292 // 1. Let |doc| be the top-level browsing context's document. |
| 293 Document& doc = document()->topDocument(); |
| 294 |
| 295 // 2. If |doc|'s fullscreen element stack is empty, terminate these steps. |
| 296 if (!fullscreenElementFrom(doc)) |
293 return; | 297 return; |
294 | 298 |
295 // To achieve that aim, remove all the elements from the top document's stac
k except for the first before | 299 // 3. Remove elements from |doc|'s fullscreen element stack until only the t
op element is left. |
296 // calling exitFullscreen(): | 300 size_t stackSize = from(doc).m_fullScreenElementStack.size(); |
297 WillBeHeapVector<std::pair<RefPtrWillBeMember<Element>, RequestType> > repla
cementFullscreenElementStack; | 301 from(doc).m_fullScreenElementStack.remove(0, stackSize - 1); |
298 Fullscreen& topFullscreen = from(document()->topDocument()); | 302 ASSERT(from(doc).m_fullScreenElementStack.size() == 1); |
299 replacementFullscreenElementStack.append(topFullscreen.m_fullScreenElementSt
ack.last()); | 303 |
300 topFullscreen.m_fullScreenElementStack.swap(replacementFullscreenElementStac
k); | 304 // 4. Act as if the exitFullscreen() method was invoked on |doc|. |
301 topFullscreen.exitFullscreen(); | 305 from(doc).exitFullscreen(); |
302 } | 306 } |
303 | 307 |
304 void Fullscreen::exitFullscreen() | 308 void Fullscreen::exitFullscreen() |
305 { | 309 { |
306 // The exitFullscreen() method must run these steps: | 310 // The exitFullscreen() method must run these steps: |
307 | 311 |
308 // 1. Let doc be the context object. (i.e. "this") | 312 // 1. Let doc be the context object. (i.e. "this") |
309 Document* currentDoc = document(); | 313 Document* currentDoc = document(); |
310 if (!currentDoc->isActive()) | 314 if (!currentDoc->isActive()) |
311 return; | 315 return; |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 void Fullscreen::trace(Visitor* visitor) | 604 void Fullscreen::trace(Visitor* visitor) |
601 { | 605 { |
602 visitor->trace(m_fullScreenElement); | 606 visitor->trace(m_fullScreenElement); |
603 visitor->trace(m_fullScreenElementStack); | 607 visitor->trace(m_fullScreenElementStack); |
604 visitor->trace(m_fullScreenRenderer); | 608 visitor->trace(m_fullScreenRenderer); |
605 visitor->trace(m_eventQueue); | 609 visitor->trace(m_eventQueue); |
606 DocumentSupplement::trace(visitor); | 610 DocumentSupplement::trace(visitor); |
607 } | 611 } |
608 | 612 |
609 } // namespace blink | 613 } // namespace blink |
OLD | NEW |