summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_windowactivation.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_windowactivation.js')
-rw-r--r--browser/base/content/test/general/browser_windowactivation.js183
1 files changed, 0 insertions, 183 deletions
diff --git a/browser/base/content/test/general/browser_windowactivation.js b/browser/base/content/test/general/browser_windowactivation.js
deleted file mode 100644
index ae4ba75dc..000000000
--- a/browser/base/content/test/general/browser_windowactivation.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * This test checks that window activation state is set properly with multiple tabs.
- */
-
-var testPage = "data:text/html,<body><style>:-moz-window-inactive { background-color: red; }</style><div id='area'></div></body>";
-
-var colorChangeNotifications = 0;
-var otherWindow;
-
-var browser1, browser2;
-
-function test() {
- waitForExplicitFinish();
- waitForFocus(reallyRunTests);
-}
-
-function reallyRunTests() {
-
- let tab1 = gBrowser.addTab();
- let tab2 = gBrowser.addTab();
- browser1 = gBrowser.getBrowserForTab(tab1);
- browser2 = gBrowser.getBrowserForTab(tab2);
-
- gURLBar.focus();
-
- var loadCount = 0;
- function check()
- {
- // wait for both tabs to load
- if (++loadCount != 2) {
- return;
- }
-
- browser1.removeEventListener("load", check, true);
- browser2.removeEventListener("load", check, true);
-
- sendGetBackgroundRequest(true);
- }
-
- // The test performs four checks, using -moz-window-inactive on two child tabs.
- // First, the initial state should be transparent. The second check is done
- // while another window is focused. The third check is done after that window
- // is closed and the main window focused again. The fourth check is done after
- // switching to the second tab.
- window.messageManager.addMessageListener("Test:BackgroundColorChanged", function(message) {
- colorChangeNotifications++;
-
- switch (colorChangeNotifications) {
- case 1:
- is(message.data.color, "transparent", "first window initial");
- break;
- case 2:
- is(message.data.color, "transparent", "second window initial");
- runOtherWindowTests();
- break;
- case 3:
- is(message.data.color, "rgb(255, 0, 0)", "first window lowered");
- break;
- case 4:
- is(message.data.color, "rgb(255, 0, 0)", "second window lowered");
- sendGetBackgroundRequest(true);
- otherWindow.close();
- break;
- case 5:
- is(message.data.color, "transparent", "first window raised");
- break;
- case 6:
- is(message.data.color, "transparent", "second window raised");
- gBrowser.selectedTab = tab2;
- break;
- case 7:
- is(message.data.color, "transparent", "first window after tab switch");
- break;
- case 8:
- is(message.data.color, "transparent", "second window after tab switch");
- finishTest();
- break;
- case 9:
- ok(false, "too many color change notifications");
- break;
- }
- });
-
- window.messageManager.addMessageListener("Test:FocusReceived", function(message) {
- // No color change should occur after a tab switch.
- if (colorChangeNotifications == 6) {
- sendGetBackgroundRequest(false);
- }
- });
-
- window.messageManager.addMessageListener("Test:ActivateEvent", function(message) {
- ok(message.data.ok, "Test:ActivateEvent");
- });
-
- window.messageManager.addMessageListener("Test:DeactivateEvent", function(message) {
- ok(message.data.ok, "Test:DeactivateEvent");
- });
-
- browser1.addEventListener("load", check, true);
- browser2.addEventListener("load", check, true);
- browser1.contentWindow.location = testPage;
- browser2.contentWindow.location = testPage;
-
- browser1.messageManager.loadFrameScript("data:,(" + childFunction.toString() + ")();", true);
- browser2.messageManager.loadFrameScript("data:,(" + childFunction.toString() + ")();", true);
-
- gBrowser.selectedTab = tab1;
-}
-
-function sendGetBackgroundRequest(ifChanged)
-{
- browser1.messageManager.sendAsyncMessage("Test:GetBackgroundColor", { ifChanged: ifChanged });
- browser2.messageManager.sendAsyncMessage("Test:GetBackgroundColor", { ifChanged: ifChanged });
-}
-
-function runOtherWindowTests() {
- otherWindow = window.open("data:text/html,<body>Hi</body>", "", "chrome");
- waitForFocus(function () {
- sendGetBackgroundRequest(true);
- }, otherWindow);
-}
-
-function finishTest()
-{
- gBrowser.removeCurrentTab();
- gBrowser.removeCurrentTab();
- otherWindow = null;
- finish();
-}
-
-function childFunction()
-{
- let oldColor = null;
-
- let expectingResponse = false;
- let ifChanged = true;
-
- addMessageListener("Test:GetBackgroundColor", function(message) {
- expectingResponse = true;
- ifChanged = message.data.ifChanged;
- });
-
- content.addEventListener("focus", function () {
- sendAsyncMessage("Test:FocusReceived", { });
- }, false);
-
- var windowGotActivate = false;
- var windowGotDeactivate = false;
- addEventListener("activate", function() {
- sendAsyncMessage("Test:ActivateEvent", { ok: !windowGotActivate });
- windowGotActivate = false;
- });
-
- addEventListener("deactivate", function() {
- sendAsyncMessage("Test:DeactivateEvent", { ok: !windowGotDeactivate });
- windowGotDeactivate = false;
- });
- content.addEventListener("activate", function() {
- windowGotActivate = true;
- });
-
- content.addEventListener("deactivate", function() {
- windowGotDeactivate = true;
- });
-
- content.setInterval(function () {
- if (!expectingResponse) {
- return;
- }
-
- let area = content.document.getElementById("area");
- if (!area) {
- return; /* hasn't loaded yet */
- }
-
- let color = content.getComputedStyle(area, "").backgroundColor;
- if (oldColor != color || !ifChanged) {
- expectingResponse = false;
- oldColor = color;
- sendAsyncMessage("Test:BackgroundColorChanged", { color: color });
- }
- }, 20);
-}