Skip to content

Commit

Permalink
Add monthly primary language P3A metric
Browse files Browse the repository at this point in the history
  • Loading branch information
DJAndries committed Dec 13, 2023
1 parent 6f6edf8 commit c3c365c
Show file tree
Hide file tree
Showing 10 changed files with 427 additions and 6 deletions.
2 changes: 2 additions & 0 deletions browser/misc_metrics/misc_android_metrics.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ MiscAndroidMetrics::MiscAndroidMetrics(
: misc_metrics_(misc_metrics),
search_engine_tracker_(search_engine_tracker) {}

MiscAndroidMetrics::~MiscAndroidMetrics() = default;

mojo::PendingRemote<mojom::MiscAndroidMetrics>
MiscAndroidMetrics::MakeRemote() {
mojo::PendingRemote<mojom::MiscAndroidMetrics> remote;
Expand Down
1 change: 1 addition & 0 deletions browser/misc_metrics/misc_android_metrics.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class MiscAndroidMetrics : public mojom::MiscAndroidMetrics {
public:
MiscAndroidMetrics(ProcessMiscMetrics* misc_metrics,
SearchEngineTracker* search_engine_tracker);
~MiscAndroidMetrics() override;

MiscAndroidMetrics(const MiscAndroidMetrics&) = delete;
MiscAndroidMetrics& operator=(const MiscAndroidMetrics&) = delete;
Expand Down
23 changes: 21 additions & 2 deletions browser/misc_metrics/profile_misc_metrics_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,37 @@
#include "brave/browser/misc_metrics/profile_misc_metrics_service.h"

#include "brave/browser/brave_browser_process.h"
#include "brave/browser/misc_metrics/extension_metrics.h"
#include "brave/components/misc_metrics/language_metrics.h"
#include "brave/components/misc_metrics/page_metrics.h"
#include "chrome/browser/browser_process.h"

#if BUILDFLAG(IS_ANDROID)
#include "brave/browser/misc_metrics/misc_android_metrics.h"
#else
#include "brave/browser/misc_metrics/extension_metrics.h"
#endif

namespace misc_metrics {

#if BUILDFLAG(IS_ANDROID)
ProfileMiscMetricsService::ProfileMiscMetricsService(
PrefService* profile_prefs,
history::HistoryService* history_service,
SearchEngineTracker* search_engine_tracker) {
#else
ProfileMiscMetricsService::ProfileMiscMetricsService(
PrefService* profile_prefs,
extensions::ExtensionRegistry* extension_registry,
history::HistoryService* history_service,
SearchEngineTracker* search_engine_tracker) {
#endif
auto* local_state = g_browser_process->local_state();
page_metrics_ = std::make_unique<PageMetrics>(local_state, history_service);
if (profile_prefs) {
language_metrics_ = std::make_unique<LanguageMetrics>(profile_prefs);
}
if (history_service) {
page_metrics_ = std::make_unique<PageMetrics>(local_state, history_service);
}
#if BUILDFLAG(IS_ANDROID)
misc_android_metrics_ = std::make_unique<MiscAndroidMetrics>(
g_brave_browser_process->process_misc_metrics(), search_engine_tracker);
Expand Down
15 changes: 13 additions & 2 deletions browser/misc_metrics/profile_misc_metrics_service.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@
#include "build/build_config.h"
#include "components/keyed_service/core/keyed_service.h"

class PrefService;
class SearchEngineTracker;

#if !BUILDFLAG(IS_ANDROID)
namespace extensions {
class ExtensionRegistry;
} // namespace extensions
#endif

namespace history {
class HistoryService;
Expand All @@ -28,14 +31,21 @@ class MiscAndroidMetrics;
#else
class ExtensionMetrics;
#endif
class LanguageMetrics;
class PageMetrics;
class ProcessMiscMetrics;

class ProfileMiscMetricsService : public KeyedService {
public:
ProfileMiscMetricsService(extensions::ExtensionRegistry* extension_registry,
#if BUILDFLAG(IS_ANDROID)
ProfileMiscMetricsService(PrefService* profile_prefs,
history::HistoryService* history_service,
SearchEngineTracker* search_engine_tracker);
#else
ProfileMiscMetricsService(PrefService* profile_prefs,
extensions::ExtensionRegistry* extension_registry,
history::HistoryService* history_service,
SearchEngineTracker* search_engine_tracker);
#endif
~ProfileMiscMetricsService() override;

ProfileMiscMetricsService(const ProfileMiscMetricsService&) = delete;
Expand All @@ -50,6 +60,7 @@ class ProfileMiscMetricsService : public KeyedService {
#endif

private:
std::unique_ptr<LanguageMetrics> language_metrics_ = nullptr;
std::unique_ptr<PageMetrics> page_metrics_ = nullptr;
#if BUILDFLAG(IS_ANDROID)
std::unique_ptr<MiscAndroidMetrics> misc_android_metrics_ = nullptr;
Expand Down
19 changes: 17 additions & 2 deletions browser/misc_metrics/profile_misc_metrics_service_factory.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,12 @@
#include "chrome/browser/profiles/profile.h"
#include "components/history/core/browser/history_service.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/user_prefs/user_prefs.h"

#if !BUILDFLAG(IS_ANDROID)
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_registry_factory.h"
#endif

namespace misc_metrics {

Expand All @@ -35,7 +40,9 @@ ProfileMiscMetricsServiceFactory::ProfileMiscMetricsServiceFactory()
: BrowserContextKeyedServiceFactory(
"ProfileMiscMetricsService",
BrowserContextDependencyManager::GetInstance()) {
#if !BUILDFLAG(IS_ANDROID)
DependsOn(extensions::ExtensionRegistryFactory::GetInstance());
#endif
DependsOn(HistoryServiceFactory::GetInstance());
DependsOn(SearchEngineTrackerFactory::GetInstance());
}
Expand All @@ -44,14 +51,22 @@ ProfileMiscMetricsServiceFactory::~ProfileMiscMetricsServiceFactory() = default;

KeyedService* ProfileMiscMetricsServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
auto* extension_registry =
#if !BUILDFLAG(IS_ANDROID)
extensions::ExtensionRegistry* extension_registry =
extensions::ExtensionRegistryFactory::GetForBrowserContext(context);
#endif
auto* history_service = HistoryServiceFactory::GetForProfile(
Profile::FromBrowserContext(context), ServiceAccessType::EXPLICIT_ACCESS);
auto* search_engine_tracker =
SearchEngineTrackerFactory::GetInstance()->GetForBrowserContext(context);
return new ProfileMiscMetricsService(extension_registry, history_service,
#if BUILDFLAG(IS_ANDROID)
return new ProfileMiscMetricsService(user_prefs::UserPrefs::Get(context),
history_service, search_engine_tracker);
#else
return new ProfileMiscMetricsService(user_prefs::UserPrefs::Get(context),
extension_registry, history_service,
search_engine_tracker);
#endif
}

content::BrowserContext*
Expand Down
6 changes: 6 additions & 0 deletions components/misc_metrics/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ static_library("misc_metrics") {
sources = [
"general_browser_usage.cc",
"general_browser_usage.h",
"language_metrics.cc",
"language_metrics.h",
"menu_metrics.cc",
"menu_metrics.h",
"page_metrics.cc",
Expand All @@ -24,6 +26,8 @@ static_library("misc_metrics") {
"//brave/components/time_period_storage",
"//components/history/core/browser",
"//components/keyed_service/core",
"//components/language/core/browser",
"//components/language/core/common",
"//components/prefs",
"//url",
]
Expand All @@ -36,6 +40,7 @@ source_set("unit_tests") {

sources = [
"general_browser_usage_unittest.cc",
"language_metrics_unittest.cc",
"menu_metrics_unittest.cc",
"privacy_hub_metrics_unittest.cc",
"tab_metrics_unittest.cc",
Expand All @@ -45,6 +50,7 @@ source_set("unit_tests") {
"//base",
"//base/test:test_support",
"//brave/components/misc_metrics",
"//components/language/core/browser",
"//components/prefs:test_support",
"//content/test:test_support",
"//testing/gtest",
Expand Down
Loading

0 comments on commit c3c365c

Please sign in to comment.