| Index: chrome/browser/metrics/chrome_metrics_service_client.cc
|
| diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| index a36c740313865ef169fc16af43c54971f764b440..edd49cecd7977c453d4b73095cee639886fe9ab1 100644
|
| --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| @@ -26,6 +26,7 @@
|
| #include "base/path_service.h"
|
| #include "base/rand_util.h"
|
| #include "base/strings/string16.h"
|
| +#include "base/task_scheduler/post_task.h"
|
| #include "base/threading/platform_thread.h"
|
| #include "base/threading/sequenced_worker_pool.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| @@ -215,19 +216,6 @@ std::unique_ptr<metrics::FileMetricsProvider> CreateFileMetricsProvider(
|
|
|
| base::FilePath user_data_dir;
|
| if (base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) {
|
| - // Reporting of persistent histograms from last session is controlled by
|
| - // a feature param. TODO(bcwhite): The current default is not to upload
|
| - // until some issues are resolved. See crbug.com/706422 for details.
|
| - std::string send_unreported = base::GetFieldTrialParamValueByFeature(
|
| - base::kPersistentHistogramsFeature, "send_unreported_metrics");
|
| - bool report_previous_persistent_histograms =
|
| - metrics_reporting_enabled && (send_unreported == "yes");
|
| - RegisterOrRemovePreviousRunMetricsFile(
|
| - report_previous_persistent_histograms, user_data_dir,
|
| - ChromeMetricsServiceClient::kBrowserMetricsName,
|
| - metrics::FileMetricsProvider::ASSOCIATE_INTERNAL_PROFILE, task_runner,
|
| - file_metrics_provider.get());
|
| -
|
| // Register the Crashpad metrics files.
|
| // Register the data from the previous run if crashpad_handler didn't exit
|
| // cleanly.
|
| @@ -237,7 +225,16 @@ std::unique_ptr<metrics::FileMetricsProvider> CreateFileMetricsProvider(
|
| metrics::FileMetricsProvider::
|
| ASSOCIATE_INTERNAL_PROFILE_OR_PREVIOUS_RUN,
|
| task_runner, file_metrics_provider.get());
|
| +
|
| + base::FilePath browser_metrics_upload_dir = user_data_dir.AppendASCII(
|
| + ChromeMetricsServiceClient::kBrowserMetricsName);
|
| if (metrics_reporting_enabled) {
|
| + file_metrics_provider->RegisterSource(
|
| + browser_metrics_upload_dir,
|
| + metrics::FileMetricsProvider::SOURCE_HISTOGRAMS_ATOMIC_DIR,
|
| + metrics::FileMetricsProvider::ASSOCIATE_INTERNAL_PROFILE,
|
| + ChromeMetricsServiceClient::kBrowserMetricsName);
|
| +
|
| base::FilePath active_path;
|
| base::GlobalHistogramAllocator::ConstructFilePaths(
|
| user_data_dir, kCrashpadHistogramAllocatorName, nullptr, &active_path,
|
| @@ -249,6 +246,16 @@ std::unique_ptr<metrics::FileMetricsProvider> CreateFileMetricsProvider(
|
| metrics::FileMetricsProvider::SOURCE_HISTOGRAMS_ACTIVE_FILE,
|
| metrics::FileMetricsProvider::ASSOCIATE_CURRENT_RUN,
|
| base::StringPiece());
|
| + } else {
|
| + // When metrics reporting is not enabled, any existing files should be
|
| + // deleted in order to preserve user privacy.
|
| + base::PostTaskWithTraits(
|
| + FROM_HERE,
|
| + {base::MayBlock(), base::TaskPriority::BACKGROUND,
|
| + base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
|
| + base::BindOnce(base::IgnoreResult(&base::DeleteFile),
|
| + base::Passed(&browser_metrics_upload_dir),
|
| + /*recursive=*/true));
|
| }
|
| }
|
|
|
|
|