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

Side by Side Diff: chrome/browser/net/predictor.h

Issue 443413002: Enable TCP preconnect and DNS preresolve on cellular. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert removing predictor_enabled check. Created 6 years, 4 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
« no previous file with comments | « chrome/browser/net/prediction_options.cc ('k') | chrome/browser/net/predictor.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // A Predictor object is instantiated once in the browser process, and manages 5 // A Predictor object is instantiated once in the browser process, and manages
6 // both preresolution of hostnames, as well as TCP/IP preconnection to expected 6 // both preresolution of hostnames, as well as TCP/IP preconnection to expected
7 // subresources. 7 // subresources.
8 // Most hostname lists are provided by the renderer processes, and include URLs 8 // Most hostname lists are provided by the renderer processes, and include URLs
9 // that *might* be used in the near future by the browsing user. One goal of 9 // that *might* be used in the near future by the browsing user. One goal of
10 // this class is to cause the underlying DNS structure to lookup a hostname 10 // this class is to cause the underlying DNS structure to lookup a hostname
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 // Only for testing; 428 // Only for testing;
429 size_t peak_pending_lookups() const { return peak_pending_lookups_; } 429 size_t peak_pending_lookups() const { return peak_pending_lookups_; }
430 430
431 // If a proxy advisor is defined, let it know that |url| will be prefetched or 431 // If a proxy advisor is defined, let it know that |url| will be prefetched or
432 // preconnected to. Can be called on either UI or IO threads and will post to 432 // preconnected to. Can be called on either UI or IO threads and will post to
433 // the IO thread if necessary, invoking AdviseProxyOnIOThread(). 433 // the IO thread if necessary, invoking AdviseProxyOnIOThread().
434 void AdviseProxy(const GURL& url, 434 void AdviseProxy(const GURL& url,
435 UrlInfo::ResolutionMotivation motivation, 435 UrlInfo::ResolutionMotivation motivation,
436 bool is_preconnect); 436 bool is_preconnect);
437 437
438 // There two members call the corresponding global functions in 438 // These two members call the appropriate global functions in
439 // prediction_options.cc. 439 // prediction_options.cc depending on which thread they are called on.
440 virtual bool CanPredictNetworkActionsUI(); 440 virtual bool CanPrefetchAndPrerender() const;
441 virtual bool CanPredictNetworkActionsIO(); 441 virtual bool CanPreresolveAndPreconnect() const;
442 442
443 // ------------- Start IO thread methods. 443 // ------------- Start IO thread methods.
444 444
445 // Perform actual resolution or preconnection to subresources now. This is 445 // Perform actual resolution or preconnection to subresources now. This is
446 // an internal worker method that is reached via a post task from 446 // an internal worker method that is reached via a post task from
447 // PredictFrameSubresources(). 447 // PredictFrameSubresources().
448 void PrepareFrameSubresources(const GURL& url, 448 void PrepareFrameSubresources(const GURL& url,
449 const GURL& first_party_for_cookies); 449 const GURL& first_party_for_cookies);
450 450
451 // Access method for use by async lookup request to pass resolution result. 451 // Access method for use by async lookup request to pass resolution result.
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 : Predictor(preconnect_enabled, predictor_enabled) {} 606 : Predictor(preconnect_enabled, predictor_enabled) {}
607 virtual ~SimplePredictor() {} 607 virtual ~SimplePredictor() {}
608 virtual void InitNetworkPredictor( 608 virtual void InitNetworkPredictor(
609 PrefService* user_prefs, 609 PrefService* user_prefs,
610 PrefService* local_state, 610 PrefService* local_state,
611 IOThread* io_thread, 611 IOThread* io_thread,
612 net::URLRequestContextGetter* getter, 612 net::URLRequestContextGetter* getter,
613 ProfileIOData* profile_io_data) OVERRIDE; 613 ProfileIOData* profile_io_data) OVERRIDE;
614 virtual void ShutdownOnUIThread() OVERRIDE; 614 virtual void ShutdownOnUIThread() OVERRIDE;
615 private: 615 private:
616 // There member functions return True for unittests. 616 // These member functions return True for unittests.
617 virtual bool CanPredictNetworkActionsUI() OVERRIDE; 617 virtual bool CanPrefetchAndPrerender() const OVERRIDE;
618 virtual bool CanPredictNetworkActionsIO() OVERRIDE; 618 virtual bool CanPreresolveAndPreconnect() const OVERRIDE;
619 }; 619 };
620 620
621 } // namespace chrome_browser_net 621 } // namespace chrome_browser_net
622 622
623 #endif // CHROME_BROWSER_NET_PREDICTOR_H_ 623 #endif // CHROME_BROWSER_NET_PREDICTOR_H_
OLDNEW
« no previous file with comments | « chrome/browser/net/prediction_options.cc ('k') | chrome/browser/net/predictor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698