summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_bug585785.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_bug585785.js')
-rw-r--r--browser/base/content/test/general/browser_bug585785.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_bug585785.js b/browser/base/content/test/general/browser_bug585785.js
new file mode 100644
index 000000000..4f9045231
--- /dev/null
+++ b/browser/base/content/test/general/browser_bug585785.js
@@ -0,0 +1,35 @@
+var tab;
+
+function test() {
+ waitForExplicitFinish();
+
+ tab = gBrowser.addTab();
+ isnot(tab.getAttribute("fadein"), "true", "newly opened tab is yet to fade in");
+
+ // Try to remove the tab right before the opening animation's first frame
+ window.requestAnimationFrame(checkAnimationState);
+}
+
+function checkAnimationState() {
+ is(tab.getAttribute("fadein"), "true", "tab opening animation initiated");
+
+ info(window.getComputedStyle(tab).maxWidth);
+ gBrowser.removeTab(tab, { animate: true });
+ if (!tab.parentNode) {
+ ok(true, "tab removed synchronously since the opening animation hasn't moved yet");
+ finish();
+ return;
+ }
+
+ info("tab didn't close immediately, so the tab opening animation must have started moving");
+ info("waiting for the tab to close asynchronously");
+ tab.addEventListener("transitionend", function (event) {
+ if (event.propertyName == "max-width") {
+ tab.removeEventListener("transitionend", arguments.callee, false);
+ executeSoon(function () {
+ ok(!tab.parentNode, "tab removed asynchronously");
+ finish();
+ });
+ }
+ }, false);
+}