#include "components/translate/core/browser/translate_metrics_logger_impl.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/metrics_hashes.h"
#include "base/time/default_tick_clock.h"
#include "base/time/time.h"
#include "components/prefs/pref_service.h"
#include "components/translate/core/browser/translate_manager.h"
#include "services/metrics/public/cpp/metrics_utils.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_recorder.h"
namespace translate {
const char kTranslateTranslationSourceLanguage[] = …;
const char kTranslateTranslationStatus[] = …;
const char kTranslateTranslationTargetLanguage[] = …;
const char kTranslateTranslationTargetLanguageOrigin[] = …;
const char kTranslateTranslationType[] = …;
const char kTranslateUiInteractionEvent[] = …;
const char kTranslatePageLoadFinalSourceLanguage[] = …;
const char kTranslatePageLoadFinalState[] = …;
const char kTranslatePageLoadFinalTargetLanguage[] = …;
const char kTranslatePageLoadHrefTriggerDecision[] = …;
const char kTranslatePageLoadInitialSourceLanguage[] = …;
const char kTranslatePageLoadInitialState[] = …;
const char kTranslatePageLoadInitialTargetLanguage[] = …;
const char kTranslatePageLoadInitialTargetLanguageOrigin[] = …;
const char kTranslatePageLoadIsInitialSourceLanguageInUsersContentLanguages[] = …;
const char kTranslatePageLoadNumTargetLanguageChanges[] = …;
const char kTranslatePageLoadNumTranslations[] = …;
const char kTranslatePageLoadNumReversions[] = …;
const char kTranslatePageLoadRankerDecision[] = …;
const char kTranslatePageLoadRankerTimerShouldOfferTranslation[] = …;
const char kTranslatePageLoadRankerVersion[] = …;
const char kTranslatePageLoadTriggerDecision[] = …;
const char kTranslateApplicationStartAlwaysTranslateLanguage[] = …;
const char kTranslateApplicationStartAlwaysTranslateLanguageCount[] = …;
const char kTranslateApplicationStartNeverTranslateLanguage[] = …;
const char kTranslateApplicationStartNeverTranslateLanguageCount[] = …;
const char kTranslateApplicationStartNeverTranslateSiteCount[] = …;
TranslationType NullTranslateMetricsLogger::GetNextManualTranslationType(
bool is_context_menu_initiated_translation) { … }
void TranslateMetricsLoggerImpl::LogApplicationStartMetrics(
std::unique_ptr<TranslatePrefs> translate_prefs) { … }
TranslateMetricsLoggerImpl::TranslateMetricsLoggerImpl(
base::WeakPtr<TranslateManager> translate_manager)
: … { … }
TranslateMetricsLoggerImpl::~TranslateMetricsLoggerImpl() = default;
void TranslateMetricsLoggerImpl::OnPageLoadStart(bool is_foreground) { … }
void TranslateMetricsLoggerImpl::OnForegroundChange(bool is_foreground) { … }
void TranslateMetricsLoggerImpl::RecordMetrics(bool is_final) { … }
void TranslateMetricsLoggerImpl::SetUkmSourceId(ukm::SourceId ukm_source_id) { … }
void TranslateMetricsLoggerImpl::RecordPageLoadUmaMetrics(
bool initial_state_is_translated,
bool current_state_is_translated) { … }
void TranslateMetricsLoggerImpl::RecordTranslationHistograms(
TranslationType translation_type,
const std::string& source_language,
const std::string& target_language,
TranslateBrowserMetrics::TargetLanguageOrigin target_language_origin) { … }
void TranslateMetricsLoggerImpl::RecordTranslationStatus(
TranslationStatus translation_status) { … }
void TranslateMetricsLoggerImpl::LogRankerMetrics(
RankerDecision ranker_decision,
uint32_t ranker_version) { … }
void TranslateMetricsLoggerImpl::LogRankerStart() { … }
void TranslateMetricsLoggerImpl::LogRankerFinish() { … }
void TranslateMetricsLoggerImpl::LogTriggerDecision(
TriggerDecision trigger_decision) { … }
void TranslateMetricsLoggerImpl::LogInitialState() { … }
void TranslateMetricsLoggerImpl::LogTranslationStarted(
TranslationType translation_type) { … }
void TranslateMetricsLoggerImpl::LogTranslationFinished(
bool was_successful,
TranslateErrors error_type) { … }
void TranslateMetricsLoggerImpl::LogReversion() { … }
void TranslateMetricsLoggerImpl::LogUIChange(bool is_ui_shown) { … }
void TranslateMetricsLoggerImpl::LogOmniboxIconChange(
bool is_omnibox_icon_shown) { … }
void TranslateMetricsLoggerImpl::LogInitialSourceLanguage(
const std::string& source_language_code,
bool is_in_users_content_languages) { … }
void TranslateMetricsLoggerImpl::LogSourceLanguage(
const std::string& source_language_code) { … }
void TranslateMetricsLoggerImpl::LogTargetLanguage(
const std::string& target_language_code,
TranslateBrowserMetrics::TargetLanguageOrigin target_language_origin) { … }
void TranslateMetricsLoggerImpl::LogUIInteraction(
UIInteraction ui_interaction) { … }
TranslationType TranslateMetricsLoggerImpl::GetNextManualTranslationType(
bool is_context_menu_initiated_translation) { … }
void TranslateMetricsLoggerImpl::SetHasHrefTranslateTarget(
bool has_href_translate_target) { … }
TranslateState TranslateMetricsLoggerImpl::ConvertToTranslateState(
bool is_translated,
bool is_ui_shown,
bool is_omnibox_shown) const { … }
void TranslateMetricsLoggerImpl::UpdateTimeTranslated(bool was_translated,
bool was_foreground) { … }
TranslationStatus
TranslateMetricsLoggerImpl::ConvertTranslationTypeToRevertedTranslationStatus(
TranslationType translation_type) { … }
TranslationStatus
TranslateMetricsLoggerImpl::ConvertTranslationTypeToFailedTranslationStatus(
TranslationType translation_type,
bool was_translation_error) { … }
TranslationStatus
TranslateMetricsLoggerImpl::ConvertTranslationTypeToSuccessfulTranslationStatus(
bool is_translation_in_progress,
TranslationType translation_type) { … }
void TranslateMetricsLoggerImpl::SetInternalClockForTesting(
base::TickClock* clock) { … }
void TranslateMetricsLoggerImpl::LogHTMLDocumentLanguage(
const std::string& html_doc_language) { … }
void TranslateMetricsLoggerImpl::LogHTMLContentLanguage(
const std::string& html_content_language) { … }
void TranslateMetricsLoggerImpl::LogDetectedLanguage(
const std::string& model_detected_language) { … }
void TranslateMetricsLoggerImpl::LogDetectionReliabilityScore(
const float& model_detection_reliability_score) { … }
void TranslateMetricsLoggerImpl::LogWasContentEmpty(bool was_content_empty) { … }
}