| OLD | NEW | 
|    1 // Copyright 2014 The Chromium Authors. All rights reserved. |    1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #include "chrome/browser/metrics/google_update_metrics_provider_win.h" |    5 #include "chrome/browser/metrics/google_update_metrics_provider_win.h" | 
|    6  |    6  | 
|    7 #include "base/location.h" |    7 #include "base/location.h" | 
|    8 #include "base/single_thread_task_runner.h" |    8 #include "base/single_thread_task_runner.h" | 
|    9 #include "base/task_runner_util.h" |    9 #include "base/task_scheduler/post_task.h" | 
|   10 #include "base/threading/thread_task_runner_handle.h" |   10 #include "base/threading/thread_task_runner_handle.h" | 
|   11 #include "components/metrics/proto/system_profile.pb.h" |   11 #include "components/metrics/proto/system_profile.pb.h" | 
|   12 #include "content/public/browser/browser_thread.h" |  | 
|   13  |   12  | 
|   14 typedef metrics::SystemProfileProto::GoogleUpdate::ProductInfo ProductInfo; |   13 typedef metrics::SystemProfileProto::GoogleUpdate::ProductInfo ProductInfo; | 
|   15  |   14  | 
|   16 namespace { |   15 namespace { | 
|   17  |   16  | 
|   18 // Helper function for checking if this is an official build. Used instead of |   17 // Helper function for checking if this is an official build. Used instead of | 
|   19 // the macro to allow checking for successful code compilation on non-official |   18 // the macro to allow checking for successful code compilation on non-official | 
|   20 // builds. |   19 // builds. | 
|   21 bool IsOfficialBuild() { |   20 bool IsOfficialBuild() { | 
|   22 #if defined(GOOGLE_CHROME_BUILD) |   21 #if defined(GOOGLE_CHROME_BUILD) | 
| (...skipping 27 matching lines...) Expand all  Loading... | 
|   50  |   49  | 
|   51 void GoogleUpdateMetricsProviderWin::GetGoogleUpdateData( |   50 void GoogleUpdateMetricsProviderWin::GetGoogleUpdateData( | 
|   52     const base::Closure& done_callback) { |   51     const base::Closure& done_callback) { | 
|   53   if (!IsOfficialBuild()) { |   52   if (!IsOfficialBuild()) { | 
|   54     base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, done_callback); |   53     base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, done_callback); | 
|   55     return; |   54     return; | 
|   56   } |   55   } | 
|   57  |   56  | 
|   58   // Schedules a task on a blocking pool thread to gather Google Update |   57   // Schedules a task on a blocking pool thread to gather Google Update | 
|   59   // statistics (requires Registry reads). |   58   // statistics (requires Registry reads). | 
|   60   base::PostTaskAndReplyWithResult( |   59   base::PostTaskWithTraitsAndReplyWithResult( | 
|   61       content::BrowserThread::GetBlockingPool(), |   60       FROM_HERE, base::TaskTraits().MayBlock().WithPriority( | 
|   62       FROM_HERE, |   61                      base::TaskPriority::BACKGROUND), | 
|   63       base::Bind( |   62       base::Bind(&GoogleUpdateMetricsProviderWin::GetGoogleUpdateDataBlocking), | 
|   64           &GoogleUpdateMetricsProviderWin::GetGoogleUpdateDataOnBlockingPool), |   63       base::Bind(&GoogleUpdateMetricsProviderWin::ReceiveGoogleUpdateData, | 
|   65       base::Bind( |   64                  weak_ptr_factory_.GetWeakPtr(), done_callback)); | 
|   66           &GoogleUpdateMetricsProviderWin::ReceiveGoogleUpdateData, |  | 
|   67           weak_ptr_factory_.GetWeakPtr(), done_callback)); |  | 
|   68 } |   65 } | 
|   69  |   66  | 
|   70 void GoogleUpdateMetricsProviderWin::ProvideSystemProfileMetrics( |   67 void GoogleUpdateMetricsProviderWin::ProvideSystemProfileMetrics( | 
|   71     metrics::SystemProfileProto* system_profile_proto) { |   68     metrics::SystemProfileProto* system_profile_proto) { | 
|   72   if (!IsOfficialBuild()) |   69   if (!IsOfficialBuild()) | 
|   73     return; |   70     return; | 
|   74  |   71  | 
|   75   metrics::SystemProfileProto::GoogleUpdate* google_update = |   72   metrics::SystemProfileProto::GoogleUpdate* google_update = | 
|   76       system_profile_proto->mutable_google_update(); |   73       system_profile_proto->mutable_google_update(); | 
|   77  |   74  | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
|  101  |   98  | 
|  102 GoogleUpdateMetricsProviderWin::GoogleUpdateMetrics::GoogleUpdateMetrics() |   99 GoogleUpdateMetricsProviderWin::GoogleUpdateMetrics::GoogleUpdateMetrics() | 
|  103     : is_system_install(false) { |  100     : is_system_install(false) { | 
|  104 } |  101 } | 
|  105  |  102  | 
|  106 GoogleUpdateMetricsProviderWin::GoogleUpdateMetrics::~GoogleUpdateMetrics() { |  103 GoogleUpdateMetricsProviderWin::GoogleUpdateMetrics::~GoogleUpdateMetrics() { | 
|  107 } |  104 } | 
|  108  |  105  | 
|  109 // static |  106 // static | 
|  110 GoogleUpdateMetricsProviderWin::GoogleUpdateMetrics |  107 GoogleUpdateMetricsProviderWin::GoogleUpdateMetrics | 
|  111 GoogleUpdateMetricsProviderWin::GetGoogleUpdateDataOnBlockingPool() { |  108 GoogleUpdateMetricsProviderWin::GetGoogleUpdateDataBlocking() { | 
|  112   GoogleUpdateMetrics google_update_metrics; |  109   GoogleUpdateMetrics google_update_metrics; | 
|  113  |  110  | 
|  114   if (!IsOfficialBuild()) |  111   if (!IsOfficialBuild()) | 
|  115     return google_update_metrics; |  112     return google_update_metrics; | 
|  116  |  113  | 
|  117   const bool is_system_install = GoogleUpdateSettings::IsSystemInstall(); |  114   const bool is_system_install = GoogleUpdateSettings::IsSystemInstall(); | 
|  118   google_update_metrics.is_system_install = is_system_install; |  115   google_update_metrics.is_system_install = is_system_install; | 
|  119   google_update_metrics.last_started_automatic_update_check = |  116   google_update_metrics.last_started_automatic_update_check = | 
|  120       GoogleUpdateSettings::GetGoogleUpdateLastStartedAU(is_system_install); |  117       GoogleUpdateSettings::GetGoogleUpdateLastStartedAU(is_system_install); | 
|  121   google_update_metrics.last_checked = |  118   google_update_metrics.last_checked = | 
|  122       GoogleUpdateSettings::GetGoogleUpdateLastChecked(is_system_install); |  119       GoogleUpdateSettings::GetGoogleUpdateLastChecked(is_system_install); | 
|  123   GoogleUpdateSettings::GetUpdateDetailForGoogleUpdate( |  120   GoogleUpdateSettings::GetUpdateDetailForGoogleUpdate( | 
|  124       is_system_install, |  121       is_system_install, | 
|  125       &google_update_metrics.google_update_data); |  122       &google_update_metrics.google_update_data); | 
|  126   GoogleUpdateSettings::GetUpdateDetail( |  123   GoogleUpdateSettings::GetUpdateDetail( | 
|  127       is_system_install, |  124       is_system_install, | 
|  128       &google_update_metrics.product_data); |  125       &google_update_metrics.product_data); | 
|  129   return google_update_metrics; |  126   return google_update_metrics; | 
|  130 } |  127 } | 
|  131  |  128  | 
|  132 void GoogleUpdateMetricsProviderWin::ReceiveGoogleUpdateData( |  129 void GoogleUpdateMetricsProviderWin::ReceiveGoogleUpdateData( | 
|  133     const base::Closure& done_callback, |  130     const base::Closure& done_callback, | 
|  134     const GoogleUpdateMetrics& google_update_metrics) { |  131     const GoogleUpdateMetrics& google_update_metrics) { | 
|  135   google_update_metrics_ = google_update_metrics; |  132   google_update_metrics_ = google_update_metrics; | 
|  136   done_callback.Run(); |  133   done_callback.Run(); | 
|  137 } |  134 } | 
| OLD | NEW |