Create ChildJob subclasses and move more job logic in there

Moving some more process management (fork, kill) behind the ChildJob
abstraction simplifies a lot of code and unit tests. It also allows
me to create specialized BrowserJob and GeneratorJob subclasses that
manage the appropriate kinds of child processes in the correct way.

BUG=None
TEST=unit
TEST=login_LoginSuccess
TEST=suite:smoke

Change-Id: Ic84c986b2c5a37dbdfaad0a8eb3dc26193a5a86e
Reviewed-on: https://chromium-review.googlesource.com/182351
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
31 files changed
tree: d893b0f5d2f7d6245f8f5be92f5f5fc76685a023
  1. browser_job.cc
  2. browser_job.h
  3. browser_job_unittest.cc
  4. child_job.cc
  5. child_job.h
  6. common.mk
  7. cros-xauth.c
  8. dbus_glib_shim.cc
  9. dbus_glib_shim.h
  10. default_proxy
  11. device_local_account_policy_service.cc
  12. device_local_account_policy_service.h
  13. device_local_account_policy_service_unittest.cc
  14. device_policy_service.cc
  15. device_policy_service.h
  16. device_policy_service_unittest.cc
  17. fake_browser_job.cc
  18. fake_browser_job.h
  19. fake_child_process.cc
  20. fake_child_process.h
  21. fake_generator_job.h
  22. file_checker.cc
  23. file_checker.h
  24. generator_job.cc
  25. generator_job.h
  26. inherit-review-settings-ok
  27. key_generator.cc
  28. key_generator.h
  29. key_generator_unittest.cc
  30. keygen.cc
  31. keygen_worker.cc
  32. keygen_worker.h
  33. LICENSE
  34. liveness_checker.h
  35. liveness_checker_impl.cc
  36. liveness_checker_impl.h
  37. liveness_checker_impl_unittest.cc
  38. login.conf
  39. login_metrics.cc
  40. login_metrics.h
  41. login_metrics_unittest.cc
  42. logout.conf
  43. machine-info.conf
  44. Makefile
  45. matchers.h
  46. mock_constructors.cc
  47. mock_device_policy_service.h
  48. mock_file_checker.h
  49. mock_key_generator.h
  50. mock_liveness_checker.h
  51. mock_metrics.h
  52. mock_mitigator.h
  53. mock_nss_util.cc
  54. mock_nss_util.h
  55. mock_policy_key.h
  56. mock_policy_service.h
  57. mock_policy_store.h
  58. mock_process_manager_service.cc
  59. mock_process_manager_service.h
  60. mock_server.key
  61. mock_server.pem
  62. mock_session_manager.h
  63. mock_system_utils.cc
  64. mock_system_utils.h
  65. mock_upstart_signal_emitter.h
  66. mock_user_policy_service_factory.h
  67. nss_util.cc
  68. nss_util.h
  69. nss_util_unittest.cc
  70. owner_key_loss_mitigator.cc
  71. owner_key_loss_mitigator.h
  72. policy_key.cc
  73. policy_key.h
  74. policy_key_unittest.cc
  75. policy_service.cc
  76. policy_service.h
  77. policy_service_unittest.cc
  78. policy_store.cc
  79. policy_store.h
  80. policy_store_unittest.cc
  81. process_manager_service_interface.h
  82. recovery_ui.html
  83. regen_mitigator.cc
  84. regen_mitigator.h
  85. regen_mitigator_unittest.cc
  86. scoped_dbus_pending_call.cc
  87. scoped_dbus_pending_call.h
  88. session_manager.xml
  89. session_manager_impl.cc
  90. session_manager_impl.h
  91. session_manager_impl_unittest.cc
  92. session_manager_interface.h
  93. session_manager_main.cc
  94. session_manager_process_unittest.cc
  95. session_manager_service.cc
  96. session_manager_service.h
  97. session_manager_setup.sh
  98. session_manager_static_unittest.cc
  99. session_manager_testrunner.cc
  100. SessionManager.conf
  101. system_utils.h
  102. system_utils_impl.cc
  103. system_utils_impl.h
  104. system_utils_unittest.cc
  105. ui-respawn.conf
  106. ui.conf
  107. upstart_signal_emitter.cc
  108. upstart_signal_emitter.h
  109. user_policy_service.cc
  110. user_policy_service.h
  111. user_policy_service_factory.cc
  112. user_policy_service_factory.h
  113. user_policy_service_unittest.cc
  114. WATCHLISTS
  115. xstart.sh