| Index: chrome/browser/prerender/external_prerender_handler_android.cc | 
| diff --git a/chrome/browser/prerender/external_prerender_handler_android.cc b/chrome/browser/prerender/external_prerender_handler_android.cc | 
| index 8714710bff238039b904da3516153d0a12819218..2981f73561a4f529361cdb028c1996ccff1fdde0 100644 | 
| --- a/chrome/browser/prerender/external_prerender_handler_android.cc | 
| +++ b/chrome/browser/prerender/external_prerender_handler_android.cc | 
| @@ -22,6 +22,33 @@ using base::android::ConvertJavaStringToUTF16; | 
|  | 
| namespace prerender { | 
|  | 
| +namespace { | 
| + | 
| +static bool CheckAndConvertParams( | 
| +    JNIEnv* env, | 
| +    const JavaParamRef<jobject>& jprofile, | 
| +    const JavaParamRef<jstring>& jurl, | 
| +    const JavaParamRef<jobject>& jweb_contents, | 
| +    GURL* url, | 
| +    prerender::PrerenderManager** prerender_manager, | 
| +    content::WebContents** web_contents) { | 
| +  if (jurl == NULL) | 
| +    return false; | 
| +  *url = GURL(ConvertJavaStringToUTF16(env, jurl)); | 
| +  if (!url->is_valid()) | 
| +    return false; | 
| + | 
| +  Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 
| +  *prerender_manager = | 
| +      prerender::PrerenderManagerFactory::GetForProfile(profile); | 
| +  if (!*prerender_manager) | 
| +    return false; | 
| +  *web_contents = content::WebContents::FromJavaWebContents(jweb_contents); | 
| +  return true; | 
| +} | 
| + | 
| +}  // namespace | 
| + | 
| bool ExternalPrerenderHandlerAndroid::AddPrerender( | 
| JNIEnv* env, | 
| const JavaParamRef<jobject>& obj, | 
| @@ -75,20 +102,29 @@ static jboolean HasPrerenderedUrl(JNIEnv* env, | 
| const JavaParamRef<jobject>& jprofile, | 
| const JavaParamRef<jstring>& jurl, | 
| const JavaParamRef<jobject>& jweb_contents) { | 
| -  if (jurl == NULL) | 
| +  GURL url; | 
| +  prerender::PrerenderManager* prerender_manager; | 
| +  content::WebContents* web_contents; | 
| +  if (!CheckAndConvertParams(env, jprofile, jurl, jweb_contents, &url, | 
| +                             &prerender_manager, &web_contents)) | 
| return false; | 
| +  return prerender_manager->HasPrerenderedUrl(url, web_contents); | 
| +} | 
|  | 
| -  Profile* profile = ProfileAndroid::FromProfileAndroid(jprofile); | 
| -  GURL url = GURL(ConvertJavaStringToUTF16(env, jurl)); | 
| -  if (!url.is_valid()) | 
| -    return false; | 
| -  prerender::PrerenderManager* prerender_manager = | 
| -          prerender::PrerenderManagerFactory::GetForProfile(profile); | 
| -  if (!prerender_manager) | 
| +static jboolean HasPrerenderedAndFinishedLoadingUrl( | 
| +    JNIEnv* env, | 
| +    const JavaParamRef<jclass>& clazz, | 
| +    const JavaParamRef<jobject>& jprofile, | 
| +    const JavaParamRef<jstring>& jurl, | 
| +    const JavaParamRef<jobject>& jweb_contents) { | 
| +  GURL url; | 
| +  prerender::PrerenderManager* prerender_manager; | 
| +  content::WebContents* web_contents; | 
| +  if (!CheckAndConvertParams(env, jprofile, jurl, jweb_contents, &url, | 
| +                             &prerender_manager, &web_contents)) | 
| return false; | 
| -  content::WebContents* web_contents = | 
| -      content::WebContents::FromJavaWebContents(jweb_contents); | 
| -  return prerender_manager->HasPrerenderedUrl(url, web_contents); | 
| +  return prerender_manager->HasPrerenderedAndFinishedLoadingUrl(url, | 
| +                                                                web_contents); | 
| } | 
|  | 
| ExternalPrerenderHandlerAndroid::ExternalPrerenderHandlerAndroid() {} | 
|  |