| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/variations/fake_crash.h" |
| |
| #include "base/debug/dump_without_crashing.h" |
| #include "base/feature_list.h" |
| #include "base/functional/bind.h" |
| #include "base/logging.h" |
| #include "base/task/thread_pool.h" |
| #include "base/time/time.h" |
| |
| namespace { |
| // This feature causes a crash report to be created after startup (without |
| // actually crashing). This is used for verifying safety measures that help |
| // catch features that cause real crashes. |
| BASE_FEATURE(kVariationsFakeCrashAfterStartup, |
| "VariationsFakeCrashAfterStartup", |
| base::FEATURE_DISABLED_BY_DEFAULT); |
| } // namespace |
| |
| namespace variations { |
| |
| void MaybeScheduleFakeCrash() { |
| if (base::FeatureList::IsEnabled(kVariationsFakeCrashAfterStartup)) { |
| base::ThreadPool::PostDelayedTask( |
| FROM_HERE, base::BindOnce([]() { |
| LOG(ERROR) << "Creating dump for VariationsFakeCrashAfterStartup"; |
| base::debug::DumpWithoutCrashing(); |
| }), |
| base::Seconds(15)); |
| } |
| } |
| |
| } // namespace variations |