| Index: ios/chrome/browser/ui/preload_controller.h
 | 
| diff --git a/ios/chrome/browser/ui/preload_controller.h b/ios/chrome/browser/ui/preload_controller.h
 | 
| index ec6f4a37ed95dc0c25ceb0968ba52ba7168dc89a..8c865a8dd7cee8fdaf9230a4e1754c65fd1ee1d0 100644
 | 
| --- a/ios/chrome/browser/ui/preload_controller.h
 | 
| +++ b/ios/chrome/browser/ui/preload_controller.h
 | 
| @@ -9,7 +9,6 @@
 | 
|  
 | 
|  #include <memory>
 | 
|  
 | 
| -#include "base/mac/scoped_nsobject.h"
 | 
|  #include "components/prefs/pref_change_registrar.h"
 | 
|  #import "ios/chrome/browser/net/connection_type_observer_bridge.h"
 | 
|  #import "ios/chrome/browser/prefs/pref_observer_bridge.h"
 | 
| @@ -21,13 +20,15 @@
 | 
|  #include "ui/base/page_transition_types.h"
 | 
|  #include "url/gurl.h"
 | 
|  
 | 
| +@protocol PreloadControllerDelegate;
 | 
| +
 | 
|  namespace ios {
 | 
|  class ChromeBrowserState;
 | 
|  }
 | 
|  
 | 
| -class PrefetchDelegate;
 | 
| -@protocol PreloadControllerDelegate;
 | 
| -@class Tab;
 | 
| +namespace web {
 | 
| +class WebState;
 | 
| +}
 | 
|  
 | 
|  // ID of the URLFetcher responsible for prefetches.
 | 
|  extern const int kPreloadControllerURLFetcherID;
 | 
| @@ -43,62 +44,7 @@ extern const int kPreloadControllerURLFetcherID;
 | 
|                                          PrefObserverDelegate,
 | 
|                                          PreloadProvider,
 | 
|                                          TabDelegate,
 | 
| -                                        CRConnectionTypeObserverBridge> {
 | 
| - @private
 | 
| -  ios::ChromeBrowserState* browserState_;  // Weak.
 | 
| -
 | 
| -  // The prerendered tab.  Can be nil.
 | 
| -  base::scoped_nsobject<Tab> tab_;
 | 
| -
 | 
| -  // The URL that is prerendered in |tab_|.  This can be different from the
 | 
| -  // value returned by |tab_.url|, for example in cases where there was a
 | 
| -  // redirect.
 | 
| -  //
 | 
| -  // When choosing whether or not to use a prerendered Tab,
 | 
| -  // BrowserViewController compares the URL being loaded by the omnibox with the
 | 
| -  // URL of the prerendered Tab.  Comparing against the Tab's currently URL
 | 
| -  // could return false negatives in cases of redirect, hence the need to store
 | 
| -  // the originally prerendered URL.
 | 
| -  GURL prerenderedURL_;
 | 
| -
 | 
| -  // The URL that is scheduled to be prerendered, its associated transition and
 | 
| -  // referrer. |scheduledTransition_| and |scheduledReferrer_| are not valid
 | 
| -  // when |scheduledURL_| is empty.
 | 
| -  GURL scheduledURL_;
 | 
| -  ui::PageTransition scheduledTransition_;
 | 
| -  web::Referrer scheduledReferrer_;
 | 
| -
 | 
| -  // The most-recently prefetched URL, or nil if there have been no prefetched
 | 
| -  // URLs.
 | 
| -  GURL prefetchedURL_;
 | 
| -
 | 
| -  // The URLFetcher and associated delegate used to prefetch URLs. The delegate
 | 
| -  // simply forwards callbacks from URLFetcher back to the PrerenderController.
 | 
| -  std::unique_ptr<PrefetchDelegate> prefetcherDelegate_;
 | 
| -  std::unique_ptr<net::URLFetcher> prefetcher_;
 | 
| -
 | 
| -  // Bridge to listen to pref changes.
 | 
| -  std::unique_ptr<PrefObserverBridge> observerBridge_;
 | 
| -  // Registrar for pref changes notifications.
 | 
| -  PrefChangeRegistrar prefChangeRegistrar_;
 | 
| -  // Observer for the WWAN setting.  Contains a valid object only if the
 | 
| -  // instant setting is set to wifi-only.
 | 
| -  std::unique_ptr<ConnectionTypeObserverBridge> connectionTypeObserverBridge_;
 | 
| -
 | 
| -  // Whether or not the preference is enabled.
 | 
| -  BOOL enabled_;
 | 
| -  // Whether or not prerendering is only when on wifi.
 | 
| -  BOOL wifiOnly_;
 | 
| -  // Whether or not the current connection is using WWAN.
 | 
| -  BOOL usingWWAN_;
 | 
| -
 | 
| -  // Number of successful prerenders (i.e. the user viewed the prerendered page)
 | 
| -  // during the lifetime of this controller.
 | 
| -  int successfulPrerendersPerSessionCount_;
 | 
| -
 | 
| -  id<PreloadControllerDelegate> delegate_;  // weak
 | 
| -}
 | 
| -
 | 
| +                                        CRConnectionTypeObserverBridge>
 | 
|  // The URL of the currently prerendered Tab.  Empty if there is no prerendered
 | 
|  // Tab.
 | 
|  @property(nonatomic, readonly, assign) GURL prerenderedURL;
 | 
| @@ -114,10 +60,10 @@ extern const int kPreloadControllerURLFetcherID;
 | 
|  // destroyed.
 | 
|  - (void)browserStateDestroyed;
 | 
|  
 | 
| -// Returns the currently prerendered Tab, or nil if none exists.  The caller
 | 
| -// must retain the returned Tab if needed.  After this method is called, the
 | 
| -// PrerenderController reverts to a non-prerendering state.
 | 
| -- (Tab*)releasePrerenderContents;
 | 
| +// Returns the currently prerendered WebState, or nil if none exists.  After
 | 
| +// this method is called, the PrerenderController reverts to a non-prerendering
 | 
| +// state.
 | 
| +- (std::unique_ptr<web::WebState>)releasePrerenderContents;
 | 
|  
 | 
|  // Returns true if the content of |url| has been prefetched.
 | 
|  - (BOOL)hasPrefetchedURL:(const GURL&)url;
 | 
| 
 |