Index: chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
index 80eb98d03f68f5060baa4fe7c1eae6cb5ac861b0..af5c98477164a4f964e0b551aa9dcca31cf37d03 100644 |
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
@@ -9,6 +9,7 @@ |
#include "chrome/browser/extensions/extension_test_message_listener.h" |
#include "chrome/browser/extensions/tab_helper.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/ui/fullscreen/fullscreen_controller.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/chrome_version_info.h" |
#include "chrome/common/extensions/feature_switch.h" |
@@ -163,4 +164,36 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_ActiveTabPermission) { |
EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
} |
+IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, FullscreenEvents) { |
+ AddExtensionToCommandLineWhitelist(); |
+ |
+ content::OpenURLParams params(GURL("chrome://version"), |
+ content::Referrer(), |
+ CURRENT_TAB, |
+ content::PAGE_TRANSITION_LINK, false); |
+ content::WebContents* web_contents = browser()->OpenURL(params); |
+ |
+ ExtensionTestMessageListener listeners_setup("ready1", true); |
+ ExtensionTestMessageListener fullscreen_entered("ready2", true); |
+ |
+ ASSERT_TRUE(RunExtensionSubtest("tab_capture/experimental", |
+ "fullscreen_test.html")) << message_; |
+ EXPECT_TRUE(listeners_setup.WaitUntilSatisfied()); |
+ |
+ // Toggle fullscreen after setting up listeners. |
+ browser()->fullscreen_controller()->ToggleFullscreenModeForTab(web_contents, |
+ true); |
+ listeners_setup.Reply(""); |
+ |
+ // Toggle again after JS should have the event. |
+ EXPECT_TRUE(fullscreen_entered.WaitUntilSatisfied()); |
+ browser()->fullscreen_controller()->ToggleFullscreenModeForTab(web_contents, |
+ false); |
+ fullscreen_entered.Reply(""); |
+ |
+ ResultCatcher catcher; |
+ catcher.RestrictToProfile(browser()->profile()); |
+ EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
+} |
+ |
} // namespace chrome |