Avoid varying behavior of header files
When build optimizations collide...
In order to avoid the non-trivial cost of including windows.h almost
everywhere the windows_types.h file was added. This includes enough
defines and types that many header files that previously required
windows.h can use it instead. However there are a couple of .cc
files - win_util.cc and process_metrics_win.cc - that need to include
windows.h before including their associated header files so that they
will get the full declarations of internal types. This sort of include
ordering guarantee is incompatible with jumbo files. This change solves
the problem in a more stable way by adding separate header files
which include windows.h and then unilaterally declare the necessary
Windows-dependent structs. These headers are then used when needed
to gain access to IoCounters and NONCLIENTMETRICS_XP.
This change also removes a redundant include of windows.h.
Bug: 796644
Change-Id: I81e3f8f21a7ba917e20f0a710285d7da64a95ae8
Reviewed-on: https://chromium-review.googlesource.com/872230
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530690}
CrOS-Libchrome-Original-Commit: aa08ad82cc3843f8522feb409442ccd53151889e
3 files changed