test_profiler_close.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /* Any copyright is dedicated to the Public Domain.
  2. http://creativecommons.org/publicdomain/zero/1.0/ */
  3. "use strict";
  4. /**
  5. * Tests whether the profiler module is kept active when there are multiple
  6. * client consumers and one requests deactivation.
  7. */
  8. const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
  9. function run_test()
  10. {
  11. get_chrome_actors((client1, form1) => {
  12. let actor1 = form1.profilerActor;
  13. get_chrome_actors((client2, form2) => {
  14. let actor2 = form2.profilerActor;
  15. test_close(client1, actor1, client2, actor2, () => {
  16. client1.close(() => {
  17. client2.close(() => {
  18. do_test_finished();
  19. });
  20. });
  21. });
  22. });
  23. });
  24. do_test_pending();
  25. }
  26. function activate_profiler(client, actor, callback)
  27. {
  28. client.request({ to: actor, type: "startProfiler" }, response => {
  29. do_check_true(response.started);
  30. do_check_true(Profiler.IsActive());
  31. client.request({ to: actor, type: "isActive" }, response => {
  32. do_check_true(response.isActive);
  33. callback();
  34. });
  35. });
  36. }
  37. function deactivate_profiler(client, actor, callback)
  38. {
  39. client.request({ to: actor, type: "stopProfiler" }, response => {
  40. do_check_false(response.started);
  41. do_check_true(Profiler.IsActive());
  42. client.request({ to: actor, type: "isActive" }, response => {
  43. do_check_true(response.isActive);
  44. callback();
  45. });
  46. });
  47. }
  48. function test_close(client1, actor1, client2, actor2, callback)
  49. {
  50. activate_profiler(client1, actor1, () => {
  51. activate_profiler(client2, actor2, () => {
  52. deactivate_profiler(client1, actor1, () => {
  53. deactivate_profiler(client2, actor2, () => {
  54. callback();
  55. });
  56. });
  57. });
  58. });
  59. }