1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_
#define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_
#include <memory>
#include <vector>
#include "components/keyed_service/core/keyed_service.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
namespace metrics {
class TranslateEventProto;
} // namespace metrics
namespace translate {
class TranslateMetricsLogger;
// If enabled, downloads a translate ranker model and uses it to determine
// whether the user should be given a translation prompt or not.
class TranslateRanker : public KeyedService {
public:
TranslateRanker() = default;
TranslateRanker(const TranslateRanker&) = delete;
TranslateRanker& operator=(const TranslateRanker&) = delete;
// Returns the version id for the ranker model.
virtual uint32_t GetModelVersion() const = 0;
// Returns true if executing the ranker model in the translation prompt
// context described by |translate_event| and possibly
// other global browser context attributes suggests that the user should be
// prompted as to whether translation should be performed.
virtual bool ShouldOfferTranslation(
metrics::TranslateEventProto* translate_event,
TranslateMetricsLogger* translate_metrics_logger) = 0;
// Transfers cached translate events to the given vector pointer and clears
// the cache.
virtual void FlushTranslateEvents(
std::vector<metrics::TranslateEventProto>* events) = 0;
// Record |translate_event| with the given |event_type| and |url|.
// |event_type| must be one of the values defined by
// metrics::TranslateEventProto::EventType.
virtual void RecordTranslateEvent(
int event_type,
ukm::SourceId ukm_source_id,
metrics::TranslateEventProto* translate_event) = 0;
// If override of MATCHES_PREVIOUS_LANGUAGE is enabled, will return true and
// add MATCHES_PREVIOUS_LANGUAGE to |translate_event.decision_overrides()|. If
// override is disabled, returns false and finalizes and records
// |translate_event| with MATCHES_PREVIOUS_LANGUAGE event type.
virtual bool ShouldOverrideMatchesPreviousLanguageDecision(
ukm::SourceId ukm_source_id,
metrics::TranslateEventProto* translate_event) = 0;
// Override the default enabled/disabled state of translate event logging.
virtual void EnableLogging(bool enable_logging) = 0;
};
} // namespace translate
#endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_
|