OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/render_widget.h" | 5 #include "content/renderer/render_widget.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
262 void OnUpdateScreenRectsMessage(const gfx::Rect& view_screen_rect, | 262 void OnUpdateScreenRectsMessage(const gfx::Rect& view_screen_rect, |
263 const gfx::Rect& window_screen_rect); | 263 const gfx::Rect& window_screen_rect); |
264 void OnShowContextMenu(ContextMenuParams* params); | 264 void OnShowContextMenu(ContextMenuParams* params); |
265 gfx::Rect AdjustValidationMessageAnchor(const gfx::Rect& anchor); | 265 gfx::Rect AdjustValidationMessageAnchor(const gfx::Rect& anchor); |
266 | 266 |
267 private: | 267 private: |
268 void Reapply(); | 268 void Reapply(); |
269 void Apply(bool top_controls_shrink_blink_size, | 269 void Apply(bool top_controls_shrink_blink_size, |
270 float top_controls_height, | 270 float top_controls_height, |
271 gfx::Rect resizer_rect, | 271 gfx::Rect resizer_rect, |
272 bool is_fullscreen); | 272 bool is_fullscreen, |
273 blink::WebDisplayMode display_mode); | |
273 | 274 |
274 RenderWidget* widget_; | 275 RenderWidget* widget_; |
275 | 276 |
276 // Parameters as passed by RenderWidget::EnableScreenMetricsEmulation. | 277 // Parameters as passed by RenderWidget::EnableScreenMetricsEmulation. |
277 WebDeviceEmulationParams params_; | 278 WebDeviceEmulationParams params_; |
278 | 279 |
279 // The computed scale and offset used to fit widget into browser window. | 280 // The computed scale and offset used to fit widget into browser window. |
280 float scale_; | 281 float scale_; |
281 gfx::PointF offset_; | 282 gfx::PointF offset_; |
282 | 283 |
(...skipping 17 matching lines...) Expand all Loading... | |
300 scale_(1.f) { | 301 scale_(1.f) { |
301 original_size_ = widget_->size_; | 302 original_size_ = widget_->size_; |
302 original_physical_backing_size_ = widget_->physical_backing_size_; | 303 original_physical_backing_size_ = widget_->physical_backing_size_; |
303 original_visible_viewport_size_ = widget_->visible_viewport_size_; | 304 original_visible_viewport_size_ = widget_->visible_viewport_size_; |
304 original_screen_info_ = widget_->screen_info_; | 305 original_screen_info_ = widget_->screen_info_; |
305 original_view_screen_rect_ = widget_->view_screen_rect_; | 306 original_view_screen_rect_ = widget_->view_screen_rect_; |
306 original_window_screen_rect_ = widget_->window_screen_rect_; | 307 original_window_screen_rect_ = widget_->window_screen_rect_; |
307 Apply(widget_->top_controls_shrink_blink_size_, | 308 Apply(widget_->top_controls_shrink_blink_size_, |
308 widget_->top_controls_height_, | 309 widget_->top_controls_height_, |
309 widget_->resizer_rect_, | 310 widget_->resizer_rect_, |
310 widget_->is_fullscreen_); | 311 widget_->is_fullscreen_, |
312 widget_->display_mode_); | |
311 } | 313 } |
312 | 314 |
313 RenderWidget::ScreenMetricsEmulator::~ScreenMetricsEmulator() { | 315 RenderWidget::ScreenMetricsEmulator::~ScreenMetricsEmulator() { |
314 widget_->screen_info_ = original_screen_info_; | 316 widget_->screen_info_ = original_screen_info_; |
315 | 317 |
316 widget_->SetDeviceScaleFactor(original_screen_info_.deviceScaleFactor); | 318 widget_->SetDeviceScaleFactor(original_screen_info_.deviceScaleFactor); |
317 widget_->SetScreenMetricsEmulationParameters(false, params_); | 319 widget_->SetScreenMetricsEmulationParameters(false, params_); |
318 widget_->view_screen_rect_ = original_view_screen_rect_; | 320 widget_->view_screen_rect_ = original_view_screen_rect_; |
319 widget_->window_screen_rect_ = original_window_screen_rect_; | 321 widget_->window_screen_rect_ = original_window_screen_rect_; |
320 widget_->Resize(original_size_, | 322 widget_->Resize(original_size_, |
321 original_physical_backing_size_, | 323 original_physical_backing_size_, |
322 widget_->top_controls_shrink_blink_size_, | 324 widget_->top_controls_shrink_blink_size_, |
323 widget_->top_controls_height_, | 325 widget_->top_controls_height_, |
324 original_visible_viewport_size_, | 326 original_visible_viewport_size_, |
325 widget_->resizer_rect_, | 327 widget_->resizer_rect_, |
326 widget_->is_fullscreen_, | 328 widget_->is_fullscreen_, |
329 widget_->display_mode_, | |
327 NO_RESIZE_ACK); | 330 NO_RESIZE_ACK); |
328 } | 331 } |
329 | 332 |
330 void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams( | 333 void RenderWidget::ScreenMetricsEmulator::ChangeEmulationParams( |
331 const WebDeviceEmulationParams& params) { | 334 const WebDeviceEmulationParams& params) { |
332 params_ = params; | 335 params_ = params; |
333 Reapply(); | 336 Reapply(); |
334 } | 337 } |
335 | 338 |
336 void RenderWidget::ScreenMetricsEmulator::Reapply() { | 339 void RenderWidget::ScreenMetricsEmulator::Reapply() { |
337 Apply(widget_->top_controls_shrink_blink_size_, | 340 Apply(widget_->top_controls_shrink_blink_size_, |
338 widget_->top_controls_height_, | 341 widget_->top_controls_height_, |
339 widget_->resizer_rect_, | 342 widget_->resizer_rect_, |
340 widget_->is_fullscreen_); | 343 widget_->is_fullscreen_, |
344 widget_->display_mode_); | |
341 } | 345 } |
342 | 346 |
343 void RenderWidget::ScreenMetricsEmulator::Apply( | 347 void RenderWidget::ScreenMetricsEmulator::Apply( |
344 bool top_controls_shrink_blink_size, | 348 bool top_controls_shrink_blink_size, |
345 float top_controls_height, | 349 float top_controls_height, |
346 gfx::Rect resizer_rect, | 350 gfx::Rect resizer_rect, |
347 bool is_fullscreen) { | 351 bool is_fullscreen, |
352 blink::WebDisplayMode display_mode) { | |
348 applied_widget_rect_.set_size(gfx::Size(params_.viewSize)); | 353 applied_widget_rect_.set_size(gfx::Size(params_.viewSize)); |
349 if (!applied_widget_rect_.width()) | 354 if (!applied_widget_rect_.width()) |
350 applied_widget_rect_.set_width(original_size_.width()); | 355 applied_widget_rect_.set_width(original_size_.width()); |
351 if (!applied_widget_rect_.height()) | 356 if (!applied_widget_rect_.height()) |
352 applied_widget_rect_.set_height(original_size_.height()); | 357 applied_widget_rect_.set_height(original_size_.height()); |
353 | 358 |
354 if (params_.fitToView && !original_size_.IsEmpty()) { | 359 if (params_.fitToView && !original_size_.IsEmpty()) { |
355 int original_width = std::max(original_size_.width(), 1); | 360 int original_width = std::max(original_size_.width(), 1); |
356 int original_height = std::max(original_size_.height(), 1); | 361 int original_height = std::max(original_size_.height(), 1); |
357 float width_ratio = | 362 float width_ratio = |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
403 | 408 |
404 gfx::Size physical_backing_size = gfx::ToCeiledSize(gfx::ScaleSize( | 409 gfx::Size physical_backing_size = gfx::ToCeiledSize(gfx::ScaleSize( |
405 original_size_, original_screen_info_.deviceScaleFactor)); | 410 original_size_, original_screen_info_.deviceScaleFactor)); |
406 widget_->Resize(applied_widget_rect_.size(), | 411 widget_->Resize(applied_widget_rect_.size(), |
407 physical_backing_size, | 412 physical_backing_size, |
408 top_controls_shrink_blink_size, | 413 top_controls_shrink_blink_size, |
409 top_controls_height, | 414 top_controls_height, |
410 applied_widget_rect_.size(), | 415 applied_widget_rect_.size(), |
411 resizer_rect, | 416 resizer_rect, |
412 is_fullscreen, | 417 is_fullscreen, |
418 display_mode, | |
413 NO_RESIZE_ACK); | 419 NO_RESIZE_ACK); |
414 } | 420 } |
415 | 421 |
416 void RenderWidget::ScreenMetricsEmulator::OnResizeMessage( | 422 void RenderWidget::ScreenMetricsEmulator::OnResizeMessage( |
417 const ViewMsg_Resize_Params& params) { | 423 const ViewMsg_Resize_Params& params) { |
418 bool need_ack = params.new_size != original_size_ && | 424 bool need_ack = params.new_size != original_size_ && |
419 !params.new_size.IsEmpty() && !params.physical_backing_size.IsEmpty(); | 425 !params.new_size.IsEmpty() && !params.physical_backing_size.IsEmpty(); |
420 original_size_ = params.new_size; | 426 original_size_ = params.new_size; |
421 original_physical_backing_size_ = params.physical_backing_size; | 427 original_physical_backing_size_ = params.physical_backing_size; |
422 original_screen_info_ = params.screen_info; | 428 original_screen_info_ = params.screen_info; |
423 original_visible_viewport_size_ = params.visible_viewport_size; | 429 original_visible_viewport_size_ = params.visible_viewport_size; |
424 Apply(params.top_controls_shrink_blink_size, | 430 Apply(params.top_controls_shrink_blink_size, |
425 params.top_controls_height, | 431 params.top_controls_height, |
426 params.resizer_rect, | 432 params.resizer_rect, |
427 params.is_fullscreen); | 433 params.is_fullscreen, |
434 params.display_mode); | |
428 | 435 |
429 if (need_ack) { | 436 if (need_ack) { |
430 widget_->set_next_paint_is_resize_ack(); | 437 widget_->set_next_paint_is_resize_ack(); |
431 if (widget_->compositor_) | 438 if (widget_->compositor_) |
432 widget_->compositor_->SetNeedsRedrawRect(gfx::Rect(widget_->size_)); | 439 widget_->compositor_->SetNeedsRedrawRect(gfx::Rect(widget_->size_)); |
433 } | 440 } |
434 } | 441 } |
435 | 442 |
436 void RenderWidget::ScreenMetricsEmulator::OnUpdateScreenRectsMessage( | 443 void RenderWidget::ScreenMetricsEmulator::OnUpdateScreenRectsMessage( |
437 const gfx::Rect& view_screen_rect, | 444 const gfx::Rect& view_screen_rect, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
472 opener_id_(MSG_ROUTING_NONE), | 479 opener_id_(MSG_ROUTING_NONE), |
473 init_complete_(false), | 480 init_complete_(false), |
474 top_controls_shrink_blink_size_(false), | 481 top_controls_shrink_blink_size_(false), |
475 top_controls_height_(0.f), | 482 top_controls_height_(0.f), |
476 next_paint_flags_(0), | 483 next_paint_flags_(0), |
477 auto_resize_mode_(false), | 484 auto_resize_mode_(false), |
478 need_update_rect_for_auto_resize_(false), | 485 need_update_rect_for_auto_resize_(false), |
479 did_show_(false), | 486 did_show_(false), |
480 is_hidden_(hidden), | 487 is_hidden_(hidden), |
481 never_visible_(never_visible), | 488 never_visible_(never_visible), |
482 is_fullscreen_(false), | 489 display_mode_(blink::WebDisplayModeUndefined), |
jochen (gone - plz use gerrit)
2015/04/08 07:54:36
why did you drop this?
Mikhail
2015/04/08 09:16:01
it is a rudiment from the previous versions of the
| |
483 has_focus_(false), | 490 has_focus_(false), |
484 handling_input_event_(false), | 491 handling_input_event_(false), |
485 handling_ime_event_(false), | 492 handling_ime_event_(false), |
486 handling_event_type_(WebInputEvent::Undefined), | 493 handling_event_type_(WebInputEvent::Undefined), |
487 ignore_ack_for_mouse_move_from_debugger_(false), | 494 ignore_ack_for_mouse_move_from_debugger_(false), |
488 closing_(false), | 495 closing_(false), |
489 host_closing_(false), | 496 host_closing_(false), |
490 is_swapped_out_(swapped_out), | 497 is_swapped_out_(swapped_out), |
491 input_method_is_active_(false), | 498 input_method_is_active_(false), |
492 text_input_type_(ui::TEXT_INPUT_TYPE_NONE), | 499 text_input_type_(ui::TEXT_INPUT_TYPE_NONE), |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
765 return RenderThread::Get()->Send(message); | 772 return RenderThread::Get()->Send(message); |
766 } | 773 } |
767 | 774 |
768 void RenderWidget::Resize(const gfx::Size& new_size, | 775 void RenderWidget::Resize(const gfx::Size& new_size, |
769 const gfx::Size& physical_backing_size, | 776 const gfx::Size& physical_backing_size, |
770 bool top_controls_shrink_blink_size, | 777 bool top_controls_shrink_blink_size, |
771 float top_controls_height, | 778 float top_controls_height, |
772 const gfx::Size& visible_viewport_size, | 779 const gfx::Size& visible_viewport_size, |
773 const gfx::Rect& resizer_rect, | 780 const gfx::Rect& resizer_rect, |
774 bool is_fullscreen, | 781 bool is_fullscreen, |
775 const ResizeAck resize_ack) { | 782 blink::WebDisplayMode display_mode, |
783 ResizeAck resize_ack) { | |
jochen (gone - plz use gerrit)
2015/04/08 07:54:36
why did you drop the const?
Mikhail
2015/04/08 09:16:01
'const' is missing in the method declaration, anyw
| |
776 if (resizing_mode_selector_->NeverUsesSynchronousResize()) { | 784 if (resizing_mode_selector_->NeverUsesSynchronousResize()) { |
777 // A resize ack shouldn't be requested if we have not ACK'd the previous | 785 // A resize ack shouldn't be requested if we have not ACK'd the previous |
778 // one. | 786 // one. |
779 DCHECK(resize_ack != SEND_RESIZE_ACK || !next_paint_is_resize_ack()); | 787 DCHECK(resize_ack != SEND_RESIZE_ACK || !next_paint_is_resize_ack()); |
780 DCHECK(resize_ack == SEND_RESIZE_ACK || resize_ack == NO_RESIZE_ACK); | 788 DCHECK(resize_ack == SEND_RESIZE_ACK || resize_ack == NO_RESIZE_ACK); |
781 } | 789 } |
782 | 790 |
783 // Ignore this during shutdown. | 791 // Ignore this during shutdown. |
784 if (!webwidget_) | 792 if (!webwidget_) |
785 return; | 793 return; |
786 | 794 |
787 if (compositor_) { | 795 if (compositor_) { |
788 compositor_->setViewportSize(new_size, physical_backing_size); | 796 compositor_->setViewportSize(new_size, physical_backing_size); |
789 } | 797 } |
790 | 798 |
791 physical_backing_size_ = physical_backing_size; | 799 physical_backing_size_ = physical_backing_size; |
792 top_controls_shrink_blink_size_ = top_controls_shrink_blink_size; | 800 top_controls_shrink_blink_size_ = top_controls_shrink_blink_size; |
793 top_controls_height_ = top_controls_height; | 801 top_controls_height_ = top_controls_height; |
794 visible_viewport_size_ = visible_viewport_size; | 802 visible_viewport_size_ = visible_viewport_size; |
795 resizer_rect_ = resizer_rect; | 803 resizer_rect_ = resizer_rect; |
796 | 804 |
797 // NOTE: We may have entered fullscreen mode without changing our size. | 805 // NOTE: We may have entered fullscreen mode without changing our size. |
798 bool fullscreen_change = is_fullscreen_ != is_fullscreen; | 806 bool fullscreen_change = is_fullscreen_ != is_fullscreen; |
799 if (fullscreen_change) | 807 if (fullscreen_change) |
800 WillToggleFullscreen(); | 808 WillToggleFullscreen(); |
801 is_fullscreen_ = is_fullscreen; | 809 is_fullscreen_ = is_fullscreen; |
810 display_mode_ = display_mode; | |
802 | 811 |
803 webwidget_->setTopControlsHeight(top_controls_height, | 812 webwidget_->setTopControlsHeight(top_controls_height, |
804 top_controls_shrink_blink_size_); | 813 top_controls_shrink_blink_size_); |
805 | 814 |
806 if (size_ != new_size) { | 815 if (size_ != new_size) { |
807 size_ = new_size; | 816 size_ = new_size; |
808 | 817 |
809 // When resizing, we want to wait to paint before ACK'ing the resize. This | 818 // When resizing, we want to wait to paint before ACK'ing the resize. This |
810 // ensures that we only resize as fast as we can paint. We only need to | 819 // ensures that we only resize as fast as we can paint. We only need to |
811 // send an ACK if we are resized to a non-empty rect. | 820 // send an ACK if we are resized to a non-empty rect. |
(...skipping 25 matching lines...) Expand all Loading... | |
837 | 846 |
838 void RenderWidget::SetWindowRectSynchronously( | 847 void RenderWidget::SetWindowRectSynchronously( |
839 const gfx::Rect& new_window_rect) { | 848 const gfx::Rect& new_window_rect) { |
840 Resize(new_window_rect.size(), | 849 Resize(new_window_rect.size(), |
841 new_window_rect.size(), | 850 new_window_rect.size(), |
842 top_controls_shrink_blink_size_, | 851 top_controls_shrink_blink_size_, |
843 top_controls_height_, | 852 top_controls_height_, |
844 new_window_rect.size(), | 853 new_window_rect.size(), |
845 gfx::Rect(), | 854 gfx::Rect(), |
846 is_fullscreen_, | 855 is_fullscreen_, |
856 display_mode_, | |
847 NO_RESIZE_ACK); | 857 NO_RESIZE_ACK); |
848 view_screen_rect_ = new_window_rect; | 858 view_screen_rect_ = new_window_rect; |
849 window_screen_rect_ = new_window_rect; | 859 window_screen_rect_ = new_window_rect; |
850 if (!did_show_) | 860 if (!did_show_) |
851 initial_rect_ = new_window_rect; | 861 initial_rect_ = new_window_rect; |
852 } | 862 } |
853 | 863 |
854 void RenderWidget::OnClose() { | 864 void RenderWidget::OnClose() { |
855 if (closing_) | 865 if (closing_) |
856 return; | 866 return; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
896 | 906 |
897 screen_info_ = params.screen_info; | 907 screen_info_ = params.screen_info; |
898 SetDeviceScaleFactor(screen_info_.deviceScaleFactor); | 908 SetDeviceScaleFactor(screen_info_.deviceScaleFactor); |
899 Resize(params.new_size, | 909 Resize(params.new_size, |
900 params.physical_backing_size, | 910 params.physical_backing_size, |
901 params.top_controls_shrink_blink_size, | 911 params.top_controls_shrink_blink_size, |
902 params.top_controls_height, | 912 params.top_controls_height, |
903 params.visible_viewport_size, | 913 params.visible_viewport_size, |
904 params.resizer_rect, | 914 params.resizer_rect, |
905 params.is_fullscreen, | 915 params.is_fullscreen, |
916 params.display_mode, | |
906 params.needs_resize_ack ? SEND_RESIZE_ACK : NO_RESIZE_ACK); | 917 params.needs_resize_ack ? SEND_RESIZE_ACK : NO_RESIZE_ACK); |
907 | 918 |
908 if (orientation_changed) | 919 if (orientation_changed) |
909 OnOrientationChange(); | 920 OnOrientationChange(); |
910 } | 921 } |
911 | 922 |
912 void RenderWidget::OnEnableDeviceEmulation( | 923 void RenderWidget::OnEnableDeviceEmulation( |
913 const blink::WebDeviceEmulationParams& params) { | 924 const blink::WebDeviceEmulationParams& params) { |
914 if (!screen_metrics_emulator_) | 925 if (!screen_metrics_emulator_) |
915 screen_metrics_emulator_.reset(new ScreenMetricsEmulator(this, params)); | 926 screen_metrics_emulator_.reset(new ScreenMetricsEmulator(this, params)); |
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1829 if (is_hidden_) | 1840 if (is_hidden_) |
1830 RenderThreadImpl::current()->WidgetHidden(); | 1841 RenderThreadImpl::current()->WidgetHidden(); |
1831 else | 1842 else |
1832 RenderThreadImpl::current()->WidgetRestored(); | 1843 RenderThreadImpl::current()->WidgetRestored(); |
1833 } | 1844 } |
1834 | 1845 |
1835 void RenderWidget::WillToggleFullscreen() { | 1846 void RenderWidget::WillToggleFullscreen() { |
1836 if (!webwidget_) | 1847 if (!webwidget_) |
1837 return; | 1848 return; |
1838 | 1849 |
1839 if (is_fullscreen_) { | 1850 if (is_fullscreen()) { |
jochen (gone - plz use gerrit)
2015/04/08 07:54:36
this change is not needed anymore?
Mikhail
2015/04/08 09:16:01
yep, fixed.
| |
1840 webwidget_->willExitFullScreen(); | 1851 webwidget_->willExitFullScreen(); |
1841 } else { | 1852 } else { |
1842 webwidget_->willEnterFullScreen(); | 1853 webwidget_->willEnterFullScreen(); |
1843 } | 1854 } |
1844 } | 1855 } |
1845 | 1856 |
1846 void RenderWidget::DidToggleFullscreen() { | 1857 void RenderWidget::DidToggleFullscreen() { |
1847 if (!webwidget_) | 1858 if (!webwidget_) |
1848 return; | 1859 return; |
1849 | 1860 |
1850 if (is_fullscreen_) { | 1861 if (is_fullscreen()) { |
jochen (gone - plz use gerrit)
2015/04/08 07:54:36
same here?
Mikhail
2015/04/08 09:16:01
Ditto.
| |
1851 webwidget_->didEnterFullScreen(); | 1862 webwidget_->didEnterFullScreen(); |
1852 } else { | 1863 } else { |
1853 webwidget_->didExitFullScreen(); | 1864 webwidget_->didExitFullScreen(); |
1854 } | 1865 } |
1855 } | 1866 } |
1856 | 1867 |
1857 bool RenderWidget::next_paint_is_resize_ack() const { | 1868 bool RenderWidget::next_paint_is_resize_ack() const { |
1858 return ViewHostMsg_UpdateRect_Flags::is_resize_ack(next_paint_flags_); | 1869 return ViewHostMsg_UpdateRect_Flags::is_resize_ack(next_paint_flags_); |
1859 } | 1870 } |
1860 | 1871 |
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2423 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { | 2434 void RenderWidget::RegisterVideoHoleFrame(RenderFrameImpl* frame) { |
2424 video_hole_frames_.AddObserver(frame); | 2435 video_hole_frames_.AddObserver(frame); |
2425 } | 2436 } |
2426 | 2437 |
2427 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { | 2438 void RenderWidget::UnregisterVideoHoleFrame(RenderFrameImpl* frame) { |
2428 video_hole_frames_.RemoveObserver(frame); | 2439 video_hole_frames_.RemoveObserver(frame); |
2429 } | 2440 } |
2430 #endif // defined(VIDEO_HOLE) | 2441 #endif // defined(VIDEO_HOLE) |
2431 | 2442 |
2432 } // namespace content | 2443 } // namespace content |
OLD | NEW |