OLD | NEW |
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 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 static bool IsHandledSubresource(net::URLRequest* request, | 291 static bool IsHandledSubresource(net::URLRequest* request, |
292 content::ResourceType resource_type); | 292 content::ResourceType resource_type); |
293 | 293 |
294 // Returns true if the subresource has a supported type. | 294 // Returns true if the subresource has a supported type. |
295 static bool IsHandledResourceType(content::ResourceType resource_type, | 295 static bool IsHandledResourceType(content::ResourceType resource_type, |
296 const std::string& mime_type); | 296 const std::string& mime_type); |
297 | 297 |
298 // Returns true if the request (should have a response in it) is "no-store". | 298 // Returns true if the request (should have a response in it) is "no-store". |
299 static bool IsNoStore(const net::URLRequest* request); | 299 static bool IsNoStore(const net::URLRequest* request); |
300 | 300 |
301 // Returns true iff |redirect_data_map| contains confident redirect endpoint | |
302 // for |entry_point| and assigns it to the |redirect_endpoint|. | |
303 static bool GetRedirectEndpoint(const std::string& entry_point, | |
304 const RedirectDataMap& redirect_data_map, | |
305 std::string* redirect_endpoint); | |
306 | |
307 static void SetAllowPortInUrlsForTesting(bool state); | 301 static void SetAllowPortInUrlsForTesting(bool state); |
308 | 302 |
309 // KeyedService methods override. | 303 // KeyedService methods override. |
310 void Shutdown() override; | 304 void Shutdown() override; |
311 | 305 |
312 // Functions called on different network events pertaining to the loading of | 306 // Functions called on different network events pertaining to the loading of |
313 // main frame resource or sub resources. | 307 // main frame resource or sub resources. |
314 void OnMainFrameRequest(const URLRequestSummary& request); | 308 void OnMainFrameRequest(const URLRequestSummary& request); |
315 void OnMainFrameResponse(const URLRequestSummary& response); | 309 void OnMainFrameResponse(const URLRequestSummary& response); |
316 void OnMainFrameRedirect(const URLRequestSummary& response); | 310 void OnMainFrameRedirect(const URLRequestSummary& response); |
317 void OnSubresourceResponse(const URLRequestSummary& response); | 311 void OnSubresourceResponse(const URLRequestSummary& response); |
318 | 312 |
319 // Called when onload completes for a navigation. We treat this point as the | 313 // Called when onload completes for a navigation. We treat this point as the |
320 // "completion" of the navigation. The resources requested by the page up to | 314 // "completion" of the navigation. The resources requested by the page up to |
321 // this point are the only ones considered for prefetching. | 315 // this point are the only ones considered for prefetching. |
322 void OnNavigationComplete(const NavigationID& nav_id_without_timing_info); | 316 void OnNavigationComplete(const NavigationID& nav_id_without_timing_info); |
323 | 317 |
| 318 // Returns true iff one of the following conditions is true |
| 319 // * |redirect_data_map| contains confident redirect endpoint for |
| 320 // |entry_point| and assigns it to the |redirect_endpoint| |
| 321 // |
| 322 // * |redirect_data_map| doens't contain an entry for |entry_point| and |
| 323 // assings |entry_point| to the |redirect_endpoint|. |
| 324 bool GetRedirectEndpoint(const std::string& entry_point, |
| 325 const RedirectDataMap& redirect_data_map, |
| 326 std::string* redirect_endpoint) const; |
| 327 |
324 // Returns true iff there is PrefetchData that can be used for a | 328 // Returns true iff there is PrefetchData that can be used for a |
325 // |main_frame_url| and fills |prediction| with resources that need to be | 329 // |main_frame_url| and fills |prediction| with resources that need to be |
326 // prefetched. |prediction| pointer may be equal nullptr to get return value | 330 // prefetched. |prediction| pointer may be equal nullptr to get return value |
327 // only. | 331 // only. |
328 bool GetPrefetchData(const GURL& main_frame_url, | 332 bool GetPrefetchData(const GURL& main_frame_url, |
329 Prediction* prediction) const; | 333 Prediction* prediction) const; |
330 | 334 |
331 // Returns true iff the |data_map| contains PrefetchData that can be used | 335 // Returns true iff the |data_map| contains PrefetchData that can be used |
332 // for a |main_frame_key| and fills |urls| with resources that need to be | 336 // for a |main_frame_key| and fills |urls| with resources that need to be |
333 // prefetched. |urls| pointer may be equal nullptr to get return value only. | 337 // prefetched. |urls| pointer may be equal nullptr to get return value only. |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 | 469 |
466 private: | 470 private: |
467 ResourcePrefetchPredictor* predictor_; | 471 ResourcePrefetchPredictor* predictor_; |
468 | 472 |
469 DISALLOW_COPY_AND_ASSIGN(TestObserver); | 473 DISALLOW_COPY_AND_ASSIGN(TestObserver); |
470 }; | 474 }; |
471 | 475 |
472 } // namespace predictors | 476 } // namespace predictors |
473 | 477 |
474 #endif // CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_ | 478 #endif // CHROME_BROWSER_PREDICTORS_RESOURCE_PREFETCH_PREDICTOR_H_ |
OLD | NEW |