Add chrome_crash_reporter_client_win.cc to the source file list for chrome_elf
This is in preparation for switching the exception handling in
chrome_elf from breakpad to crashpad. I will do that in a subsequent
patch.
This patch contains the following changes.
1. base
Changes here are to restrict the usage of FilePath and file_util from
the portions of the base which are referenced by crashpad and
ChromeCrashReporterClient. These in turn end up bringing in
dependencies on message_loop which won't work in chrome_elf. Fixed
logging.cc to not use file path and file util and instead use Windows
API's to achieve the same result. Fixed platform_thread_win.cc to
avoid using windows_version.h as that pulls in object watcher and
other badness.
2. crash_pad_win.cc. Remove usage of PathService and avoid using
startup_metric_utils. That pulls in registry.h which in turn pulls in
object watcher.
3. ChromeCrashReporterClient (Windows).
Removed usage of chrome::RegisterChromeCrashKeys and instead locally
defined a smaller version of that function. I added a TODO at the top
here to remove these functions and the RegisterKeys function from the
CrashClient interface, whenever scottmg's patch which avoids pre
registration of crash keys lands. I also added a static function
InitializeCrashReportingForProcess to this class which does the work
for registering the process with crashpad.
4. install_static.
Added some constants to this library and a new function
GetSwitchValueFromCommandLine to retrieve the value of a switch from
the command line. This is to avoid depending on shell32 via base
command line. Added a unittest for this function.
5. base\message_loop\message_pump_win.cc
This file gets pulled in by users of platform_thread_win.cc which is
used indirectly by lots of base code. This line
tracked_objects::ThreadData::InitializeThreadContext(name); brings in
the deps via TRACE_EVENT. I changed the deps to function pointers
with CHECKs for user32 being loaded and the function pointers being
valid to catch these in the wild.
BUG=604923
TEST=InstallStaticTest.GetSwitchValueFromCommandLineTest
Review-Url: https://codereview.chromium.org/2053953002
Cr-Commit-Position: refs/heads/master@{#400278}
22 files changed