| Index: chrome/browser/android/banners/app_banner_manager.cc
 | 
| diff --git a/chrome/browser/android/banners/app_banner_manager.cc b/chrome/browser/android/banners/app_banner_manager.cc
 | 
| index 56a954143f32a26ecbb06cbff117773e610d10ed..8da89910b030580d004918cecc061be37c969c67 100644
 | 
| --- a/chrome/browser/android/banners/app_banner_manager.cc
 | 
| +++ b/chrome/browser/android/banners/app_banner_manager.cc
 | 
| @@ -138,11 +138,9 @@ void AppBannerManager::DidFinishLoad(
 | 
|    if (!validated_url_.SchemeIsSecure() && !gDisableSecureCheckForTesting)
 | 
|      return;
 | 
|  
 | 
| -  // See if the page has a manifest. Using Unretained(this) here is safe as the
 | 
| -  // lifetime of this object extends beyond the lifetime of the web_contents(),
 | 
| -  // and when web_contents() is destroyed it will call OnDidGetManifest.
 | 
| +  // See if the page has a manifest.
 | 
|    web_contents()->GetManifest(base::Bind(&AppBannerManager::OnDidGetManifest,
 | 
| -                                         base::Unretained(this)));
 | 
| +                                         weak_factory_.GetWeakPtr()));
 | 
|  }
 | 
|  
 | 
|  void AppBannerManager::OnDidGetManifest(const content::Manifest& manifest) {
 | 
| 
 |