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 ea190c25f9bed5da60a81c8efe0944c5e4da19fd..cb5557a9005e58b7045a5c7b5603158643ccc9fd 100644 |
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc |
@@ -13,6 +13,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" |
@@ -188,4 +189,55 @@ IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_ActiveTabPermission) { |
EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
} |
+// http://crbug.com/177163 |
+#if defined(OS_WIN) && !defined(NDEBUG) |
+#define MAYBE_FullscreenEvents DISABLED_FullscreenEvents |
+#elif defined(USE_AURA) || defined(OS_MACOSX) |
+// These don't always fire fullscreen events when run in tests. Tested manually. |
+#define MAYBE_FullscreenEvents DISABLED_FullscreenEvents |
+#elif defined(OS_LINUX) && defined(NDEBUG) |
+// Flaky to get out of fullscreen in tests. Tested manually. |
+#define MAYBE_FullscreenEvents DISABLED_FullscreenEvents |
+#else |
+#define MAYBE_FullscreenEvents FullscreenEvents |
+#endif |
+IN_PROC_BROWSER_TEST_F(TabCaptureApiTest, MAYBE_FullscreenEvents) { |
+#if defined(OS_WIN) |
+ // TODO(justinlin): Disabled for WinXP due to timeout issues. |
+ if (base::win::GetVersion() < base::win::VERSION_VISTA) { |
+ return; |
+ } |
+#endif |
+ |
+ 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 |