Index: third_party/WebKit/Source/web/FullscreenController.cpp |
diff --git a/third_party/WebKit/Source/web/FullscreenController.cpp b/third_party/WebKit/Source/web/FullscreenController.cpp |
index 3cd048562b4e516e40ce0b6a60f7f94edb508fbc..c0d5ec4b5b97e793509a5662d21cebcae86047e6 100644 |
--- a/third_party/WebKit/Source/web/FullscreenController.cpp |
+++ b/third_party/WebKit/Source/web/FullscreenController.cpp |
@@ -32,15 +32,16 @@ |
#include "core/dom/Document.h" |
#include "core/dom/Fullscreen.h" |
+#include "core/exported/WebViewBase.h" |
#include "core/frame/FrameView.h" |
#include "core/frame/LocalFrame.h" |
#include "core/frame/PageScaleConstraintsSet.h" |
#include "core/html/HTMLVideoElement.h" |
#include "core/layout/LayoutFullScreen.h" |
+#include "core/page/Page.h" |
#include "public/platform/WebLayerTreeView.h" |
#include "public/web/WebFrameClient.h" |
#include "web/WebLocalFrameImpl.h" |
-#include "web/WebViewImpl.h" |
namespace blink { |
@@ -56,12 +57,12 @@ WebFrameClient& GetWebFrameClient(LocalFrame& frame) { |
} // anonymous namespace |
std::unique_ptr<FullscreenController> FullscreenController::Create( |
- WebViewImpl* web_view_impl) { |
- return WTF::WrapUnique(new FullscreenController(web_view_impl)); |
+ WebViewBase* web_view_base) { |
+ return WTF::WrapUnique(new FullscreenController(web_view_base)); |
} |
-FullscreenController::FullscreenController(WebViewImpl* web_view_impl) |
- : web_view_impl_(web_view_impl) {} |
+FullscreenController::FullscreenController(WebViewBase* web_view_base) |
+ : web_view_base_(web_view_base) {} |
void FullscreenController::DidEnterFullscreen() { |
// |Browser::EnterFullscreenModeForTab()| can enter fullscreen without going |
@@ -71,15 +72,15 @@ void FullscreenController::DidEnterFullscreen() { |
return; |
UpdatePageScaleConstraints(false); |
- web_view_impl_->SetPageScaleFactor(1.0f); |
- if (web_view_impl_->MainFrame()->IsWebLocalFrame()) |
- web_view_impl_->MainFrame()->SetScrollOffset(WebSize()); |
- web_view_impl_->SetVisualViewportOffset(FloatPoint()); |
+ web_view_base_->SetPageScaleFactor(1.0f); |
+ if (web_view_base_->MainFrame()->IsWebLocalFrame()) |
+ web_view_base_->MainFrame()->SetScrollOffset(WebSize()); |
+ web_view_base_->SetVisualViewportOffset(FloatPoint()); |
state_ = State::kFullscreen; |
// Notify all local frames that we have entered fullscreen. |
- for (Frame* frame = web_view_impl_->GetPage()->MainFrame(); frame; |
+ for (Frame* frame = web_view_base_->GetPage()->MainFrame(); frame; |
frame = frame->Tree().TraverseNext()) { |
if (!frame->IsLocalFrame()) |
continue; |
@@ -113,7 +114,7 @@ void FullscreenController::DidExitFullscreen() { |
// isn't set for the topmost document when an iframe goes fullscreen, but can |
// be done once |m_currentFullScreenElement| is gone and all state is in the |
// fullscreen element stack. https://crbug.com/402421 |
- for (Frame* frame = web_view_impl_->GetPage()->MainFrame(); frame; |
+ for (Frame* frame = web_view_base_->GetPage()->MainFrame(); frame; |
frame = frame->Tree().TraverseNext()) { |
if (!frame->IsLocalFrame()) |
continue; |
@@ -147,16 +148,16 @@ void FullscreenController::EnterFullscreen(LocalFrame& frame) { |
// restore a previous set. This can happen if we exit and quickly reenter |
// fullscreen without performing a layout. |
if (state_ == State::kInitial) { |
- initial_page_scale_factor_ = web_view_impl_->PageScaleFactor(); |
+ initial_page_scale_factor_ = web_view_base_->PageScaleFactor(); |
initial_scroll_offset_ = |
- web_view_impl_->MainFrame()->IsWebLocalFrame() |
- ? web_view_impl_->MainFrame()->GetScrollOffset() |
+ web_view_base_->MainFrame()->IsWebLocalFrame() |
+ ? web_view_base_->MainFrame()->GetScrollOffset() |
: WebSize(); |
- initial_visual_viewport_offset_ = web_view_impl_->VisualViewportOffset(); |
+ initial_visual_viewport_offset_ = web_view_base_->VisualViewportOffset(); |
initial_background_color_override_enabled_ = |
- web_view_impl_->BackgroundColorOverrideEnabled(); |
+ web_view_base_->BackgroundColorOverrideEnabled(); |
initial_background_color_override_ = |
- web_view_impl_->BackgroundColorOverride(); |
+ web_view_base_->BackgroundColorOverride(); |
} |
// If already entering fullscreen, just wait. |
@@ -201,7 +202,7 @@ void FullscreenController::FullscreenElementChanged(Element* from_element, |
// If the video uses overlay fullscreen mode, make the background |
// transparent. |
if (video_element.UsesOverlayFullscreenVideo()) |
- web_view_impl_->SetBackgroundColorOverride(Color::kTransparent); |
+ web_view_base_->SetBackgroundColorOverride(Color::kTransparent); |
} |
} |
@@ -216,21 +217,21 @@ void FullscreenController::FullscreenElementChanged(Element* from_element, |
} |
void FullscreenController::RestoreBackgroundColorOverride() { |
- if (web_view_impl_->BackgroundColorOverrideEnabled() != |
+ if (web_view_base_->BackgroundColorOverrideEnabled() != |
initial_background_color_override_enabled_ || |
- web_view_impl_->BackgroundColorOverride() != |
+ web_view_base_->BackgroundColorOverride() != |
initial_background_color_override_) { |
if (initial_background_color_override_enabled_) { |
- web_view_impl_->SetBackgroundColorOverride( |
+ web_view_base_->SetBackgroundColorOverride( |
initial_background_color_override_); |
} else { |
- web_view_impl_->ClearBackgroundColorOverride(); |
+ web_view_base_->ClearBackgroundColorOverride(); |
} |
} |
} |
void FullscreenController::UpdateSize() { |
- DCHECK(web_view_impl_->GetPage()); |
+ DCHECK(web_view_base_->GetPage()); |
if (state_ != State::kFullscreen && state_ != State::kExitingFullscreen) |
return; |
@@ -238,7 +239,7 @@ void FullscreenController::UpdateSize() { |
UpdatePageScaleConstraints(false); |
// Traverse all local frames and notify the LayoutFullScreen object, if any. |
- for (Frame* frame = web_view_impl_->GetPage()->MainFrame(); frame; |
+ for (Frame* frame = web_view_base_->GetPage()->MainFrame(); frame; |
frame = frame->Tree().TraverseNext()) { |
if (!frame->IsLocalFrame()) |
continue; |
@@ -256,11 +257,11 @@ void FullscreenController::DidUpdateLayout() { |
if (state_ != State::kNeedsScrollAndScaleRestore) |
return; |
- web_view_impl_->SetPageScaleFactor(initial_page_scale_factor_); |
- if (web_view_impl_->MainFrame()->IsWebLocalFrame()) |
- web_view_impl_->MainFrame()->SetScrollOffset( |
+ web_view_base_->SetPageScaleFactor(initial_page_scale_factor_); |
+ if (web_view_base_->MainFrame()->IsWebLocalFrame()) |
+ web_view_base_->MainFrame()->SetScrollOffset( |
WebSize(initial_scroll_offset_)); |
- web_view_impl_->SetVisualViewportOffset(initial_visual_viewport_offset_); |
+ web_view_base_->SetVisualViewportOffset(initial_visual_viewport_offset_); |
// Background color override was already restored when |
// fullscreenElementChanged([..], nullptr) was called while exiting. |
@@ -271,11 +272,11 @@ void FullscreenController::UpdatePageScaleConstraints(bool remove_constraints) { |
PageScaleConstraints fullscreen_constraints; |
if (!remove_constraints) { |
fullscreen_constraints = PageScaleConstraints(1.0, 1.0, 1.0); |
- fullscreen_constraints.layout_size = FloatSize(web_view_impl_->Size()); |
+ fullscreen_constraints.layout_size = FloatSize(web_view_base_->Size()); |
} |
- web_view_impl_->GetPageScaleConstraintsSet().SetFullscreenConstraints( |
+ web_view_base_->GetPageScaleConstraintsSet().SetFullscreenConstraints( |
fullscreen_constraints); |
- web_view_impl_->GetPageScaleConstraintsSet().ComputeFinalConstraints(); |
+ web_view_base_->GetPageScaleConstraintsSet().ComputeFinalConstraints(); |
// Although we called |computedFinalConstraints()| above, the "final" |
// constraints are not actually final. They are still subject to scale factor |
@@ -283,12 +284,12 @@ void FullscreenController::UpdatePageScaleConstraints(bool remove_constraints) { |
// size mutation after layout, however the contents size is not guaranteed to |
// mutate, and the scale factor may remain unclamped. Just fire the event |
// again to ensure the final constraints pick up the latest contents size. |
- web_view_impl_->DidChangeContentsSize(); |
- if (web_view_impl_->MainFrameImpl() && |
- web_view_impl_->MainFrameImpl()->GetFrameView()) |
- web_view_impl_->MainFrameImpl()->GetFrameView()->SetNeedsLayout(); |
+ web_view_base_->DidChangeContentsSize(); |
+ if (web_view_base_->MainFrameImpl() && |
+ web_view_base_->MainFrameImpl()->GetFrameView()) |
+ web_view_base_->MainFrameImpl()->GetFrameView()->SetNeedsLayout(); |
- web_view_impl_->UpdateMainFrameLayoutSize(); |
+ web_view_base_->UpdateMainFrameLayoutSize(); |
} |
} // namespace blink |