Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(140)

Side by Side Diff: chrome/browser/predictors/resource_prefetch_predictor.h

Issue 2825693002: predictors: Prefetch resources from manifest. (Closed)
Patch Set: Address comments. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_ 5 #ifndef CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_
6 #define CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_ 6 #define CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 "ResourcePrefetchPredictor.PrefetchHitsCount.Cached"; 56 "ResourcePrefetchPredictor.PrefetchHitsCount.Cached";
57 constexpr char kResourcePrefetchPredictorPrefetchHitsCountNotCached[] = 57 constexpr char kResourcePrefetchPredictorPrefetchHitsCountNotCached[] =
58 "ResourcePrefetchPredictor.PrefetchHitsCount.NotCached"; 58 "ResourcePrefetchPredictor.PrefetchHitsCount.NotCached";
59 constexpr char kResourcePrefetchPredictorPrefetchHitsSize[] = 59 constexpr char kResourcePrefetchPredictorPrefetchHitsSize[] =
60 "ResourcePrefetchPredictor.PrefetchHitsSizeKB"; 60 "ResourcePrefetchPredictor.PrefetchHitsSizeKB";
61 constexpr char kResourcePrefetchPredictorPrefetchMissesSize[] = 61 constexpr char kResourcePrefetchPredictorPrefetchMissesSize[] =
62 "ResourcePrefetchPredictor.PrefetchMissesSizeKB"; 62 "ResourcePrefetchPredictor.PrefetchMissesSizeKB";
63 constexpr char kResourcePrefetchPredictorRedirectStatusHistogram[] = 63 constexpr char kResourcePrefetchPredictorRedirectStatusHistogram[] =
64 "ResourcePrefetchPredictor.RedirectStatus"; 64 "ResourcePrefetchPredictor.RedirectStatus";
65 65
66 const uint32_t kVersionedRemovedExperiment = 0x03ff25e3;
66 const uint32_t kUnusedRemovedExperiment = 0xf7f77166; 67 const uint32_t kUnusedRemovedExperiment = 0xf7f77166;
68 const uint32_t kNoStoreRemovedExperiment = 0xd90a199a;
67 } // namespace internal 69 } // namespace internal
68 70
69 class TestObserver; 71 class TestObserver;
70 class ResourcePrefetcherManager; 72 class ResourcePrefetcherManager;
71 73
72 // Contains logic for learning what can be prefetched and for kicking off 74 // Contains logic for learning what can be prefetched and for kicking off
73 // speculative prefetching. 75 // speculative prefetching.
74 // - The class is a profile keyed service owned by the profile. 76 // - The class is a profile keyed service owned by the profile.
75 // - All the non-static methods of this class need to be called on the UI 77 // - All the non-static methods of this class need to be called on the UI
76 // thread. 78 // thread.
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, 283 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest,
282 ManifestUnusedRemoved); 284 ManifestUnusedRemoved);
283 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, OnMainFrameRequest); 285 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, OnMainFrameRequest);
284 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, OnMainFrameRedirect); 286 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, OnMainFrameRedirect);
285 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, 287 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest,
286 OnSubresourceResponse); 288 OnSubresourceResponse);
287 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, GetCorrectPLT); 289 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, GetCorrectPLT);
288 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, HandledResourceTypes); 290 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, HandledResourceTypes);
289 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, 291 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest,
290 PopulatePrefetcherRequest); 292 PopulatePrefetcherRequest);
293 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, PopulateFromManifest);
291 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, GetRedirectEndpoint); 294 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, GetRedirectEndpoint);
292 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, GetPrefetchData); 295 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, GetPrefetchData);
293 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, 296 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest,
294 TestPrecisionRecallHistograms); 297 TestPrecisionRecallHistograms);
295 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest, 298 FRIEND_TEST_ALL_PREFIXES(ResourcePrefetchPredictorTest,
296 TestPrefetchingDurationHistogram); 299 TestPrefetchingDurationHistogram);
297 300
298 enum InitializationState { 301 enum InitializationState {
299 NOT_INITIALIZED = 0, 302 NOT_INITIALIZED = 0,
300 INITIALIZING = 1, 303 INITIALIZING = 1,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 355
353 // Returns true iff there is PrefetchData that can be used for a 356 // Returns true iff there is PrefetchData that can be used for a
354 // |main_frame_url| and fills |prediction| with resources that need to be 357 // |main_frame_url| and fills |prediction| with resources that need to be
355 // prefetched. |prediction| pointer may be equal nullptr to get return value 358 // prefetched. |prediction| pointer may be equal nullptr to get return value
356 // only. 359 // only.
357 bool GetPrefetchData(const GURL& main_frame_url, 360 bool GetPrefetchData(const GURL& main_frame_url,
358 Prediction* prediction) const; 361 Prediction* prediction) const;
359 362
360 // Returns true iff the |data_map| contains PrefetchData that can be used 363 // Returns true iff the |data_map| contains PrefetchData that can be used
361 // for a |main_frame_key| and fills |urls| with resources that need to be 364 // for a |main_frame_key| and fills |urls| with resources that need to be
362 // prefetched. |urls| pointer may be equal nullptr to get return value only. 365 // prefetched. |urls| may be nullptr to get the return value only.
363 bool PopulatePrefetcherRequest(const std::string& main_frame_key, 366 bool PopulatePrefetcherRequest(const std::string& main_frame_key,
364 const PrefetchDataMap& data_map, 367 const PrefetchDataMap& data_map,
365 std::vector<GURL>* urls) const; 368 std::vector<GURL>* urls) const;
366 369
370 // Returns true iff the manifest table contains PrecacheManifest that can be
371 // used for a |manifest_host| and fills |urls| with resources that need to be
372 // prefetched. |urls| may be nullptr to get the return value only.
373 bool PopulateFromManifest(const std::string& manifest_host,
374 std::vector<GURL>* urls) const;
375
367 // Callback for task to read predictor database. Takes ownership of 376 // Callback for task to read predictor database. Takes ownership of
368 // all arguments. 377 // all arguments.
369 void CreateCaches(std::unique_ptr<PrefetchDataMap> url_data_map, 378 void CreateCaches(std::unique_ptr<PrefetchDataMap> url_data_map,
370 std::unique_ptr<PrefetchDataMap> host_data_map, 379 std::unique_ptr<PrefetchDataMap> host_data_map,
371 std::unique_ptr<RedirectDataMap> url_redirect_data_map, 380 std::unique_ptr<RedirectDataMap> url_redirect_data_map,
372 std::unique_ptr<RedirectDataMap> host_redirect_data_map, 381 std::unique_ptr<RedirectDataMap> host_redirect_data_map,
373 std::unique_ptr<ManifestDataMap> manifest_data_map, 382 std::unique_ptr<ManifestDataMap> manifest_data_map,
374 std::unique_ptr<OriginDataMap> origin_data_map); 383 std::unique_ptr<OriginDataMap> origin_data_map);
375 384
376 // Called during initialization when history is read and the predictor 385 // Called during initialization when history is read and the predictor
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 518
510 private: 519 private:
511 ResourcePrefetchPredictor* predictor_; 520 ResourcePrefetchPredictor* predictor_;
512 521
513 DISALLOW_COPY_AND_ASSIGN(TestObserver); 522 DISALLOW_COPY_AND_ASSIGN(TestObserver);
514 }; 523 };
515 524
516 } // namespace predictors 525 } // namespace predictors
517 526
518 #endif // CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_ 527 #endif // CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698