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

Side by Side Diff: third_party/WebKit/Source/web/FullscreenController.cpp

Issue 2021513002: Move willEnterFullscreen to WebRemoteFrame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add comment about user gestures Created 4 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) 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 49
50 FullscreenController* FullscreenController::create(WebViewImpl* webViewImpl) 50 FullscreenController* FullscreenController::create(WebViewImpl* webViewImpl)
51 { 51 {
52 return new FullscreenController(webViewImpl); 52 return new FullscreenController(webViewImpl);
53 } 53 }
54 54
55 FullscreenController::FullscreenController(WebViewImpl* webViewImpl) 55 FullscreenController::FullscreenController(WebViewImpl* webViewImpl)
56 : m_webViewImpl(webViewImpl) 56 : m_webViewImpl(webViewImpl)
57 , m_haveEnteredFullscreen(false) 57 , m_haveEnteredFullscreen(false)
58 , m_exitFullscreenPageScaleFactor(0) 58 , m_exitFullscreenPageScaleFactor(0)
59 , m_fullscreenIsForCrossProcessAncestor(false)
60 , m_isCancelingFullScreen(false) 59 , m_isCancelingFullScreen(false)
61 { 60 {
62 } 61 }
63 62
64 void FullscreenController::didEnterFullScreen() 63 void FullscreenController::didEnterFullScreen()
65 { 64 {
66 if (!m_provisionalFullScreenElement) 65 if (!m_provisionalFullScreenElement)
67 return; 66 return;
68 67
69 Element* element = m_provisionalFullScreenElement.release(); 68 Element* element = m_provisionalFullScreenElement.release();
70 Document& document = element->document(); 69 Document& document = element->document();
71 m_fullScreenFrame = document.frame(); 70 m_fullScreenFrame = document.frame();
72 71
73 if (!m_fullScreenFrame) 72 if (!m_fullScreenFrame)
74 return; 73 return;
75 74
76 if (!m_haveEnteredFullscreen) { 75 if (!m_haveEnteredFullscreen) {
77 updatePageScaleConstraints(false); 76 updatePageScaleConstraints(false);
78 m_webViewImpl->setPageScaleFactor(1.0f); 77 m_webViewImpl->setPageScaleFactor(1.0f);
79 if (m_webViewImpl->mainFrame()->isWebLocalFrame()) 78 if (m_webViewImpl->mainFrame()->isWebLocalFrame())
80 m_webViewImpl->mainFrame()->setScrollOffset(WebSize()); 79 m_webViewImpl->mainFrame()->setScrollOffset(WebSize());
81 m_webViewImpl->setVisualViewportOffset(FloatPoint()); 80 m_webViewImpl->setVisualViewportOffset(FloatPoint());
82 m_haveEnteredFullscreen = true; 81 m_haveEnteredFullscreen = true;
83 } 82 }
84 83
85 Fullscreen::from(document).didEnterFullScreenForElement(element, m_fullscree nIsForCrossProcessAncestor); 84 Fullscreen::from(document).didEnterFullScreenForElement(element);
86 DCHECK_EQ(Fullscreen::currentFullScreenElementFrom(document), element); 85 DCHECK_EQ(Fullscreen::currentFullScreenElementFrom(document), element);
87 86
88 if (isHTMLVideoElement(element)) { 87 if (isHTMLVideoElement(element)) {
89 HTMLVideoElement* videoElement = toHTMLVideoElement(element); 88 HTMLVideoElement* videoElement = toHTMLVideoElement(element);
90 if (videoElement->usesOverlayFullscreenVideo() && m_webViewImpl->layerTr eeView()) 89 if (videoElement->usesOverlayFullscreenVideo() && m_webViewImpl->layerTr eeView())
91 m_webViewImpl->layerTreeView()->setHasTransparentBackground(true); 90 m_webViewImpl->layerTreeView()->setHasTransparentBackground(true);
92 } 91 }
93 } 92 }
94 93
95 void FullscreenController::didExitFullScreen() 94 void FullscreenController::didExitFullScreen()
(...skipping 17 matching lines...) Expand all
113 112
114 if (m_haveEnteredFullscreen) { 113 if (m_haveEnteredFullscreen) {
115 updatePageScaleConstraints(true); 114 updatePageScaleConstraints(true);
116 m_webViewImpl->setPageScaleFactor(m_exitFullscreenPageScaleF actor); 115 m_webViewImpl->setPageScaleFactor(m_exitFullscreenPageScaleF actor);
117 if (m_webViewImpl->mainFrame()->isWebLocalFrame()) 116 if (m_webViewImpl->mainFrame()->isWebLocalFrame())
118 m_webViewImpl->mainFrame()->setScrollOffset(WebSize(m_ex itFullscreenScrollOffset)); 117 m_webViewImpl->mainFrame()->setScrollOffset(WebSize(m_ex itFullscreenScrollOffset));
119 m_webViewImpl->setVisualViewportOffset(m_exitFullscreenVisua lViewportOffset); 118 m_webViewImpl->setVisualViewportOffset(m_exitFullscreenVisua lViewportOffset);
120 m_haveEnteredFullscreen = false; 119 m_haveEnteredFullscreen = false;
121 } 120 }
122 121
123 fullscreen->didExitFullScreenForElement(m_fullscreenIsForCrossPr ocessAncestor); 122 fullscreen->didExitFullScreenForElement();
124 m_fullscreenIsForCrossProcessAncestor = false;
125 } 123 }
126 } 124 }
127 } 125 }
128 126
129 m_fullScreenFrame.clear(); 127 m_fullScreenFrame.clear();
130 } 128 }
131 129
132 void FullscreenController::enterFullScreenForElement(Element* element) 130 void FullscreenController::enterFullScreenForElement(Element* element)
133 { 131 {
134 // We are already transitioning to fullscreen for a different element. 132 // We are already transitioning to fullscreen for a different element.
(...skipping 14 matching lines...) Expand all
149 // the scroll offset. 147 // the scroll offset.
150 if (!m_haveEnteredFullscreen) { 148 if (!m_haveEnteredFullscreen) {
151 m_exitFullscreenPageScaleFactor = m_webViewImpl->pageScaleFactor(); 149 m_exitFullscreenPageScaleFactor = m_webViewImpl->pageScaleFactor();
152 m_exitFullscreenScrollOffset = m_webViewImpl->mainFrame()->isWebLocalFra me() ? m_webViewImpl->mainFrame()->scrollOffset() : WebSize(); 150 m_exitFullscreenScrollOffset = m_webViewImpl->mainFrame()->isWebLocalFra me() ? m_webViewImpl->mainFrame()->scrollOffset() : WebSize();
153 m_exitFullscreenVisualViewportOffset = m_webViewImpl->visualViewportOffs et(); 151 m_exitFullscreenVisualViewportOffset = m_webViewImpl->visualViewportOffs et();
154 } 152 }
155 153
156 // We need to transition to fullscreen mode. 154 // We need to transition to fullscreen mode.
157 WebLocalFrameImpl* frame = WebLocalFrameImpl::fromFrame(element->document(). frame()); 155 WebLocalFrameImpl* frame = WebLocalFrameImpl::fromFrame(element->document(). frame());
158 if (frame && frame->client()) { 156 if (frame && frame->client()) {
159 if (!m_fullscreenIsForCrossProcessAncestor) 157 if (!Fullscreen::from(element->document()).forCrossProcessAncestor())
160 frame->client()->enterFullscreen(); 158 frame->client()->enterFullscreen();
161 m_provisionalFullScreenElement = element; 159 m_provisionalFullScreenElement = element;
162 } 160 }
163 } 161 }
164 162
165 void FullscreenController::exitFullScreenForElement(Element* element) 163 void FullscreenController::exitFullScreenForElement(Element* element)
166 { 164 {
167 DCHECK(element); 165 DCHECK(element);
168 166
169 // The client is exiting full screen, so don't send a notification. 167 // The client is exiting full screen, so don't send a notification.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 } 208 }
211 209
212 DEFINE_TRACE(FullscreenController) 210 DEFINE_TRACE(FullscreenController)
213 { 211 {
214 visitor->trace(m_provisionalFullScreenElement); 212 visitor->trace(m_provisionalFullScreenElement);
215 visitor->trace(m_fullScreenFrame); 213 visitor->trace(m_fullScreenFrame);
216 } 214 }
217 215
218 } // namespace blink 216 } // namespace blink
219 217
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/FullscreenController.h ('k') | third_party/WebKit/Source/web/WebRemoteFrameImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698