feat: enable picture-in-picture mode for video tags (#17686)
* feat: enable picture in picture mode for video tags * test: add test to verify picture in picture support * lint: fix indent * fix: clean up after rebase * test: update test with 16:9 test video * fix: .paches after rebase
This commit is contained in:
parent
46b6bcd99b
commit
9ccd6aa0dd
15 changed files with 318 additions and 0 deletions
|
@ -55,6 +55,10 @@
|
|||
#include "shell/browser/printing/print_preview_message_handler.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_PICTURE_IN_PICTURE)
|
||||
#include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h"
|
||||
#endif
|
||||
|
||||
using content::BrowserThread;
|
||||
|
||||
namespace electron {
|
||||
|
@ -636,4 +640,23 @@ void CommonWebContentsDelegate::SetHtmlApiFullscreen(bool enter_fullscreen) {
|
|||
native_fullscreen_ = false;
|
||||
}
|
||||
|
||||
content::PictureInPictureResult
|
||||
CommonWebContentsDelegate::EnterPictureInPicture(
|
||||
content::WebContents* web_contents,
|
||||
const viz::SurfaceId& surface_id,
|
||||
const gfx::Size& natural_size) {
|
||||
#if BUILDFLAG(ENABLE_PICTURE_IN_PICTURE)
|
||||
return PictureInPictureWindowManager::GetInstance()->EnterPictureInPicture(
|
||||
web_contents, surface_id, natural_size);
|
||||
#else
|
||||
return content::PictureInPictureResult::kNotSupported;
|
||||
#endif
|
||||
}
|
||||
|
||||
void CommonWebContentsDelegate::ExitPictureInPicture() {
|
||||
#if BUILDFLAG(ENABLE_PICTURE_IN_PICTURE)
|
||||
PictureInPictureWindowManager::GetInstance()->ExitPictureInPicture();
|
||||
#endif
|
||||
}
|
||||
|
||||
} // namespace electron
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue