gecko-dev/accessible/tests/browser/browser_shutdown_start_rest...

42 строки
1.3 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
'use strict';
add_task(function* () {
info('Creating a service');
// Create a11y service.
let a11yInit = initPromise();
let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
Ci.nsIAccessibilityService);
yield a11yInit;
ok(accService, 'Service initialized');
info('Removing a service');
// Remove the only reference to an a11y service.
let a11yShutdown = shutdownPromise();
accService = null;
ok(!accService, 'Service is removed');
// Force garbage collection that should trigger shutdown.
forceGC();
yield a11yShutdown;
info('Recreating a service');
// Re-create a11y service.
a11yInit = initPromise();
accService = Cc['@mozilla.org/accessibilityService;1'].getService(
Ci.nsIAccessibilityService);
yield a11yInit;
ok(accService, 'Service initialized again');
info('Removing a service again');
// Remove the only reference to an a11y service again.
a11yShutdown = shutdownPromise();
accService = null;
ok(!accService, 'Service is removed again');
// Force garbage collection that should trigger shutdown.
forceGC();
yield a11yShutdown;
});