123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /* 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;
- });
|