diff options
author | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 21:15:36 +0000 |
---|---|---|
committer | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 21:15:36 +0000 |
commit | 8c72dfe746197d892e4b8ba3c3e2612bd24e628a (patch) | |
tree | 36b1aab0c54ef2596df52f14dc7ee83b89e58a89 /chrome | |
parent | 0977aa52b33b9418b95754b4a659055d9f0de60c (diff) | |
download | chromium_src-8c72dfe746197d892e4b8ba3c3e2612bd24e628a.zip chromium_src-8c72dfe746197d892e4b8ba3c3e2612bd24e628a.tar.gz chromium_src-8c72dfe746197d892e4b8ba3c3e2612bd24e628a.tar.bz2 |
Revert of Experimentally disable termination on heap corrruption in order to measure the contribution of this… (https://codereview.chromium.org/402723002/)
Reason for revert:
Crashes chromium.perf bots.
ChildEBP RetAddr
0052f9f4 6a47d2ff chrome_69f00000!base::debug::BreakDebugger+0x10
0052fa64 6a47df08 chrome_69f00000!CheckIsChromeSxSProcess+0x26
0052fa68 6a47e664 chrome_69f00000!InstallUtil::IsChromeSxSProcess+0x16
0052fa70 6a47e53b chrome_69f00000!BrowserDistribution::GetSpecificDistribution+0x3b
0052fa78 6a47bb77 chrome_69f00000!BrowserDistribution::GetDistribution+0x7
0052fb64 6a47bb2e chrome_69f00000!`anonymous namespace'::GetChromeChannelInternal+0x2c
0052fb7c 6a2d03f8 chrome_69f00000!GoogleUpdateSettings::GetChromeChannel+0x21
0052fbe8 6a2cd0d8 chrome_69f00000!chrome::VersionInfo::GetChannel+0x60
0052fbec 6a2cd1ab chrome_69f00000!`anonymous namespace'::GetBeaconKeyPath+0x5
0052fc08 6a2cc624 chrome_69f00000!ShouldExperimentallyDisableTerminateOnHeapCorruption+0xe
0052fc50 0020720b chrome_69f00000!ChromeMain+0x42
0052fce0 00206c36 chrome!MainDllLoader::Launch+0x15f
0052fd24 00228c9e chrome!wWinMain+0x5a
0052fd70 766e338a chrome!__tmainCRTStartup+0xfd
WARNING: Stack unwind information not available. Following frames may be wrong.
0052fd7c 76f99f72 kernel32!BaseThreadInitThunk+0x12
0052fdbc 76f99f45 ntdll!RtlInitializeExceptionChain+0x63
0052fdd4 00000000 ntdll!RtlInitializeExceptionChain+0x36
Original issue's description:
> Experimentally disable termination on heap corruption in order to measure the contribution of this feature to missing crash reports.
>
> Because this feature is configured very early in the process lifetime it cannot be directly controlled by a field-trial. Rather, we query the status during a given execution, store that status in the registry, and then query the registry during startup. This means the experiment will only take effect the 2nd time it is executed.
>
> BUG=394842
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=284100
TBR=jochen@chromium.org,brettw@chromium.org,jhawkins@chromium.org,wfh@chromium.org,erikwright@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=394842
Review URL: https://codereview.chromium.org/401913002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284197 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/app/chrome_main.cc | 4 | ||||
-rw-r--r-- | chrome/browser/chrome_browser_main_win.cc | 5 | ||||
-rw-r--r-- | chrome/chrome_common.gypi | 2 | ||||
-rw-r--r-- | chrome/common/terminate_on_heap_corruption_experiment_win.cc | 51 | ||||
-rw-r--r-- | chrome/common/terminate_on_heap_corruption_experiment_win.h | 11 |
5 files changed, 0 insertions, 73 deletions
diff --git a/chrome/app/chrome_main.cc b/chrome/app/chrome_main.cc index 63deded..c1cf145 100644 --- a/chrome/app/chrome_main.cc +++ b/chrome/app/chrome_main.cc @@ -8,7 +8,6 @@ #if defined(OS_WIN) #include "base/win/win_util.h" -#include "chrome/common/terminate_on_heap_corruption_experiment_win.h" #define DLLEXPORT __declspec(dllexport) @@ -39,9 +38,6 @@ int ChromeMain(int argc, const char** argv) { base::win::SetAbortBehaviorForCrashReporting(); params.instance = instance; params.sandbox_info = sandbox_info; - - params.enable_termination_on_heap_corruption = - !ShouldExperimentallyDisableTerminateOnHeapCorruption(); #else params.argc = argc; params.argv = argv; diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc index 2e16bd2..c03597d 100644 --- a/chrome/browser/chrome_browser_main_win.cc +++ b/chrome/browser/chrome_browser_main_win.cc @@ -38,7 +38,6 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_version_info.h" #include "chrome/common/env_vars.h" -#include "chrome/common/terminate_on_heap_corruption_experiment_win.h" #include "chrome/installer/launcher_support/chrome_launcher_support.h" #include "chrome/installer/util/browser_distribution.h" #include "chrome/installer/util/helper.h" @@ -260,10 +259,6 @@ void ChromeBrowserMainPartsWin::PostBrowserStart() { base::TimeDelta::FromSeconds(45)); InitializeChromeElf(); - - // TODO(erikwright): Remove this and the implementation of the experiment by - // August 2014. - InitializeDisableTerminateOnHeapCorruptionExperiment(); } // static diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi index 72cec9f..b24fd2a 100644 --- a/chrome/chrome_common.gypi +++ b/chrome/chrome_common.gypi @@ -211,8 +211,6 @@ 'common/spellcheck_result.h', 'common/switch_utils.cc', 'common/switch_utils.h', - 'common/terminate_on_heap_corruption_experiment_win.cc', - 'common/terminate_on_heap_corruption_experiment_win.h', 'common/tts_messages.h', 'common/tts_utterance_request.cc', 'common/tts_utterance_request.h', diff --git a/chrome/common/terminate_on_heap_corruption_experiment_win.cc b/chrome/common/terminate_on_heap_corruption_experiment_win.cc deleted file mode 100644 index 18237af..0000000 --- a/chrome/common/terminate_on_heap_corruption_experiment_win.cc +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/common/terminate_on_heap_corruption_experiment_win.h" - -#include "base/metrics/field_trial.h" -#include "base/win/registry.h" -#include "chrome/common/chrome_constants.h" -#include "chrome/common/chrome_version_info.h" - -#if defined(OS_WIN) -#if defined(GOOGLE_CHROME_BUILD) -#define PRODUCT_STRING_PATH L"Google\\Chrome" -#elif defined(CHROMIUM_BUILD) -#define PRODUCT_STRING_PATH L"Chromium" -#else -#error Unknown branding -#endif -#endif // defined(OS_WIN) - -namespace { - -wchar_t* GetBeaconKeyPath() { - chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); - if (channel == chrome::VersionInfo::CHANNEL_CANARY) { - return L"SOFTWARE\\" PRODUCT_STRING_PATH - L"\\DisableTerminateOnProcessHeapCorruptionSxs"; - } - return L"SOFTWARE\\" PRODUCT_STRING_PATH - L"\\DisableTerminateOnProcessHeapCorruption"; -} - -} // namespace - -bool ShouldExperimentallyDisableTerminateOnHeapCorruption() { - base::win::RegKey regkey( - HKEY_CURRENT_USER, GetBeaconKeyPath(), KEY_QUERY_VALUE); - return regkey.Valid(); -} - -void InitializeDisableTerminateOnHeapCorruptionExperiment() { - base::win::RegKey regkey(HKEY_CURRENT_USER); - - if (base::FieldTrialList::FindFullName("TerminateOnProcessHeapCorruption") == - "Disabled") { - regkey.CreateKey(GetBeaconKeyPath(), KEY_SET_VALUE); - } else { - regkey.DeleteKey(GetBeaconKeyPath()); - } -} diff --git a/chrome/common/terminate_on_heap_corruption_experiment_win.h b/chrome/common/terminate_on_heap_corruption_experiment_win.h deleted file mode 100644 index aa728c0..0000000 --- a/chrome/common/terminate_on_heap_corruption_experiment_win.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_COMMON_TERMINATE_ON_HEAP_CORRUPTION_EXPERIMENT_WIN_H_ -#define CHROME_COMMON_TERMINATE_ON_HEAP_CORRUPTION_EXPERIMENT_WIN_H_ - -bool ShouldExperimentallyDisableTerminateOnHeapCorruption(); -void InitializeDisableTerminateOnHeapCorruptionExperiment(); - -#endif // CHROME_COMMON_TERMINATE_ON_HEAP_CORRUPTION_EXPERIMENT_WIN_H_ |