| 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, 2011 Apple Inc. All rights
reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights
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) 2008, 2009 Google Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. |
| 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
| 10 * | 10 * |
| (...skipping 4864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4875 return; | 4875 return; |
| 4876 | 4876 |
| 4877 page()->chrome()->client()->exitFullScreenForElement(m_fullScreenElement.get
()); | 4877 page()->chrome()->client()->exitFullScreenForElement(m_fullScreenElement.get
()); |
| 4878 } | 4878 } |
| 4879 | 4879 |
| 4880 void Document::webkitWillEnterFullScreenForElement(Element* element) | 4880 void Document::webkitWillEnterFullScreenForElement(Element* element) |
| 4881 { | 4881 { |
| 4882 ASSERT(element); | 4882 ASSERT(element); |
| 4883 ASSERT(page() && page()->settings()->fullScreenEnabled()); | 4883 ASSERT(page() && page()->settings()->fullScreenEnabled()); |
| 4884 | 4884 |
| 4885 if (m_fullScreenRenderer) |
| 4886 m_fullScreenRenderer->unwrapRenderer(); |
| 4887 |
| 4885 m_fullScreenElement = element; | 4888 m_fullScreenElement = element; |
| 4886 | 4889 |
| 4887 // Create a placeholder block for a the full-screen element, to keep the pag
e from reflowing | 4890 // Create a placeholder block for a the full-screen element, to keep the pag
e from reflowing |
| 4888 // when the element is removed from the normal flow. Only do this for a Ren
derBox, as only | 4891 // when the element is removed from the normal flow. Only do this for a Ren
derBox, as only |
| 4889 // a box will have a frameRect. The placeholder will be created in setFullS
creenRenderer() | 4892 // a box will have a frameRect. The placeholder will be created in setFullS
creenRenderer() |
| 4890 // during layout. | 4893 // during layout. |
| 4891 RenderObject* renderer = m_fullScreenElement->renderer(); | 4894 RenderObject* renderer = m_fullScreenElement->renderer(); |
| 4892 bool shouldCreatePlaceholder = renderer && renderer->isBox(); | 4895 bool shouldCreatePlaceholder = renderer && renderer->isBox(); |
| 4893 if (shouldCreatePlaceholder) { | 4896 if (shouldCreatePlaceholder) { |
| 4894 m_savedPlaceholderFrameRect = toRenderBox(renderer)->frameRect(); | 4897 m_savedPlaceholderFrameRect = toRenderBox(renderer)->frameRect(); |
| 4895 m_savedPlaceholderRenderStyle = RenderStyle::clone(renderer->style()); | 4898 m_savedPlaceholderRenderStyle = RenderStyle::clone(renderer->style()); |
| 4896 } | 4899 } |
| 4897 | 4900 |
| 4898 if (m_fullScreenElement != documentElement()) | 4901 if (m_fullScreenElement != documentElement()) |
| 4899 m_fullScreenElement->detach(); | 4902 RenderFullScreen::wrapRenderer(renderer, this); |
| 4900 | 4903 |
| 4901 m_fullScreenElement->setContainsFullScreenElementOnAncestorsCrossingFrameBou
ndaries(true); | 4904 m_fullScreenElement->setContainsFullScreenElementOnAncestorsCrossingFrameBou
ndaries(true); |
| 4902 | 4905 |
| 4903 recalcStyle(Force); | 4906 recalcStyle(Force); |
| 4904 | 4907 |
| 4905 if (m_fullScreenRenderer) { | 4908 if (m_fullScreenRenderer) { |
| 4906 setAnimatingFullScreen(true); | 4909 setAnimatingFullScreen(true); |
| 4907 #if USE(ACCELERATED_COMPOSITING) | 4910 #if USE(ACCELERATED_COMPOSITING) |
| 4908 view()->updateCompositingLayers(); | 4911 view()->updateCompositingLayers(); |
| 4909 if (m_fullScreenRenderer->layer() && m_fullScreenRenderer->layer()->isCo
mposited()) | 4912 if (m_fullScreenRenderer->layer() && m_fullScreenRenderer->layer()->isCo
mposited()) |
| (...skipping 30 matching lines...) Expand all Loading... |
| 4940 if (m_fullScreenRenderer->layer() && m_fullScreenRenderer->layer()->isCo
mposited()) | 4943 if (m_fullScreenRenderer->layer() && m_fullScreenRenderer->layer()->isCo
mposited()) |
| 4941 page()->chrome()->client()->setRootFullScreenLayer(m_fullScreenRende
rer->layer()->backing()->graphicsLayer()); | 4944 page()->chrome()->client()->setRootFullScreenLayer(m_fullScreenRende
rer->layer()->backing()->graphicsLayer()); |
| 4942 #endif | 4945 #endif |
| 4943 } | 4946 } |
| 4944 } | 4947 } |
| 4945 | 4948 |
| 4946 void Document::webkitDidExitFullScreenForElement(Element*) | 4949 void Document::webkitDidExitFullScreenForElement(Element*) |
| 4947 { | 4950 { |
| 4948 m_areKeysEnabledInFullScreen = false; | 4951 m_areKeysEnabledInFullScreen = false; |
| 4949 setAnimatingFullScreen(false); | 4952 setAnimatingFullScreen(false); |
| 4950 | 4953 |
| 4951 if (m_fullScreenRenderer) | 4954 if (m_fullScreenRenderer) |
| 4952 m_fullScreenRenderer->remove(); | 4955 m_fullScreenRenderer->unwrapRenderer(); |
| 4953 | |
| 4954 if (m_fullScreenElement != documentElement()) | |
| 4955 m_fullScreenElement->detach(); | |
| 4956 | 4956 |
| 4957 m_fullScreenChangeEventTargetQueue.append(m_fullScreenElement.release()); | 4957 m_fullScreenChangeEventTargetQueue.append(m_fullScreenElement.release()); |
| 4958 setFullScreenRenderer(0); | |
| 4959 #if USE(ACCELERATED_COMPOSITING) | 4958 #if USE(ACCELERATED_COMPOSITING) |
| 4960 page()->chrome()->client()->setRootFullScreenLayer(0); | 4959 page()->chrome()->client()->setRootFullScreenLayer(0); |
| 4961 #endif | 4960 #endif |
| 4962 scheduleForcedStyleRecalc(); | 4961 scheduleForcedStyleRecalc(); |
| 4963 | 4962 |
| 4964 m_fullScreenChangeDelayTimer.startOneShot(0); | 4963 m_fullScreenChangeDelayTimer.startOneShot(0); |
| 4965 } | 4964 } |
| 4966 | 4965 |
| 4967 void Document::setFullScreenRenderer(RenderFullScreen* renderer) | 4966 void Document::setFullScreenRenderer(RenderFullScreen* renderer) |
| 4968 { | 4967 { |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5168 if (!loader) | 5167 if (!loader) |
| 5169 return 0; | 5168 return 0; |
| 5170 | 5169 |
| 5171 if (m_frame->document() != this) | 5170 if (m_frame->document() != this) |
| 5172 return 0; | 5171 return 0; |
| 5173 | 5172 |
| 5174 return loader; | 5173 return loader; |
| 5175 } | 5174 } |
| 5176 | 5175 |
| 5177 } // namespace WebCore | 5176 } // namespace WebCore |
| OLD | NEW |