UpdateEngine-side changes to allow updates over 3G based on device policy.

Some enterprise chromebooks have only 3G and hence they need the ability
to update over 3G if the enterprise policy allows that. This CL adds
the support in update_engine to enable that.

BUG=chromium-os:31099
TEST=Tested E2E on 3G, added unit tests and did regression testing.
CQ-DEPEND=I1a55a392f3dc0f12d917eb45dcf0456b57735514
Change-Id: I121bda35e54fa6c35e002a76db198d13b72b650e
Reviewed-on: https://gerrit.chromium.org/gerrit/25470
Commit-Ready: Jay Srinivasan <jaysri@chromium.org>
Reviewed-by: Jay Srinivasan <jaysri@chromium.org>
Tested-by: Jay Srinivasan <jaysri@chromium.org>
25 files changed
tree: 1775314ef9f04690a29ebf811819013930a3fc8b
  1. .gitignore
  2. 99-gpio-dutflag.rules
  3. action.h
  4. action_mock.h
  5. action_pipe.h
  6. action_pipe_unittest.cc
  7. action_processor.cc
  8. action_processor.h
  9. action_processor_mock.h
  10. action_processor_unittest.cc
  11. action_unittest.cc
  12. build
  13. bzip.cc
  14. bzip.h
  15. bzip_extent_writer.cc
  16. bzip_extent_writer.h
  17. bzip_extent_writer_unittest.cc
  18. certificate_checker.cc
  19. certificate_checker.h
  20. certificate_checker_mock.h
  21. certificate_checker_unittest.cc
  22. chrome_browser_proxy_resolver.cc
  23. chrome_browser_proxy_resolver.h
  24. chrome_browser_proxy_resolver_unittest.cc
  25. chrome_proxy_resolver.cc
  26. chrome_proxy_resolver.h
  27. chrome_proxy_resolver_unittest.cc
  28. connection_manager.cc
  29. connection_manager.h
  30. connection_manager_unittest.cc
  31. cycle_breaker.cc
  32. cycle_breaker.h
  33. cycle_breaker_unittest.cc
  34. dbus_constants.h
  35. dbus_interface.h
  36. dbus_service.cc
  37. dbus_service.h
  38. delta_diff_generator.cc
  39. delta_diff_generator.h
  40. delta_diff_generator_unittest.cc
  41. delta_performer.cc
  42. delta_performer.h
  43. delta_performer_unittest.cc
  44. download_action.cc
  45. download_action.h
  46. download_action_unittest.cc
  47. extent_mapper.cc
  48. extent_mapper.h
  49. extent_mapper_unittest.cc
  50. extent_ranges.cc
  51. extent_ranges.h
  52. extent_ranges_unittest.cc
  53. extent_writer.cc
  54. extent_writer.h
  55. extent_writer_unittest.cc
  56. file_descriptor.cc
  57. file_descriptor.h
  58. file_writer.cc
  59. file_writer.h
  60. file_writer_mock.h
  61. file_writer_unittest.cc
  62. filesystem_copier_action.cc
  63. filesystem_copier_action.h
  64. filesystem_copier_action_unittest.cc
  65. filesystem_iterator.cc
  66. filesystem_iterator.h
  67. filesystem_iterator_unittest.cc
  68. full_update_generator.cc
  69. full_update_generator.h
  70. full_update_generator_unittest.cc
  71. gen_coverage_html
  72. generate_delta_main.cc
  73. gpio_handler.cc
  74. gpio_handler.h
  75. gpio_handler_unittest.cc
  76. gpio_handler_unittest.h
  77. gpio_mock_udev_interface.cc
  78. gpio_mock_udev_interface.h
  79. graph_types.h
  80. graph_utils.cc
  81. graph_utils.h
  82. graph_utils_unittest.cc
  83. http_common.cc
  84. http_common.h
  85. http_fetcher.cc
  86. http_fetcher.h
  87. http_fetcher_unittest.cc
  88. http_fetcher_unittest.h
  89. inherit-review-settings-ok
  90. install_plan.h
  91. integration_unittest.cc
  92. libcurl_http_fetcher.cc
  93. libcurl_http_fetcher.h
  94. LICENSE
  95. local_coverage_rate
  96. main.cc
  97. marshal.list
  98. metadata.cc
  99. metadata.h
  100. metadata_unittest.cc
  101. mock_connection_manager.h
  102. mock_dbus_interface.h
  103. mock_file_writer.h
  104. mock_http_fetcher.cc
  105. mock_http_fetcher.h
  106. mock_system_state.h
  107. multi_range_http_fetcher.cc
  108. multi_range_http_fetcher.h
  109. omaha_hash_calculator.cc
  110. omaha_hash_calculator.h
  111. omaha_hash_calculator_unittest.cc
  112. omaha_request_action.cc
  113. omaha_request_action.h
  114. omaha_request_action_unittest.cc
  115. omaha_request_params.cc
  116. omaha_request_params.h
  117. omaha_request_params_unittest.cc
  118. omaha_response_handler_action.cc
  119. omaha_response_handler_action.h
  120. omaha_response_handler_action_unittest.cc
  121. org.chromium.UpdateEngine.service
  122. payload_signer.cc
  123. payload_signer.h
  124. payload_signer_unittest.cc
  125. postinstall_runner_action.cc
  126. postinstall_runner_action.h
  127. postinstall_runner_action_unittest.cc
  128. prefs.cc
  129. prefs.h
  130. prefs_interface.h
  131. prefs_mock.h
  132. prefs_unittest.cc
  133. proxy_resolver.cc
  134. proxy_resolver.h
  135. run_unittests
  136. SConstruct
  137. setup_dev_packages
  138. simple_key_value_store.cc
  139. simple_key_value_store.h
  140. simple_key_value_store_unittest.cc
  141. subprocess.cc
  142. subprocess.h
  143. subprocess_unittest.cc
  144. system_state.cc
  145. system_state.h
  146. tarjan.cc
  147. tarjan.h
  148. tarjan_unittest.cc
  149. terminator.cc
  150. terminator.h
  151. terminator_unittest.cc
  152. test_http_server.cc
  153. test_utils.cc
  154. test_utils.h
  155. testrunner.cc
  156. topological_sort.cc
  157. topological_sort.h
  158. topological_sort_unittest.cc
  159. udev_interface.h
  160. unittest_key.pem
  161. unittest_key2.pem
  162. update_attempter.cc
  163. update_attempter.h
  164. update_attempter_mock.h
  165. update_attempter_unittest.cc
  166. update_check_scheduler.cc
  167. update_check_scheduler.h
  168. update_check_scheduler_unittest.cc
  169. update_engine.xml
  170. update_engine_client.cc
  171. update_metadata.proto
  172. UpdateEngine.conf
  173. utils.cc
  174. utils.h
  175. utils_unittest.cc
  176. WATCHLISTS
  177. zip_unittest.cc