Commit 204a8c28 authored by Mounir Lamouri's avatar Mounir Lamouri Committed by Commit Bot

Picture-in-Picture: refactor browser tests to not use a resize counter.

Bug: None
Change-Id: I962397a6c916b176970a451093bcef82bea83258
Reviewed-on: https://chromium-review.googlesource.com/1125403Reviewed-by: default avatarapacible <apacible@chromium.org>
Commit-Queue: Mounir Lamouri <mlamouri@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572447}
parent 0bed5b24
...@@ -67,14 +67,10 @@ class PictureInPictureWindowControllerBrowserTest ...@@ -67,14 +67,10 @@ class PictureInPictureWindowControllerBrowserTest
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
ASSERT_TRUE(content::ExecuteScript(active_web_contents, bool result = false;
"enterPictureInPicture();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "enterPictureInPicture();", &result));
// Wait for confirmation that the window was created. EXPECT_TRUE(result);
base::string16 expected_title = base::ASCIIToUTF16("1");
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
} }
private: private:
...@@ -102,18 +98,14 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -102,18 +98,14 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
ASSERT_TRUE(window_controller() != nullptr); ASSERT_TRUE(window_controller() != nullptr);
ASSERT_TRUE(window_controller()->GetWindowForTesting() != nullptr); ASSERT_TRUE(window_controller()->GetWindowForTesting() != nullptr);
ASSERT_FALSE(window_controller()->GetWindowForTesting()->IsVisible()); EXPECT_FALSE(window_controller()->GetWindowForTesting()->IsVisible());
EXPECT_TRUE(
content::ExecuteScript(active_web_contents, "enterPictureInPicture();"));
// Wait for resize event from the page. bool result = false;
base::string16 expected_title = base::ASCIIToUTF16("1"); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
EXPECT_EQ(expected_title, active_web_contents, "enterPictureInPicture();", &result));
content::TitleWatcher(active_web_contents, expected_title) EXPECT_TRUE(result);
.WaitAndGetTitle());
ASSERT_TRUE(window_controller()->GetWindowForTesting()->IsVisible()); EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible());
} }
// Tests that when an active WebContents accurately tracks whether a video // Tests that when an active WebContents accurately tracks whether a video
...@@ -138,15 +130,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -138,15 +130,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
ASSERT_TRUE(window_controller()); ASSERT_TRUE(window_controller());
EXPECT_TRUE( bool result = false;
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "enterPictureInPicture();", &result));
// Wait for title update to confirm and then test there is video playing in EXPECT_TRUE(result);
// Picture-in-Picture.
base::string16 expected_title = base::ASCIIToUTF16("1");
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
EXPECT_TRUE(active_web_contents->HasPictureInPictureVideo()); EXPECT_TRUE(active_web_contents->HasPictureInPictureVideo());
...@@ -179,18 +166,15 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -179,18 +166,15 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
ASSERT_TRUE(overlay_window); ASSERT_TRUE(overlay_window);
ASSERT_FALSE(overlay_window->IsVisible()); ASSERT_FALSE(overlay_window->IsVisible());
EXPECT_TRUE( bool result = false;
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "enterPictureInPicture();", &result));
base::string16 expected_title = base::ASCIIToUTF16("1"); EXPECT_TRUE(result);
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
static_cast<OverlayWindowViews*>(overlay_window) static_cast<OverlayWindowViews*>(overlay_window)
->SetSize(gfx::Size(400, 400)); ->SetSize(gfx::Size(400, 400));
expected_title = base::ASCIIToUTF16("2"); base::string16 expected_title = base::ASCIIToUTF16("resized");
EXPECT_EQ(expected_title, EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
...@@ -216,13 +200,11 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -216,13 +200,11 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
ASSERT_TRUE(window_controller()); ASSERT_TRUE(window_controller());
EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();")); EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();"));
EXPECT_TRUE(
content::ExecuteScript(active_web_contents, "enterPictureInPicture();"));
base::string16 expected_title = base::ASCIIToUTF16("1"); bool result = false;
EXPECT_EQ(expected_title, ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
content::TitleWatcher(active_web_contents, expected_title) active_web_contents, "enterPictureInPicture();", &result));
.WaitAndGetTitle()); EXPECT_TRUE(result);
bool in_picture_in_picture = false; bool in_picture_in_picture = false;
EXPECT_TRUE(ExecuteScriptAndExtractBool( EXPECT_TRUE(ExecuteScriptAndExtractBool(
...@@ -231,7 +213,7 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -231,7 +213,7 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
window_controller()->Close(true /* should_pause_video */); window_controller()->Close(true /* should_pause_video */);
expected_title = base::ASCIIToUTF16("left"); base::string16 expected_title = base::ASCIIToUTF16("left");
EXPECT_EQ(expected_title, EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
...@@ -256,24 +238,21 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -256,24 +238,21 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
ASSERT_TRUE(active_web_contents); ASSERT_TRUE(active_web_contents);
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
ASSERT_TRUE(window_controller());
EXPECT_TRUE( bool result = false;
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "enterPictureInPicture();", &result));
base::string16 expected_title = base::ASCIIToUTF16("1"); EXPECT_TRUE(result);
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
bool in_picture_in_picture = false; bool in_picture_in_picture = false;
EXPECT_TRUE(ExecuteScriptAndExtractBool( EXPECT_TRUE(ExecuteScriptAndExtractBool(
active_web_contents, "isInPictureInPicture();", &in_picture_in_picture)); active_web_contents, "isInPictureInPicture();", &in_picture_in_picture));
EXPECT_TRUE(in_picture_in_picture); EXPECT_TRUE(in_picture_in_picture);
ASSERT_TRUE(window_controller());
window_controller()->Close(true /* should_pause_video */); window_controller()->Close(true /* should_pause_video */);
expected_title = base::ASCIIToUTF16("left"); base::string16 expected_title = base::ASCIIToUTF16("left");
EXPECT_EQ(expected_title, EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
...@@ -297,19 +276,17 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -297,19 +276,17 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
ASSERT_TRUE(window_controller()); ASSERT_TRUE(window_controller());
EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();")); EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();"));
EXPECT_TRUE(
content::ExecuteScript(active_web_contents, "enterPictureInPicture();"));
base::string16 expected_title = base::ASCIIToUTF16("1"); bool result = false;
EXPECT_EQ(expected_title, ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
content::TitleWatcher(active_web_contents, expected_title) active_web_contents, "enterPictureInPicture();", &result));
.WaitAndGetTitle()); EXPECT_TRUE(result);
EXPECT_TRUE( EXPECT_TRUE(
content::ExecuteScript(active_web_contents, "exitPictureInPicture();")); content::ExecuteScript(active_web_contents, "exitPictureInPicture();"));
// 'left' is sent when the first video leaves Picture-in-Picture. // 'left' is sent when the first video leaves Picture-in-Picture.
expected_title = base::ASCIIToUTF16("left"); base::string16 expected_title = base::ASCIIToUTF16("left");
EXPECT_EQ(expected_title, EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
...@@ -338,14 +315,13 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -338,14 +315,13 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
ASSERT_TRUE(window_controller()); ASSERT_TRUE(window_controller());
EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();")); EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();"));
EXPECT_TRUE(
content::ExecuteScript(active_web_contents, "enterPictureInPicture();"));
// Check that requesting Picture-in-Picture promise was resolved. {
base::string16 expected_title = base::ASCIIToUTF16("1"); bool result = false;
EXPECT_EQ(expected_title, ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
content::TitleWatcher(active_web_contents, expected_title) active_web_contents, "enterPictureInPicture();", &result));
.WaitAndGetTitle()); EXPECT_TRUE(result);
}
bool in_picture_in_picture = false; bool in_picture_in_picture = false;
EXPECT_TRUE(ExecuteScriptAndExtractBool( EXPECT_TRUE(ExecuteScriptAndExtractBool(
...@@ -356,19 +332,17 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -356,19 +332,17 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
content::ExecuteScript(active_web_contents, "exitPictureInPicture();")); content::ExecuteScript(active_web_contents, "exitPictureInPicture();"));
// 'left' is sent when the video leaves Picture-in-Picture. // 'left' is sent when the video leaves Picture-in-Picture.
expected_title = base::ASCIIToUTF16("left"); base::string16 expected_title = base::ASCIIToUTF16("left");
EXPECT_EQ(expected_title, EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
EXPECT_TRUE( {
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); bool result = false;
ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
// Check that requesting Picture-in-Picture promise was resolved. active_web_contents, "enterPictureInPicture();", &result));
expected_title = base::ASCIIToUTF16("2"); EXPECT_TRUE(result);
EXPECT_EQ(expected_title, }
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
in_picture_in_picture = false; in_picture_in_picture = false;
EXPECT_TRUE(ExecuteScriptAndExtractBool( EXPECT_TRUE(ExecuteScriptAndExtractBool(
...@@ -399,14 +373,11 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -399,14 +373,11 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
ASSERT_TRUE(window_controller()); ASSERT_TRUE(window_controller());
EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();")); EXPECT_TRUE(content::ExecuteScript(active_web_contents, "video.play();"));
EXPECT_TRUE(
content::ExecuteScript(active_web_contents, "enterPictureInPicture();"));
// Check that the Picture-in-Picture window was resized once. bool result = false;
base::string16 expected_title = base::ASCIIToUTF16("1"); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
EXPECT_EQ(expected_title, active_web_contents, "enterPictureInPicture();", &result));
content::TitleWatcher(active_web_contents, expected_title) EXPECT_TRUE(result);
.WaitAndGetTitle());
bool in_picture_in_picture = false; bool in_picture_in_picture = false;
EXPECT_TRUE(ExecuteScriptAndExtractBool( EXPECT_TRUE(ExecuteScriptAndExtractBool(
...@@ -417,7 +388,7 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -417,7 +388,7 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
content::ExecuteScript(active_web_contents, "secondPictureInPicture();")); content::ExecuteScript(active_web_contents, "secondPictureInPicture();"));
// 'left' is sent when the first video leaves Picture-in-Picture. // 'left' is sent when the first video leaves Picture-in-Picture.
expected_title = base::ASCIIToUTF16("left"); base::string16 expected_title = base::ASCIIToUTF16("left");
EXPECT_EQ(expected_title, EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
...@@ -450,13 +421,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -450,13 +421,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
EXPECT_TRUE( bool result = false;
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "enterPictureInPicture();", &result));
base::string16 expected_title = base::ASCIIToUTF16("entered_pip"); EXPECT_TRUE(result);
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
} }
// Tests that calling PictureInPictureWindowController::Close() twice has no // Tests that calling PictureInPictureWindowController::Close() twice has no
...@@ -476,19 +444,15 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -476,19 +444,15 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
ASSERT_TRUE(window_controller()); ASSERT_TRUE(window_controller());
EXPECT_TRUE( bool result = false;
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "enterPictureInPicture();", &result));
// Wait for resize event from the page. EXPECT_TRUE(result);
base::string16 expected_title = base::ASCIIToUTF16("1");
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
window_controller()->Close(true /* should_pause_video */); window_controller()->Close(true /* should_pause_video */);
// Wait for the window to close. // Wait for the window to close.
expected_title = base::ASCIIToUTF16("left"); base::string16 expected_title = base::ASCIIToUTF16("left");
EXPECT_EQ(expected_title, EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
...@@ -530,14 +494,12 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -530,14 +494,12 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
EXPECT_TRUE( {
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); bool result = false;
ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
// Wait for resize event from the page. active_web_contents, "enterPictureInPicture();", &result));
base::string16 expected_title = base::ASCIIToUTF16("1"); EXPECT_TRUE(result);
EXPECT_EQ(expected_title, }
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
ASSERT_TRUE(window_controller()->GetWindowForTesting()->IsVisible()); ASSERT_TRUE(window_controller()->GetWindowForTesting()->IsVisible());
...@@ -558,13 +520,12 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -558,13 +520,12 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
EXPECT_TRUE( {
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); bool result = false;
ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
// Wait for resize event from the page. active_web_contents, "enterPictureInPicture();", &result));
EXPECT_EQ(expected_title, EXPECT_TRUE(result);
content::TitleWatcher(active_web_contents, expected_title) }
.WaitAndGetTitle());
ASSERT_TRUE(window_controller()->GetWindowForTesting()->IsVisible()); ASSERT_TRUE(window_controller()->GetWindowForTesting()->IsVisible());
} }
...@@ -585,14 +546,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -585,14 +546,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
SetUpWindowController(active_web_contents); SetUpWindowController(active_web_contents);
EXPECT_TRUE(content::ExecuteScript(active_web_contents, bool result = true;
"requestPictureInPictureAndDisable();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "requestPictureInPictureAndDisable();", &result));
// Wait for promise to reject. EXPECT_FALSE(result);
base::string16 expected_title = base::ASCIIToUTF16("rejected");
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
ASSERT_FALSE(window_controller()->GetWindowForTesting()->IsVisible()); ASSERT_FALSE(window_controller()->GetWindowForTesting()->IsVisible());
} }
...@@ -627,10 +584,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -627,10 +584,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
std::string result; bool result = false;
ASSERT_TRUE(content::ExecuteScriptAndExtractString( ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
iframe, "enterPictureInPicture();", &result)); iframe, "enterPictureInPicture();", &result));
EXPECT_EQ("done", result); EXPECT_TRUE(result);
EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible()); EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible());
...@@ -671,10 +628,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -671,10 +628,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
std::string result; bool result = false;
ASSERT_TRUE(content::ExecuteScriptAndExtractString( ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
iframe, "enterPictureInPicture();", &result)); iframe, "enterPictureInPicture();", &result));
EXPECT_EQ("done", result); EXPECT_TRUE(result);
EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible()); EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible());
...@@ -748,14 +705,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, ...@@ -748,14 +705,10 @@ IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest,
content::TitleWatcher(active_web_contents, expected_title) content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle()); .WaitAndGetTitle());
ASSERT_TRUE( bool result = false;
content::ExecuteScript(active_web_contents, "enterPictureInPicture();")); ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
active_web_contents, "enterPictureInPicture();", &result));
// Wait for resize event from the page. EXPECT_TRUE(result);
expected_title = base::ASCIIToUTF16("1");
EXPECT_EQ(expected_title,
content::TitleWatcher(active_web_contents, expected_title)
.WaitAndGetTitle());
EXPECT_FALSE(active_web_contents->IsFullscreenForCurrentTab()); EXPECT_FALSE(active_web_contents->IsFullscreenForCurrentTab());
EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible()); EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible());
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
function enterPictureInPicture() { function enterPictureInPicture() {
video.requestPictureInPicture().then(() => { video.requestPictureInPicture().then(() => {
domAutomationController.send('done'); domAutomationController.send(true);
}); });
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<script> <script>
function enterPictureInPicture() { function enterPictureInPicture() {
document.querySelector('video').requestPictureInPicture().then(() => { document.querySelector('video').requestPictureInPicture().then(() => {
document.title = 'entered_pip'; window.domAutomationController.send(true);
}); });
} }
</script> </script>
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
</body> </body>
<script> <script>
const video = document.querySelector('video'); const video = document.querySelector('video');
let pipWindow = null;
let sizeCountUpdates = 0;
// This video is created here in order to be used in // This video is created here in order to be used in
// `secondPictureInPicture()`. Unfortunately, the `requestPictureInPicture()` // `secondPictureInPicture()`. Unfortunately, the `requestPictureInPicture()`
...@@ -19,13 +17,6 @@ ...@@ -19,13 +17,6 @@
secondVideo.src = '../bigbuck.webm'; secondVideo.src = '../bigbuck.webm';
secondVideo.load(); secondVideo.load();
function updateTitle() {
// TODO(mlamouri): ideally, we should send the actual size but it will be
// flaky and require some minutia so starting with the basics.
sizeCountUpdates++;
document.title = sizeCountUpdates;
}
function requestPictureInPictureAndDisable() { function requestPictureInPictureAndDisable() {
enterPictureInPictureInternal(); enterPictureInPictureInternal();
video.disablePictureInPicture = true; video.disablePictureInPicture = true;
...@@ -50,16 +41,18 @@ ...@@ -50,16 +41,18 @@
function enterPictureInPictureInternal() { function enterPictureInPictureInternal() {
video.requestPictureInPicture() video.requestPictureInPicture()
.then(win => { .then(win => {
pipWindow = win; win.addEventListener('resize', () => {
updateTitle(); document.title = 'resized';
pipWindow.addEventListener('resize', updateTitle); }, { once: true });
video.addEventListener('leavepictureinpicture', () => { video.addEventListener('leavepictureinpicture', () => {
document.title = 'left'; document.title = 'left';
}, { once: true }); }, { once: true });
window.domAutomationController.send(true);
}) })
.catch(e => { .catch(e => {
document.title = 'rejected'; window.domAutomationController.send(false);
}); });
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment