| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/media_controls/MediaControlsRotateToFullscreenDelegate.h" | 5 #include "modules/media_controls/MediaControlsRotateToFullscreenDelegate.h" |
| 6 | 6 |
| 7 #include "core/dom/ElementVisibilityObserver.h" | 7 #include "core/dom/ElementVisibilityObserver.h" |
| 8 #include "core/dom/Fullscreen.h" | 8 #include "core/dom/Fullscreen.h" |
| 9 #include "core/dom/UserGestureIndicator.h" | 9 #include "core/dom/UserGestureIndicator.h" |
| 10 #include "core/events/Event.h" | 10 #include "core/events/Event.h" |
| 11 #include "core/frame/LocalDOMWindow.h" | 11 #include "core/frame/LocalDOMWindow.h" |
| 12 #include "core/html/HTMLVideoElement.h" | 12 #include "core/html/HTMLVideoElement.h" |
| 13 #include "core/page/ChromeClient.h" | 13 #include "core/page/ChromeClient.h" |
| 14 #include "modules/media_controls/MediaControlsImpl.h" | 14 #include "modules/media_controls/MediaControlsImpl.h" |
| 15 #include "public/platform/Platform.h" |
| 15 #include "public/platform/WebScreenInfo.h" | 16 #include "public/platform/WebScreenInfo.h" |
| 16 | 17 |
| 17 namespace blink { | 18 namespace blink { |
| 18 | 19 |
| 19 namespace { | 20 namespace { |
| 20 | 21 |
| 21 // Videos must be at least this big in both dimensions to qualify. | 22 // Videos must be at least this big in both dimensions to qualify. |
| 22 constexpr unsigned kMinSize = 200; | 23 constexpr unsigned kMinSize = 200; |
| 23 | 24 |
| 24 // At least this fraction of the video must be visible. | 25 // At least this fraction of the video must be visible. |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 | 173 |
| 173 MediaControlsImpl& media_controls = | 174 MediaControlsImpl& media_controls = |
| 174 *static_cast<MediaControlsImpl*>(video_element_->GetMediaControls()); | 175 *static_cast<MediaControlsImpl*>(video_element_->GetMediaControls()); |
| 175 | 176 |
| 176 { | 177 { |
| 177 UserGestureIndicator gesture( | 178 UserGestureIndicator gesture( |
| 178 UserGestureToken::Create(&video_element_->GetDocument())); | 179 UserGestureToken::Create(&video_element_->GetDocument())); |
| 179 | 180 |
| 180 bool should_be_fullscreen = | 181 bool should_be_fullscreen = |
| 181 current_screen_orientation_ == video_orientation; | 182 current_screen_orientation_ == video_orientation; |
| 182 if (should_be_fullscreen && !video_element_->IsFullscreen()) | 183 if (should_be_fullscreen && !video_element_->IsFullscreen()) { |
| 184 Platform::Current()->RecordAction( |
| 185 UserMetricsAction("Media.Video.RotateToFullscreen.Enter")); |
| 183 media_controls.EnterFullscreen(); | 186 media_controls.EnterFullscreen(); |
| 184 else if (!should_be_fullscreen && video_element_->IsFullscreen()) | 187 } else if (!should_be_fullscreen && video_element_->IsFullscreen()) { |
| 188 Platform::Current()->RecordAction( |
| 189 UserMetricsAction("Media.Video.RotateToFullscreen.Exit")); |
| 185 media_controls.ExitFullscreen(); | 190 media_controls.ExitFullscreen(); |
| 191 } |
| 186 } | 192 } |
| 187 } | 193 } |
| 188 | 194 |
| 189 MediaControlsRotateToFullscreenDelegate::SimpleOrientation | 195 MediaControlsRotateToFullscreenDelegate::SimpleOrientation |
| 190 MediaControlsRotateToFullscreenDelegate::ComputeVideoOrientation() const { | 196 MediaControlsRotateToFullscreenDelegate::ComputeVideoOrientation() const { |
| 191 if (video_element_->getReadyState() == HTMLMediaElement::kHaveNothing) | 197 if (video_element_->getReadyState() == HTMLMediaElement::kHaveNothing) |
| 192 return SimpleOrientation::kUnknown; | 198 return SimpleOrientation::kUnknown; |
| 193 | 199 |
| 194 const unsigned width = video_element_->videoWidth(); | 200 const unsigned width = video_element_->videoWidth(); |
| 195 const unsigned height = video_element_->videoHeight(); | 201 const unsigned height = video_element_->videoHeight(); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 223 return SimpleOrientation::kUnknown; | 229 return SimpleOrientation::kUnknown; |
| 224 } | 230 } |
| 225 | 231 |
| 226 DEFINE_TRACE(MediaControlsRotateToFullscreenDelegate) { | 232 DEFINE_TRACE(MediaControlsRotateToFullscreenDelegate) { |
| 227 EventListener::Trace(visitor); | 233 EventListener::Trace(visitor); |
| 228 visitor->Trace(video_element_); | 234 visitor->Trace(video_element_); |
| 229 visitor->Trace(visibility_observer_); | 235 visitor->Trace(visibility_observer_); |
| 230 } | 236 } |
| 231 | 237 |
| 232 } // namespace blink | 238 } // namespace blink |
| OLD | NEW |