diff options
author | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-03 04:40:18 +0000 |
---|---|---|
committer | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-03 04:40:18 +0000 |
commit | 690d3e34dcdd4dfcac08eeafe654bb86889db80b (patch) | |
tree | b5891acbc07ea2eeb25a042c0118ca921481a4e6 | |
parent | de46a6d6c3d5298cc0da6fa8cc1c1ca596ff79ef (diff) | |
download | chromium_src-690d3e34dcdd4dfcac08eeafe654bb86889db80b.zip chromium_src-690d3e34dcdd4dfcac08eeafe654bb86889db80b.tar.gz chromium_src-690d3e34dcdd4dfcac08eeafe654bb86889db80b.tar.bz2 |
Revert of Reduce plugin_metrics_provider_ usage in MetricsService (https://codereview.chromium.org/308433004/)
Reason for revert:
This CL seems to cause bot failure on CI:
http://build.chromium.org/p/chromium.memory/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/2745
Original issue's description:
> Reduce plugin_metrics_provider_ usage in MetricsService
>
> This CL eliminates MetricsService's call to
> PluginMetricsProvider::RecordPluginChanges (replaced by a new API on
> MetricsProvider). It additionally adds a
> MetricsServicesManager::OnPluginLoadingError() API and has the plugin observer
> call that API rather than calling MetricsService directly. This change will
> enable easily moving MetricsService::LogPluginLoadingError() to
> ChromeMetricsServiceClient once the latter is the class that keeps a weak
> pointer to the plugin metrics provider.
>
> BUG=375776
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=274403
TBR=asvitkine@chromium.org,isherman@chromium.org,jochen@chromium.org,blundell@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=375776
Review URL: https://codereview.chromium.org/314583002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274418 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/browser_process.h | 5 | ||||
-rw-r--r-- | chrome/browser/browser_process_impl.cc | 14 | ||||
-rw-r--r-- | chrome/browser/browser_process_impl.h | 3 | ||||
-rw-r--r-- | chrome/browser/metrics/metrics_service.cc | 6 | ||||
-rw-r--r-- | chrome/browser/metrics/metrics_service.h | 1 | ||||
-rw-r--r-- | chrome/browser/metrics/metrics_services_manager.cc | 5 | ||||
-rw-r--r-- | chrome/browser/metrics/metrics_services_manager.h | 7 | ||||
-rw-r--r-- | chrome/browser/metrics/plugin_metrics_provider.cc | 4 | ||||
-rw-r--r-- | chrome/browser/metrics/plugin_metrics_provider.h | 5 | ||||
-rw-r--r-- | chrome/browser/plugins/plugin_observer.cc | 5 | ||||
-rw-r--r-- | chrome/test/base/testing_browser_process.cc | 4 | ||||
-rw-r--r-- | chrome/test/base/testing_browser_process.h | 1 | ||||
-rw-r--r-- | components/metrics/metrics_provider.h | 3 |
13 files changed, 20 insertions, 43 deletions
diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h index cda9e23..8e46d93 100644 --- a/chrome/browser/browser_process.h +++ b/chrome/browser/browser_process.h @@ -29,7 +29,6 @@ class IntranetRedirectDetector; class IOThread; class MediaFileSystemRegistry; class MetricsService; -class MetricsServicesManager; class NetworkTimeTracker; class NotificationUIManager; class PrefRegistrySimple; @@ -103,10 +102,6 @@ class BrowserProcess { // continue shutdown. virtual void EndSession() = 0; - // Gets the manager for the various metrics-related services, constructing it - // if necessary. - virtual MetricsServicesManager* GetMetricsServicesManager() = 0; - // Services: any of these getters may return NULL virtual MetricsService* metrics_service() = 0; virtual rappor::RapporService* rappor_service() = 0; diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index 30f1c08..33969aa 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc @@ -423,13 +423,6 @@ void BrowserProcessImpl::EndSession() { #endif } -MetricsServicesManager* BrowserProcessImpl::GetMetricsServicesManager() { - DCHECK(CalledOnValidThread()); - if (!metrics_services_manager_) - metrics_services_manager_.reset(new MetricsServicesManager(local_state())); - return metrics_services_manager_.get(); -} - MetricsService* BrowserProcessImpl::metrics_service() { DCHECK(CalledOnValidThread()); return GetMetricsServicesManager()->GetMetricsService(); @@ -993,6 +986,13 @@ void BrowserProcessImpl::CreateSafeBrowsingService() { #endif } +MetricsServicesManager* BrowserProcessImpl::GetMetricsServicesManager() { + DCHECK(CalledOnValidThread()); + if (!metrics_services_manager_) + metrics_services_manager_.reset(new MetricsServicesManager(local_state())); + return metrics_services_manager_.get(); +} + void BrowserProcessImpl::ApplyDefaultBrowserPolicy() { if (local_state()->GetBoolean(prefs::kDefaultBrowserSettingEnabled)) { scoped_refptr<ShellIntegration::DefaultWebClientWorker> diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h index 932ca15..5631a5e 100644 --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h @@ -73,7 +73,6 @@ class BrowserProcessImpl : public BrowserProcess, // BrowserProcess implementation. virtual void ResourceDispatcherHostCreated() OVERRIDE; virtual void EndSession() OVERRIDE; - virtual MetricsServicesManager* GetMetricsServicesManager() OVERRIDE; virtual MetricsService* metrics_service() OVERRIDE; virtual rappor::RapporService* rappor_service() OVERRIDE; virtual IOThread* io_thread() OVERRIDE; @@ -153,6 +152,8 @@ class BrowserProcessImpl : public BrowserProcess, void CreateStatusTray(); void CreateBackgroundModeManager(); + MetricsServicesManager* GetMetricsServicesManager(); + void ApplyAllowCrossOriginAuthPromptPolicy(); void ApplyDefaultBrowserPolicy(); void ApplyMetricsReportingPolicy(); diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc index e380d71..c616651 100644 --- a/chrome/browser/metrics/metrics_service.cc +++ b/chrome/browser/metrics/metrics_service.cc @@ -1313,6 +1313,7 @@ void MetricsService::LogCleanShutdown() { void MetricsService::LogPluginLoadingError(const base::FilePath& plugin_path) { #if defined(ENABLE_PLUGINS) + // TODO(asvitkine): Move this out of here. plugin_metrics_provider_->LogPluginLoadingError(plugin_path); #endif } @@ -1333,6 +1334,7 @@ void MetricsService::RecordBooleanPrefValue(const char* path, bool value) { void MetricsService::RecordCurrentState(PrefService* pref) { pref->SetInt64(prefs::kStabilityLastTimestampSec, Time::Now().ToTimeT()); - for (size_t i = 0; i < metrics_providers_.size(); ++i) - metrics_providers_[i]->RecordCurrentState(); +#if defined(ENABLE_PLUGINS) + plugin_metrics_provider_->RecordPluginChanges(); +#endif } diff --git a/chrome/browser/metrics/metrics_service.h b/chrome/browser/metrics/metrics_service.h index 57c5447..116fadf 100644 --- a/chrome/browser/metrics/metrics_service.h +++ b/chrome/browser/metrics/metrics_service.h @@ -206,7 +206,6 @@ class MetricsService bool recording_active() const; bool reporting_active() const; - // TODO(blundell): Move this to ChromeMetricsServiceClient. void LogPluginLoadingError(const base::FilePath& plugin_path); // Redundant test to ensure that we are notified of a clean exit. diff --git a/chrome/browser/metrics/metrics_services_manager.cc b/chrome/browser/metrics/metrics_services_manager.cc index 7a6295b..c560dcd 100644 --- a/chrome/browser/metrics/metrics_services_manager.cc +++ b/chrome/browser/metrics/metrics_services_manager.cc @@ -58,11 +58,6 @@ MetricsServicesManager::GetVariationsService() { return variations_service_.get(); } -void MetricsServicesManager::OnPluginLoadingError( - const base::FilePath& plugin_path) { - GetMetricsService()->LogPluginLoadingError(plugin_path); -} - metrics::MetricsStateManager* MetricsServicesManager::GetMetricsStateManager() { DCHECK(thread_checker_.CalledOnValidThread()); if (!metrics_state_manager_) { diff --git a/chrome/browser/metrics/metrics_services_manager.h b/chrome/browser/metrics/metrics_services_manager.h index 1d77177..6e16b16 100644 --- a/chrome/browser/metrics/metrics_services_manager.h +++ b/chrome/browser/metrics/metrics_services_manager.h @@ -13,10 +13,6 @@ class ChromeMetricsServiceClient; class MetricsService; class PrefService; -namespace base { -class FilePath; -} - namespace metrics { class MetricsStateManager; } @@ -47,9 +43,6 @@ class MetricsServicesManager { // Returns the VariationsService, creating it if it hasn't been created yet. chrome_variations::VariationsService* GetVariationsService(); - // Should be called when a plugin loading error occurs. - void OnPluginLoadingError(const base::FilePath& plugin_path); - private: metrics::MetricsStateManager* GetMetricsStateManager(); diff --git a/chrome/browser/metrics/plugin_metrics_provider.cc b/chrome/browser/metrics/plugin_metrics_provider.cc index f7f5c1b..e7633cf 100644 --- a/chrome/browser/metrics/plugin_metrics_provider.cc +++ b/chrome/browser/metrics/plugin_metrics_provider.cc @@ -191,9 +191,7 @@ void PluginMetricsProvider::ProvideStabilityMetrics( local_state_->ClearPref(prefs::kStabilityPluginStats); } -// Saves plugin-related updates from the in-object buffer to Local State -// for retrieval next time we send a Profile log (generally next launch). -void PluginMetricsProvider::RecordCurrentState() { +void PluginMetricsProvider::RecordPluginChanges() { ListPrefUpdate update(local_state_, prefs::kStabilityPluginStats); base::ListValue* plugins = update.Get(); DCHECK(plugins); diff --git a/chrome/browser/metrics/plugin_metrics_provider.h b/chrome/browser/metrics/plugin_metrics_provider.h index baabcf7..14ba222 100644 --- a/chrome/browser/metrics/plugin_metrics_provider.h +++ b/chrome/browser/metrics/plugin_metrics_provider.h @@ -42,7 +42,10 @@ class PluginMetricsProvider : public metrics::MetricsProvider, metrics::SystemProfileProto* system_profile_proto) OVERRIDE; virtual void ProvideStabilityMetrics( metrics::SystemProfileProto* system_profile_proto) OVERRIDE; - virtual void RecordCurrentState() OVERRIDE; + + // Saves plugin-related updates from the in-object buffer to Local State + // for retrieval next time we send a Profile log (generally next launch). + void RecordPluginChanges(); // Notifies the provider about an error loading the plugin at |plugin_path|. void LogPluginLoadingError(const base::FilePath& plugin_path); diff --git a/chrome/browser/plugins/plugin_observer.cc b/chrome/browser/plugins/plugin_observer.cc index 9accbf8..9c91704 100644 --- a/chrome/browser/plugins/plugin_observer.cc +++ b/chrome/browser/plugins/plugin_observer.cc @@ -15,7 +15,7 @@ #include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/infobars/simple_alert_infobar_delegate.h" #include "chrome/browser/lifetime/application_lifetime.h" -#include "chrome/browser/metrics/metrics_services_manager.h" +#include "chrome/browser/metrics/metrics_service.h" #include "chrome/browser/plugins/plugin_finder.h" #include "chrome/browser/plugins/plugin_infobar_delegates.h" #include "chrome/browser/profiles/profile.h" @@ -458,8 +458,7 @@ void PluginObserver::OnOpenAboutPlugins() { } void PluginObserver::OnCouldNotLoadPlugin(const base::FilePath& plugin_path) { - g_browser_process->GetMetricsServicesManager()->OnPluginLoadingError( - plugin_path); + g_browser_process->metrics_service()->LogPluginLoadingError(plugin_path); base::string16 plugin_name = PluginService::GetInstance()->GetPluginDisplayNameByPath(plugin_path); SimpleAlertInfoBarDelegate::Create( diff --git a/chrome/test/base/testing_browser_process.cc b/chrome/test/base/testing_browser_process.cc index 79acf4b..5960a0c 100644 --- a/chrome/test/base/testing_browser_process.cc +++ b/chrome/test/base/testing_browser_process.cc @@ -96,10 +96,6 @@ void TestingBrowserProcess::ResourceDispatcherHostCreated() { void TestingBrowserProcess::EndSession() { } -MetricsServicesManager* TestingBrowserProcess::GetMetricsServicesManager() { - return NULL; -} - MetricsService* TestingBrowserProcess::metrics_service() { return NULL; } diff --git a/chrome/test/base/testing_browser_process.h b/chrome/test/base/testing_browser_process.h index 2bcb32a..3ecdf47 100644 --- a/chrome/test/base/testing_browser_process.h +++ b/chrome/test/base/testing_browser_process.h @@ -56,7 +56,6 @@ class TestingBrowserProcess : public BrowserProcess { virtual void ResourceDispatcherHostCreated() OVERRIDE; virtual void EndSession() OVERRIDE; - virtual MetricsServicesManager* GetMetricsServicesManager() OVERRIDE; virtual MetricsService* metrics_service() OVERRIDE; virtual rappor::RapporService* rappor_service() OVERRIDE; virtual IOThread* io_thread() OVERRIDE; diff --git a/components/metrics/metrics_provider.h b/components/metrics/metrics_provider.h index 33bf61c..001e66a 100644 --- a/components/metrics/metrics_provider.h +++ b/components/metrics/metrics_provider.h @@ -44,9 +44,6 @@ class MetricsProvider { virtual void ProvideGeneralMetrics( ChromeUserMetricsExtension* uma_proto) {} - // TODO(asvitkine): Remove this method. http://crbug.com/379148 - virtual void RecordCurrentState() {} - private: DISALLOW_COPY_AND_ASSIGN(MetricsProvider); }; |