1. 15 Nov, 2016 1 commit
    • grt's avatar
      Windows install_static refactor. · e29f8ab4
      grt authored
      This change introduces install_static::InstallDetails, a module-global
      holder of details relating to the current install. It also more clearly
      defines the concept of a primary install mode and one or more secondary
      install modes (e.g., "Chrome SxS" for Google Chrome's canary channel).
      Furthermore, it creates a clear boundary for brand-specific constants so
      that Chromium and Google Chrome don't bleed into one another. See
      chrome/install_static/README.md for more information.
      
      BUG=373987
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng
      
      Committed: https://crrev.com/92bc27b8b101d2b300a7b3afd79265b3cfba1152
      Review-Url: https://codereview.chromium.org/2422643002
      Cr-Original-Commit-Position: refs/heads/master@{#430728}
      Cr-Commit-Position: refs/heads/master@{#432270}
      e29f8ab4
  2. 09 Nov, 2016 1 commit
    • grt's avatar
      Revert of Windows install_static refactor. (patchset #15 id:320001 of... · 51c82a0a
      grt authored
      Revert of Windows install_static refactor. (patchset #15 id:320001 of https://codereview.chromium.org/2422643002/ )
      
      Reason for revert:
      Causes a crash at uninstall; see https://crbug.com/663703.
      
      Original issue's description:
      > Windows install_static refactor.
      >
      > This change introduces install_static::InstallDetails, a module-global
      > holder of details relating to the current install. It also more clearly
      > defines the concept of a primary install mode and one or more secondary
      > install modes (e.g., "Chrome SxS" for Google Chrome's canary channel).
      > Furthermore, it creates a clear boundary for brand-specific constants so
      > that Chromium and Google Chrome don't bleed into one another. See
      > chrome/install_static/README.md for more information.
      >
      > BUG=373987
      > CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng
      >
      > Committed: https://crrev.com/92bc27b8b101d2b300a7b3afd79265b3cfba1152
      > Cr-Commit-Position: refs/heads/master@{#430728}
      
      TBR=ananta@chromium.org,robertshield@chromium.org,siggi@chromium.org,pennymac@chromium.org,thakis@chromium.org,bradnelson@chromium.org,phajdan.jr@chromium.org,dschuff@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=373987
      
      Review-Url: https://codereview.chromium.org/2491463002
      Cr-Commit-Position: refs/heads/master@{#430914}
      51c82a0a
  3. 08 Nov, 2016 1 commit
    • grt's avatar
      Windows install_static refactor. · 92bc27b8
      grt authored
      This change introduces install_static::InstallDetails, a module-global
      holder of details relating to the current install. It also more clearly
      defines the concept of a primary install mode and one or more secondary
      install modes (e.g., "Chrome SxS" for Google Chrome's canary channel).
      Furthermore, it creates a clear boundary for brand-specific constants so
      that Chromium and Google Chrome don't bleed into one another. See
      chrome/install_static/README.md for more information.
      
      BUG=373987
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng
      
      Review-Url: https://codereview.chromium.org/2422643002
      Cr-Commit-Position: refs/heads/master@{#430728}
      92bc27b8
  4. 19 Jul, 2016 1 commit
    • ananta's avatar
      Switch chrome_elf exception handling from breakpad to crashpad · 52c55bd8
      ananta authored
      Relanding this patch with windows telemetry test fixes
      
      Changes in this patch are as below:
      1. chrome_elf: Removing breakpad and corresponding exception initialization using breakpad. Registering crashpad as the exception
         handling mechanism in chrome_elf. We continue to handle exceptions in chrome_elf in DllMain and in the blacklist interception code as before,
         i.e. we use crashpad to grab the dump and pass  the exception to the next handler in the chain. I also added support in chrome_elf to not initialize
         crashpad if it is being loaded in some tests. For e.g. the
         ELFImportsTest. This is via the exe name check.
      
      2. chrome.exe:- Removing crashpad exception registration. We need to retrieve current exception reports information from chrome_elf instead of chrome.
      
      3. Intercept the SetUnhandledExceptionFilter API in chrome_elf via IAT patching on the exe and disallow the call. This is to prevent CRT from overwriting crashpads exception
         filter. I added a TODO to see if we can use EAT patching or possibly sidestep if we can support 64 bit with it.
      
      4. Changed the browser lib target to depend on chrome_elf:blacklist instead of chrome_elf. This	prevents chrome_elf from being implicitly loaded in processes other
         than chrome.exe
      
      5. Changed child_process_logging_win.cc to set the crash key trampolines from chrome_elf instead of chrome.exe.
      
      6. Changed the blacklist target in blacklist.gypi to depend on the chrome_elf_common target. Previously this dependency came in through the chrome_elf_breakpad target which has
         been deleted in this patch set.
      
      7. Updated crash keys in chrome_crash_reporter_client_win.cc and added comments to the crash key files to keep the lists in sync.
      
      BUG=604923, crashpad:106, 568664
      TBR=sky
      
      Review-Url: https://codereview.chromium.org/2123073002
      Cr-Commit-Position: refs/heads/master@{#406403}
      52c55bd8
  5. 04 Jul, 2016 1 commit
    • ksakamoto's avatar
      Revert of Switch chrome_elf exception handling from breakpad to crashpad... · 362deb32
      ksakamoto authored
      Revert of Switch chrome_elf exception handling from breakpad to crashpad (patchset #2 id:20001 of https://codereview.chromium.org/2114533002/ )
      
      Reason for revert:
      speculative revert to see whether this caused crbug.com/625535
      
      Original issue's description:
      > Switch chrome_elf exception handling from breakpad to crashpad
      >
      > Relanding this patch with windows gypi build fixes.
      >
      > Switch chrome_elf exception handling from breakpad to crashpad.
      >
      > Changes in this patch are as below:
      > 1. chrome_elf: Removing breakpad and corresponding exception initialization using breakpad. Registering crashpad as the exception handling mechanism in chrome_elf.
      >    We continue to handle exceptions in chrome_elf in DllMain and in the blacklist interception code as before, i.e. we use crashpad to grab the dump and pass
      >    the exception to the next handler in the chain. I also added support in chrome_elf to not initialize crashpad if it is being loaded in some tests. For e.g. the
      >    ELFImportsTest. This is via the exe name check.
      >
      > 2. chrome.exe:- Removing crashpad exception registration. We need to retrieve current exception reports information from chrome_elf instead of chrome.
      >
      > 3. Intercept the SetUnhandledExceptionFilter API in chrome_elf via IAT patching on the exe and disallow the call. This is to prevent CRT from overwriting crashpads exception
      >    filter. I added a TODO to see if we can use EAT patching or possibly sidestep if we can support 64 bit with it.
      >
      > 4. Changed the browser lib target to depend on chrome_elf:blacklist instead of chrome_elf. This	prevents chrome_elf from being implicitly loaded in processes other
      >    than chrome.exe
      >
      > 5. Changed child_process_logging_win.cc to set the crash key trampolines from chrome_elf instead of chrome.exe.
      >
      > 6. Changed the blacklist target in blacklist.gypi to depend on the chrome_elf_common target. Previously this dependency came in through the chrome_elf_breakpad target which has been deleted in this patch set.
      >
      > BUG=604923, crashpad:106, 568664
      > TBR=sky
      >
      > Committed: https://crrev.com/29f38cfc0afb51a04698c434f4bdcafd244f4270
      > Cr-Commit-Position: refs/heads/master@{#403519}
      
      TBR=scottmg@chromium.org,robertshield@chromium.org,sky@chromium.org,ananta@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=604923, crashpad:106, 568664
      
      Review-Url: https://codereview.chromium.org/2123443002
      Cr-Commit-Position: refs/heads/master@{#403649}
      362deb32
  6. 01 Jul, 2016 1 commit
    • ananta's avatar
      Switch chrome_elf exception handling from breakpad to crashpad · 29f38cfc
      ananta authored
      Relanding this patch with windows gypi build fixes.
      
      Switch chrome_elf exception handling from breakpad to crashpad.
      
      Changes in this patch are as below:
      1. chrome_elf: Removing breakpad and corresponding exception initialization using breakpad. Registering crashpad as the exception handling mechanism in chrome_elf.
         We continue to handle exceptions in chrome_elf in DllMain and in the blacklist interception code as before, i.e. we use crashpad to grab the dump and pass
         the exception to the next handler in the chain. I also added support in chrome_elf to not initialize crashpad if it is being loaded in some tests. For e.g. the
         ELFImportsTest. This is via the exe name check.
      
      2. chrome.exe:- Removing crashpad exception registration. We need to retrieve current exception reports information from chrome_elf instead of chrome.
      
      3. Intercept the SetUnhandledExceptionFilter API in chrome_elf via IAT patching on the exe and disallow the call. This is to prevent CRT from overwriting crashpads exception
         filter. I added a TODO to see if we can use EAT patching or possibly sidestep if we can support 64 bit with it.
      
      4. Changed the browser lib target to depend on chrome_elf:blacklist instead of chrome_elf. This	prevents chrome_elf from being implicitly loaded in processes other
         than chrome.exe
      
      5. Changed child_process_logging_win.cc to set the crash key trampolines from chrome_elf instead of chrome.exe.
      
      6. Changed the blacklist target in blacklist.gypi to depend on the chrome_elf_common target. Previously this dependency came in through the chrome_elf_breakpad target which has been deleted in this patch set.
      
      BUG=604923, crashpad:106, 568664
      TBR=sky
      
      Review-Url: https://codereview.chromium.org/2114533002
      Cr-Commit-Position: refs/heads/master@{#403519}
      29f38cfc
  7. 30 Jun, 2016 2 commits
    • kbr's avatar
      Revert of Switch chrome_elf exception handling from breakpad to crashpad.... · 5b7b5f6d
      kbr authored
      Revert of Switch chrome_elf exception handling from breakpad to crashpad. (patchset #21 id:400001 of https://codereview.chromium.org/2088133002/ )
      
      Reason for revert:
      Broke build:
      https://build.chromium.org/p/chromium.win/builders/Win8%20GYP%20%28dbg%29/builds/174
      
      Seems likely the component build is broken by this change.
      
      Original issue's description:
      > Switch chrome_elf exception handling from breakpad to crashpad.
      >
      > Changes in this patch are as below:
      > 1. chrome_elf: Removing breakpad and corresponding exception initialization using breakpad. Registering
      >    crashpad as the exception handling mechanism in chrome_elf. We continue to handle exceptions in chrome_elf
      >    DllMain and in the blacklist interception code as before, i.e. we use crashpad to grab the dump and pass
      >    the exception to the next handler in the chain. I also added support in chrome_elf to not initialize
      >    crashpad if it is being loaded in some tests. For e.g. the ELFImportsTest. This is via the exe name check.
      >
      > 2. chrome.exe:- Removing crashpad exception registration. Also we need to retrieve current exception reports information
      >    from chrome_elf instead of chrome.
      >
      > 3. Intercept the SetUnhandledExceptionFilter API in chrome_elf via IAT patching on the exe and disallow the call. This
      >    is to prevent CRT from overwriting crashpads exception filter. I added a TODO to see if we can use EAT patching or
      >    possibly sidestep if we can support 64 bit with it.
      >
      > 4. Added a function RegisterCrashKeysForDebugging to the ChromeCrashReporterClient class on Windows
      >    to register crash keys. This is currently invoked from chrome_elf for debugging purposes.
      >
      > 5. Changed the browser lib target to depend on chrome_elf:blacklist instead of chrome_elf. This prevents chrome_elf
      >    from being implicitly loaded in processes other than chrome.exe
      >
      > BUG=604923,crashpad:106, 568664
      > TBR=robertshield
      >
      > Committed: https://crrev.com/34831427124fef3015106cfe6e94d35f3aa9e4f6
      > Cr-Commit-Position: refs/heads/master@{#403048}
      
      TBR=scottmg@chromium.org,robertshield@chromium.org,sky@chromium.org,ananta@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=604923,crashpad:106, 568664
      
      Review-Url: https://codereview.chromium.org/2108413002
      Cr-Commit-Position: refs/heads/master@{#403062}
      5b7b5f6d
    • ananta's avatar
      Switch chrome_elf exception handling from breakpad to crashpad. · 34831427
      ananta authored
      Changes in this patch are as below:
      1. chrome_elf: Removing breakpad and corresponding exception initialization using breakpad. Registering
         crashpad as the exception handling mechanism in chrome_elf. We continue to handle exceptions in chrome_elf
         DllMain and in the blacklist interception code as before, i.e. we use crashpad to grab the dump and pass
         the exception to the next handler in the chain. I also added support in chrome_elf to not initialize
         crashpad if it is being loaded in some tests. For e.g. the ELFImportsTest. This is via the exe name check.
      
      2. chrome.exe:- Removing crashpad exception registration. Also we need to retrieve current exception reports information
         from chrome_elf instead of chrome.
      
      3. Intercept the SetUnhandledExceptionFilter API in chrome_elf via IAT patching on the exe and disallow the call. This
         is to prevent CRT from overwriting crashpads exception filter. I added a TODO to see if we can use EAT patching or
         possibly sidestep if we can support 64 bit with it.
      
      4. Added a function RegisterCrashKeysForDebugging to the ChromeCrashReporterClient class on Windows
         to register crash keys. This is currently invoked from chrome_elf for debugging purposes.
      
      5. Changed the browser lib target to depend on chrome_elf:blacklist instead of chrome_elf. This prevents chrome_elf
         from being implicitly loaded in processes other than chrome.exe
      
      BUG=604923,crashpad:106, 568664
      TBR=robertshield
      
      Review-Url: https://codereview.chromium.org/2088133002
      Cr-Commit-Position: refs/heads/master@{#403048}
      34831427
  8. 20 Jun, 2016 2 commits
  9. 16 Jun, 2016 1 commit
    • ananta's avatar
      Add chrome_crash_reporter_client_win.cc to the source file list for chrome_elf · f265187b
      ananta authored
      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}
      f265187b
  10. 21 Apr, 2016 1 commit
    • ananta's avatar
      Preparation patch for moving the chrome crashpad integration into chrome_elf. · 0a700e23
      ananta authored
      Changes in this patch as below :
      1. Moved the ChromeCrashReporterClient class on Windows to chrome/app/chrome_crash_reporter_client_win.cc/.h
         These files still contain common code from chrome_crash_reporter_client.cc/.h. Will fix this in an upcoming patch.
      
      2. Use the chrome_crash_reporter_client_win.cc/.h on Windows.
      
      3. Moved the chrome_elf_util.cc/.h files to a new target chrome/install_static. These files have been renamed to
         install_util.cc/.h. The new target install_static_util is a static library and is currently lined with chrome_elf and related
         targets.
      
      4. Used the install_static_util target in chrome_elf targets.
      
      BUG=604923
      
      Review URL: https://codereview.chromium.org/1904613002
      
      Cr-Commit-Position: refs/heads/master@{#388666}
      0a700e23
  11. 21 Oct, 2015 5 commits
  12. 24 Feb, 2014 1 commit
  13. 19 Dec, 2013 1 commit
  14. 18 Dec, 2013 2 commits
  15. 13 Nov, 2013 1 commit
  16. 18 Jul, 2012 1 commit
  17. 15 Mar, 2012 1 commit
  18. 19 Jul, 2011 1 commit
  19. 30 Jun, 2010 1 commit
  20. 26 Jan, 2010 1 commit
    • satorux@chromium.org's avatar
      Import google-glog's Symbolize() and use it in debug_util_posix.cc. · 48c27f7f
      satorux@chromium.org authored
      Unlike glibc's backtrace_symbols(), google-glog's Symbolize() can
      resolve symbols in binaries built with -fvisibility=hidden. This is
      because Symbolize() uses both dynamic and regular symbols, while
      backtrace_symbols() only uses dynamic symbols.
      
      As shown below, the new backtrace is slightly less informative as it
      does not have the binary name like out/Debug/base_unittests and the
      distance information like +0x20, but it should be ok.
      
      BUG=32762
      TEST=out/Debug/base_unittests --gtest_filter='StackTrace*' --gtest_also_run_disabled_tests; and manually:
      
      BEFORE
      	out/Debug/base_unittests(StackTrace::StackTrace()+0x20) [0x81d38f6]
      	out/Debug/base_unittests(StackTrace_DISABLED_DebugOutputToStream_Test::TestBody()+0x17) [0x806633d]
      	out/Debug/base_unittests(testing::Test::Run()+0x7a) [0x8242f96]
      	out/Debug/base_unittests(testing::internal::TestInfoImpl::Run()+0xb9) [0x824347b]
      	out/Debug/base_unittests(testing::TestCase::Run()+0xb7) [0x8243a7f]
      	out/Debug/base_unittests(testing::internal::UnitTestImpl::RunAllTests()+0x256) [0x824777e]
      	out/Debug/base_unittests(testing::UnitTest::Run()+0x14) [0x824680a]
      	out/Debug/base_unittests [0x8048cc5]
      	out/Debug/base_unittests(main+0x50) [0x80482a4]
      	/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb6b41b56]
      	out/Debug/base_unittests [0x80481c1]
      
      AFTER
      % out/Debug/base_unittests --gtest_filter='*DebugOutputToStream' --gtest_also_run_disabled_tests
      	StackTrace::StackTrace() [0x81d3910]
      	StackTrace_DISABLED_DebugOutputToStream_Test::TestBody() [0x806633d]
      	testing::Test::Run() [0x8242f66]
      	testing::internal::TestInfoImpl::Run() [0x824344b]
      	testing::TestCase::Run() [0x8243a4f]
      	testing::internal::UnitTestImpl::RunAllTests() [0x824774e]
      	testing::UnitTest::Run() [0x82467da]
      	TestSuite::Run() [0x8048cc5]
      	main [0x80482a4]
      	0xb6c0db56
      	0x80481c1
      
      Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=36997
      
      Review URL: http://codereview.chromium.org/545148
      
      git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37090 0039d316-1c4b-4281-b951-d872f2087c98
      48c27f7f
  21. 03 Oct, 2009 1 commit
  22. 17 Jul, 2009 1 commit
  23. 16 May, 2009 1 commit
  24. 20 Feb, 2009 1 commit
  25. 01 Dec, 2008 1 commit
  26. 18 Aug, 2008 1 commit
  27. 08 Aug, 2008 1 commit