Proposal: Make Flash full-screen video behave like HTML5 fill-screen video

Issue #2010 wontfix
luis created an issue

What steps will reproduce the problem?

open a website with any flashpalyer ,click the full screen button,flash will popup its own window.

What is the expected output? What do you see instead?

expected:the cefsimple demo use its window to show the full-screen flashplayer as Chrome does. I see instead :the flash create its own window.

What version of the product are you using? On what operating system? version:cef_binary_3.2272.32 system win 10 x64

attachments: 11.jpg is full-screen mode in Chrome 22.jpg is full-screen mode in cefsimple

Comments (12)

  1. Marshall Greenblatt

    3.2272 is very old. Modern versions of CEF should have the same Flash behavior as modern versions of Chrome.

  2. luis reporter
    • changed status to open

    Get version :2883 the flash fullscreen window get a new parent window (class = Chrome_WidgetWin_0) ,but not use its own window. can we do something about this just like cef did for H5player fullscreen mode.

  3. Yaroslav Shuper

    I confirm this is an existing issue in window mode in all recent versions of CEF. I am willing to help with this issue as much as I can. By doing little bit of research: there was fix for the off screen rendering Issue 1648

    Because of the code in libcef/browser/browser_host_impl.cc

    bool CefBrowserHostImpl::EmbedsFullscreenWidget() const {
    
      // When using windowless rendering do not allow Flash to create its own full-
    
      // screen widget.
    
     return IsWindowless();
    
    }
    

    It will return true only when CEF is running in windowless mode. This method on windows is called from here so when CEF is running in OSR mode

    widget_host_view->InitAsChild(GetRenderWidgetHostView()->GetNativeView());
    

    is executed, it creates child window and adds into the browser area. Otherwise it will create fullscreen widget for flashplayer.

    I tried to force EmbedsFullscreenWidget to return true and compiled cefclient application for testing. When flashplayer entered fullscreen mode browser window got maximised, however flashplayer did not appear.

    bool CefBrowserHostImpl::EmbedsFullscreenWidget() const {
     return true;
    }
    

    What is required to make created flashplayer child widget visible in window mode? And what is so different in OSR implementation?

  4. luis reporter

    Tried this.

    bool CefBrowserHostImpl::EmbedsFullscreenWidget() const {
     return true;
    }
    

    The new widget is created as child window.But the client rect is 0x0,so we cannot see that..

  5. Yaroslav Shuper

    So there is no way to stretch flash player to the size of the tab area on fullscreen? Like HTML5 video that gets resized to the size of the tab with address bar and other browser controls visible. And this is because FlashPlayer plugin renders only to fullscreen window and that window can not be embedded into tab area?

  6. Marshall Greenblatt

    @y_shuper : I haven't looked into the implementation details since issue #562 was resolved. It's possible that something has changed since that time. If you are able to make Flash full-screen video behave like HTML5 fill-screen video without Chromium changes then you are welcome to submit a PR.

  7. Log in to comment