| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_ | 5 #ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_ |
| 6 #define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_ | 6 #define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 #include "components/keyed_service/core/keyed_service.h" | 13 #include "components/keyed_service/core/keyed_service.h" |
| 14 | 14 |
| 15 class GURL; | 15 class GURL; |
| 16 | 16 |
| 17 namespace metrics { | 17 namespace metrics { |
| 18 class TranslateEventProto; | 18 class TranslateEventProto; |
| 19 } // namespace metrics | 19 } // namespace metrics |
| 20 | 20 |
| 21 namespace translate { | 21 namespace translate { |
| 22 | 22 |
| 23 class TranslatePrefs; | |
| 24 | |
| 25 // If enabled, downloads a translate ranker model and uses it to determine | 23 // If enabled, downloads a translate ranker model and uses it to determine |
| 26 // whether the user should be given a translation prompt or not. | 24 // whether the user should be given a translation prompt or not. |
| 27 class TranslateRanker : public KeyedService { | 25 class TranslateRanker : public KeyedService { |
| 28 public: | 26 public: |
| 29 TranslateRanker() = default; | 27 TranslateRanker() = default; |
| 30 | 28 |
| 31 // Returns the version id for the ranker model. | 29 // Returns the version id for the ranker model. |
| 32 virtual uint32_t GetModelVersion() const = 0; | 30 virtual uint32_t GetModelVersion() const = 0; |
| 33 | 31 |
| 34 // Returns true if executing the ranker model in the translation prompt | 32 // Returns true if executing the ranker model in the translation prompt |
| 35 // context described by |translate_prefs|, |src_lang|, |dst_lang| and possibly | 33 // context described by |translate_event| and possibly |
| 36 // other global browser context attributes suggests that the user should be | 34 // other global browser context attributes suggests that the user should be |
| 37 // prompted as to whether translation should be performed. | 35 // prompted as to whether translation should be performed. |
| 38 // TODO(hamelphi): Take only the proto as input and extract features from it. | |
| 39 virtual bool ShouldOfferTranslation( | 36 virtual bool ShouldOfferTranslation( |
| 40 const TranslatePrefs& translate_prefs, | |
| 41 const std::string& src_lang, | |
| 42 const std::string& dst_lang, | |
| 43 metrics::TranslateEventProto* translate_event) = 0; | 37 metrics::TranslateEventProto* translate_event) = 0; |
| 44 | 38 |
| 45 // Transfers cached translate events to the given vector pointer and clears | 39 // Transfers cached translate events to the given vector pointer and clears |
| 46 // the cache. | 40 // the cache. |
| 47 virtual void FlushTranslateEvents( | 41 virtual void FlushTranslateEvents( |
| 48 std::vector<metrics::TranslateEventProto>* events) = 0; | 42 std::vector<metrics::TranslateEventProto>* events) = 0; |
| 49 | 43 |
| 50 // Record |translate_event| with the given |event_type| and |url|. | 44 // Record |translate_event| with the given |event_type| and |url|. |
| 51 // |event_type| must be one of the values defined by | 45 // |event_type| must be one of the values defined by |
| 52 // metrics::TranslateEventProto::EventType. | 46 // metrics::TranslateEventProto::EventType. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 66 const GURL& url, | 60 const GURL& url, |
| 67 metrics::TranslateEventProto* translate_event) = 0; | 61 metrics::TranslateEventProto* translate_event) = 0; |
| 68 | 62 |
| 69 private: | 63 private: |
| 70 DISALLOW_COPY_AND_ASSIGN(TranslateRanker); | 64 DISALLOW_COPY_AND_ASSIGN(TranslateRanker); |
| 71 }; | 65 }; |
| 72 | 66 |
| 73 } // namespace translate | 67 } // namespace translate |
| 74 | 68 |
| 75 #endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_ | 69 #endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_RANKER_H_ |
| OLD | NEW |