| Index: Source/core/dom/Fullscreen.cpp
|
| diff --git a/Source/core/dom/Fullscreen.cpp b/Source/core/dom/Fullscreen.cpp
|
| index e2e2d61085182817d15215f6af7ce1fb03380930..04eda51217cb418797876e31527b34318368c8ee 100644
|
| --- a/Source/core/dom/Fullscreen.cpp
|
| +++ b/Source/core/dom/Fullscreen.cpp
|
| @@ -287,18 +287,22 @@ void Fullscreen::requestFullscreen(Element& element, RequestType requestType)
|
|
|
| void Fullscreen::fullyExitFullscreen()
|
| {
|
| - // "To fully exit fullscreen act as if the exitFullscreen() method was invoked on the top-level browsing
|
| - // context's document and subsequently empty that document's fullscreen element stack."
|
| - if (!fullscreenElementFrom(document()->topDocument()))
|
| + // To fully exit fullscreen, run these steps:
|
| +
|
| + // 1. Let |doc| be the top-level browsing context's document.
|
| + Document& doc = document()->topDocument();
|
| +
|
| + // 2. If |doc|'s fullscreen element stack is empty, terminate these steps.
|
| + if (!fullscreenElementFrom(doc))
|
| return;
|
|
|
| - // To achieve that aim, remove all the elements from the top document's stack except for the first before
|
| - // calling exitFullscreen():
|
| - WillBeHeapVector<std::pair<RefPtrWillBeMember<Element>, RequestType> > replacementFullscreenElementStack;
|
| - Fullscreen& topFullscreen = from(document()->topDocument());
|
| - replacementFullscreenElementStack.append(topFullscreen.m_fullScreenElementStack.last());
|
| - topFullscreen.m_fullScreenElementStack.swap(replacementFullscreenElementStack);
|
| - topFullscreen.exitFullscreen();
|
| + // 3. Remove elements from |doc|'s fullscreen element stack until only the top element is left.
|
| + size_t stackSize = from(doc).m_fullScreenElementStack.size();
|
| + from(doc).m_fullScreenElementStack.remove(0, stackSize - 1);
|
| + ASSERT(from(doc).m_fullScreenElementStack.size() == 1);
|
| +
|
| + // 4. Act as if the exitFullscreen() method was invoked on |doc|.
|
| + from(doc).exitFullscreen();
|
| }
|
|
|
| void Fullscreen::exitFullscreen()
|
|
|