OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 } | 58 } |
59 | 59 |
60 void FullscreenController::willEnterFullScreen() | 60 void FullscreenController::willEnterFullScreen() |
61 { | 61 { |
62 if (!m_provisionalFullScreenElement) | 62 if (!m_provisionalFullScreenElement) |
63 return; | 63 return; |
64 | 64 |
65 // Ensure that this element's document is still attached. | 65 // Ensure that this element's document is still attached. |
66 Document& doc = m_provisionalFullScreenElement->document(); | 66 Document& doc = m_provisionalFullScreenElement->document(); |
67 if (doc.frame()) { | 67 if (doc.frame()) { |
68 FullscreenElementStack::from(&doc)->webkitWillEnterFullScreenForElement(
m_provisionalFullScreenElement.get()); | 68 FullscreenElementStack::from(doc).webkitWillEnterFullScreenForElement(m_
provisionalFullScreenElement.get()); |
69 m_fullScreenFrame = doc.frame(); | 69 m_fullScreenFrame = doc.frame(); |
70 } | 70 } |
71 m_provisionalFullScreenElement.clear(); | 71 m_provisionalFullScreenElement.clear(); |
72 } | 72 } |
73 | 73 |
74 void FullscreenController::didEnterFullScreen() | 74 void FullscreenController::didEnterFullScreen() |
75 { | 75 { |
76 if (!m_fullScreenFrame) | 76 if (!m_fullScreenFrame) |
77 return; | 77 return; |
78 | 78 |
79 if (Document* doc = m_fullScreenFrame->document()) { | 79 if (Document* doc = m_fullScreenFrame->document()) { |
80 if (FullscreenElementStack::isFullScreen(doc)) { | 80 if (FullscreenElementStack::isFullScreen(*doc)) { |
81 if (!m_exitFullscreenPageScaleFactor) { | 81 if (!m_exitFullscreenPageScaleFactor) { |
82 m_exitFullscreenPageScaleFactor = m_webViewImpl->pageScaleFactor
(); | 82 m_exitFullscreenPageScaleFactor = m_webViewImpl->pageScaleFactor
(); |
83 m_exitFullscreenScrollOffset = m_webViewImpl->mainFrame()->scrol
lOffset(); | 83 m_exitFullscreenScrollOffset = m_webViewImpl->mainFrame()->scrol
lOffset(); |
84 m_webViewImpl->setPageScaleFactorPreservingScrollOffset(1.0f); | 84 m_webViewImpl->setPageScaleFactorPreservingScrollOffset(1.0f); |
85 } | 85 } |
86 | 86 |
87 FullscreenElementStack::from(doc)->webkitDidEnterFullScreenForElemen
t(0); | 87 FullscreenElementStack::from(*doc).webkitDidEnterFullScreenForElemen
t(0); |
88 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()) { | 88 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()) { |
89 Element* element = FullscreenElementStack::currentFullScreenElem
entFrom(doc); | 89 Element* element = FullscreenElementStack::currentFullScreenElem
entFrom(*doc); |
90 ASSERT(element); | 90 ASSERT(element); |
91 if (element->isMediaElement() && m_webViewImpl->layerTreeView()) | 91 if (element->isMediaElement() && m_webViewImpl->layerTreeView()) |
92 m_webViewImpl->layerTreeView()->setHasTransparentBackground(
true); | 92 m_webViewImpl->layerTreeView()->setHasTransparentBackground(
true); |
93 } | 93 } |
94 } | 94 } |
95 } | 95 } |
96 } | 96 } |
97 | 97 |
98 void FullscreenController::willExitFullScreen() | 98 void FullscreenController::willExitFullScreen() |
99 { | 99 { |
100 if (!m_fullScreenFrame) | 100 if (!m_fullScreenFrame) |
101 return; | 101 return; |
102 | 102 |
103 if (Document* doc = m_fullScreenFrame->document()) { | 103 if (Document* doc = m_fullScreenFrame->document()) { |
104 FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExist
s(doc); | 104 FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExist
s(*doc); |
105 if (!fullscreen) | 105 if (!fullscreen) |
106 return; | 106 return; |
107 if (fullscreen->isFullScreen(doc)) { | 107 if (fullscreen->isFullScreen(*doc)) { |
108 // When the client exits from full screen we have to call webkitCanc
elFullScreen to | 108 // When the client exits from full screen we have to call webkitCanc
elFullScreen to |
109 // notify the document. While doing that, suppress notifications bac
k to the client. | 109 // notify the document. While doing that, suppress notifications bac
k to the client. |
110 m_isCancelingFullScreen = true; | 110 m_isCancelingFullScreen = true; |
111 fullscreen->webkitCancelFullScreen(); | 111 fullscreen->webkitCancelFullScreen(); |
112 m_isCancelingFullScreen = false; | 112 m_isCancelingFullScreen = false; |
113 fullscreen->webkitWillExitFullScreenForElement(0); | 113 fullscreen->webkitWillExitFullScreenForElement(0); |
114 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled() && m_web
ViewImpl->layerTreeView()) | 114 if (RuntimeEnabledFeatures::overlayFullscreenVideoEnabled() && m_web
ViewImpl->layerTreeView()) |
115 m_webViewImpl->layerTreeView()->setHasTransparentBackground(m_we
bViewImpl->isTransparent()); | 115 m_webViewImpl->layerTreeView()->setHasTransparentBackground(m_we
bViewImpl->isTransparent()); |
116 } | 116 } |
117 } | 117 } |
118 } | 118 } |
119 | 119 |
120 void FullscreenController::didExitFullScreen() | 120 void FullscreenController::didExitFullScreen() |
121 { | 121 { |
122 if (!m_fullScreenFrame) | 122 if (!m_fullScreenFrame) |
123 return; | 123 return; |
124 | 124 |
125 if (Document* doc = m_fullScreenFrame->document()) { | 125 if (Document* doc = m_fullScreenFrame->document()) { |
126 if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfE
xists(doc)) { | 126 if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfE
xists(*doc)) { |
127 if (fullscreen->webkitIsFullScreen()) { | 127 if (fullscreen->webkitIsFullScreen()) { |
128 if (m_exitFullscreenPageScaleFactor) { | 128 if (m_exitFullscreenPageScaleFactor) { |
129 m_webViewImpl->setPageScaleFactor(m_exitFullscreenPageScaleF
actor, | 129 m_webViewImpl->setPageScaleFactor(m_exitFullscreenPageScaleF
actor, |
130 WebPoint(m_exitFullscreenScrollOffset.width(), m_exitFul
lscreenScrollOffset.height())); | 130 WebPoint(m_exitFullscreenScrollOffset.width(), m_exitFul
lscreenScrollOffset.height())); |
131 m_exitFullscreenPageScaleFactor = 0; | 131 m_exitFullscreenPageScaleFactor = 0; |
132 m_exitFullscreenScrollOffset = IntSize(); | 132 m_exitFullscreenScrollOffset = IntSize(); |
133 } | 133 } |
134 | 134 |
135 fullscreen->webkitDidExitFullScreenForElement(0); | 135 fullscreen->webkitDidExitFullScreenForElement(0); |
136 } | 136 } |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 if (mediaElement->player()) | 188 if (mediaElement->player()) |
189 mediaElement->player()->hideFullscreenOverlay(); | 189 mediaElement->player()->hideFullscreenOverlay(); |
190 return; | 190 return; |
191 } | 191 } |
192 if (WebViewClient* client = m_webViewImpl->client()) | 192 if (WebViewClient* client = m_webViewImpl->client()) |
193 client->exitFullScreen(); | 193 client->exitFullScreen(); |
194 } | 194 } |
195 | 195 |
196 } | 196 } |
197 | 197 |
OLD | NEW |