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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 void FullscreenController::DidEnterFullscreen() { | 67 void FullscreenController::DidEnterFullscreen() { |
68 // |Browser::EnterFullscreenModeForTab()| can enter fullscreen without going | 68 // |Browser::EnterFullscreenModeForTab()| can enter fullscreen without going |
69 // through |Fullscreen::RequestFullscreen()|, in which case there will be no | 69 // through |Fullscreen::RequestFullscreen()|, in which case there will be no |
70 // fullscreen element. Do nothing. | 70 // fullscreen element. Do nothing. |
71 if (state_ != State::kEnteringFullscreen) | 71 if (state_ != State::kEnteringFullscreen) |
72 return; | 72 return; |
73 | 73 |
74 UpdatePageScaleConstraints(false); | 74 UpdatePageScaleConstraints(false); |
75 web_view_base_->SetPageScaleFactor(1.0f); | 75 web_view_base_->SetPageScaleFactor(1.0f); |
76 if (web_view_base_->MainFrame()->IsWebLocalFrame()) | 76 if (web_view_base_->MainFrame()->IsWebLocalFrame()) |
77 web_view_base_->MainFrame()->SetScrollOffset(WebSize()); | 77 web_view_base_->MainFrame()->ToWebLocalFrame()->SetScrollOffset(WebSize()); |
78 web_view_base_->SetVisualViewportOffset(FloatPoint()); | 78 web_view_base_->SetVisualViewportOffset(FloatPoint()); |
79 | 79 |
80 state_ = State::kFullscreen; | 80 state_ = State::kFullscreen; |
81 | 81 |
82 // Notify all local frames that we have entered fullscreen. | 82 // Notify all local frames that we have entered fullscreen. |
83 for (Frame* frame = web_view_base_->GetPage()->MainFrame(); frame; | 83 for (Frame* frame = web_view_base_->GetPage()->MainFrame(); frame; |
84 frame = frame->Tree().TraverseNext()) { | 84 frame = frame->Tree().TraverseNext()) { |
85 if (!frame->IsLocalFrame()) | 85 if (!frame->IsLocalFrame()) |
86 continue; | 86 continue; |
87 if (Document* document = ToLocalFrame(frame)->GetDocument()) { | 87 if (Document* document = ToLocalFrame(frame)->GetDocument()) { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 146 |
147 // We need to store these values here rather than in |DidEnterFullscreen()| | 147 // We need to store these values here rather than in |DidEnterFullscreen()| |
148 // since by the time the latter is called, a Resize has already occured, | 148 // since by the time the latter is called, a Resize has already occured, |
149 // clamping the scroll offset. Don't save values if we're still waiting to | 149 // clamping the scroll offset. Don't save values if we're still waiting to |
150 // restore a previous set. This can happen if we exit and quickly reenter | 150 // restore a previous set. This can happen if we exit and quickly reenter |
151 // fullscreen without performing a layout. | 151 // fullscreen without performing a layout. |
152 if (state_ == State::kInitial) { | 152 if (state_ == State::kInitial) { |
153 initial_page_scale_factor_ = web_view_base_->PageScaleFactor(); | 153 initial_page_scale_factor_ = web_view_base_->PageScaleFactor(); |
154 initial_scroll_offset_ = | 154 initial_scroll_offset_ = |
155 web_view_base_->MainFrame()->IsWebLocalFrame() | 155 web_view_base_->MainFrame()->IsWebLocalFrame() |
156 ? web_view_base_->MainFrame()->GetScrollOffset() | 156 ? web_view_base_->MainFrame()->ToWebLocalFrame()->GetScrollOffset() |
157 : WebSize(); | 157 : WebSize(); |
158 initial_visual_viewport_offset_ = web_view_base_->VisualViewportOffset(); | 158 initial_visual_viewport_offset_ = web_view_base_->VisualViewportOffset(); |
159 initial_background_color_override_enabled_ = | 159 initial_background_color_override_enabled_ = |
160 web_view_base_->BackgroundColorOverrideEnabled(); | 160 web_view_base_->BackgroundColorOverrideEnabled(); |
161 initial_background_color_override_ = | 161 initial_background_color_override_ = |
162 web_view_base_->BackgroundColorOverride(); | 162 web_view_base_->BackgroundColorOverride(); |
163 } | 163 } |
164 | 164 |
165 // If already entering fullscreen, just wait. | 165 // If already entering fullscreen, just wait. |
166 if (state_ == State::kEnteringFullscreen) | 166 if (state_ == State::kEnteringFullscreen) |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 } | 254 } |
255 } | 255 } |
256 } | 256 } |
257 | 257 |
258 void FullscreenController::DidUpdateLayout() { | 258 void FullscreenController::DidUpdateLayout() { |
259 if (state_ != State::kNeedsScrollAndScaleRestore) | 259 if (state_ != State::kNeedsScrollAndScaleRestore) |
260 return; | 260 return; |
261 | 261 |
262 web_view_base_->SetPageScaleFactor(initial_page_scale_factor_); | 262 web_view_base_->SetPageScaleFactor(initial_page_scale_factor_); |
263 if (web_view_base_->MainFrame()->IsWebLocalFrame()) { | 263 if (web_view_base_->MainFrame()->IsWebLocalFrame()) { |
264 web_view_base_->MainFrame()->SetScrollOffset( | 264 web_view_base_->MainFrame()->ToWebLocalFrame()->SetScrollOffset( |
265 WebSize(initial_scroll_offset_)); | 265 WebSize(initial_scroll_offset_)); |
266 } | 266 } |
267 web_view_base_->SetVisualViewportOffset(initial_visual_viewport_offset_); | 267 web_view_base_->SetVisualViewportOffset(initial_visual_viewport_offset_); |
268 // Background color override was already restored when | 268 // Background color override was already restored when |
269 // FullscreenElementChanged([..], nullptr) was called while exiting. | 269 // FullscreenElementChanged([..], nullptr) was called while exiting. |
270 | 270 |
271 state_ = State::kInitial; | 271 state_ = State::kInitial; |
272 } | 272 } |
273 | 273 |
274 void FullscreenController::UpdatePageScaleConstraints(bool remove_constraints) { | 274 void FullscreenController::UpdatePageScaleConstraints(bool remove_constraints) { |
(...skipping 14 matching lines...) Expand all Loading... |
289 // again to ensure the final constraints pick up the latest contents size. | 289 // again to ensure the final constraints pick up the latest contents size. |
290 web_view_base_->DidChangeContentsSize(); | 290 web_view_base_->DidChangeContentsSize(); |
291 if (web_view_base_->MainFrameImpl() && | 291 if (web_view_base_->MainFrameImpl() && |
292 web_view_base_->MainFrameImpl()->GetFrameView()) | 292 web_view_base_->MainFrameImpl()->GetFrameView()) |
293 web_view_base_->MainFrameImpl()->GetFrameView()->SetNeedsLayout(); | 293 web_view_base_->MainFrameImpl()->GetFrameView()->SetNeedsLayout(); |
294 | 294 |
295 web_view_base_->UpdateMainFrameLayoutSize(); | 295 web_view_base_->UpdateMainFrameLayoutSize(); |
296 } | 296 } |
297 | 297 |
298 } // namespace blink | 298 } // namespace blink |
OLD | NEW |