Fix and enable Pointer Lock mochitests on OS X Lion and Mountain Lion

NEW
Unassigned

Status

()

Core
DOM: Events
6 years ago
3 years ago

People

(Reporter: humph, Unassigned)

Tracking

(Depends on: 1 bug)

Trunk
x86
Mac OS X
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [leave open])

Attachments

(1 attachment)

(Reporter)

Description

6 years ago
Spin-off from bug 633602 comment 132.  The Pointer Lock tests are problematic on OS X Lion, due to the fact that they depend on the Fullscreen API, which in turn requires some waitForFocus() and setTimeout gymnastics for mochitests.

Using the pattern established in http://mxr.mozilla.org/mozilla-central/source/content/html/content/test/test_fullscreen-api.html hasn't seemed to have worked:

const isWinXP = navigator.userAgent.indexOf("Windows NT 5.1") != -1;
const isOSXLion = navigator.userAgent.indexOf("Mac OS X 10.7") != -1;
...
function nextTest() {
...
  if (testWindow) {
    testWindow.close();
    if (isOSXLion) {
      // On OS X Lion, tests cause problems. Timeouts are a bad way to get around
      // the problem and may lead to future [orange], but they are the only option
      // at this point.
      SimpleTest.waitForFocus(function() { setTimeout(runNextTest, 3000); });
      return;
    }
  }
  runNextTest();
}

function runNextTest() {
  if (gTestIndex < gTestWindows.length) {
    testWindow = window.open(gTestWindows[gTestIndex], "", "width=500,height=500");
    // We'll wait for the window to load, then make sure our window is refocused
    // before starting the test, which will get kicked off on "focus".
    // This ensures that we're essentially back on the primary "desktop" on
    // OS X Lion before we run the test.
    testWindow.addEventListener("load", function onload() {
      testWindow.removeEventListener("load", onload, false);
      SimpleTest.waitForFocus(function() {
        SimpleTest.waitForFocus(testWindow.begin, testWindow);
      });
    }, false);
    gTestIndex++;
...
}

I did variations on this in order to try and get Pointer Lock to work, but to no avail.  I also found that I was more likely to randomly fail on Linux with this pattern in place.

In order to get the Pointer Lock API landed, the tests have been todo()'ed on Lion, and should get enabled when we can track down the source of the failures.
Summary: Fix and enable Pointer Lock mohcitests on OS X Lion → Fix and enable Pointer Lock mochitests on OS X Lion
We'll need to disable it on 10.8 as well - once you get rid of enough other things hanging before it runs, on 10.8 debug it hits objc assertions a la bug 741304.
Blocks: 786084
Summary: Fix and enable Pointer Lock mochitests on OS X Lion → Fix and enable Pointer Lock mochitests on OS X Lion and Mountain Lion

Updated

4 years ago
Depends on: 1051791
You need to log in before you can comment on or make changes to this bug.