AU: Proxy Resolver classes

A collection of classes (abstract ProxyResolver interface and two
concrete implementations). The abstraction is one that should suit us
moving forward: a string URL is provided and a collection of proxy
servers is returned. One implementation always returns [no
proxy]. Another returns [manual settings from chrome, if applicable,
..., no proxy].

A future concrete implementation will consult Chrome via DBus with the
URL in question, however this is delayed until Chrome exposes such an
API.

As a result of this API missing from Chrome, this CL only resolves
proxies for a URL with manually input proxy settings.

Future CLs will integrate this into the rest of the update system.

BUG=3167
TEST=unit tests, (with future CLs) working proxy support on device

Review URL: http://codereview.chromium.org/5151005

Change-Id: If9dc6d09da681bca6f6ae74c896ba946ab81cb4d
8 files changed
tree: 82f591b35195186e8148f9e7d8f56a0e722223fb
  1. .gitignore
  2. action.h
  3. action_mock.h
  4. action_pipe.h
  5. action_pipe_unittest.cc
  6. action_processor.cc
  7. action_processor.h
  8. action_processor_mock.h
  9. action_processor_unittest.cc
  10. action_unittest.cc
  11. buffered_file_writer.cc
  12. buffered_file_writer.h
  13. buffered_file_writer_unittest.cc
  14. bzip.cc
  15. bzip.h
  16. bzip_extent_writer.cc
  17. bzip_extent_writer.h
  18. bzip_extent_writer_unittest.cc
  19. chrome_proxy_resolver.cc
  20. chrome_proxy_resolver.h
  21. chrome_proxy_resolver_unittest.cc
  22. cycle_breaker.cc
  23. cycle_breaker.h
  24. cycle_breaker_unittest.cc
  25. dbus_constants.h
  26. dbus_interface.h
  27. dbus_service.cc
  28. dbus_service.h
  29. decompressing_file_writer.cc
  30. decompressing_file_writer.h
  31. decompressing_file_writer_unittest.cc
  32. delta_diff_generator.cc
  33. delta_diff_generator.h
  34. delta_diff_generator_unittest.cc
  35. delta_performer.cc
  36. delta_performer.h
  37. delta_performer_unittest.cc
  38. download_action.cc
  39. download_action.h
  40. download_action_unittest.cc
  41. extent_mapper.cc
  42. extent_mapper.h
  43. extent_mapper_unittest.cc
  44. extent_ranges.cc
  45. extent_ranges.h
  46. extent_ranges_unittest.cc
  47. extent_writer.cc
  48. extent_writer.h
  49. extent_writer_unittest.cc
  50. file_writer.cc
  51. file_writer.h
  52. file_writer_mock.h
  53. file_writer_unittest.cc
  54. filesystem_copier_action.cc
  55. filesystem_copier_action.h
  56. filesystem_copier_action_unittest.cc
  57. filesystem_iterator.cc
  58. filesystem_iterator.h
  59. filesystem_iterator_unittest.cc
  60. flimflam_proxy.cc
  61. flimflam_proxy.h
  62. flimflam_proxy_unittest.cc
  63. full_update_generator.cc
  64. full_update_generator.h
  65. full_update_generator_unittest.cc
  66. gen_coverage_html.sh
  67. generate_delta_main.cc
  68. graph_types.h
  69. graph_utils.cc
  70. graph_utils.h
  71. graph_utils_unittest.cc
  72. gzip.cc
  73. gzip.h
  74. http_fetcher.h
  75. http_fetcher_unittest.cc
  76. inherit-review-settings-ok
  77. install_plan.h
  78. integration_unittest.cc
  79. libcurl_http_fetcher.cc
  80. libcurl_http_fetcher.h
  81. LICENSE
  82. local_coverage_rate.sh
  83. main.cc
  84. marshal.list
  85. mock_dbus_interface.h
  86. mock_file_writer.h
  87. mock_http_fetcher.cc
  88. mock_http_fetcher.h
  89. multi_http_fetcher.h
  90. omaha_hash_calculator.cc
  91. omaha_hash_calculator.h
  92. omaha_hash_calculator_unittest.cc
  93. omaha_request_action.cc
  94. omaha_request_action.h
  95. omaha_request_action_unittest.cc
  96. omaha_request_params.cc
  97. omaha_request_params.h
  98. omaha_request_params_unittest.cc
  99. omaha_response_handler_action.cc
  100. omaha_response_handler_action.h
  101. omaha_response_handler_action_unittest.cc
  102. org.chromium.UpdateEngine.service
  103. payload_signer.cc
  104. payload_signer.h
  105. payload_signer_unittest.cc
  106. postinstall_runner_action.cc
  107. postinstall_runner_action.h
  108. postinstall_runner_action_unittest.cc
  109. prefs.cc
  110. prefs.h
  111. prefs_interface.h
  112. prefs_mock.h
  113. prefs_unittest.cc
  114. proxy_resolver.cc
  115. proxy_resolver.h
  116. SConstruct
  117. setup_dev_packages
  118. simple_key_value_store.cc
  119. simple_key_value_store.h
  120. simple_key_value_store_unittest.cc
  121. split_file_writer.cc
  122. split_file_writer.h
  123. split_file_writer_unittest.cc
  124. subprocess.cc
  125. subprocess.h
  126. subprocess_unittest.cc
  127. tarjan.cc
  128. tarjan.h
  129. tarjan_unittest.cc
  130. terminator.cc
  131. terminator.h
  132. test_http_server.cc
  133. test_utils.cc
  134. test_utils.h
  135. testrunner.cc
  136. topological_sort.cc
  137. topological_sort.h
  138. topological_sort_unittest.cc
  139. unittest_key.pem
  140. update_attempter.cc
  141. update_attempter.h
  142. update_attempter_mock.h
  143. update_attempter_unittest.cc
  144. update_check_scheduler.cc
  145. update_check_scheduler.h
  146. update_check_scheduler_unittest.cc
  147. update_engine.xml
  148. update_engine_client.cc
  149. update_metadata.proto
  150. UpdateEngine.conf
  151. utils.cc
  152. utils.h
  153. utils_unittest.cc
  154. WATCHLISTS
  155. zip_unittest.cc