• Bruce Dawson's avatar
    Avoid varying behavior of header files · aa08ad82
    Bruce Dawson authored
    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: default avatarScott Violet <sky@chromium.org>
    Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#530690}
    aa08ad82
l10n_util_win_unittest.cc 2.21 KB