| Index: chrome/browser/predictors/resource_prefetch_predictor_tables.h
|
| diff --git a/chrome/browser/predictors/resource_prefetch_predictor_tables.h b/chrome/browser/predictors/resource_prefetch_predictor_tables.h
|
| index 62b9a5f48d00374d55b375c742841baa5d4ed588..3db828d6fc7d6743ce66b7089fc879d74a87f40b 100644
|
| --- a/chrome/browser/predictors/resource_prefetch_predictor_tables.h
|
| +++ b/chrome/browser/predictors/resource_prefetch_predictor_tables.h
|
| @@ -39,49 +39,6 @@ using chrome_browser_predictors::ResourceData;
|
| // - HostMetadataTable - misc data for hosts.
|
| class ResourcePrefetchPredictorTables : public PredictorTableBase {
|
| public:
|
| - // Used in the UrlResourceTable and HostResourceTable to store resources
|
| - // required for the page or host.
|
| - struct ResourceRow {
|
| - ResourceRow();
|
| - ResourceRow(const ResourceRow& other);
|
| - ResourceRow(const std::string& main_frame_url,
|
| - const std::string& resource_url,
|
| - content::ResourceType resource_type,
|
| - int number_of_hits,
|
| - int number_of_misses,
|
| - int consecutive_misses,
|
| - double average_position,
|
| - net::RequestPriority priority,
|
| - bool has_validators,
|
| - bool always_revalidate);
|
| - void UpdateScore();
|
| - bool operator==(const ResourceRow& rhs) const;
|
| - static void FromProto(const ResourceData& proto, ResourceRow* row);
|
| - void ToProto(ResourceData* resource_data) const;
|
| -
|
| - // Stores the host for host based data, main frame Url for the Url based
|
| - // data. This field is cleared for efficiency reasons and the code outside
|
| - // this class should not assume it is set.
|
| - std::string primary_key;
|
| -
|
| - GURL resource_url;
|
| - content::ResourceType resource_type;
|
| - size_t number_of_hits;
|
| - size_t number_of_misses;
|
| - size_t consecutive_misses;
|
| - double average_position;
|
| - net::RequestPriority priority;
|
| - bool has_validators;
|
| - bool always_revalidate;
|
| -
|
| - // Not stored.
|
| - float score;
|
| - };
|
| - typedef std::vector<ResourceRow> ResourceRows;
|
| -
|
| - // Sorts the resource rows by score, decreasing.
|
| - static void SortResourceRows(ResourceRows* rows);
|
| -
|
| // Aggregated data for a Url or Host. Although the data differs slightly, we
|
| // store them in the same structure, because most of the fields are common and
|
| // it allows us to use the same functions.
|
| @@ -89,7 +46,6 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
|
| PrefetchData(PrefetchKeyType key_type, const std::string& primary_key);
|
| PrefetchData(const PrefetchData& other);
|
| ~PrefetchData();
|
| - bool operator==(const PrefetchData& rhs) const;
|
|
|
| bool is_host() const { return key_type == PREFETCH_KEY_TYPE_HOST; }
|
|
|
| @@ -98,8 +54,15 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
|
| std::string primary_key; // is_host() ? main frame url : host.
|
|
|
| base::Time last_visit;
|
| - ResourceRows resources;
|
| + std::vector<ResourceData> resources;
|
| };
|
| +
|
| + // Sorts the resources by score, decreasing.
|
| + static void SortResources(std::vector<ResourceData>* resource);
|
| +
|
| + // Updates the score of a resource.
|
| + static void UpdateResourceScore(ResourceData* resource);
|
| +
|
| // Map from primary key to PrefetchData for the key.
|
| typedef std::map<std::string, PrefetchData> PrefetchDataMap;
|
|
|
| @@ -116,7 +79,7 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
|
|
|
| // Delete data for the input |urls| and |hosts|.
|
| virtual void DeleteData(const std::vector<std::string>& urls,
|
| - const std::vector<std::string>& hosts);
|
| + const std::vector<std::string>& hosts);
|
|
|
| // Wrapper over DeleteData for convenience.
|
| virtual void DeleteSingleDataPoint(const std::string& key,
|
| @@ -126,7 +89,7 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
|
| virtual void DeleteAllData();
|
|
|
| // The maximum length of the string that can be stored in the DB.
|
| - static const size_t kMaxStringLength;
|
| + static const size_t kMaxStringLength = 1024;
|
|
|
| private:
|
| friend class PredictorDatabaseInternal;
|
| @@ -146,7 +109,7 @@ class ResourcePrefetchPredictorTables : public PredictorTableBase {
|
|
|
| // Returns true if the strings in the |data| are less than |kMaxStringLength|
|
| // in length.
|
| - bool StringsAreSmallerThanDBLimit(const PrefetchData& data) const;
|
| + static bool StringsAreSmallerThanDBLimit(const PrefetchData& data);
|
|
|
| // PredictorTableBase methods.
|
| void CreateTableIfNonExistent() override;
|
|
|